Spaces:
Build error
Build error
| :root { | |
| /* GitHub-y colours for now */ | |
| --color-canvas-default: #0d1117; | |
| --color-canvas-subtle: #161b22; | |
| --color-canvas-inset: #010409; | |
| --color-border-default: #30363d; | |
| --color-border-muted: #21262d; | |
| --color-fg-default: #e6edf3; | |
| --color-fg-muted: #7d8590; | |
| --color-fg-subtle: #6e7681; | |
| --color-accent-fg: #58a6ff; | |
| --color-accent-emphasis: #1f6feb; | |
| --color-success-fg: #3fb950; | |
| --color-attention-fg: #d29922; | |
| --color-danger-fg: #f85149; | |
| --color-btn-bg: #21262d; | |
| --color-btn-border: #363b42; | |
| --color-btn-hover-bg: #30363d; | |
| --color-btn-primary-bg: #238636; | |
| --color-btn-primary-hover-bg: #2ea043; | |
| /* Typography */ | |
| --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif; | |
| --font-mono: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace; | |
| /* Spacing */ | |
| --spacing-1: 4px; | |
| --spacing-2: 8px; | |
| --spacing-3: 16px; | |
| --spacing-4: 24px; | |
| --spacing-5: 32px; | |
| --spacing-6: 48px; | |
| /* Border radius */ | |
| --radius-1: 6px; | |
| --radius-2: 12px; | |
| --radius-full: 9999px; | |
| /* Shadows */ | |
| --shadow-sm: 0 1px 0 rgba(27, 31, 35, 0.04); | |
| --shadow-md: 0 3px 6px rgba(0, 0, 0, 0.15); | |
| --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.25); | |
| /* Transitions */ | |
| --transition-fast: 80ms cubic-bezier(0.33, 1, 0.68, 1); | |
| --transition-normal: 150ms cubic-bezier(0.33, 1, 0.68, 1); | |
| } | |
| * { | |
| box-sizing: border-box; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| body { | |
| font-family: var(--font-family); | |
| background-color: var(--color-canvas-default); | |
| color: var(--color-fg-default); | |
| line-height: 1.5; | |
| min-height: 100vh; | |
| -webkit-font-smoothing: antialiased; | |
| } | |
| #root { | |
| min-height: 100vh; | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| /* Utility classes */ | |
| .container { | |
| max-width: 1280px; | |
| margin: 0 auto; | |
| padding: 0 var(--spacing-3); | |
| } | |
| /* Button styles */ | |
| .btn { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: var(--spacing-2); | |
| padding: 5px 16px; | |
| font-size: 14px; | |
| font-weight: 500; | |
| line-height: 20px; | |
| white-space: nowrap; | |
| vertical-align: middle; | |
| cursor: pointer; | |
| user-select: none; | |
| border: 1px solid var(--color-btn-border); | |
| border-radius: var(--radius-1); | |
| background-color: var(--color-btn-bg); | |
| color: var(--color-fg-default); | |
| transition: background-color var(--transition-fast), border-color var(--transition-fast); | |
| } | |
| .btn:hover { | |
| background-color: var(--color-btn-hover-bg); | |
| border-color: var(--color-border-default); | |
| } | |
| .btn:focus { | |
| outline: none; | |
| box-shadow: 0 0 0 3px rgba(88, 166, 255, 0.3); | |
| } | |
| .btn-primary { | |
| background-color: var(--color-btn-primary-bg); | |
| border-color: transparent; | |
| color: #ffffff; | |
| } | |
| .btn-primary:hover { | |
| background-color: var(--color-btn-primary-hover-bg); | |
| } | |
| .btn-lg { | |
| padding: 10px 24px; | |
| font-size: 16px; | |
| line-height: 24px; | |
| } | |
| /* Card styles */ | |
| .card { | |
| background-color: var(--color-canvas-subtle); | |
| border: 1px solid var(--color-border-default); | |
| border-radius: var(--radius-1); | |
| padding: var(--spacing-4); | |
| } | |
| /* Input styles */ | |
| .input { | |
| width: 100%; | |
| padding: 5px 12px; | |
| font-size: 14px; | |
| line-height: 20px; | |
| color: var(--color-fg-default); | |
| background-color: var(--color-canvas-default); | |
| border: 1px solid var(--color-border-default); | |
| border-radius: var(--radius-1); | |
| transition: border-color var(--transition-fast), box-shadow var(--transition-fast); | |
| } | |
| .input:focus { | |
| outline: none; | |
| border-color: var(--color-accent-emphasis); | |
| box-shadow: 0 0 0 3px rgba(31, 111, 235, 0.3); | |
| } | |
| .input::placeholder { | |
| color: var(--color-fg-subtle); | |
| } | |
| /* Textarea styles */ | |
| .textarea { | |
| width: 100%; | |
| min-height: 150px; | |
| padding: 12px; | |
| font-size: 14px; | |
| font-family: var(--font-mono); | |
| line-height: 1.6; | |
| color: var(--color-fg-default); | |
| background-color: var(--color-canvas-default); | |
| border: 1px solid var(--color-border-default); | |
| border-radius: var(--radius-1); | |
| resize: vertical; | |
| transition: border-color var(--transition-fast), box-shadow var(--transition-fast); | |
| } | |
| .textarea:focus { | |
| outline: none; | |
| border-color: var(--color-accent-emphasis); | |
| box-shadow: 0 0 0 3px rgba(31, 111, 235, 0.3); | |
| } | |
| /* File drop zone */ | |
| .dropzone { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| gap: var(--spacing-3); | |
| padding: var(--spacing-6); | |
| border: 2px dashed var(--color-border-default); | |
| border-radius: var(--radius-2); | |
| background-color: var(--color-canvas-inset); | |
| cursor: pointer; | |
| transition: border-color var(--transition-normal), background-color var(--transition-normal); | |
| } | |
| .dropzone:hover, | |
| .dropzone.active { | |
| border-color: var(--color-accent-fg); | |
| background-color: rgba(88, 166, 255, 0.05); | |
| } | |
| .dropzone-icon { | |
| width: 48px; | |
| height: 48px; | |
| color: var(--color-fg-muted); | |
| } | |
| .dropzone-text { | |
| font-size: 16px; | |
| color: var(--color-fg-muted); | |
| text-align: center; | |
| } | |
| .dropzone-hint { | |
| font-size: 12px; | |
| color: var(--color-fg-subtle); | |
| } | |
| /* Tabs */ | |
| .tabs { | |
| display: flex; | |
| border-bottom: 1px solid var(--color-border-default); | |
| margin-bottom: var(--spacing-4); | |
| } | |
| .tab { | |
| padding: var(--spacing-2) var(--spacing-3); | |
| font-size: 14px; | |
| font-weight: 500; | |
| color: var(--color-fg-muted); | |
| background: transparent; | |
| border: none; | |
| border-bottom: 2px solid transparent; | |
| cursor: pointer; | |
| transition: color var(--transition-fast), border-color var(--transition-fast); | |
| margin-bottom: -1px; | |
| } | |
| .tab:hover { | |
| color: var(--color-fg-default); | |
| } | |
| .tab.active { | |
| color: var(--color-fg-default); | |
| border-bottom-color: var(--color-accent-fg); | |
| } | |
| /* Animations */ | |
| @keyframes fadeIn { | |
| from { | |
| opacity: 0; | |
| transform: translateY(8px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| @keyframes pulse { | |
| 0%, 100% { | |
| opacity: 1; | |
| } | |
| 50% { | |
| opacity: 0.5; | |
| } | |
| } | |
| .fade-in { | |
| animation: fadeIn 0.3s ease-out forwards; | |
| } | |
| .pulse { | |
| animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; | |
| } | |
| /* Scrollbar */ | |
| ::-webkit-scrollbar { | |
| width: 8px; | |
| height: 8px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: var(--color-canvas-default); | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: var(--color-border-default); | |
| border-radius: var(--radius-full); | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: var(--color-fg-subtle); | |
| } | |