Spaces:
Running
Running
| /* styles.css – Premium UI design (glassmorphism, dark mode) */ | |
| :root { | |
| --font-primary: 'Inter', sans-serif; | |
| --color-bg-dark: #0a0a0a; | |
| --color-card-bg: rgba(26, 26, 26, 0.8); | |
| --color-accent-gradient: linear-gradient(135deg, #ff7e5f, #feb47b); | |
| --color-accent: #4a90e2; | |
| --color-text-light: #f0f0f0; | |
| --color-text-muted: #bbbbbb; | |
| } | |
| body { | |
| margin: 0; | |
| font-family: var(--font-primary); | |
| background: var(--color-bg-dark); | |
| color: var(--color-text-light); | |
| transition: background 0.3s ease; | |
| } | |
| .dark { | |
| background: var(--color-bg-dark); | |
| } | |
| .light { | |
| background: #f5f5f5; | |
| color: #222; | |
| } | |
| .header { | |
| padding: 1rem 2rem; | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| backdrop-filter: blur(12px); | |
| background: rgba(10,10,10,0.5); | |
| } | |
| h1 { | |
| margin: 0; | |
| font-size: 2rem; | |
| font-weight: 600; | |
| } | |
| .btn { | |
| padding: 0.6rem 1.2rem; | |
| border: none; | |
| border-radius: 0.5rem; | |
| cursor: pointer; | |
| font-weight: 500; | |
| transition: transform 0.2s, box-shadow 0.2s; | |
| } | |
| .btn--primary { | |
| background: var(--color-accent-gradient); | |
| color: #fff; | |
| } | |
| .btn--secondary { | |
| background: var(--color-card-bg); | |
| color: var(--color-text-light); | |
| border: 1px solid var(--color-accent); | |
| } | |
| .btn:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 4px 12px rgba(0,0,0,0.3); | |
| } | |
| .container { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); | |
| gap: 2rem; | |
| padding: 2rem; | |
| } | |
| .card { | |
| background: var(--color-card-bg); | |
| border-radius: 1rem; | |
| padding: 1.5rem; | |
| backdrop-filter: blur(12px); | |
| box-shadow: 0 4px 12px rgba(0,0,0,0.2); | |
| transition: transform 0.2s; | |
| } | |
| .card:hover { | |
| transform: translateY(-4px); | |
| } | |
| .stats { | |
| display: flex; | |
| gap: 1rem; | |
| } | |
| .stat { | |
| flex: 1; | |
| text-align: center; | |
| } | |
| .stat__value { | |
| display: block; | |
| font-size: 1.8rem; | |
| font-weight: 600; | |
| color: var(--color-accent); | |
| } | |
| .stat__label { | |
| font-size: 0.9rem; | |
| color: var(--color-text-muted); | |
| } | |
| .builder__canvas { | |
| min-height: 200px; | |
| border: 2px dashed var(--color-accent); | |
| border-radius: 0.5rem; | |
| padding: 1rem; | |
| margin-bottom: 1rem; | |
| } | |
| .builder__palette { | |
| display: flex; | |
| gap: 0.5rem; | |
| } | |
| .palette-item { | |
| flex: 1; | |
| padding: 0.5rem; | |
| background: var(--color-accent-gradient); | |
| color: #fff; | |
| border: none; | |
| border-radius: 0.4rem; | |
| cursor: grab; | |
| } | |
| .palette-item:active { | |
| cursor: grabbing; | |
| } | |
| /* Accessibility focus */ | |
| button:focus-visible, .palette-item:focus-visible { | |
| outline: 2px solid var(--color-accent); | |
| outline-offset: 2px; | |
| } | |
| /* Skeleton Loaders */ | |
| .skeleton { | |
| background: linear-gradient(90deg, rgba(255, 255, 255, 0.05) 25%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.05) 75%); | |
| background-size: 200% 100%; | |
| animation: loading 1.5s infinite ease-in-out; | |
| border-radius: 4px; | |
| } | |
| @keyframes loading { | |
| 0% { | |
| background-position: 200% 0; | |
| } | |
| 100% { | |
| background-position: -200% 0; | |
| } | |
| } | |
| .skeleton-text { | |
| height: 1rem; | |
| margin-bottom: 0.5rem; | |
| width: 100%; | |
| } | |
| .skeleton-value { | |
| height: 1.8rem; | |
| width: 60%; | |
| margin: 0 auto 0.5rem auto; | |
| } | |
| .skeleton-label { | |
| height: 0.9rem; | |
| width: 80%; | |
| margin: 0 auto; | |
| } | |
| /* Builder Drag & Drop States */ | |
| .builder__canvas { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.5rem; | |
| transition: background 0.2s; | |
| } | |
| .builder__canvas.drag-over { | |
| background: rgba(74, 144, 226, 0.1); | |
| border-color: #ff7e5f; | |
| } | |
| .canvas-block { | |
| background: rgba(255, 255, 255, 0.1); | |
| border: 1px solid var(--color-accent); | |
| padding: 0.8rem; | |
| border-radius: 0.4rem; | |
| color: var(--color-text-light); | |
| cursor: pointer; | |
| animation: fadeIn 0.3s ease-out; | |
| } | |
| .canvas-block:hover { | |
| background: rgba(255, 255, 255, 0.2); | |
| } | |
| .dragging { | |
| opacity: 0.5; | |
| } | |
| @keyframes fadeIn { | |
| from { opacity: 0; transform: translateY(-5px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } |