SPB Git forge

spb/fetcha

Public
11commits 1branches 0releases
1.5 MBsize
maindefault branch
16 days agolast push
TypeScript 97.5% SQL 1.4% Python 0.8%
5.2 KB · 200 lines css
Raw Blame History
1@import "tailwindcss";23@custom-variant dark (&:where(.dark, .dark *));45@theme {6  --font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;7  --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;89  --color-bg: var(--bg);10  --color-bg-subtle: var(--bg-subtle);11  --color-bg-muted: var(--bg-muted);12  --color-bg-elevated: var(--bg-elevated);13  --color-fg: var(--fg);14  --color-fg-muted: var(--fg-muted);15  --color-fg-subtle: var(--fg-subtle);16  --color-border: var(--border);17  --color-border-strong: var(--border-strong);18  --color-accent: var(--accent);19  --color-accent-fg: var(--accent-fg);20  --color-accent-soft: var(--accent-soft);21  --color-success: var(--success);22  --color-success-soft: var(--success-soft);23  --color-warning: var(--warning);24  --color-warning-soft: var(--warning-soft);25  --color-danger: var(--danger);26  --color-danger-soft: var(--danger-soft);27  --color-info: var(--info);28  --color-info-soft: var(--info-soft);29  --color-ring: var(--accent);3031  --radius-sm: 4px;32  --radius-md: 6px;33  --radius-lg: 10px;34  --radius-xl: 14px;3536  --shadow-xs: 0 1px 2px rgb(15 23 42 / 0.05);37  --shadow-sm: 0 1px 3px rgb(15 23 42 / 0.08), 0 1px 2px rgb(15 23 42 / 0.04);38  --shadow-md: 0 4px 12px rgb(15 23 42 / 0.08), 0 1px 3px rgb(15 23 42 / 0.05);39  --shadow-lg: 0 12px 32px rgb(15 23 42 / 0.12), 0 2px 6px rgb(15 23 42 / 0.06);4041  --animate-fade-in: fade-in 0.25s ease-out both;42  --animate-fade-up: fade-up 0.4s cubic-bezier(0.16, 1, 0.3, 1) both;43  --animate-pulse-soft: pulse-soft 2s ease-in-out infinite;44  --animate-flow: flow 3s linear infinite;4546  @keyframes fade-in {47    from { opacity: 0; }48    to { opacity: 1; }49  }50  @keyframes fade-up {51    from { opacity: 0; transform: translateY(8px); }52    to { opacity: 1; transform: translateY(0); }53  }54  @keyframes pulse-soft {55    0%, 100% { opacity: 1; }56    50% { opacity: 0.45; }57  }58  @keyframes flow {59    from { stroke-dashoffset: 24; }60    to { stroke-dashoffset: 0; }61  }62}6364:root {65  color-scheme: light;66  --bg: #ffffff;67  --bg-subtle: #f7f8fa;68  --bg-muted: #eef0f3;69  --bg-elevated: #ffffff;70  --fg: #0b0f19;71  --fg-muted: #4b5563;72  --fg-subtle: #8a93a3;73  --border: #e4e7ec;74  --border-strong: #c9cfd8;75  --accent: #1f5eff;76  --accent-fg: #ffffff;77  --accent-soft: #e8efff;78  --success: #158a4c;79  --success-soft: #e3f5ea;80  --warning: #b7791f;81  --warning-soft: #fbf1dc;82  --danger: #c93b3b;83  --danger-soft: #fbe6e6;84  --info: #2461c7;85  --info-soft: #e6eefb;86}8788.dark {89  color-scheme: dark;90  --bg: #0a0d14;91  --bg-subtle: #0f131c;92  --bg-muted: #161b26;93  --bg-elevated: #121721;94  --fg: #eef1f6;95  --fg-muted: #a6afbf;96  --fg-subtle: #6b7484;97  --border: #1f2633;98  --border-strong: #2e3746;99  --accent: #5b8cff;100  --accent-fg: #061029;101  --accent-soft: #14213f;102  --success: #3ccb7f;103  --success-soft: #10291c;104  --warning: #e0a94a;105  --warning-soft: #2b2312;106  --danger: #f06b6b;107  --danger-soft: #331717;108  --info: #6fa2ff;109  --info-soft: #14213f;110}111112@layer base {113  * {114    border-color: var(--border);115  }116  html {117    -webkit-text-size-adjust: 100%;118    text-rendering: optimizeLegibility;119    font-feature-settings: "cv11", "ss01", "calt";120  }121  body {122    @apply bg-bg text-fg font-sans antialiased;123    font-size: 15px;124    line-height: 1.55;125  }126  ::selection {127    background: color-mix(in oklab, var(--accent) 25%, transparent);128  }129  :focus-visible {130    outline: 2px solid var(--accent);131    outline-offset: 2px;132    border-radius: 4px;133  }134  h1, h2, h3, h4 {135    letter-spacing: -0.02em;136    text-wrap: balance;137  }138  code, kbd, pre, samp {139    @apply font-mono;140    font-size: 0.92em;141  }142  input, textarea, select, button {143    font: inherit;144  }145  input::placeholder, textarea::placeholder {146    color: var(--fg-subtle);147  }148  @media (prefers-reduced-motion: reduce) {149    *, *::before, *::after {150      animation-duration: 0.001ms !important;151      animation-iteration-count: 1 !important;152      transition-duration: 0.001ms !important;153      scroll-behavior: auto !important;154    }155  }156}157158@layer utilities {159  .container-page {160    @apply mx-auto w-full max-w-6xl px-5 sm:px-8;161  }162  .text-balance {163    text-wrap: balance;164  }165  .tabular {166    font-variant-numeric: tabular-nums;167  }168  .grid-bg {169    background-image: linear-gradient(to right, color-mix(in oklab, var(--border) 60%, transparent) 1px, transparent 1px),170      linear-gradient(to bottom, color-mix(in oklab, var(--border) 60%, transparent) 1px, transparent 1px);171    background-size: 32px 32px;172    mask-image: radial-gradient(ellipse at center, black 40%, transparent 80%);173  }174  .scrollbar-thin {175    scrollbar-width: thin;176    scrollbar-color: var(--border-strong) transparent;177  }178  .no-scrollbar::-webkit-scrollbar {179    display: none;180  }181  .no-scrollbar {182    -ms-overflow-style: none;183    scrollbar-width: none;184  }185}186187/* Syntax highlighting (lightweight, used by CodeBlock) */188.tok-k { color: #7c3aed; }189.tok-s { color: #0f766e; }190.tok-n { color: #b45309; }191.tok-c { color: var(--fg-subtle); font-style: italic; }192.tok-p { color: var(--fg-muted); }193.tok-t { color: #be185d; }194.tok-a { color: #1d4ed8; }195.dark .tok-k { color: #c4b5fd; }196.dark .tok-s { color: #6ee7b7; }197.dark .tok-n { color: #fcd34d; }198.dark .tok-t { color: #f9a8d4; }199.dark .tok-a { color: #93c5fd; }200