SPB Git

spb/autoscholar

Public
6.4 KB · 283 lines css
1@import "tailwindcss";23@custom-variant dark (&:where(.dark, .dark *));45@theme {6  --font-serif: var(--font-source-serif), "Iowan Old Style", "Palatino Linotype", Georgia, serif;7  --font-sans: var(--font-inter), ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;8  --font-mono: var(--font-jetbrains), ui-monospace, SFMono-Regular, Menlo, monospace;910  --color-ivory-50: #fdfcf9;11  --color-ivory-100: #f8f5ee;12  --color-ivory-200: #efe9dc;13  --color-stone-100: #e8e4da;14  --color-stone-200: #d6d0c3;15  --color-stone-300: #b9b2a3;16  --color-stone-400: #8f887a;17  --color-stone-500: #6b6557;18  --color-stone-600: #4e4a40;19  --color-ink-700: #35322b;20  --color-ink-800: #24221d;21  --color-ink-900: #171612;22  --color-ink-950: #0f0e0c;23  --color-accent-400: #c0613a;24  --color-accent-500: #a84f2a;25  --color-accent-600: #8d401f;26  --color-accent-700: #6f3217;27  --color-ok-500: #2f6f4e;28  --color-warn-500: #9a6b12;29  --color-danger-500: #a2342f;30  --color-info-500: #2f5a8a;31}3233:root {34  --bg: var(--color-ivory-50);35  --bg-elev: #ffffff;36  --bg-muted: var(--color-ivory-100);37  --fg: var(--color-ink-900);38  --fg-muted: var(--color-stone-500);39  --fg-subtle: var(--color-stone-500);40  --line: var(--color-stone-200);41  --line-strong: var(--color-stone-300);42  --accent: var(--color-accent-500);43  --accent-fg: #ffffff;44  --ring: var(--color-accent-500);45  color-scheme: light;46}4748.dark {49  --bg: var(--color-ink-950);50  --bg-elev: var(--color-ink-900);51  --bg-muted: var(--color-ink-800);52  --fg: var(--color-ivory-100);53  --fg-muted: var(--color-stone-300);54  --fg-subtle: var(--color-stone-400);55  --line: #2e2b25;56  --line-strong: #46423a;57  --accent: #d47a52;58  --accent-fg: var(--color-ink-950);59  --ring: #d47a52;60  color-scheme: dark;61}6263@layer base {64  html {65    background: var(--bg);66    color: var(--fg);67    font-family: var(--font-sans);68    -webkit-font-smoothing: antialiased;69    text-rendering: optimizeLegibility;70    scroll-behavior: smooth;71  }72  @media (prefers-reduced-motion: reduce) {73    html {74      scroll-behavior: auto;75    }76    /* biome-ignore lint/complexity/noImportantStyles: reduced-motion must win over component transitions */77    *,78    *::before,79    *::after {80      animation-duration: 0.001ms;81      transition-duration: 0.001ms;82    }83  }84  body {85    min-height: 100dvh;86  }87  ::selection {88    background: color-mix(in oklab, var(--accent) 25%, transparent);89  }90  :focus-visible {91    outline: 2px solid var(--ring);92    outline-offset: 2px;93    border-radius: 2px;94  }95  h1,96  h2,97  h3,98  .serif {99    font-family: var(--font-serif);100    letter-spacing: -0.01em;101  }102  a {103    text-underline-offset: 3px;104  }105  code,106  kbd,107  pre {108    font-family: var(--font-mono);109  }110}111112@layer components {113  .container-x {114    @apply mx-auto w-full max-w-6xl px-4 sm:px-6 lg:px-8;115  }116  .surface {117    background: var(--bg-elev);118    border: 1px solid var(--line);119    border-radius: 0.75rem;120  }121  .muted {122    color: var(--fg-muted);123  }124  .subtle {125    color: var(--fg-subtle);126  }127  .hairline {128    border-color: var(--line);129  }130  .btn {131    @apply inline-flex items-center justify-center gap-2 rounded-md px-3.5 py-2 text-sm font-medium transition-colors;132    border: 1px solid var(--line-strong);133    background: var(--bg-elev);134    color: var(--fg);135  }136  .btn:hover {137    background: var(--bg-muted);138  }139  .btn:disabled {140    opacity: 0.5;141    cursor: not-allowed;142  }143  .btn-primary {144    background: var(--accent);145    color: var(--accent-fg);146    border-color: transparent;147  }148  .btn-primary:hover {149    background: color-mix(in oklab, var(--accent) 88%, black);150  }151  .btn-danger {152    color: var(--color-danger-500);153    border-color: color-mix(in oklab, var(--color-danger-500) 40%, transparent);154  }155  .btn-sm {156    @apply px-2.5 py-1.5 text-xs;157  }158  .input {159    @apply w-full rounded-md px-3 py-2 text-sm;160    background: var(--bg-elev);161    border: 1px solid var(--line-strong);162    color: var(--fg);163  }164  .input:focus {165    border-color: var(--accent);166  }167  .label {168    @apply block text-xs font-medium uppercase tracking-wide;169    color: var(--fg-muted);170  }171  .eyebrow {172    @apply text-xs font-semibold uppercase tracking-[0.14em];173    color: var(--accent);174  }175  .prose-paper {176    font-family: var(--font-serif);177    font-size: 1.0625rem;178    line-height: 1.7;179  }180  .prose-paper p {181    margin: 0 0 1em;182  }183  .prose-paper h1,184  .prose-paper h2,185  .prose-paper h3 {186    margin: 1.5em 0 0.5em;187    line-height: 1.25;188  }189  .prose-paper h1 {190    font-size: 1.6rem;191  }192  .prose-paper h2 {193    font-size: 1.3rem;194  }195  .prose-paper h3 {196    font-size: 1.1rem;197  }198  .prose-paper ul,199  .prose-paper ol {200    padding-left: 1.4em;201    margin: 0 0 1em;202  }203  .prose-paper li {204    margin: 0.25em 0;205  }206  .prose-paper code {207    font-family: var(--font-mono);208    font-size: 0.85em;209    background: var(--bg-muted);210    padding: 0.1em 0.35em;211    border-radius: 4px;212  }213  .prose-paper pre {214    background: var(--bg-muted);215    padding: 1em;216    border-radius: 8px;217    overflow: auto;218    font-size: 0.85rem;219    line-height: 1.5;220  }221  .prose-paper pre code {222    background: none;223    padding: 0;224  }225  .prose-paper blockquote {226    border-left: 3px solid var(--line-strong);227    padding-left: 1em;228    color: var(--fg-muted);229    margin: 0 0 1em;230  }231  .prose-paper table {232    border-collapse: collapse;233    width: 100%;234    font-family: var(--font-sans);235    font-size: 0.9rem;236    margin: 0 0 1em;237  }238  .prose-paper th,239  .prose-paper td {240    border-bottom: 1px solid var(--line);241    padding: 0.4em 0.6em;242    text-align: left;243  }244  .prose-paper a {245    color: var(--accent);246    text-decoration: underline;247  }248  .table {249    @apply w-full text-sm;250  }251  .table th {252    @apply text-left text-xs font-semibold uppercase tracking-wide py-2 pr-4;253    color: var(--fg-muted);254    border-bottom: 1px solid var(--line-strong);255  }256  .table td {257    @apply py-2 pr-4 align-top;258    border-bottom: 1px solid var(--line);259  }260  .skip-link {261    position: absolute;262    left: -999px;263    top: 0;264    z-index: 100;265    background: var(--accent);266    color: var(--accent-fg);267    padding: 0.5rem 1rem;268    border-radius: 0 0 0.5rem 0;269  }270  .skip-link:focus {271    left: 0;272  }273  .rule {274    height: 1px;275    background: var(--line);276  }277  .badge {278    @apply inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-medium uppercase tracking-wide;279    border: 1px solid var(--line-strong);280    color: var(--fg-muted);281  }282}283
Files · 87b4e55c3b9fbcc2cd191a1e469b33de0a24ccc8
Menu

Theme