create-swift-rust 0.7.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/index.js +1030 -39
  2. package/dist/index.js.map +1 -1
  3. package/package.json +1 -1
  4. package/templates/default/src/app/about/page.tsx +6 -6
  5. package/templates/default/src/app/about/team/page.tsx +6 -6
  6. package/templates/default/src/app/blog/[slug]/page.tsx +24 -16
  7. package/templates/default/src/app/blog/page.tsx +23 -19
  8. package/templates/default/src/app/blog/tag/[tag]/page.tsx +8 -8
  9. package/templates/default/src/app/contact/page.tsx +8 -8
  10. package/templates/default/src/app/dashboard/analytics/page.tsx +12 -12
  11. package/templates/default/src/app/dashboard/loading.tsx +8 -8
  12. package/templates/default/src/app/dashboard/page.tsx +36 -27
  13. package/templates/default/src/app/dashboard/posts/[id]/not-found.tsx +2 -2
  14. package/templates/default/src/app/dashboard/posts/[id]/page.tsx +5 -5
  15. package/templates/default/src/app/dashboard/posts/new/page.tsx +15 -10
  16. package/templates/default/src/app/dashboard/posts/page.tsx +7 -7
  17. package/templates/default/src/app/dashboard/settings/page.tsx +39 -17
  18. package/templates/default/src/app/error.tsx +2 -2
  19. package/templates/default/src/app/fonts/page.tsx +39 -39
  20. package/templates/default/src/app/images/page.tsx +53 -15
  21. package/templates/default/src/app/layout.tsx +1 -1
  22. package/templates/default/src/app/loading.tsx +5 -5
  23. package/templates/default/src/app/not-found.tsx +2 -2
  24. package/templates/default/src/app/page.tsx +114 -72
  25. package/templates/default/src/app/videos/page.tsx +22 -22
  26. package/templates/default/src/components/font-studio.tsx +37 -37
  27. package/templates/default/src/components/footer.tsx +5 -5
  28. package/templates/default/src/components/logo.tsx +2 -2
  29. package/templates/default/src/components/nav.tsx +28 -10
  30. package/templates/default/src/components/sidebar.tsx +10 -10
@@ -129,26 +129,26 @@ export function FontStudio() {
129
129
  const activeImportName = customFont.trim() ? toImportName(customFont) : entry.importName;
130
130
 
131
131
  return (
132
- <div className="rounded-2xl border border-[var(--color-border)] bg-[var(--color-surface)] overflow-hidden shadow-sm">
133
- <div className="flex items-center justify-between border-b border-[var(--color-border)] bg-[var(--color-surface-2)] px-6 py-3">
132
+ <div className="rounded-2xl border border-border bg-surface overflow-hidden shadow-sm">
133
+ <div className="flex items-center justify-between border-b border-border bg-surface-2 px-6 py-3">
134
134
  <div className="flex items-center gap-2">
135
- <span className="pulse-dot h-1.5 w-1.5 rounded-full bg-[var(--color-accent)]" />
136
- <span className="text-xs font-medium uppercase tracking-wider text-[var(--color-fg-muted)]">
135
+ <span className="pulse-dot h-1.5 w-1.5 rounded-full bg-accent" />
136
+ <span className="text-xs font-medium uppercase tracking-wider text-fg-muted">
137
137
  Typography studio
138
138
  </span>
139
139
  </div>
140
- <span className="font-mono text-xs text-[var(--color-fg-subtle)]">
140
+ <span className="font-mono text-xs text-fg-subtle">
141
141
  {entry.name} · {weight} · {italic ? "italic" : "roman"}
142
142
  </span>
143
143
  </div>
144
144
 
145
145
  <div className="grid gap-0 lg:grid-cols-[20rem_1fr]">
146
- <div className="border-b border-[var(--color-border)] p-6 lg:border-b-0 lg:border-r">
146
+ <div className="border-b border-border p-6 lg:border-b-0 lg:border-r">
147
147
  <div className="space-y-5">
148
148
  <div>
149
149
  <label
150
150
  htmlFor="studio-font"
151
- className="mb-1.5 block text-xs font-medium uppercase tracking-wider text-[var(--color-fg-subtle)]"
151
+ className="mb-1.5 block text-xs font-medium uppercase tracking-wider text-fg-subtle"
152
152
  >
153
153
  Font
154
154
  </label>
@@ -159,7 +159,7 @@ export function FontStudio() {
159
159
  setFontName(e.target.value);
160
160
  setCustomFont("");
161
161
  }}
162
- className="h-10 w-full rounded-md border border-[var(--color-border)] bg-[var(--color-surface)] px-3 text-sm text-[var(--color-fg)] focus:border-[var(--color-accent)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-soft)]"
162
+ className="h-10 w-full rounded-md border border-border bg-surface px-3 text-sm text-fg focus:border-accent focus:outline-none focus:ring-2 focus:ring-accent-soft"
163
163
  >
164
164
  {STUDIO_FONTS.map((f) => (
165
165
  <option key={f.name} value={f.name}>
@@ -172,7 +172,7 @@ export function FontStudio() {
172
172
  <div>
173
173
  <label
174
174
  htmlFor="studio-weight"
175
- className="mb-1.5 block text-xs font-medium uppercase tracking-wider text-[var(--color-fg-subtle)]"
175
+ className="mb-1.5 block text-xs font-medium uppercase tracking-wider text-fg-subtle"
176
176
  >
177
177
  Weight
178
178
  </label>
@@ -182,7 +182,7 @@ export function FontStudio() {
182
182
  onChange={(e: ChangeEvent<HTMLSelectElement>) =>
183
183
  setWeight(Number(e.target.value))
184
184
  }
185
- className="h-10 w-full rounded-md border border-[var(--color-border)] bg-[var(--color-surface)] px-3 text-sm text-[var(--color-fg)] focus:border-[var(--color-accent)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-soft)]"
185
+ className="h-10 w-full rounded-md border border-border bg-surface px-3 text-sm text-fg focus:border-accent focus:outline-none focus:ring-2 focus:ring-accent-soft"
186
186
  >
187
187
  {WEIGHTS.map((w) => (
188
188
  <option key={w.value} value={w.value}>
@@ -193,7 +193,7 @@ export function FontStudio() {
193
193
  </div>
194
194
 
195
195
  <div>
196
- <span className="mb-1.5 block text-xs font-medium uppercase tracking-wider text-[var(--color-fg-subtle)]">
196
+ <span className="mb-1.5 block text-xs font-medium uppercase tracking-wider text-fg-subtle">
197
197
  Style
198
198
  </span>
199
199
  <div className="flex gap-2">
@@ -202,8 +202,8 @@ export function FontStudio() {
202
202
  onClick={() => setItalic(false)}
203
203
  className={`flex-1 h-10 rounded-md text-sm font-medium transition-colors ${
204
204
  !italic
205
- ? "bg-[var(--color-fg)] text-[var(--color-bg)]"
206
- : "border border-[var(--color-border)] bg-[var(--color-surface)] text-[var(--color-fg-muted)] hover:text-[var(--color-fg)]"
205
+ ? "bg-fg text-bg"
206
+ : "border border-border bg-surface text-fg-muted hover:text-fg"
207
207
  }`}
208
208
  >
209
209
  Regular
@@ -213,8 +213,8 @@ export function FontStudio() {
213
213
  onClick={() => setItalic(true)}
214
214
  className={`flex-1 h-10 rounded-md text-sm font-medium transition-colors ${
215
215
  italic
216
- ? "bg-[var(--color-fg)] text-[var(--color-bg)]"
217
- : "border border-[var(--color-border)] bg-[var(--color-surface)] text-[var(--color-fg-muted)] hover:text-[var(--color-fg)]"
216
+ ? "bg-fg text-bg"
217
+ : "border border-border bg-surface text-fg-muted hover:text-fg"
218
218
  }`}
219
219
  >
220
220
  Italic
@@ -226,11 +226,11 @@ export function FontStudio() {
226
226
  <div className="mb-1.5 flex items-baseline justify-between">
227
227
  <label
228
228
  htmlFor="studio-size"
229
- className="text-xs font-medium uppercase tracking-wider text-[var(--color-fg-subtle)]"
229
+ className="text-xs font-medium uppercase tracking-wider text-fg-subtle"
230
230
  >
231
231
  Size
232
232
  </label>
233
- <span className="font-mono text-xs text-[var(--color-fg-muted)]">{size}px</span>
233
+ <span className="font-mono text-xs text-fg-muted">{size}px</span>
234
234
  </div>
235
235
  <input
236
236
  id="studio-size"
@@ -241,7 +241,7 @@ export function FontStudio() {
241
241
  onChange={(e: ChangeEvent<HTMLInputElement>) =>
242
242
  setSize(Number(e.target.value))
243
243
  }
244
- className="w-full accent-[var(--color-accent)]"
244
+ className="w-full accent-accent"
245
245
  />
246
246
  </div>
247
247
 
@@ -249,11 +249,11 @@ export function FontStudio() {
249
249
  <div className="mb-1.5 flex items-baseline justify-between">
250
250
  <label
251
251
  htmlFor="studio-tracking"
252
- className="text-xs font-medium uppercase tracking-wider text-[var(--color-fg-subtle)]"
252
+ className="text-xs font-medium uppercase tracking-wider text-fg-subtle"
253
253
  >
254
254
  Tracking
255
255
  </label>
256
- <span className="font-mono text-xs text-[var(--color-fg-muted)]">
256
+ <span className="font-mono text-xs text-fg-muted">
257
257
  {tracking >= 0 ? "+" : ""}
258
258
  {tracking}
259
259
  </span>
@@ -267,7 +267,7 @@ export function FontStudio() {
267
267
  onChange={(e: ChangeEvent<HTMLInputElement>) =>
268
268
  setTracking(Number(e.target.value))
269
269
  }
270
- className="w-full accent-[var(--color-accent)]"
270
+ className="w-full accent-accent"
271
271
  />
272
272
  </div>
273
273
 
@@ -275,11 +275,11 @@ export function FontStudio() {
275
275
  <div className="mb-1.5 flex items-baseline justify-between">
276
276
  <label
277
277
  htmlFor="studio-leading"
278
- className="text-xs font-medium uppercase tracking-wider text-[var(--color-fg-subtle)]"
278
+ className="text-xs font-medium uppercase tracking-wider text-fg-subtle"
279
279
  >
280
280
  Line height
281
281
  </label>
282
- <span className="font-mono text-xs text-[var(--color-fg-muted)]">
282
+ <span className="font-mono text-xs text-fg-muted">
283
283
  {leading.toFixed(2)}
284
284
  </span>
285
285
  </div>
@@ -293,14 +293,14 @@ export function FontStudio() {
293
293
  onChange={(e: ChangeEvent<HTMLInputElement>) =>
294
294
  setLeading(Number(e.target.value))
295
295
  }
296
- className="w-full accent-[var(--color-accent)]"
296
+ className="w-full accent-accent"
297
297
  />
298
298
  </div>
299
299
 
300
300
  <div>
301
301
  <label
302
302
  htmlFor="studio-custom"
303
- className="mb-1.5 block text-xs font-medium uppercase tracking-wider text-[var(--color-fg-subtle)]"
303
+ className="mb-1.5 block text-xs font-medium uppercase tracking-wider text-fg-subtle"
304
304
  >
305
305
  Any of 2,071 Google fonts
306
306
  </label>
@@ -310,7 +310,7 @@ export function FontStudio() {
310
310
  value={customFont}
311
311
  onChange={(e: ChangeEvent<HTMLInputElement>) => setCustomFont(e.target.value)}
312
312
  placeholder="e.g. Fraunces, IBM Plex Sans KR, Anton"
313
- className="h-10 w-full rounded-md border border-[var(--color-border)] bg-[var(--color-surface)] px-3 text-sm text-[var(--color-fg)] placeholder:text-[var(--color-fg-subtle)] focus:border-[var(--color-accent)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-soft)]"
313
+ className="h-10 w-full rounded-md border border-border bg-surface px-3 text-sm text-fg placeholder:text-fg-subtle focus:border-accent focus:outline-none focus:ring-2 focus:ring-accent-soft"
314
314
  />
315
315
  </div>
316
316
  </div>
@@ -333,8 +333,8 @@ export function FontStudio() {
333
333
  {sample}
334
334
  </div>
335
335
 
336
- <div className="flex flex-wrap items-center gap-2 border-t border-[var(--color-border)] bg-[var(--color-surface-2)] px-6 py-3">
337
- <span className="text-xs font-medium uppercase tracking-wider text-[var(--color-fg-subtle)]">
336
+ <div className="flex flex-wrap items-center gap-2 border-t border-border bg-surface-2 px-6 py-3">
337
+ <span className="text-xs font-medium uppercase tracking-wider text-fg-subtle">
338
338
  Sample
339
339
  </span>
340
340
  <div className="flex flex-wrap gap-1.5">
@@ -345,8 +345,8 @@ export function FontStudio() {
345
345
  onClick={() => setSample(s)}
346
346
  className={`rounded-full px-2.5 py-1 text-xs transition-colors ${
347
347
  sample === s
348
- ? "bg-[var(--color-fg)] text-[var(--color-bg)]"
349
- : "border border-[var(--color-border)] bg-[var(--color-surface)] text-[var(--color-fg-muted)] hover:text-[var(--color-fg)]"
348
+ ? "bg-fg text-bg"
349
+ : "border border-border bg-surface text-fg-muted hover:text-fg"
350
350
  }`}
351
351
  >
352
352
  {s.length > 24 ? `${s.slice(0, 22)}…` : s}
@@ -357,21 +357,21 @@ export function FontStudio() {
357
357
  type="text"
358
358
  value={sample}
359
359
  onChange={(e: ChangeEvent<HTMLInputElement>) => setSample(e.target.value)}
360
- className="ml-auto h-8 min-w-0 max-w-xs flex-1 rounded-md border border-[var(--color-border)] bg-[var(--color-surface)] px-3 text-xs text-[var(--color-fg)] focus:border-[var(--color-accent)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-soft)]"
360
+ className="ml-auto h-8 min-w-0 max-w-xs flex-1 rounded-md border border-border bg-surface px-3 text-xs text-fg focus:border-accent focus:outline-none focus:ring-2 focus:ring-accent-soft"
361
361
  placeholder="Type to preview…"
362
362
  />
363
363
  </div>
364
364
  </div>
365
365
  </div>
366
366
 
367
- <div className="border-t border-[var(--color-border)] bg-[var(--color-bg)] px-6 py-4 font-mono text-xs">
368
- <span className="text-[var(--color-accent)]">import</span>
367
+ <div className="border-t border-border bg-bg px-6 py-4 font-mono text-xs">
368
+ <span className="text-accent">import</span>
369
369
  {" { "}
370
- <span className="text-[var(--color-fg)]">{activeImportName}</span>
370
+ <span className="text-fg">{activeImportName}</span>
371
371
  {" } "}
372
- <span className="text-[var(--color-accent)]">from</span>
373
- <span className="text-[var(--color-success)]">{" "}&quot;swift-rust/font/google&quot;</span>
374
- <span className="text-[var(--color-fg-muted)]">;</span>
372
+ <span className="text-accent">from</span>
373
+ <span className="text-success">{" "}&quot;swift-rust/font/google&quot;</span>
374
+ <span className="text-fg-muted">;</span>
375
375
  </div>
376
376
  </div>
377
377
  );
@@ -34,19 +34,19 @@ const COLUMNS: Array<{ title: string; links: Array<{ href: string; label: string
34
34
  export function Footer() {
35
35
  const year = new Date().getFullYear();
36
36
  return (
37
- <footer className="mt-32 border-t border-[var(--color-border)] bg-[var(--color-surface)]">
37
+ <footer className="mt-32 border-t border-border bg-surface">
38
38
  <div className="container-page py-16">
39
39
  <div className="grid gap-12 md:grid-cols-[1.5fr_2fr]">
40
40
  <div>
41
41
  <Logo />
42
- <p className="mt-4 max-w-xs text-[0.875rem] leading-relaxed text-[var(--color-fg-muted)]">
42
+ <p className="mt-4 max-w-xs text-[0.875rem] leading-relaxed text-fg-muted">
43
43
  A full-stack React framework powered with Rust + Bun. TSX-first, single binary, four rendering modes.
44
44
  </p>
45
45
  </div>
46
46
  <div className="grid grid-cols-2 gap-8 sm:grid-cols-3">
47
47
  {COLUMNS.map((col) => (
48
48
  <div key={col.title}>
49
- <h3 className="text-[0.75rem] font-semibold uppercase tracking-wider text-[var(--color-fg-subtle)]">
49
+ <h3 className="text-[0.75rem] font-semibold uppercase tracking-wider text-fg-subtle">
50
50
  {col.title}
51
51
  </h3>
52
52
  <ul className="mt-4 space-y-2.5">
@@ -54,7 +54,7 @@ export function Footer() {
54
54
  <li key={link.href}>
55
55
  <Link
56
56
  href={link.href}
57
- className="text-[0.875rem] text-[var(--color-fg-muted)] transition-colors hover:text-[var(--color-fg)]"
57
+ className="text-[0.875rem] text-fg-muted transition-colors hover:text-fg"
58
58
  >
59
59
  {link.label}
60
60
  </Link>
@@ -65,7 +65,7 @@ export function Footer() {
65
65
  ))}
66
66
  </div>
67
67
  </div>
68
- <div className="mt-12 flex flex-col items-start justify-between gap-4 border-t border-[var(--color-border)] pt-8 text-[0.8125rem] text-[var(--color-fg-subtle)] sm:flex-row sm:items-center">
68
+ <div className="mt-12 flex flex-col items-start justify-between gap-4 border-t border-border pt-8 text-[0.8125rem] text-fg-subtle sm:flex-row sm:items-center">
69
69
  <p>© {year} swift-rust. Built with Rust + Bun.</p>
70
70
  <p className="font-mono">v{siteConfig.version} · MIT</p>
71
71
  </div>
@@ -18,8 +18,8 @@ export function Logo({ className = "" }: { className?: string }) {
18
18
  loader={({ src }) => src}
19
19
  className="h-6 w-6"
20
20
  />
21
- <span className="text-[0.95rem] font-semibold tracking-tight text-[var(--color-fg)]">
22
- swift<span className="text-[var(--color-accent)]">·</span>rust
21
+ <span className="text-[0.95rem] font-semibold tracking-tight text-fg">
22
+ swift<span className="text-accent">·</span>rust
23
23
  </span>
24
24
  </span>
25
25
  );
@@ -20,10 +20,15 @@ const GitHubIcon = () => (
20
20
 
21
21
  export function Nav() {
22
22
  return (
23
- <header className="sticky top-0 z-40 border-b border-[var(--color-border)] bg-[var(--color-bg)]/80 backdrop-blur-md">
23
+ <header className="sticky top-0 z-40 border-b border-border bg-bg/80 backdrop-blur-md">
24
24
  {/* CSS-only mobile menu toggle: no client JS required (these pages are
25
25
  static SSR). The peer checkbox drives the panel below. */}
26
- <input type="checkbox" id="site-menu" className="peer sr-only" aria-label="Toggle menu" />
26
+ <input
27
+ type="checkbox"
28
+ id="site-menu"
29
+ className="peer sr-only"
30
+ aria-label="Toggle menu"
31
+ />
27
32
 
28
33
  <div className="container-page flex h-14 items-center justify-between gap-8">
29
34
  <Link href="/" aria-label="Home">
@@ -35,7 +40,7 @@ export function Nav() {
35
40
  <Link
36
41
  key={item.href}
37
42
  href={item.href}
38
- className="rounded-md px-3 py-1.5 text-[0.875rem] text-[var(--color-fg-muted)] transition-colors hover:bg-[var(--color-surface-2)] hover:text-[var(--color-fg)]"
43
+ className="rounded-md px-3 py-1.5 text-[0.875rem] text-fg-muted transition-colors hover:bg-surface-2 hover:text-fg"
39
44
  >
40
45
  {item.label}
41
46
  </Link>
@@ -52,7 +57,10 @@ export function Nav() {
52
57
  <GitHubIcon />
53
58
  GitHub
54
59
  </a>
55
- <Link href={siteConfig.docsUrl} className="btn btn-accent btn-sm hidden sm:inline-flex">
60
+ <Link
61
+ href={siteConfig.docsUrl}
62
+ className="btn btn-accent btn-sm hidden sm:inline-flex"
63
+ >
56
64
  Get started
57
65
  </Link>
58
66
 
@@ -60,9 +68,16 @@ export function Nav() {
60
68
  <label
61
69
  htmlFor="site-menu"
62
70
  aria-label="Toggle navigation menu"
63
- className="inline-flex h-9 w-9 cursor-pointer items-center justify-center rounded-md border border-[var(--color-border)] text-[var(--color-fg)] md:hidden"
71
+ className="inline-flex h-9 w-9 cursor-pointer items-center justify-center rounded-md border border-border text-fg md:hidden"
64
72
  >
65
- <svg viewBox="0 0 24 24" className="h-5 w-5 peer-checked:hidden" fill="none" stroke="currentColor" strokeWidth="2" aria-hidden>
73
+ <svg
74
+ viewBox="0 0 24 24"
75
+ className="h-5 w-5 peer-checked:hidden"
76
+ fill="none"
77
+ stroke="currentColor"
78
+ strokeWidth="2"
79
+ aria-hidden
80
+ >
66
81
  <path d="M4 7h16M4 12h16M4 17h16" strokeLinecap="round" />
67
82
  </svg>
68
83
  </label>
@@ -70,18 +85,18 @@ export function Nav() {
70
85
  </div>
71
86
 
72
87
  {/* Mobile dropdown panel — shown only when the checkbox is checked. */}
73
- <nav className="hidden border-t border-[var(--color-border)] bg-[var(--color-bg)] px-4 py-3 peer-checked:block md:!hidden">
88
+ <nav className="hidden border-t border-border bg-bg px-4 py-3 peer-checked:block md:hidden!">
74
89
  <div className="flex flex-col gap-1">
75
90
  {NAV.map((item) => (
76
91
  <Link
77
92
  key={item.href}
78
93
  href={item.href}
79
- className="rounded-md px-3 py-2 text-[0.95rem] text-[var(--color-fg-muted)] hover:bg-[var(--color-surface-2)] hover:text-[var(--color-fg)]"
94
+ className="rounded-md px-3 py-2 text-[0.95rem] text-fg-muted hover:bg-surface-2 hover:text-fg"
80
95
  >
81
96
  {item.label}
82
97
  </Link>
83
98
  ))}
84
- <div className="mt-2 flex gap-2 border-t border-[var(--color-border)] pt-3">
99
+ <div className="mt-2 flex gap-2 border-t border-border pt-3">
85
100
  <a
86
101
  href={siteConfig.githubUrl}
87
102
  target="_blank"
@@ -91,7 +106,10 @@ export function Nav() {
91
106
  <GitHubIcon />
92
107
  GitHub
93
108
  </a>
94
- <Link href={siteConfig.docsUrl} className="btn btn-accent btn-sm flex-1 justify-center">
109
+ <Link
110
+ href={siteConfig.docsUrl}
111
+ className="btn btn-accent btn-sm flex-1 justify-center"
112
+ >
95
113
  Get started
96
114
  </Link>
97
115
  </div>
@@ -21,14 +21,14 @@ const ITEMS = [
21
21
 
22
22
  export function Sidebar({ pathname = "" }: { pathname?: string }) {
23
23
  return (
24
- <aside className="sticky top-14 hidden h-[calc(100vh-3.5rem)] w-60 shrink-0 self-start flex-col border-r border-[var(--color-border)] bg-[var(--color-surface)] lg:flex">
25
- <div className="flex h-14 items-center border-b border-[var(--color-border)] px-5">
24
+ <aside className="sticky top-14 hidden h-[calc(100vh-3.5rem)] w-60 shrink-0 self-start flex-col border-r border-border bg-surface lg:flex">
25
+ <div className="flex h-14 items-center border-b border-border px-5">
26
26
  <Logo />
27
27
  </div>
28
28
  <nav className="flex-1 space-y-8 overflow-y-auto p-5">
29
29
  {ITEMS.map((group) => (
30
30
  <div key={group.section}>
31
- <h3 className="mb-2 px-2 text-[0.7rem] font-semibold uppercase tracking-wider text-[var(--color-fg-subtle)]">
31
+ <h3 className="mb-2 px-2 text-[0.7rem] font-semibold uppercase tracking-wider text-fg-subtle">
32
32
  {group.section}
33
33
  </h3>
34
34
  <ul className="space-y-0.5">
@@ -44,8 +44,8 @@ export function Sidebar({ pathname = "" }: { pathname?: string }) {
44
44
  href={link.href}
45
45
  className={`flex items-center gap-2.5 rounded-md px-2.5 py-1.5 text-[0.875rem] transition-colors ${
46
46
  active
47
- ? "bg-[var(--color-accent-soft)] font-medium text-[var(--color-accent)]"
48
- : "text-[var(--color-fg-muted)] hover:bg-[var(--color-surface-2)] hover:text-[var(--color-fg)]"
47
+ ? "bg-accent-soft font-medium text-accent"
48
+ : "text-fg-muted hover:bg-surface-2 hover:text-fg"
49
49
  }`}
50
50
  >
51
51
  <Icon className="h-4 w-4" />
@@ -58,11 +58,11 @@ export function Sidebar({ pathname = "" }: { pathname?: string }) {
58
58
  </div>
59
59
  ))}
60
60
  </nav>
61
- <div className="border-t border-[var(--color-border)] p-4">
62
- <div className="rounded-lg border border-[var(--color-border)] bg-[var(--color-surface-2)] p-3">
63
- <p className="text-[0.75rem] font-medium text-[var(--color-fg)]">Pro tip</p>
64
- <p className="mt-1 text-[0.75rem] leading-relaxed text-[var(--color-fg-muted)]">
65
- Press <kbd className="rounded border border-[var(--color-border)] bg-[var(--color-surface)] px-1 font-mono text-[0.6875rem]">⌘K</kbd> for quick search.
61
+ <div className="border-t border-border p-4">
62
+ <div className="rounded-lg border border-border bg-surface-2 p-3">
63
+ <p className="text-[0.75rem] font-medium text-fg">Pro tip</p>
64
+ <p className="mt-1 text-[0.75rem] leading-relaxed text-fg-muted">
65
+ Press <kbd className="rounded border border-border bg-surface px-1 font-mono text-[0.6875rem]">⌘K</kbd> for quick search.
66
66
  </p>
67
67
  </div>
68
68
  </div>