Download static/app.css from build-small-hackathon/TinyNarrator: direct link, hf CLI and curl.
- Browser
- Download file 16.1 kB
-
https://huggingface.co/spaces/build-small-hackathon/TinyNarrator/resolve/main/static/app.css
- Command line
-
hf download hf://spaces/build-small-hackathon/TinyNarrator/static/app.css
-
curl -L -o app.css https://huggingface.co/spaces/build-small-hackathon/TinyNarrator/resolve/main/static/app.css
16.1 kB
| @import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=JetBrains+Mono:wght@400;600;700&family=Inter:wght@400;500;600;700&display=swap'); | |
| :root { | |
| color-scheme: light; | |
| --ink: #1a1a1a; | |
| --ink-soft: #3a3632; | |
| --muted: #8a8178; | |
| --paper: #f5f0e8; | |
| --paper-deep: #ebe4d8; | |
| --surface: #faf7f2; | |
| --line: #d4cbbf; | |
| --line-faint: #e8e1d5; | |
| --accent: #c4421a; | |
| --accent-hover: #a8350f; | |
| --accent-glow: rgba(196, 66, 26, 0.08); | |
| --teal: #2a7a6e; | |
| --teal-soft: rgba(42, 122, 110, 0.08); | |
| --focus: #c4421a; | |
| --shadow-sm: 0 1px 3px rgba(26, 26, 26, 0.06); | |
| --shadow-md: 0 8px 24px rgba(26, 26, 26, 0.08); | |
| --serif: 'DM Serif Display', Georgia, 'Times New Roman', serif; | |
| --sans: 'Inter', ui-sans-serif, system-ui, sans-serif; | |
| --mono: 'JetBrains Mono', 'Cascadia Code', 'Fira Code', monospace; | |
| } | |
| * { box-sizing: border-box; } | |
| html { scroll-behavior: smooth; } | |
| body { | |
| margin: 0; | |
| background: var(--paper); | |
| color: var(--ink); | |
| font-family: var(--sans); | |
| line-height: 1.6; | |
| -webkit-font-smoothing: antialiased; | |
| } | |
| button, input, select, output { font: inherit; } | |
| button { | |
| border: 1px solid var(--line); | |
| background: var(--surface); | |
| color: var(--ink); | |
| cursor: pointer; | |
| transition: border-color 0.15s, background 0.15s, color 0.15s; | |
| } | |
| button:hover { border-color: var(--accent); } | |
| button:focus-visible, | |
| a:focus-visible, | |
| input:focus-visible, | |
| select:focus-visible { | |
| outline: 2px solid var(--focus); | |
| outline-offset: 2px; | |
| } | |
| ::selection { | |
| background: var(--accent); | |
| color: #fff; | |
| } | |
| /* βββ TOPBAR βββ */ | |
| .topbar { | |
| position: sticky; | |
| top: 0; | |
| z-index: 20; | |
| display: grid; | |
| grid-template-columns: max-content 1fr max-content; | |
| align-items: center; | |
| gap: 24px; | |
| min-height: 64px; | |
| padding: 10px clamp(20px, 5vw, 56px); | |
| border-bottom: 2px solid var(--ink); | |
| background: var(--paper); | |
| } | |
| .brand { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 12px; | |
| color: var(--ink); | |
| font-weight: 700; | |
| text-decoration: none; | |
| letter-spacing: -0.02em; | |
| } | |
| .brand-mark { | |
| display: grid; | |
| width: 34px; | |
| height: 34px; | |
| place-items: center; | |
| background: var(--accent); | |
| color: #fff; | |
| font-family: var(--mono); | |
| font-size: 0.72rem; | |
| font-weight: 700; | |
| letter-spacing: 0.05em; | |
| } | |
| .topnav { | |
| display: flex; | |
| justify-content: center; | |
| gap: clamp(14px, 3vw, 32px); | |
| } | |
| .topnav a { | |
| position: relative; | |
| color: var(--muted); | |
| font-family: var(--mono); | |
| font-size: 0.75rem; | |
| font-weight: 600; | |
| text-decoration: none; | |
| text-transform: uppercase; | |
| letter-spacing: 0.1em; | |
| transition: color 0.15s; | |
| } | |
| .topnav a::after { | |
| content: ''; | |
| position: absolute; | |
| bottom: -4px; | |
| left: 0; | |
| width: 0; | |
| height: 2px; | |
| background: var(--accent); | |
| transition: width 0.2s; | |
| } | |
| .topnav a:hover { color: var(--ink); } | |
| .topnav a:hover::after { width: 100%; } | |
| .reader-toggle { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| min-width: 180px; | |
| min-height: 40px; | |
| gap: 10px; | |
| border: 2px solid var(--ink); | |
| padding: 0 18px; | |
| font-family: var(--mono); | |
| font-size: 0.78rem; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.04em; | |
| } | |
| .toggle-dot { | |
| width: 10px; | |
| height: 10px; | |
| border-radius: 999px; | |
| background: var(--muted); | |
| transition: background 0.2s; | |
| } | |
| .reader-toggle[aria-pressed="true"] { | |
| background: var(--ink); | |
| color: var(--paper); | |
| border-color: var(--ink); | |
| } | |
| .reader-toggle[aria-pressed="true"] .toggle-dot { | |
| background: #5eea8d; | |
| box-shadow: 0 0 8px rgba(94, 234, 141, 0.5); | |
| } | |
| /* βββ MAIN GRID βββ */ | |
| .article-shell { | |
| display: grid; | |
| grid-template-columns: minmax(0, 740px) minmax(280px, 360px); | |
| gap: clamp(32px, 6vw, 80px); | |
| width: min(1200px, calc(100% - 40px)); | |
| margin: 56px auto 140px; | |
| align-items: start; | |
| } | |
| .article { min-width: 0; } | |
| .generator-shell { | |
| display: grid; | |
| grid-template-columns: minmax(280px, 420px) minmax(0, 680px); | |
| gap: clamp(32px, 6vw, 72px); | |
| width: min(1180px, calc(100% - 40px)); | |
| margin: 56px auto 120px; | |
| align-items: start; | |
| } | |
| .generator-controls { | |
| position: sticky; | |
| top: 88px; | |
| } | |
| .generator-form { | |
| display: grid; | |
| gap: 10px; | |
| margin-top: 28px; | |
| } | |
| .generator-form label { | |
| color: var(--muted); | |
| font-family: var(--mono); | |
| font-size: 0.72rem; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.08em; | |
| } | |
| .generator-input-row { | |
| display: grid; | |
| grid-template-columns: 1fr max-content; | |
| gap: 8px; | |
| } | |
| .generator-input-row input { | |
| min-height: 44px; | |
| border: 1px solid var(--line); | |
| background: var(--surface); | |
| color: var(--ink); | |
| padding: 0 12px; | |
| } | |
| .generator-input-row button, | |
| .route-action { | |
| min-height: 44px; | |
| border: 2px solid var(--ink); | |
| padding: 0 16px; | |
| font-family: var(--mono); | |
| font-size: 0.76rem; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.06em; | |
| } | |
| .route-action { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| color: var(--ink); | |
| text-decoration: none; | |
| background: var(--surface); | |
| } | |
| .generated-article { | |
| min-width: 0; | |
| } | |
| .generated-sections { | |
| display: grid; | |
| gap: 8px; | |
| } | |
| /* βββ ARTICLE TYPOGRAPHY βββ */ | |
| .kicker { | |
| display: inline-block; | |
| margin: 0 0 20px; | |
| padding: 4px 12px; | |
| background: var(--accent); | |
| color: #fff; | |
| font-family: var(--mono); | |
| font-size: 0.7rem; | |
| font-weight: 700; | |
| letter-spacing: 0.1em; | |
| text-transform: uppercase; | |
| } | |
| h1, h2 { line-height: 1.05; letter-spacing: -0.03em; } | |
| h1 { | |
| max-width: 13ch; | |
| margin: 0; | |
| font-family: var(--serif); | |
| font-size: clamp(3.2rem, 9vw, 6.2rem); | |
| font-weight: 400; | |
| font-style: normal; | |
| } | |
| h2 { | |
| position: relative; | |
| margin: 80px 0 20px; | |
| padding-left: 20px; | |
| font-family: var(--serif); | |
| font-size: clamp(1.8rem, 3.6vw, 2.8rem); | |
| font-weight: 400; | |
| } | |
| h2::before { | |
| content: ''; | |
| position: absolute; | |
| left: 0; | |
| top: 6px; | |
| bottom: 6px; | |
| width: 4px; | |
| background: var(--accent); | |
| } | |
| .dek { | |
| max-width: 620px; | |
| margin: 28px 0 40px; | |
| color: var(--ink-soft); | |
| font-size: clamp(1.15rem, 2.2vw, 1.4rem); | |
| line-height: 1.55; | |
| } | |
| p, blockquote, figcaption { font-size: 1.02rem; } | |
| blockquote { | |
| position: relative; | |
| margin: 40px 0; | |
| padding: 24px 28px; | |
| background: var(--paper-deep); | |
| border-left: none; | |
| font-family: var(--serif); | |
| font-size: 1.3rem; | |
| font-style: italic; | |
| color: var(--ink-soft); | |
| line-height: 1.5; | |
| } | |
| blockquote::before { | |
| content: ''; | |
| position: absolute; | |
| left: 0; | |
| top: 0; | |
| bottom: 0; | |
| width: 4px; | |
| background: var(--accent); | |
| } | |
| figure { margin: 0; } | |
| img { | |
| display: block; | |
| max-width: 100%; | |
| } | |
| .hero-figure, | |
| .inline-figure { | |
| overflow: hidden; | |
| border: 1px solid var(--line); | |
| background: var(--surface); | |
| } | |
| .hero-figure img, | |
| .inline-figure img { | |
| width: 100%; | |
| aspect-ratio: 16 / 9; | |
| object-fit: cover; | |
| filter: contrast(1.02) saturate(0.95); | |
| } | |
| #generatedThumbnail { | |
| aspect-ratio: 1 / 1; | |
| object-fit: contain; | |
| } | |
| figcaption { | |
| padding: 12px 16px 14px; | |
| color: var(--muted); | |
| font-family: var(--mono); | |
| font-size: 0.76rem; | |
| letter-spacing: 0.01em; | |
| line-height: 1.5; | |
| border-top: 1px solid var(--line-faint); | |
| } | |
| .inline-figure { margin-top: 28px; } | |
| /* βββ STATUS PANEL / SIDEBAR βββ */ | |
| .status-panel { | |
| position: sticky; | |
| top: 88px; | |
| border: 1px solid var(--line); | |
| border-top: 3px solid var(--ink); | |
| background: var(--surface); | |
| padding: 24px 20px; | |
| } | |
| .status-panel h2 { | |
| margin: 0 0 20px; | |
| padding: 0; | |
| font-family: var(--mono); | |
| font-size: 0.72rem; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.12em; | |
| color: var(--muted); | |
| } | |
| .status-panel h2::before { display: none; } | |
| .status-panel h3 { | |
| margin: 0; | |
| font-family: var(--mono); | |
| font-size: 0.7rem; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.1em; | |
| color: var(--ink-soft); | |
| } | |
| dl { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 14px 16px; | |
| margin: 0; | |
| padding-bottom: 20px; | |
| border-bottom: 1px solid var(--line-faint); | |
| } | |
| dt { | |
| color: var(--muted); | |
| font-family: var(--mono); | |
| font-size: 0.65rem; | |
| font-weight: 600; | |
| text-transform: uppercase; | |
| letter-spacing: 0.08em; | |
| } | |
| dd { | |
| margin: 3px 0 0; | |
| font-family: var(--mono); | |
| font-size: 0.82rem; | |
| font-weight: 600; | |
| color: var(--ink); | |
| word-break: break-word; | |
| } | |
| .live-narration { | |
| margin-top: 20px; | |
| padding: 14px 16px; | |
| border: 1px solid var(--line); | |
| background: var(--paper); | |
| font-family: var(--mono); | |
| font-size: 0.82rem; | |
| line-height: 1.5; | |
| } | |
| /* βββ PANEL SECTIONS βββ */ | |
| .history-header, | |
| .award-header, | |
| .demo-script-header, | |
| .submission-header, | |
| .budget-header, | |
| .runtime-header, | |
| .image-receipt-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 8px; | |
| margin-top: 24px; | |
| padding-bottom: 8px; | |
| border-bottom: 1px solid var(--line-faint); | |
| } | |
| .history-header button, | |
| .submission-header button { | |
| min-height: 28px; | |
| border: 1px solid var(--line); | |
| padding: 0 10px; | |
| font-family: var(--mono); | |
| font-size: 0.68rem; | |
| font-weight: 600; | |
| text-transform: uppercase; | |
| letter-spacing: 0.06em; | |
| color: var(--muted); | |
| background: transparent; | |
| } | |
| .history-header button:hover, | |
| .submission-header button:hover { | |
| color: var(--accent); | |
| border-color: var(--accent); | |
| } | |
| .budget-header span, | |
| .runtime-header span, | |
| .image-receipt-header span, | |
| .submission-header span, | |
| .demo-script-header span { | |
| font-family: var(--mono); | |
| font-size: 0.68rem; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.06em; | |
| color: var(--teal); | |
| } | |
| /* βββ TRANSCRIPT βββ */ | |
| .transcript-log { | |
| display: grid; | |
| gap: 8px; | |
| max-height: 320px; | |
| margin: 10px 0 0; | |
| padding: 0; | |
| overflow: auto; | |
| list-style: none; | |
| } | |
| .transcript-log li { | |
| border: 1px solid var(--line-faint); | |
| padding: 10px 12px; | |
| background: var(--paper); | |
| } | |
| .transcript-meta { | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 8px; | |
| color: var(--muted); | |
| font-family: var(--mono); | |
| font-size: 0.66rem; | |
| font-weight: 600; | |
| text-transform: uppercase; | |
| letter-spacing: 0.06em; | |
| } | |
| .transcript-text { | |
| margin: 6px 0 0; | |
| font-size: 0.88rem; | |
| line-height: 1.5; | |
| } | |
| /* βββ AWARD / DEMO / BULLET LISTS βββ */ | |
| .award-list, | |
| .demo-script-list, | |
| .demo-api-check-list, | |
| .budget-list, | |
| .runtime-list, | |
| .image-receipt-list { | |
| display: grid; | |
| gap: 8px; | |
| margin: 10px 0 0; | |
| padding: 0; | |
| list-style: none; | |
| } | |
| .demo-script-list { padding-left: 0; } | |
| .award-list li, | |
| .demo-script-list li, | |
| .budget-list li, | |
| .runtime-list li, | |
| .image-receipt-list li { | |
| border: 1px solid var(--line-faint); | |
| padding: 10px 12px; | |
| background: var(--paper); | |
| } | |
| .demo-api-check-list li { | |
| display: grid; | |
| grid-template-columns: auto 1fr; | |
| gap: 4px 8px; | |
| border: 1px solid var(--line-faint); | |
| padding: 10px 12px; | |
| background: var(--paper); | |
| } | |
| .demo-script-title, | |
| .budget-row, | |
| .runtime-row, | |
| .image-receipt-row, | |
| .award-title { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 8px; | |
| font-family: var(--mono); | |
| font-size: 0.76rem; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.04em; | |
| } | |
| .budget-pill, | |
| .runtime-pill, | |
| .image-receipt-pill { | |
| font-family: var(--mono); | |
| font-size: 0.66rem; | |
| font-weight: 700; | |
| padding: 2px 8px; | |
| letter-spacing: 0.04em; | |
| } | |
| .budget-pill { | |
| background: var(--accent-glow); | |
| color: var(--accent); | |
| border: 1px solid rgba(196, 66, 26, 0.2); | |
| } | |
| .runtime-pill { | |
| background: var(--teal-soft); | |
| color: var(--teal); | |
| border: 1px solid rgba(42, 122, 110, 0.2); | |
| } | |
| .status-pill { | |
| font-family: var(--mono); | |
| font-size: 0.66rem; | |
| font-weight: 700; | |
| padding: 1px 6px; | |
| letter-spacing: 0.04em; | |
| text-transform: uppercase; | |
| } | |
| .status-online { | |
| background: rgba(34, 140, 60, 0.12); | |
| color: #1d7a34; | |
| border: 1px solid rgba(34, 140, 60, 0.25); | |
| } | |
| .status-fallback { | |
| background: rgba(160, 140, 60, 0.1); | |
| color: #7a6a20; | |
| border: 1px solid rgba(160, 140, 60, 0.25); | |
| } | |
| .status-offline { | |
| background: rgba(180, 50, 50, 0.1); | |
| color: #a03030; | |
| border: 1px solid rgba(180, 50, 50, 0.25); | |
| } | |
| .image-receipt-pill { | |
| background: rgba(180, 150, 60, 0.1); | |
| color: #7a6520; | |
| border: 1px solid rgba(180, 150, 60, 0.2); | |
| } | |
| .award-status { | |
| font-family: var(--mono); | |
| font-size: 0.66rem; | |
| font-weight: 700; | |
| padding: 2px 8px; | |
| background: var(--teal-soft); | |
| color: var(--teal); | |
| border: 1px solid rgba(42, 122, 110, 0.2); | |
| } | |
| .demo-script-title span:last-child { | |
| font-family: var(--mono); | |
| font-size: 0.66rem; | |
| font-weight: 700; | |
| padding: 2px 8px; | |
| background: var(--teal-soft); | |
| color: var(--teal); | |
| border: 1px solid rgba(42, 122, 110, 0.2); | |
| } | |
| .demo-script-list p, | |
| .budget-list p, | |
| .runtime-list p, | |
| .image-receipt-list p { | |
| margin: 6px 0 0; | |
| color: var(--muted); | |
| font-family: var(--mono); | |
| font-size: 0.74rem; | |
| line-height: 1.5; | |
| overflow-wrap: anywhere; | |
| } | |
| .award-evidence { | |
| margin: 6px 0 0; | |
| color: var(--muted); | |
| font-size: 0.84rem; | |
| line-height: 1.5; | |
| } | |
| .demo-api-check-list span { | |
| font-family: var(--mono); | |
| color: var(--accent); | |
| font-size: 0.7rem; | |
| font-weight: 700; | |
| } | |
| .demo-api-check-list code { | |
| font-family: var(--mono); | |
| font-size: 0.74rem; | |
| overflow-wrap: anywhere; | |
| } | |
| .demo-api-check-list p { | |
| grid-column: 1 / -1; | |
| margin: 0; | |
| color: var(--muted); | |
| font-family: var(--mono); | |
| font-size: 0.74rem; | |
| } | |
| .demo-api-command { | |
| grid-column: 1 / -1; | |
| display: block; | |
| padding: 8px 10px; | |
| background: var(--ink); | |
| color: #c8e6c9; | |
| font-family: var(--mono); | |
| font-size: 0.72rem; | |
| white-space: normal; | |
| line-height: 1.5; | |
| } | |
| /* βββ READER BAR βββ */ | |
| .reader-bar { | |
| position: fixed; | |
| bottom: clamp(16px, 3vw, 36px); | |
| left: 50%; | |
| transform: translateX(-50%); | |
| z-index: 30; | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 8px; | |
| box-sizing: border-box; | |
| width: min(1200px, calc(100% - 32px)); | |
| min-height: 64px; | |
| padding: 10px 16px; | |
| border: 2px solid var(--ink); | |
| background: var(--surface); | |
| box-shadow: 4px 4px 0 var(--ink); | |
| } | |
| .reader-bar[hidden] { display: none; } | |
| .reader-bar button { | |
| min-width: 80px; | |
| min-height: 40px; | |
| border: 1px solid var(--line); | |
| font-family: var(--mono); | |
| font-size: 0.76rem; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.06em; | |
| } | |
| .reader-bar button:hover { | |
| background: var(--ink); | |
| color: var(--paper); | |
| border-color: var(--ink); | |
| } | |
| .reader-bar label { | |
| display: inline-flex; | |
| align-items: center; | |
| flex: 0 1 auto; | |
| gap: 8px; | |
| min-width: 0; | |
| color: var(--muted); | |
| font-family: var(--mono); | |
| font-size: 0.76rem; | |
| font-weight: 600; | |
| text-transform: uppercase; | |
| letter-spacing: 0.04em; | |
| } | |
| .reader-bar select { | |
| min-height: 40px; | |
| border: 1px solid var(--line); | |
| background: var(--surface); | |
| color: var(--ink); | |
| font-family: var(--mono); | |
| font-size: 0.76rem; | |
| padding: 0 10px; | |
| } | |
| .reader-bar input[type="range"] { | |
| width: clamp(96px, 12vw, 160px); | |
| min-width: 80px; | |
| } | |
| .reader-bar output { | |
| min-width: 48px; | |
| font-family: var(--mono); | |
| font-weight: 700; | |
| font-size: 0.82rem; | |
| color: var(--ink); | |
| } | |
| /* βββ SPEAKABLE / READER ACTIVE βββ */ | |
| .speakable { | |
| scroll-margin: 100px; | |
| transition: background 0.2s, outline-color 0.2s; | |
| } | |
| .reader-active { | |
| outline: 3px solid var(--accent); | |
| outline-offset: 6px; | |
| background: var(--accent-glow); | |
| } | |
| /* βββ RESPONSIVE βββ */ | |
| @media (max-width: 900px) { | |
| .topbar { | |
| grid-template-columns: 1fr; | |
| gap: 10px; | |
| } | |
| .topnav { | |
| justify-content: flex-start; | |
| overflow-x: auto; | |
| } | |
| .reader-toggle { width: 100%; } | |
| .article-shell { | |
| grid-template-columns: 1fr; | |
| } | |
| .generator-shell { | |
| grid-template-columns: 1fr; | |
| } | |
| .generator-controls { | |
| position: static; | |
| } | |
| .generator-input-row { | |
| grid-template-columns: 1fr; | |
| } | |
| h1 { | |
| max-width: 14ch; | |
| font-size: clamp(2.8rem, 15vw, 4.5rem); | |
| } | |
| .status-panel { | |
| position: static; | |
| border-top: 3px solid var(--ink); | |
| } | |
| .reader-bar { | |
| flex-wrap: wrap; | |
| justify-content: flex-start; | |
| box-shadow: 3px 3px 0 var(--ink); | |
| width: calc(100% - 32px); | |
| } | |
| .reader-bar button { | |
| min-width: 70px; | |
| flex: 1 1 28%; | |
| } | |
| } | |