doegoth / style.css
protae5544's picture
แนบไฟล์ไม่ได้เลย
a9a1599 verified
:root {
--primary-color: #7c2a4a;
--header-height: 64px;
--footer-height: 48px;
--sidebar-width: 320px;
}
[data-theme="dark"] {
--primary-color: #fca5a5;
}
/* Page Layout Specifics - Can't be fully done with Tailwind utilities */
.page {
width: 892px;
height: 1261px;
/* Default white bg handled by class in HTML */
}
/* Design Mode Styles */
body.design-mode .field {
cursor: grab;
border: 1px dashed #3b82f6 !important;
background: rgba(59, 130, 246, 0.1);
min-width: 20px;
min-height: 1em;
}
body.design-mode .field:hover {
background: rgba(59, 130, 246, 0.2);
}
body.design-mode .field.selected {
border: 2px solid #10b981 !important;
background: rgba(16, 185, 129, 0.1);
z-index: 50;
}
body.design-mode .page {
box-shadow: 0 0 0 1px #3b82f6;
}
/* Scrollbar Styling */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: rgba(0, 0, 0, 0.1);
}
::-webkit-scrollbar-thumb {
background: rgba(0, 0, 0, 0.3);
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: rgba(0, 0, 0, 0.5);
}
.dark ::-webkit-scrollbar-track {
background: rgba(255, 255, 255, 0.05);
}
.dark ::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.2);
}
/* PDF Canvas */
.pdf-page-wrapper {
background: white;
box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}
/* Form Styles */
.form-input {
@apply w-full px-3 py-2 border border-slate-300 dark:border-slate-600 rounded-lg bg-white dark:bg-slate-700 text-slate-800 dark:text-slate-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-colors;
}
.btn-primary {
@apply px-4 py-2 bg-gradient-to-r from-blue-600 to-indigo-600 text-white font-medium rounded-lg hover:shadow-lg hover:scale-[1.02] transition-all flex items-center gap-2;
}
.btn-secondary {
@apply px-4 py-2 bg-slate-100 dark:bg-slate-700 text-slate-800 dark:text-slate-200 font-medium rounded-lg hover:bg-slate-200 dark:hover:bg-slate-600 transition-colors;
}
/* Utility transitions */
.transition-height {
transition: height 0.3s ease-in-out;
}
/* File upload wrapper */
.file-upload-wrapper {
position: relative;
overflow: hidden;
display: inline-block;
width: 100%;
}
.file-upload-wrapper input[type=file] {
position: absolute;
left: 0;
top: 0;
opacity: 0;
width: 100%;
height: 100%;
cursor: pointer;
}
/* Hide elements for print */
@media print {
.no-print {
display: none !important;
}
.page {
margin: 0 !important;
box-shadow: none !important;
page-break-after: always;
}
}
/* Creative enhancements */
.page {
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
transform-style: preserve-3d;
perspective: 1000px;
}
.page:hover {
transform: translateY(-2px) rotateX(2deg);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}
.field {
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
}
.field::after {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(45deg, transparent 30%, rgba(255,255,255,0.1) 50%, transparent 70%);
transform: translateX(-100%);
transition: transform 0.6s ease;
}
.field:hover::after {
transform: translateX(100%);
}
/* Animated gradient background for pages */
.page::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
opacity: 0;
transition: opacity 0.3s ease;
z-index: -1;
}
body.design-mode .page:hover::before {
opacity: 0.05;
}
/* Dynamic shadow effects */
.shadow-2xl.page {
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
/* Floating animation for buttons */
.btn-primary, .btn-secondary, .action-btn, .icon-btn {
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
transform: translateZ(0);
}
.btn-primary:hover, .btn-secondary:hover, .action-btn:hover, .icon-btn:hover {
transform: translateY(-3px) scale(1.05);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
}
.btn-primary:active, .btn-secondary:active, .action-btn:active, .icon-btn:active {
transform: translateY(-1px) scale(1.02);
}
/* Rainbow gradient animation for special elements */
@keyframes rainbow {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}
.btn-primary {
background: linear-gradient(45deg, #3b82f6, #8b5cf6, #ec4899, #f59e0b, #10b981);
background-size: 400% 400%;
animation: rainbow 8s ease infinite;
}
/* Neumorphic design for cards and containers */
.neumorphic {
background: #e0e5ec;
border-radius: 20px;
box-shadow: 9px 9px 16px #a3b1c6, -9px -9px 16px #ffffff;
}
[data-theme="dark"] .neumorphic {
background: #1a1f29;
box-shadow: 9px 9px 16px #0d1016, -9px -9px 16px #272d42;
}
/* Glowing effect for interactive elements */
.glow {
animation: glow 2s ease-in-out infinite alternate;
}
@keyframes glow {
from { box-shadow: 0 0 5px rgba(59, 130, 246, 0.5); }
to { box-shadow: 0 0 20px rgba(59, 130, 246, 0.9), 0 0 30px rgba(59, 130, 246, 0.6); }
}
/* Text shine effect */
.text-shine {
background: linear-gradient(90deg, #667eea 0%, #764ba2 50%, #667eea 100%);
background-size: 200% auto;
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
animation: shine 3s linear infinite;
}
@keyframes shine {
to { background-position: 200% center; }
}
/* Morphing blob animation */
@keyframes morph {
0% { border-radius: 40% 60% 60% 40% / 60% 40% 60% 40%; }
50% { border-radius: 60% 40% 20% 80% / 80% 20% 60% 40%; }
100% { border-radius: 40% 60% 60% 40% / 60% 40% 60% 40%; }
}
.blob {
animation: morph 8s ease-in-out infinite;
background: linear-gradient(45deg, #3b82f6, #8b5cf6);
transition: all 0.5s ease;
}
/* Parallax effect for backgrounds */
.parallax-bg {
background-attachment: fixed;
background-position: center;
background-size: cover;
background-repeat: no-repeat;
}
/* Animated particles effect */
@keyframes float {
0% { transform: translateY(0px); }
50% { transform: translateY(-20px); }
100% { transform: translateY(0px); }
}
.floating {
animation: float 6s ease-in-out infinite;
}
/* Bounce animation for notifications */
@keyframes bounce {
0%, 20%, 53%, 80%, 100% { transform: translate3d(0, 0, 0); }
40%, 43% { transform: translate3d(0, -30px, 0); }
70% { transform: translate3d(0, -15px, 0); }
90% { transform: translate3d(0, -4px, 0); }
}
.bounce {
animation: bounce 2s ease-in-out infinite;
}
/* Add these classes to your elements for creative effects */
.creative-title {
@apply text-shine text-3xl font-bold;
}
.creative-card {
@apply neumorphic p-6 hover:glow transition-all duration-300;
}
.creative-btn {
@apply btn-primary floating;
}
/* Animated background patterns */
.pattern-dots {
background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,0.15) 1px, transparent 0);
background-size: 20px 20px;
animation: slide 20s linear infinite;
}
@keyframes slide {
0% { background-position: 0 0; }
100% { background-position: 20px 20px; }
}
/* Glitch effect for special moments */
.glitch {
animation: glitch 1s linear infinite;
}
@keyframes glitch {
2%,64% { transform: translate(2px, 0) skew(0deg); }
4%,60% { transform: translate(-2px, 0) skew(0deg); }
62% { transform: translate(0, 0) skew(5deg); }
}
/* Creative field styling */
.field {
font-family: 'Comic Neue', cursive;
font-weight: 700;
background: linear-gradient(45deg, #f59e0b, #f97316);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
background-size: 200% 200%;
animation: rainbow 3s ease infinite;
}
/* Design Mode Enhancement */
body.design-mode .field {
cursor: grab;
border: 1px dashed #3b82f6 !important;
background: rgba(59, 130, 246, 0.1);
min-width: 20px;
min-height: 1em;
}
body.design-mode .field:hover {
background: rgba(59, 130, 246, 0.2);
}
body.design-mode .field.selected {
border: 2px solid #10b981 !important;
background: rgba(16, 185, 129, 0.1);
z-index: 50;
}
body.design-mode .page {
box-shadow: 0 0 0 1px #3b82f6;
}
/* Layout Management Styles */
#sidebar-design .form-control {
@apply w-full px-3 py-2 border border-slate-300 dark:border-slate-600 rounded-lg bg-white dark:bg-slate-700 text-slate-800 dark:text-slate-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-colors;
}
#sidebar-design .form-control:focus {
@apply border-blue-500 ring-2 ring-blue-500;
}
/* Import/Export buttons */
#sidebar-design label[for="layout-import"] {
@apply cursor-pointer hover:bg-blue-50 dark:hover:bg-blue-900/30 transition-colors;
}
/* Property controls styling */
#field-controls .form-group {
@apply mb-4;
}
#field-controls label {
@apply block text-xs font-bold text-slate-500 dark:text-slate-400 uppercase mb-2;
}
#field-controls input[type="number"],
#field-controls select,
#field-controls input[type="color"] {
@apply w-full;
}
/* Layout name input */
#layout-name-input {
@apply font-mono text-sm;
}
/* Success feedback for saved layouts */
@keyframes saved-pulse {
0% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); }
70% { box-shadow: 0 0 0 10px rgba(16, 185, 129, 0); }
100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }
}
.saved-indicator {
animation: saved-pulse 1s;
}
/* Enhanced field selection */
body.design-mode .field.selected::before {
content: '';
position: absolute;
top: -4px;
left: -4px;
right: -4px;
bottom: -4px;
border: 2px solid #10b981;
border-radius: 4px;
pointer-events: none;
animation: selected-glow 1s ease-in-out infinite alternate;
}
@keyframes selected-glow {
from { opacity: 0.5; }
to { opacity: 1; }
}
/* Make the design panel more prominent */
#sidebar-design {
background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
}
[data-theme="dark"] #sidebar-design {
background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
}
/* Usage examples styling */
.usage-example {
@apply bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-4 mb-4;
}
.usage-example h4 {
@apply font-bold text-blue-800 dark:text-blue-200 mb-2;
}
.usage-example code {
@apply bg-slate-100 dark:bg-slate-800 px-2 py-1 rounded text-sm font-mono;
}
/* Make the template view more engaging */
#template-view {
perspective: 1000px;
}
#template-view > div {
transform-style: preserve-3d;
}
/* Add some creative transitions to the sidebar */
#sidebar {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
position: relative;
overflow: hidden;
}
#sidebar::before {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 70%);
animation: rotate 30s linear infinite;
}
@keyframes rotate {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
/* Make the navbar dynamic */
app-navbar::part(container) {
background: linear-gradient(90deg, #ff6b6b, #4ecdc4, #45b7d1, #ff6b6b);
background-size: 300% 100%;
animation: gradientShift 8s ease infinite;
}
@keyframes gradientShift {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}