index.css

  1/* highlight.js theme must be imported before tailwind */
  2@import "highlight.js/styles/github.css";
  3
  4@import "tailwindcss";
  5@import "tw-animate-css";
  6@plugin "@tailwindcss/typography";
  7
  8@custom-variant dark (&:where(.dark, .dark *));
  9
 10:root {
 11  /* Blue-accented light palette. Primary is GitHub-style indigo-blue so
 12     action buttons are clearly coloured, not a flat dark grey. */
 13  --background: hsl(0 0% 100%);
 14  --foreground: hsl(222 20% 18%);
 15  --card: hsl(0 0% 100%);
 16  --card-foreground: hsl(222 20% 18%);
 17  --popover: hsl(0 0% 100%);
 18  --popover-foreground: hsl(222 20% 18%);
 19  --primary: hsl(212 88% 44%);
 20  --primary-foreground: hsl(0 0% 100%);
 21  --secondary: hsl(214 32% 95%);
 22  --secondary-foreground: hsl(222 20% 18%);
 23  --muted: hsl(214 32% 96%);
 24  --muted-foreground: hsl(220 9% 46%);
 25  --accent: hsl(214 88% 95%);
 26  --accent-foreground: hsl(212 88% 35%);
 27  --destructive: hsl(0 84.2% 60.2%);
 28  --destructive-foreground: hsl(0 0% 98%);
 29  --border: hsl(214 32% 88%);
 30  --input: hsl(214 32% 88%);
 31  --ring: hsl(212 88% 44%);
 32  --radius: 0.5rem;
 33}
 34
 35.dark {
 36  /* Softer dark — background lifted slightly, text dimmed to reduce glare. */
 37  --background: hsl(220 13% 15%);
 38  --foreground: hsl(220 10% 72%);
 39  --card: hsl(220 13% 18%);
 40  --card-foreground: hsl(220 10% 72%);
 41  --popover: hsl(220 13% 18%);
 42  --popover-foreground: hsl(220 10% 72%);
 43  --primary: hsl(213 88% 62%);
 44  --primary-foreground: hsl(220 20% 10%);
 45  --secondary: hsl(220 12% 24%);
 46  --secondary-foreground: hsl(220 10% 72%);
 47  --muted: hsl(220 12% 24%);
 48  --muted-foreground: hsl(220 8% 52%);
 49  --accent: hsl(220 20% 28%);
 50  --accent-foreground: hsl(213 88% 72%);
 51  --destructive: hsl(0 65% 50%);
 52  --destructive-foreground: hsl(0 0% 98%);
 53  --border: hsl(220 12% 26%);
 54  --input: hsl(220 12% 26%);
 55  --ring: hsl(213 88% 62%);
 56}
 57
 58@theme inline {
 59  --color-background: var(--background);
 60  --color-foreground: var(--foreground);
 61  --color-card: var(--card);
 62  --color-card-foreground: var(--card-foreground);
 63  --color-popover: var(--popover);
 64  --color-popover-foreground: var(--popover-foreground);
 65  --color-primary: var(--primary);
 66  --color-primary-foreground: var(--primary-foreground);
 67  --color-secondary: var(--secondary);
 68  --color-secondary-foreground: var(--secondary-foreground);
 69  --color-muted: var(--muted);
 70  --color-muted-foreground: var(--muted-foreground);
 71  --color-accent: var(--accent);
 72  --color-accent-foreground: var(--accent-foreground);
 73  --color-destructive: var(--destructive);
 74  --color-destructive-foreground: var(--destructive-foreground);
 75  --color-border: var(--border);
 76  --color-input: var(--input);
 77  --color-ring: var(--ring);
 78
 79  --radius-lg: var(--radius);
 80  --radius-md: calc(var(--radius) - 2px);
 81  --radius-sm: calc(var(--radius) - 4px);
 82
 83  --font-sans: ui-sans-serif, system-ui, sans-serif;
 84  --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;
 85
 86  --animate-accordion-down: accordion-down 0.2s ease-out;
 87  --animate-accordion-up: accordion-up 0.2s ease-out;
 88}
 89
 90@keyframes accordion-down {
 91  from {
 92    height: 0;
 93  }
 94  to {
 95    height: var(--radix-accordion-content-height);
 96  }
 97}
 98
 99@keyframes accordion-up {
100  from {
101    height: var(--radix-accordion-content-height);
102  }
103  to {
104    height: 0;
105  }
106}
107
108* {
109  border-color: var(--border);
110}
111
112body {
113  background-color: var(--background);
114  color: var(--foreground);
115}
116
117/* ── Dark-mode overrides for highlight.js (imported above) ──────────────── */
118.dark .hljs {
119  background: hsl(220, 13%, 16%);
120  color: hsl(220, 10%, 85%);
121}
122.dark .hljs-keyword,
123.dark .hljs-selector-tag,
124.dark .hljs-built_in {
125  color: #ff7b72;
126}
127.dark .hljs-string,
128.dark .hljs-attr {
129  color: #a5d6ff;
130}
131.dark .hljs-comment {
132  color: hsl(220, 8%, 50%);
133}
134.dark .hljs-number,
135.dark .hljs-literal {
136  color: #79c0ff;
137}
138.dark .hljs-title,
139.dark .hljs-name {
140  color: #d2a8ff;
141}
142.dark .hljs-type {
143  color: #ffa657;
144}