@vibes.diy/prompts 2.4.3 → 2.4.5

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 (103) hide show
  1. package/chat.d.ts +1 -0
  2. package/llms/fireproof.md +107 -0
  3. package/llms/use-viewer.md +76 -23
  4. package/package.json +3 -3
  5. package/prompts.d.ts +2 -0
  6. package/prompts.js +27 -2
  7. package/prompts.js.map +1 -1
  8. package/settings.d.ts +1 -0
  9. package/themes/aether.md +0 -9
  10. package/themes/archive.md +0 -8
  11. package/themes/atelier.md +0 -10
  12. package/themes/atlas.md +0 -11
  13. package/themes/brutalist.md +16 -49
  14. package/themes/capsule.md +0 -12
  15. package/themes/carbon.md +0 -11
  16. package/themes/chrome.md +0 -15
  17. package/themes/chrono.md +0 -5
  18. package/themes/codex.md +0 -13
  19. package/themes/colors/aether.yaml +10 -0
  20. package/themes/colors/archive.yaml +9 -0
  21. package/themes/colors/atelier.yaml +11 -0
  22. package/themes/colors/atlas.yaml +12 -0
  23. package/themes/colors/broadsheet.yaml +7 -0
  24. package/themes/colors/brutalist.yaml +34 -0
  25. package/themes/colors/capsule.yaml +13 -0
  26. package/themes/colors/carbon.yaml +12 -0
  27. package/themes/colors/chrome.yaml +16 -0
  28. package/themes/colors/chrono.yaml +6 -0
  29. package/themes/colors/codex.yaml +14 -0
  30. package/themes/colors/computer-angel-heaven.yaml +22 -0
  31. package/themes/colors/console.yaml +16 -0
  32. package/themes/colors/default.yaml +19 -0
  33. package/themes/colors/desktop.yaml +18 -0
  34. package/themes/colors/dial.yaml +15 -0
  35. package/themes/colors/dossier.yaml +7 -0
  36. package/themes/colors/edge.yaml +9 -0
  37. package/themes/colors/guild.yaml +13 -0
  38. package/themes/colors/hearth.yaml +14 -0
  39. package/themes/colors/industrial.yaml +8 -0
  40. package/themes/colors/matrix.yaml +10 -0
  41. package/themes/colors/mesh.yaml +11 -0
  42. package/themes/colors/neomario.yaml +14 -0
  43. package/themes/colors/neon.yaml +13 -0
  44. package/themes/colors/nexus.yaml +10 -0
  45. package/themes/colors/opus.yaml +26 -0
  46. package/themes/colors/orbit.yaml +15 -0
  47. package/themes/colors/palate.yaml +7 -0
  48. package/themes/colors/pitch.yaml +9 -0
  49. package/themes/colors/poster.yaml +9 -0
  50. package/themes/colors/proof.yaml +10 -0
  51. package/themes/colors/recon.yaml +9 -0
  52. package/themes/colors/rift.yaml +15 -0
  53. package/themes/colors/rune.yaml +13 -0
  54. package/themes/colors/scrapbook.yaml +9 -0
  55. package/themes/colors/sensor.yaml +11 -0
  56. package/themes/colors/signal.yaml +8 -0
  57. package/themes/colors/slab.yaml +7 -0
  58. package/themes/colors/specimen.yaml +7 -0
  59. package/themes/colors/terminal.yaml +9 -0
  60. package/themes/colors/vault.yaml +10 -0
  61. package/themes/colors/winter-sports.yaml +9 -0
  62. package/themes/colors/zine.yaml +10 -0
  63. package/themes/colorsets-bundle.d.ts +3 -0
  64. package/themes/colorsets-bundle.js +643 -0
  65. package/themes/colorsets-bundle.js.map +1 -0
  66. package/themes/colorsets.d.ts +7 -0
  67. package/themes/colorsets.js +72 -0
  68. package/themes/colorsets.js.map +1 -0
  69. package/themes/computer-angel-heaven.md +0 -21
  70. package/themes/console.md +0 -15
  71. package/themes/default.md +10 -62
  72. package/themes/desktop.md +0 -17
  73. package/themes/dial.md +0 -14
  74. package/themes/dossier.md +0 -6
  75. package/themes/edge.md +0 -8
  76. package/themes/guild.md +0 -12
  77. package/themes/hearth.md +0 -13
  78. package/themes/index.d.ts +2 -0
  79. package/themes/index.js +5 -0
  80. package/themes/index.js.map +1 -1
  81. package/themes/industrial.md +0 -7
  82. package/themes/matrix.md +0 -9
  83. package/themes/mesh.md +0 -10
  84. package/themes/neomario.md +0 -13
  85. package/themes/neon.md +0 -12
  86. package/themes/nexus.md +0 -9
  87. package/themes/opus.md +0 -25
  88. package/themes/orbit.md +0 -14
  89. package/themes/palate.md +0 -6
  90. package/themes/pitch.md +0 -8
  91. package/themes/poster.md +0 -8
  92. package/themes/proof.md +0 -9
  93. package/themes/recon.md +0 -8
  94. package/themes/rift.md +0 -14
  95. package/themes/rune.md +0 -12
  96. package/themes/scrapbook.md +0 -8
  97. package/themes/sensor.md +0 -10
  98. package/themes/signal.md +0 -7
  99. package/themes/slab.md +0 -6
  100. package/themes/terminal.md +0 -8
  101. package/themes/vault.md +0 -9
  102. package/themes/winter-sports.md +0 -8
  103. package/themes/zine.md +0 -9
package/chat.d.ts CHANGED
@@ -140,4 +140,5 @@ export interface SessionSidebarProps {
140
140
  isVisible: boolean;
141
141
  onClose: () => void;
142
142
  sessionId?: string;
143
+ dmUnreadCount?: number;
143
144
  }
package/llms/fireproof.md CHANGED
@@ -234,6 +234,113 @@ function App() {
234
234
  }
235
235
  ```
236
236
 
237
+ ## Per-Database Access Control (`acl` option)
238
+
239
+ On vibes.diy, `useFireproof` accepts an optional `acl` argument that declares who can read, write, or delete documents in that database. The ACL is stored server-side and enforced on every operation — no separate API call needed.
240
+ Only use the `acl` option when the user explicitly asks for fine-grained access control (or equivalent permission constraints).
241
+
242
+ ```jsx
243
+ import { useFireproof } from "use-vibes";
244
+
245
+ // Anyone with a grant can post; only editors can delete
246
+ const { useLiveQuery, database } = useFireproof("announcements", {
247
+ acl: { write: ["members"], delete: ["editors"] },
248
+ });
249
+
250
+ // Editors-only space — viewers cannot read at all
251
+ const { useLiveQuery, database } = useFireproof("drafts", {
252
+ acl: { read: ["editors"], write: ["editors"], delete: ["editors"] },
253
+ });
254
+
255
+ // No acl — falls back to app-level role gates (existing behavior, always safe)
256
+ const { useLiveQuery, database } = useFireproof("public-notes");
257
+ ```
258
+
259
+ **Subject groups** — who each name covers:
260
+
261
+ | Group | Who is included |
262
+ | ------------ | ----------------------------------------------------------- |
263
+ | `members` | owner + editor + viewer + submitter (anyone with any grant) |
264
+ | `editors` | owner + editor |
265
+ | `submitters` | owner + submitter |
266
+ | `readers` | owner + editor + viewer |
267
+
268
+ Owner is always implicitly included — never list `owner` explicitly in an ACL.
269
+
270
+ Each capability (`read`, `write`, `delete`) is independent. Omitting one falls back to the app-level role gate for that operation. The `acl` is sent once on first database open and persists across sessions (last-write-wins). Only the **app owner** can set ACLs; non-owner apps opening a database with an `acl` option have it silently ignored — the database still opens and works normally.
271
+
272
+ ---
273
+
274
+ ## Multi-Space Pattern: Owner Creates, Members Discover
275
+
276
+ `listDbNames()` is owner-only — members can't enumerate databases by name. Instead, the owner writes registry documents into a shared database that all members can query to discover available spaces.
277
+
278
+ ```jsx
279
+ import { useFireproof, useViewer } from "use-vibes";
280
+ import { fireproof } from "use-fireproof";
281
+ import { useState } from "react";
282
+
283
+ export default function App() {
284
+ const [activeSlug, setActiveSlug] = useState(null);
285
+ return activeSlug ? (
286
+ <SpaceView slug={activeSlug} onBack={() => setActiveSlug(null)} />
287
+ ) : (
288
+ <SpaceList onSelectSpace={setActiveSlug} />
289
+ );
290
+ }
291
+
292
+ function SpaceList({ onSelectSpace }) {
293
+ const viewer = useViewer();
294
+ // No explicit ACL on the registry — app-level defaults let all members read
295
+ const { database: registry, useLiveQuery } = useFireproof("spaces-registry");
296
+ const { docs: spaces } = useLiveQuery("type", { key: "space", descending: true });
297
+
298
+ async function createSpace(name, slug, acl) {
299
+ await registry.put({ type: "space", name, slug, acl, userSlug: viewer?.userSlug, createdAt: Date.now() });
300
+ // Declares the ACL server-side — owner-only; silently ignored for non-owners
301
+ fireproof(slug).applyAcl(acl);
302
+ }
303
+
304
+ return (
305
+ <div>
306
+ <ul>
307
+ {spaces.map((s) => (
308
+ <li key={s._id}>
309
+ <button onClick={() => onSelectSpace(s.slug)}>{s.name}</button>
310
+ </li>
311
+ ))}
312
+ </ul>
313
+ <button onClick={() => createSpace("Announcements", "space-announcements", { write: ["editors"], delete: ["editors"] })}>
314
+ + Create Space
315
+ </button>
316
+ </div>
317
+ );
318
+ }
319
+
320
+ function SpaceView({ slug, onBack }) {
321
+ const { useLiveQuery, useDocument } = useFireproof(slug);
322
+ const { doc, merge, submit } = useDocument({ text: "", type: "message" });
323
+ const { docs } = useLiveQuery("_id", { descending: true, limit: 50 });
324
+
325
+ return (
326
+ <div>
327
+ <button onClick={onBack}>← Back</button>
328
+ <ul>
329
+ {docs.map((d) => (
330
+ <li key={d._id}>{d.text}</li>
331
+ ))}
332
+ </ul>
333
+ <form onSubmit={submit}>
334
+ <input value={doc.text} onChange={(e) => merge({ text: e.target.value })} placeholder="Message…" />
335
+ <button type="submit">Send</button>
336
+ </form>
337
+ </div>
338
+ );
339
+ }
340
+ ```
341
+
342
+ ---
343
+
237
344
  ## Architecture: Where's My Data?
238
345
 
239
346
  Data is stored in the browser, and is automatically synced with all invited users.
@@ -10,12 +10,16 @@ The contract: **every write surface (form, submit button, edit input, delete but
10
10
  import { useViewer } from "use-vibes";
11
11
 
12
12
  function App() {
13
- const { viewer, can } = useViewer();
14
- if (!viewer) return <p>Sign in to use this app.</p>;
13
+ const { viewer, isViewerPending, can, ViewerTag } = useViewer();
14
+
15
+ // isViewerPending is true until the platform has resolved the viewer identity.
16
+ // Gate on it to avoid flashing the anonymous state on first render.
17
+ if (isViewerPending) return null;
18
+
15
19
  return (
16
20
  <header>
17
- <img src={viewer.avatarUrl} alt={viewer.userSlug} />
18
- <span>{viewer.displayName ?? viewer.userSlug}</span>
21
+ {/* ViewerTag renders a "Sign in" button when logged out, a user pill when logged in */}
22
+ <ViewerTag />
19
23
  </header>
20
24
  );
21
25
  }
@@ -24,16 +28,30 @@ function App() {
24
28
  ## What you get
25
29
 
26
30
  - `viewer` — `{ userSlug, displayName?, avatarUrl }` or `null` for anonymous visitors. `avatarUrl` is a stable opaque URL — just use it in `<img src>`, don't construct it yourself.
31
+ - `isViewerPending` — `true` while the platform is still resolving the viewer identity (e.g. on first render before the parent shell has pushed the identity update). **Gate any auth-dependent UI on `!isViewerPending`** to avoid flashing the wrong state. Once it becomes `false`, `viewer` is either populated or definitively `null`.
27
32
  - `can(action, dbName?)` — `true`/`false` for `"read"`, `"write"`, `"delete"`. Pass a `dbName` for multi-db apps; omit for single-db apps. Use it to hide forms when the viewer can't post.
33
+ - `ViewerTag` — ready-made user pill; see the ViewerTag section below.
28
34
 
29
35
  ## Gating UI
30
36
 
31
37
  ```jsx
32
38
  function CommentForm() {
33
- const { viewer, can } = useViewer();
34
- if (!viewer) return <p>Sign in to comment.</p>;
35
- if (!can("write", "comments")) return <p>Contact the owner to request write access so you can post.</p>;
36
- return <form>...</form>;
39
+ const { viewer, isViewerPending, can, ViewerTag } = useViewer();
40
+ if (isViewerPending) return null;
41
+
42
+ return (
43
+ <div>
44
+ {/* Always rendered: "Sign in" button when anonymous, identity pill when signed in.
45
+ The label only appears once viewer is known so it doesn't flash. */}
46
+ <div style={{ display: "flex", alignItems: "center", gap: 8 }}>
47
+ {viewer && <span style={{ fontSize: 13, color: "var(--muted, #888)" }}>commenting as</span>}
48
+ <ViewerTag />
49
+ </div>
50
+
51
+ {viewer && !can("write", "comments") && <p>Contact the owner to request write access so you can post.</p>}
52
+ {viewer && can("write", "comments") && <form>...</form>}
53
+ </div>
54
+ );
37
55
  }
38
56
  ```
39
57
 
@@ -46,7 +64,7 @@ import { useFireproof } from "use-fireproof";
46
64
  import { useViewer } from "use-vibes";
47
65
 
48
66
  function CommentThread() {
49
- const { viewer, can } = useViewer();
67
+ const { viewer, isViewerPending, can, ViewerTag } = useViewer();
50
68
  const { useLiveQuery, database } = useFireproof("comments");
51
69
  const { docs: comments } = useLiveQuery("createdAt");
52
70
  const [body, setBody] = useState("");
@@ -77,20 +95,25 @@ function CommentThread() {
77
95
  ))}
78
96
  </ul>
79
97
 
80
- {!viewer ? (
81
- <p>Sign in to comment.</p>
82
- ) : !can("write", "comments") ? (
83
- <p>Contact the owner to request write access so you can post.</p>
84
- ) : (
85
- <form
86
- onSubmit={(e) => {
87
- e.preventDefault();
88
- post();
89
- }}
90
- >
91
- <input value={body} onChange={(e) => setBody(e.target.value)} />
92
- <button type="submit">Post</button>
93
- </form>
98
+ {!isViewerPending && (
99
+ <div>
100
+ <div style={{ display: "flex", alignItems: "center", gap: 8 }}>
101
+ {viewer && <span style={{ fontSize: 13, color: "var(--muted, #888)" }}>commenting as</span>}
102
+ <ViewerTag />
103
+ </div>
104
+ {viewer && !can("write", "comments") && <p>Contact the owner to request write access so you can post.</p>}
105
+ {viewer && can("write", "comments") && (
106
+ <form
107
+ onSubmit={(e) => {
108
+ e.preventDefault();
109
+ post();
110
+ }}
111
+ >
112
+ <input value={body} onChange={(e) => setBody(e.target.value)} />
113
+ <button type="submit">Post</button>
114
+ </form>
115
+ )}
116
+ </div>
94
117
  )}
95
118
  </div>
96
119
  );
@@ -107,3 +130,33 @@ Key points:
107
130
 
108
131
  - Never use Clerk user IDs. Only `userSlug` crosses into vibe code.
109
132
  - Avatar URLs are stable indirection URLs — when a user changes their avatar, the URL stays the same and the bytes update. Treat them as opaque strings.
133
+
134
+ ## ViewerTag
135
+
136
+ `ViewerTag` is a ready-made inline user pill returned alongside `viewer` from `useViewer()`. It is not a separate import — you get it from the hook.
137
+
138
+ ```jsx
139
+ const { viewer, ViewerTag } = useViewer();
140
+
141
+ // Show the current viewer (edit ring appears — they can tap to change their avatar):
142
+ <ViewerTag />
143
+
144
+ // Show another user read-only (no edit affordance):
145
+ <ViewerTag userSlug={comment.authorUserSlug} />
146
+ ```
147
+
148
+ **Self-detection is automatic.** When `ViewerTag` renders the current viewer it shows a dashed indigo ring and pencil overlay on the avatar. Clicking it opens a file picker; the upload and profile save happen internally.
149
+
150
+ **Undefined safety.** If `userSlug` is present in props but falsy (e.g. a missing field from a loop lookup), `ViewerTag` renders a dim italic placeholder instead of the edit ring. This prevents a broken data source from accidentally granting photo-edit access to an arbitrary pill.
151
+
152
+ **Anonymous safety.** `ViewerTag` is always safe to call regardless of login state — it never throws. When the viewer is anonymous and no `userSlug` prop is given, it renders a "Sign in" button that opens the platform login UI when clicked. Wrap it in a `{viewer && <ViewerTag />}` guard if you want to suppress it entirely for anonymous users.
153
+
154
+ **Theming.** `ViewerTag` reads `--accent`, `--accent-text`, `--card-bg`, `--border`, `--text`, and `--muted` from the app's CSS variables with sensible fallbacks. If your app defines these on `:root` (which most generated themes do), `ViewerTag` inherits the theme automatically with no extra props.
155
+
156
+ **Style override.** Pass a `style` prop to override the root element's appearance. Layout properties are preserved; your values win:
157
+
158
+ ```jsx
159
+ <ViewerTag style={{ borderRadius: 8, fontSize: 12 }} />
160
+ ```
161
+
162
+ Use `<ViewerTag />` (no props) for the current user and `<ViewerTag userSlug={...} />` for others. That's the whole API.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/prompts",
3
- "version": "2.4.3",
3
+ "version": "2.4.5",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "description": "",
@@ -30,8 +30,8 @@
30
30
  "@fireproof/core-types-base": "~0.24.19",
31
31
  "@fireproof/core-types-protocols-cloud": "~0.24.19",
32
32
  "@fireproof/use-fireproof": "~0.24.19",
33
- "@vibes.diy/call-ai-v2": "^2.4.3",
34
- "@vibes.diy/use-vibes-types": "^2.4.3",
33
+ "@vibes.diy/call-ai-v2": "^2.4.5",
34
+ "@vibes.diy/use-vibes-types": "^2.4.5",
35
35
  "arktype": "~2.2.0",
36
36
  "json-schema-faker": "~0.6.1"
37
37
  },
package/prompts.d.ts CHANGED
@@ -58,6 +58,7 @@ export declare const preAllocParsed: import("arktype/internal/variants/object.ts
58
58
  }[];
59
59
  iconDescription: string;
60
60
  theme?: string | undefined;
61
+ colorTheme?: string | undefined;
61
62
  enrichedPrompt?: string | undefined;
62
63
  }, {}>;
63
64
  export type PreAllocParsed = typeof preAllocParsed.infer;
@@ -65,6 +66,7 @@ export interface SystemPromptResult {
65
66
  systemPrompt: string;
66
67
  skills: string[];
67
68
  theme?: string;
69
+ colorTheme?: string;
68
70
  demoData: boolean;
69
71
  model: string;
70
72
  }
package/prompts.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { loadAsset, KeyedResolvOnce } from "@adviser/cement";
2
2
  import { getLlmCatalog, getLlmCatalogNames } from "./json-docs.js";
3
- import { getThemeCatalogNames, vibesThemes } from "./themes/index.js";
3
+ import { composeDesignMd, getColorsetCatalogNames, getThemeCatalogNames, parseColorsetYaml, vibesThemes } from "./themes/index.js";
4
4
  import { type } from "arktype";
5
5
  import { defaultStylePrompt } from "./style-prompts.js";
6
6
  export const DEFAULT_CODING_MODEL = "anthropic/claude-opus-4.5";
@@ -99,6 +99,7 @@ export const preAllocParsed = type({
99
99
  pairs: type({ title: "string", slug: "string" }).array(),
100
100
  iconDescription: "string",
101
101
  "theme?": "string",
102
+ "colorTheme?": "string",
102
103
  "enrichedPrompt?": "string",
103
104
  });
104
105
  export function generateImportStatements(llms) {
@@ -165,8 +166,15 @@ export async function makeBaseSystemPrompt(model, sessionDoc) {
165
166
  }
166
167
  const concatenatedLlmsTxt = concatenatedLlmsTxts.join("\n");
167
168
  const themeCatalogNames = getThemeCatalogNames();
169
+ const colorsetCatalogNames = getColorsetCatalogNames();
168
170
  const requestedTheme = typeof sessionDoc?.theme === "string" ? sessionDoc.theme : undefined;
169
171
  const validatedTheme = requestedTheme && themeCatalogNames.has(requestedTheme) ? requestedTheme : undefined;
172
+ const requestedColorTheme = typeof sessionDoc?.colorTheme === "string" ? sessionDoc.colorTheme : undefined;
173
+ const validatedColorTheme = requestedColorTheme && colorsetCatalogNames.has(requestedColorTheme)
174
+ ? requestedColorTheme
175
+ : validatedTheme && colorsetCatalogNames.has(validatedTheme)
176
+ ? validatedTheme
177
+ : undefined;
170
178
  let themeDesignSection = "";
171
179
  if (validatedTheme) {
172
180
  const rTheme = await keyedLoadAsset.get(`theme:${validatedTheme}`).once(async () => {
@@ -180,7 +188,23 @@ export async function makeBaseSystemPrompt(model, sessionDoc) {
180
188
  console.warn(`Failed to load theme ${validatedTheme}:`, rTheme.Err());
181
189
  }
182
190
  else {
183
- themeDesignSection = `<theme-design-md>\n${rTheme.Ok() ?? ""}\n</theme-design-md>`;
191
+ let designMd = rTheme.Ok() ?? "";
192
+ if (validatedColorTheme) {
193
+ const rColorset = await keyedLoadAsset.get(`colorset:${validatedColorTheme}`).once(async () => {
194
+ return loadAsset(`./themes/colors/${validatedColorTheme}.yaml`, {
195
+ fallBackUrl: pkgBaseUrl,
196
+ basePath: () => import.meta.url,
197
+ mock: { fetch: sessionDoc.fetch },
198
+ });
199
+ });
200
+ if (rColorset.isErr()) {
201
+ console.warn(`Failed to load colorset ${validatedColorTheme}:`, rColorset.Err());
202
+ }
203
+ else {
204
+ designMd = composeDesignMd(designMd, parseColorsetYaml(rColorset.Ok() ?? ""));
205
+ }
206
+ }
207
+ themeDesignSection = `<theme-design-md>\n${designMd}\n</theme-design-md>`;
184
208
  }
185
209
  }
186
210
  const stylePrompt = sessionDoc?.stylePrompt || (themeDesignSection ? "" : defaultStylePrompt);
@@ -209,6 +233,7 @@ export async function makeBaseSystemPrompt(model, sessionDoc) {
209
233
  systemPrompt,
210
234
  skills: selectedNames,
211
235
  theme: validatedTheme,
236
+ colorTheme: validatedColorTheme,
212
237
  demoData: includeDemoData,
213
238
  model,
214
239
  };
package/prompts.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../jsr/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../jsr/prompts.ts"],"names":[],"mappings":"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"}
package/settings.d.ts CHANGED
@@ -6,6 +6,7 @@ export interface UserSettings {
6
6
  showModelPickerInChat?: boolean;
7
7
  skills?: string[];
8
8
  theme?: string;
9
+ colorTheme?: string;
9
10
  title?: string;
10
11
  enrichedPrompt?: string;
11
12
  demoData?: boolean;
package/themes/aether.md CHANGED
@@ -1,14 +1,5 @@
1
1
  ---
2
2
  name: Aether Brass
3
- colors:
4
- parchment: "#dcbfa6"
5
- parchment-dark: "#c4a482"
6
- ink: "#3e2723"
7
- leather: "#2a1d15"
8
- brass-light: "#fdf5bb"
9
- brass-mid: "#cfa562"
10
- brass-dark: "#745428"
11
- amber: "#ffaa00"
12
3
  typography:
13
4
  body-md:
14
5
  fontFamily: Special Elite
package/themes/archive.md CHANGED
@@ -1,13 +1,5 @@
1
1
  ---
2
2
  name: Archive
3
- colors:
4
- bg: "oklch(0.95 0.01 70)"
5
- text: "oklch(0.15 0.02 50)"
6
- border: "oklch(0.20 0.02 50)"
7
- accent: "oklch(0.35 0.04 50)"
8
- accent-text: "oklch(0.95 0.01 70)"
9
- muted: "oklch(0.55 0.02 50)"
10
- page-bg: "oklch(0.92 0.01 65)"
11
3
  typography:
12
4
  body-md:
13
5
  fontFamily: Inter
package/themes/atelier.md CHANGED
@@ -1,15 +1,5 @@
1
1
  ---
2
2
  name: Atelier Studio
3
- colors:
4
- comp-bg: "oklch(0.95 0.03 70)"
5
- comp-text: "oklch(0.25 0.04 30)"
6
- comp-border: "oklch(0.25 0.04 30 / 0.15)"
7
- comp-accent: "oklch(0.65 0.18 55)"
8
- comp-accent-text: "oklch(1.00 0 0)"
9
- comp-muted: "oklch(0.50 0.04 30)"
10
- color-background: "oklch(0.96 0.03 70)"
11
- comp-accent-secondary: "oklch(0.60 0.15 40)"
12
- comp-golden: "oklch(0.72 0.15 80)"
13
3
  typography:
14
4
  body-md:
15
5
  fontFamily: Playfair Display
package/themes/atlas.md CHANGED
@@ -1,16 +1,5 @@
1
1
  ---
2
2
  name: Atlas Reference
3
- colors:
4
- comp-bg: "oklch(1.00 0 0)"
5
- comp-text: "oklch(0.13 0 0)"
6
- comp-border: "oklch(0.93 0 0)"
7
- comp-accent: "oklch(0.62 0.24 25)"
8
- comp-accent-text: "oklch(0.13 0 0)"
9
- comp-muted: "oklch(0.66 0 0)"
10
- color-background: "oklch(1.00 0 0)"
11
- atlas-brand-bg: "oklch(0.62 0.24 25)"
12
- atlas-brand-border: "oklch(0 0 0 / 0.08)"
13
- atlas-brand-hover: "oklch(0 0 0 / 0.05)"
14
3
  typography:
15
4
  body-md:
16
5
  fontFamily: var(--font-sans)
@@ -1,38 +1,5 @@
1
1
  ---
2
2
  name: Neobrutalist
3
- colors:
4
- # Light mode (canonical) — warm off-white canvas, near-black ink, vivid signal blocks.
5
- background: "#f5f0e0"
6
- card-background: "#ffffff"
7
- text: "#1a1a2e"
8
- border: "#1a1a2e"
9
- muted: "#6b6b80"
10
- primary: "#DA291C"
11
- on-primary: "#ffffff"
12
- secondary: "#fedd00"
13
- on-secondary: "#1a1a2e"
14
- success: "#22c55e"
15
- on-success: "#1a1a2e"
16
- info: "#3b82f6"
17
- on-info: "#ffffff"
18
- primary-light: "rgba(218, 41, 28, 0.1)"
19
- colorsDark:
20
- # Dark mode — cool ink canvas, off-white strokes, same vivid signal blocks.
21
- # Hard offset shadows flip to use the off-white border so they remain visible.
22
- background: "oklch(0.18 0.02 280)"
23
- card-background: "oklch(0.22 0.02 280)"
24
- text: "oklch(0.96 0.01 80)"
25
- border: "oklch(0.96 0.01 80)"
26
- muted: "oklch(0.60 0.03 280)"
27
- primary: "#DA291C"
28
- on-primary: "#ffffff"
29
- secondary: "#fedd00"
30
- on-secondary: "#1a1a2e"
31
- success: "#22c55e"
32
- on-success: "#1a1a2e"
33
- info: "#3b82f6"
34
- on-info: "#ffffff"
35
- primary-light: "rgba(218, 41, 28, 0.18)"
36
3
  typography:
37
4
  h1:
38
5
  fontFamily: Space Grotesk
@@ -134,18 +101,18 @@ The theme **respects the visitor's system color scheme**: light is canonical (wa
134
101
 
135
102
  ## Colors
136
103
 
137
- The palette is rooted in high-contrast ink on warm canvas (light) or off-white strokes on cool dark canvas (dark), with four vivid signal colors that hold across both modes.
104
+ The palette is rooted in high-contrast ink on the chosen canvas, with four vivid signal-color roles that hold across light and dark modes. Read the exact values from the `colors` and `colorsDark` frontmatter blocks — the prose below describes roles, not literal values.
138
105
 
139
- - **Primary (#DA291C):** "Vibes Red" — primary actions, danger states, hero accents. Always white text on top.
140
- - **Secondary (#fedd00):** "Signal Yellow" — highlights, hover fills, warning states. Always dark ink text on top.
141
- - **Success (#22c55e):** Active/success states, status indicators, toggle-on. Dark ink text.
142
- - **Info (#3b82f6):** Informational accents, modal title bars. White text on top.
143
- - **Background (light: #f5f0e0 / dark: oklch(0.18 0.02 280)):** Warm off-white canvas in light, cool dark canvas in dark. Never pure white in either mode.
144
- - **Card Background (light: #ffffff / dark: oklch(0.22 0.02 280)):** Solid surfaces for cards. Don't tint surfaces toward the signal colors.
145
- - **Text (light: #1a1a2e / dark: oklch(0.96 0.01 80)):** Near-black ink in light, off-white in dark. Same as border — every stroke is bold.
146
- - **Muted (light: #6b6b80 / dark: oklch(0.60 0.03 280)):** Secondary labels, metadata, captions.
106
+ - **Primary (`{{primary}}`):** Primary actions, danger states, hero accents. Always uses `on-primary` for text on top.
107
+ - **Secondary (`{{secondary}}`):** Highlights, hover fills, warning states. Always uses `on-secondary` for text on top.
108
+ - **Success (`{{success}}`):** Active/success states, status indicators, toggle-on. Uses `on-success` for text.
109
+ - **Info (`{{info}}`):** Informational accents, modal title bars. Uses `on-info` for text.
110
+ - **Background (`{{background}}`):** Canvas. Never pure white in either mode use the token, not a literal.
111
+ - **Card Background (`{{card-background}}`):** Solid surfaces for cards. Don't tint surfaces toward the signal colors.
112
+ - **Text (`{{text}}`):** Primary ink. Same value as `border` — every stroke is bold.
113
+ - **Muted (`{{muted}}`):** Secondary labels, metadata, captions.
147
114
 
148
- The four signal colors (red/yellow/green/blue) remain identical across both modes — they're already saturated enough to read on either canvas. The shadow color flips with the border (dark in light mode, off-white in dark mode), so the chunky offset shadow stays visible.
115
+ The four signal roles (primary/secondary/success/info) keep the same semantic meaning across both modes. The shadow color follows the `border` token, so the chunky offset shadow remains visible whichever mode is active.
149
116
 
150
117
  ## Typography
151
118
 
@@ -181,28 +148,28 @@ Tiny corner radius everywhere: 4px. Never pill-shaped. Every primary surface (na
181
148
 
182
149
  ### Action Elements
183
150
 
184
- Buttons are uppercase with letter-spacing. Primary button: red background, white text, 4x4 hard shadow. Secondary: yellow background, 3x3 shadow. Ghost: card background, no shadow, gains 3x3 on hover. All buttons lift on hover (translate -2px, -2px + larger shadow) and slam on press (translate 2px, 2px, no shadow). Transitions resolve in 0.15s.
151
+ Buttons are uppercase with letter-spacing. Primary button: `primary` background, `on-primary` text, 4x4 hard shadow. Secondary: `secondary` background, `on-secondary` text, 3x3 shadow. Ghost: `card-background`, no shadow, gains 3x3 on hover. All buttons lift on hover (translate -2px, -2px + larger shadow) and slam on press (translate 2px, 2px, no shadow). Transitions resolve in 0.15s.
185
152
 
186
153
  ### Containers & Surfaces
187
154
 
188
- Cards have 3px borders, 4px radius, and hard offset shadows. Keep all card backgrounds pure white. Hero cards feature a 6px horizontal accent bar at the top split into four equal color segments: red 0-25%, yellow 25-50%, green 50-75%, blue 75-100%.
155
+ Cards have 3px borders, 4px radius, and hard offset shadows. Keep card backgrounds as the `card-background` token (solid, untinted). Hero cards feature a 6px horizontal accent bar at the top split into four equal segments using the signal roles: `primary` 0-25%, `secondary` 25-50%, `success` 50-75%, `info` 75-100%.
189
156
 
190
157
  ### Inputs & Selection
191
158
 
192
- Inputs lift on focus with translate(-2px, -2px) + shadow. Checkboxes: 22x22, 3px border, green when checked. Toggles: 48x26, 3px border, 4px radius, yellow when on, knob translates with 0.2s cubic-bezier overshoot.
159
+ Inputs lift on focus with translate(-2px, -2px) + shadow. Checkboxes: 22x22, 3px border, `success` fill when checked. Toggles: 48x26, 3px border, 4px radius, `secondary` fill when on, knob translates with 0.2s cubic-bezier overshoot.
193
160
 
194
161
  ### Tables
195
162
 
196
- Full-bleed inside bordered cards. Headers: 0.6rem uppercase, 2px bottom border. Cells: 0.82rem, thin separators. Numeric columns use JetBrains Mono. Row hover fills with yellow instantly.
163
+ Full-bleed inside bordered cards. Headers: 0.6rem uppercase, 2px bottom border. Cells: 0.82rem, thin separators. Numeric columns use JetBrains Mono. Row hover fills with `secondary` instantly.
197
164
 
198
165
  ## Do's and Don'ts
199
166
 
200
167
  - DO use hard offset shadows on every elevated surface
201
168
  - DO keep all hovers/presses resolving in <=0.2s
202
169
  - DO use UPPERCASE for headings and labels
203
- - DO use the four-color system consistently: red=danger/primary, yellow=highlight/warning, green=success, blue=info
170
+ - DO use the four-role signal system consistently: `primary`=danger/CTA, `secondary`=highlight/warning, `success`=on/active, `info`=informational
204
171
  - DON'T use blurred shadows ever
205
172
  - DON'T use pill-shaped elements (border-radius > 4px)
206
- - DON'T tint card surfaces — keep them white
173
+ - DON'T tint card surfaces — keep them as the `card-background` token
207
174
  - DON'T use gradients on borders
208
175
  - DON'T ease slowly — everything snaps
package/themes/capsule.md CHANGED
@@ -1,17 +1,5 @@
1
1
  ---
2
2
  name: Capsule Split
3
- colors:
4
- comp-bg: "oklch(0.89 0.20 110)"
5
- comp-text: "oklch(0.00 0 0)"
6
- comp-border: "oklch(0.00 0 0 / 0.10)"
7
- comp-accent: "oklch(0.00 0 0)"
8
- comp-accent-text: "oklch(1.00 0 0)"
9
- comp-muted: "oklch(0.00 0 0 / 0.50)"
10
- color-background: "oklch(0.00 0 0)"
11
- capsule-frame: "oklch(1.00 0 0)"
12
- capsule-visual-bg: "oklch(0.13 0 0)"
13
- capsule-visual-text: "oklch(1.00 0 0)"
14
- capsule-visual-border: "oklch(1.00 0 0 / 0.20)"
15
3
  typography:
16
4
  body-md:
17
5
  fontFamily: var(--font-main)
package/themes/carbon.md CHANGED
@@ -1,16 +1,5 @@
1
1
  ---
2
2
  name: Carbon Panel
3
- colors:
4
- bg: "oklch(0.18 0.005 285)"
5
- card: "oklch(0.25 0.005 285)"
6
- border: "oklch(0.31 0.005 285)"
7
- fg: "oklch(1.00 0.000 0)"
8
- fg-muted: "oklch(0.87 0.01 258)"
9
- fg-dim: "oklch(0.71 0.02 261)"
10
- accent-amber: "oklch(0.79 0.18 75)"
11
- accent-coral: "oklch(0.68 0.20 35)"
12
- accent-red: "oklch(0.63 0.24 25)"
13
- accent-green: "oklch(0.77 0.22 145)"
14
3
  typography:
15
4
  body-md:
16
5
  fontFamily: -apple-system