@robosophy/tokens 0.0.1 → 0.0.3

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.
package/AGENTS.md ADDED
@@ -0,0 +1,9 @@
1
+ # Robosophy Tokens Package Notes
2
+
3
+ - Use `dist/ai-context.md` for agent-facing token rules and inventory.
4
+ - Use `dist/tokens.md` or `dist/tokens.json` to inspect available tokens before creating UI styles.
5
+ - Import `@robosophy/tokens/tokens.css` before using Robosophy CSS variables, unless the app imports `@robosophy/prime-theme/prime.css`.
6
+ - In PrimeVue apps, import only `@robosophy/prime-theme/prime.css`; it already includes `@robosophy/tokens/tokens.css`.
7
+ - Public CSS tokens use the `--rs-` prefix.
8
+ - Do not hardcode hex colors when an equivalent Robosophy token exists.
9
+ - Prefer semantic tokens over primitive palette tokens for component styles.
package/README.md CHANGED
@@ -2,11 +2,64 @@
2
2
 
3
3
  Tokens de diseño de Robosophy.
4
4
 
5
+ ## Instalacion
6
+
7
+ ```sh
8
+ npm install @robosophy/tokens
9
+ ```
10
+
11
+ ## Uso
12
+
13
+ Importa `tokens.css` cuando el proyecto consume tokens directamente o usa componentes Robosophy sin `@robosophy/prime-theme`.
14
+
5
15
  ```ts
6
16
  import "@robosophy/tokens/tokens.css";
7
- import "@robosophy/tokens/tailwind.css";
8
17
  import { tokens } from "@robosophy/tokens";
9
18
  import tokensJson from "@robosophy/tokens/tokens.json";
10
19
  ```
11
20
 
21
+ Si la app usa `@robosophy/prime-theme`, importa solo `@robosophy/prime-theme/prime.css`: ese CSS ya importa `@robosophy/tokens/tokens.css`.
22
+
23
+ Para Tailwind, agrega el artefacto de Tailwind ademas del CSS base que corresponda:
24
+
25
+ ```ts
26
+ import "@robosophy/tokens/tailwind.css";
27
+ ```
28
+
29
+ Los tokens CSS publicos usan el prefijo `--rs-`.
30
+
31
+ ```css
32
+ .button {
33
+ background: var(--rs-color-button-primary);
34
+ color: var(--rs-color-text-button-primary);
35
+ }
36
+ ```
37
+
38
+ ## Contexto para agentes de IA
39
+
40
+ El paquete publica contexto dentro de `node_modules/@robosophy/tokens`. Tambien queda disponible si el proyecto instala `@robosophy/prime-theme`, porque ese paquete depende de `@robosophy/tokens`.
41
+
42
+ - `AGENTS.md`: reglas cortas para agentes.
43
+ - `dist/ai-context.md`: reglas de uso, imports y lista de tokens.
44
+ - `dist/tokens.md`: referencia en Markdown.
45
+ - `dist/tokens.json`: datos estructurados.
46
+
47
+ Para que Codex u otros agentes tengan instrucciones a nivel proyecto, ejecuta:
48
+
49
+ ```sh
50
+ npx robosophy-tokens init
51
+ ```
52
+
53
+ El comando crea o actualiza una seccion marcada en `AGENTS.md` sin sobrescribir otras instrucciones del proyecto.
54
+
55
+ ## Referencia visual
56
+
57
+ Despues de instalar el paquete, puedes abrir:
58
+
59
+ ```txt
60
+ node_modules/@robosophy/tokens/dist/tokens.html
61
+ ```
62
+
63
+ Tambien puedes consultar `@robosophy/tokens/tokens.md`, `@robosophy/tokens/ai-context.md` y `@robosophy/tokens/tokens.json`.
64
+
12
65
  La fuente de verdad está en `src/tokens.ts`. Los archivos de `dist/` son generados.
@@ -0,0 +1,131 @@
1
+ <!-- AUTO-GENERATED FILE. DO NOT EDIT MANUALLY. -->
2
+ # Robosophy tokens AI context
3
+
4
+ Use this file as the source of truth when generating UI code in projects that depend on `@robosophy/tokens`.
5
+
6
+ ## Rules
7
+
8
+ - Import `@robosophy/tokens/tokens.css` before using Robosophy CSS variables, unless the app imports `@robosophy/prime-theme/prime.css`.
9
+ - In PrimeVue apps, import only `@robosophy/prime-theme/prime.css`; it already includes `@robosophy/tokens/tokens.css`.
10
+ - Use public CSS variables with the `--rs-` prefix.
11
+ - Do not hardcode hex colors when an equivalent Robosophy token exists.
12
+ - Prefer semantic tokens such as `--rs-color-text-primary`, `--rs-color-background-info`, or `--rs-color-button-primary` over primitive palette tokens when styling components.
13
+ - Use primitive palette tokens like `--rs-color-blue-500` mainly for defining new semantic decisions or one-off brand accents.
14
+ - Keep React and Vue package dependencies outside `@robosophy/tokens`.
15
+
16
+ ## Imports
17
+
18
+ Use the direct tokens import when the app does not use `@robosophy/prime-theme`:
19
+
20
+ ```ts
21
+ import "@robosophy/tokens/tokens.css";
22
+ ```
23
+
24
+ Use the Prime theme import in PrimeVue apps:
25
+
26
+ ```ts
27
+ import "@robosophy/prime-theme/prime.css";
28
+ ```
29
+
30
+ Optional token artifacts:
31
+
32
+ ```ts
33
+ import "@robosophy/tokens/tailwind.css";
34
+ import { tokens } from "@robosophy/tokens";
35
+ import tokensJson from "@robosophy/tokens/tokens.json";
36
+ ```
37
+
38
+ ## Token inventory
39
+
40
+ ### Color tokens
41
+
42
+ - `--rs-color-blue-50`: `#F0F9FD`
43
+ - `--rs-color-blue-100`: `#E6F6FB`
44
+ - `--rs-color-blue-500`: `#48A0D4`
45
+ - `--rs-color-blue-700`: `#2A719B`
46
+ - `--rs-color-green-100`: `#EDF7E6`
47
+ - `--rs-color-green-500`: `#4EAE01`
48
+ - `--rs-color-navygreen-100`: `#E5F1EA`
49
+ - `--rs-color-navygreen-500`: `#007C2F`
50
+ - `--rs-color-yellow-100`: `#FFF4E6`
51
+ - `--rs-color-yellow-500`: `#FF9001`
52
+ - `--rs-color-red-100`: `#FFF0F1`
53
+ - `--rs-color-red-500`: `#D80115`
54
+ - `--rs-color-darkblue-100`: `#E5ECF5`
55
+ - `--rs-color-darkblue-500`: `#004A9F`
56
+ - `--rs-color-navyblue-100`: `var(--rs-color-darkblue-100)` - Backfilled legacy navyblue reference from the darkblue scale.
57
+ - `--rs-color-navyblue-500`: `var(--rs-color-darkblue-500)` - Backfilled legacy navyblue reference from the darkblue scale.
58
+ - `--rs-color-gray-100`: `#F6F6F6`
59
+ - `--rs-color-gray-300`: `#EEEEEE`
60
+ - `--rs-color-gray-500`: `#D1D1D1`
61
+ - `--rs-color-gray-700`: `#909090`
62
+ - `--rs-color-black-500`: `#000000`
63
+ - `--rs-color-white-500`: `#FFFFFF`
64
+ - `--rs-color-background`: `var(--rs-color-gray-100)`
65
+ - `--rs-color-background-disabled`: `var(--rs-color-gray-100)`
66
+ - `--rs-color-background-caution`: `var(--rs-color-yellow-100)`
67
+ - `--rs-color-background-info`: `var(--rs-color-blue-100)`
68
+ - `--rs-color-surface-primary`: `var(--rs-color-white-500)`
69
+ - `--rs-color-surface-tertiary`: `var(--rs-color-black-500)`
70
+ - `--rs-color-text-primary`: `var(--rs-color-black-500)`
71
+ - `--rs-color-text-secondary`: `var(--rs-color-gray-700)`
72
+ - `--rs-color-text-brand`: `var(--rs-color-blue-500)`
73
+ - `--rs-color-text-brand-blue`: `var(--rs-color-blue-500)`
74
+ - `--rs-color-text-brand-green`: `var(--rs-color-green-500)`
75
+ - `--rs-color-text-brand-yellow`: `var(--rs-color-yellow-500)`
76
+ - `--rs-color-text-brand-red`: `var(--rs-color-red-500)`
77
+ - `--rs-color-text-placeholder`: `var(--rs-color-gray-500)`
78
+ - `--rs-color-text-caution`: `var(--rs-color-yellow-500)`
79
+ - `--rs-color-text-button-primary`: `var(--rs-color-white-500)`
80
+ - `--rs-color-text-button-secondary`: `var(--rs-color-black-500)`
81
+ - `--rs-color-text-button-tertiary`: `var(--rs-color-blue-500)`
82
+ - `--rs-color-text-button-tertiary-hover`: `var(--rs-color-blue-700)`
83
+ - `--rs-color-icon-primary`: `var(--rs-color-blue-500)`
84
+ - `--rs-color-icon-secondary`: `var(--rs-color-black-500)`
85
+ - `--rs-color-icon-button-primary`: `var(--rs-color-white-500)`
86
+ - `--rs-color-icon-button-secondary`: `var(--rs-color-black-500)`
87
+ - `--rs-color-icon-button-tertiary`: `var(--rs-color-blue-500)`
88
+ - `--rs-color-icon-input`: `var(--rs-color-black-500)`
89
+ - `--rs-color-icon-brand-blue`: `var(--rs-color-blue-500)`
90
+ - `--rs-color-icon-brand-green`: `var(--rs-color-green-500)`
91
+ - `--rs-color-icon-brand-yellow`: `var(--rs-color-yellow-500)`
92
+ - `--rs-color-icon-brand-red`: `var(--rs-color-red-500)`
93
+ - `--rs-color-icon-brand-darkblue`: `var(--rs-color-darkblue-500)`
94
+ - `--rs-color-stroke-default`: `var(--rs-color-gray-500)`
95
+ - `--rs-color-stroke-focused`: `var(--rs-color-blue-500)`
96
+ - `--rs-color-stroke-disabled`: `var(--rs-color-gray-100)`
97
+ - `--rs-color-stroke-success`: `var(--rs-color-green-500)`
98
+ - `--rs-color-stroke-caution`: `var(--rs-color-yellow-500)`
99
+ - `--rs-color-stroke-error`: `var(--rs-color-red-500)`
100
+ - `--rs-color-button-primary`: `var(--rs-color-blue-500)`
101
+ - `--rs-color-button-primary-hover`: `var(--rs-color-blue-700)`
102
+ - `--rs-color-button-secondary`: `var(--rs-color-gray-500)`
103
+ - `--rs-color-button-secondary-hover`: `var(--rs-color-gray-700)`
104
+ - `--rs-color-button-blue-surface`: `var(--rs-color-blue-100)`
105
+ - `--rs-color-button-green-surface`: `var(--rs-color-green-100)`
106
+ - `--rs-color-button-yellow-surface`: `var(--rs-color-yellow-100)`
107
+ - `--rs-color-button-red-surface`: `var(--rs-color-red-100)`
108
+
109
+ ### Font tokens
110
+
111
+ - `--rs-font-family`: `'Inter', sans-serif`
112
+
113
+ ### Component tokens
114
+
115
+ - `--rs-pill-bg-brand-blue`: `var(--rs-color-blue-100)`
116
+ - `--rs-pill-color-brand-blue`: `var(--rs-color-blue-500)`
117
+ - `--rs-pill-bg-brand-navyblue`: `var(--rs-color-navyblue-100)` - Legacy token referenced an undefined navyblue scale.
118
+ - `--rs-pill-color-brand-navyblue`: `var(--rs-color-navyblue-500)` - Legacy token referenced an undefined navyblue scale.
119
+ - `--rs-pill-bg-brand-green`: `var(--rs-color-green-100)`
120
+ - `--rs-pill-color-brand-green`: `var(--rs-color-green-500)`
121
+ - `--rs-pill-bg-brand-navygreen`: `var(--rs-color-navygreen-100)`
122
+ - `--rs-pill-color-brand-navygreen`: `var(--rs-color-navygreen-500)`
123
+ - `--rs-pill-bg-brand-red`: `var(--rs-color-red-100)`
124
+ - `--rs-pill-color-brand-red`: `var(--rs-color-red-500)`
125
+ - `--rs-pill-bg-brand-yellow`: `var(--rs-color-yellow-100)`
126
+ - `--rs-pill-color-brand-yellow`: `var(--rs-color-yellow-500)`
127
+ - `--rs-color-sidebar-background`: `var(--rs-color-white-500)`
128
+ - `--rs-color-sidebar-background-active`: `var(--rs-color-blue-100)`
129
+ - `--rs-color-sidebar-background-hover`: `var(--rs-color-blue-100)`
130
+ - `--rs-color-sidebar-stroke`: `var(--rs-color-gray-100)`
131
+ - `--rs-color-sidebar-stroke-active`: `var(--rs-color-blue-500)`
package/dist/cli.js ADDED
@@ -0,0 +1,83 @@
1
+ #!/usr/bin/env node
2
+ import { readFile, writeFile } from "node:fs/promises";
3
+ import { resolve } from "node:path";
4
+
5
+ const startMarker = "<!-- robosophy-tokens:start -->";
6
+ const endMarker = "<!-- robosophy-tokens:end -->";
7
+
8
+ const section = `${startMarker}
9
+ ## Robosophy tokens
10
+
11
+ This project uses \`@robosophy/tokens\`. When creating or editing UI:
12
+
13
+ - Import \`@robosophy/tokens/tokens.css\` before using Robosophy CSS variables, unless the app imports \`@robosophy/prime-theme/prime.css\`.
14
+ - In PrimeVue apps, import only \`@robosophy/prime-theme/prime.css\`; it already includes \`@robosophy/tokens/tokens.css\`.
15
+ - Use public CSS variables with the \`--rs-\` prefix.
16
+ - Do not hardcode hex colors when an equivalent Robosophy token exists.
17
+ - Prefer semantic tokens over primitive palette tokens for component styles.
18
+ - Check the installed token context before inventing new design values.
19
+
20
+ Installed references:
21
+
22
+ - \`node_modules/@robosophy/tokens/dist/ai-context.md\`
23
+ - \`node_modules/@robosophy/tokens/dist/tokens.md\`
24
+ - \`node_modules/@robosophy/tokens/dist/tokens.json\`
25
+ ${endMarker}`;
26
+
27
+ function usage() {
28
+ return `Usage: robosophy-tokens init
29
+
30
+ Commands:
31
+ init Create or update the Robosophy section in AGENTS.md
32
+ `;
33
+ }
34
+
35
+ async function readText(path) {
36
+ try {
37
+ return await readFile(path, "utf8");
38
+ } catch (error) {
39
+ if (error && error.code === "ENOENT") {
40
+ return null;
41
+ }
42
+
43
+ throw error;
44
+ }
45
+ }
46
+
47
+ function updateAgentsContent(current) {
48
+ if (current === null) {
49
+ return `# Project instructions
50
+
51
+ ${section}
52
+ `;
53
+ }
54
+
55
+ const markerPattern = new RegExp(`${startMarker}[\\s\\S]*?${endMarker}`);
56
+
57
+ if (markerPattern.test(current)) {
58
+ return current.replace(markerPattern, section);
59
+ }
60
+
61
+ const trimmed = current.trimEnd();
62
+ const prefix = trimmed.length > 0 ? `${trimmed}\n\n` : "";
63
+
64
+ return `${prefix}${section}\n`;
65
+ }
66
+
67
+ async function init() {
68
+ const agentsPath = resolve(process.cwd(), "AGENTS.md");
69
+ const current = await readText(agentsPath);
70
+ const next = updateAgentsContent(current);
71
+
72
+ await writeFile(agentsPath, next);
73
+ console.log(current === null ? "Created AGENTS.md with Robosophy token context." : "Updated AGENTS.md with Robosophy token context.");
74
+ }
75
+
76
+ const [command] = process.argv.slice(2);
77
+
78
+ if (command === "init") {
79
+ await init();
80
+ } else {
81
+ console.error(usage());
82
+ process.exitCode = command === undefined || command === "--help" || command === "-h" ? 0 : 1;
83
+ }
@@ -70,18 +70,6 @@ const preset = {
70
70
  "button-green-surface": "var(--rs-color-button-green-surface)",
71
71
  "button-yellow-surface": "var(--rs-color-button-yellow-surface)",
72
72
  "button-red-surface": "var(--rs-color-button-red-surface)",
73
- "pill-bg-brand-blue": "var(--rs-pill-bg-brand-blue)",
74
- "pill-color-brand-blue": "var(--rs-pill-color-brand-blue)",
75
- "pill-bg-brand-navyblue": "var(--rs-pill-bg-brand-navyblue)",
76
- "pill-color-brand-navyblue": "var(--rs-pill-color-brand-navyblue)",
77
- "pill-bg-brand-green": "var(--rs-pill-bg-brand-green)",
78
- "pill-color-brand-green": "var(--rs-pill-color-brand-green)",
79
- "pill-bg-brand-navygreen": "var(--rs-pill-bg-brand-navygreen)",
80
- "pill-color-brand-navygreen": "var(--rs-pill-color-brand-navygreen)",
81
- "pill-bg-brand-red": "var(--rs-pill-bg-brand-red)",
82
- "pill-color-brand-red": "var(--rs-pill-color-brand-red)",
83
- "pill-bg-brand-yellow": "var(--rs-pill-bg-brand-yellow)",
84
- "pill-color-brand-yellow": "var(--rs-pill-color-brand-yellow)",
85
73
  "sidebar-background": "var(--rs-color-sidebar-background)",
86
74
  "sidebar-background-active": "var(--rs-color-sidebar-background-active)",
87
75
  "sidebar-background-hover": "var(--rs-color-sidebar-background-hover)",
package/dist/tailwind.css CHANGED
@@ -67,21 +67,4 @@
67
67
  --color-rs-button-green-surface: var(--rs-color-button-green-surface);
68
68
  --color-rs-button-yellow-surface: var(--rs-color-button-yellow-surface);
69
69
  --color-rs-button-red-surface: var(--rs-color-button-red-surface);
70
- --pill-bg-brand-blue: var(--rs-pill-bg-brand-blue);
71
- --pill-color-brand-blue: var(--rs-pill-color-brand-blue);
72
- --pill-bg-brand-navyblue: var(--rs-pill-bg-brand-navyblue);
73
- --pill-color-brand-navyblue: var(--rs-pill-color-brand-navyblue);
74
- --pill-bg-brand-green: var(--rs-pill-bg-brand-green);
75
- --pill-color-brand-green: var(--rs-pill-color-brand-green);
76
- --pill-bg-brand-navygreen: var(--rs-pill-bg-brand-navygreen);
77
- --pill-color-brand-navygreen: var(--rs-pill-color-brand-navygreen);
78
- --pill-bg-brand-red: var(--rs-pill-bg-brand-red);
79
- --pill-color-brand-red: var(--rs-pill-color-brand-red);
80
- --pill-bg-brand-yellow: var(--rs-pill-bg-brand-yellow);
81
- --pill-color-brand-yellow: var(--rs-pill-color-brand-yellow);
82
- --color-rs-sidebar-background: var(--rs-color-sidebar-background);
83
- --color-rs-sidebar-background-active: var(--rs-color-sidebar-background-active);
84
- --color-rs-sidebar-background-hover: var(--rs-color-sidebar-background-hover);
85
- --color-rs-sidebar-stroke: var(--rs-color-sidebar-stroke);
86
- --color-rs-sidebar-stroke-active: var(--rs-color-sidebar-stroke-active);
87
70
  }
@@ -0,0 +1,746 @@
1
+ <!doctype html>
2
+ <!-- AUTO-GENERATED FILE. DO NOT EDIT MANUALLY. -->
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <title>Robosophy tokens</title>
8
+ <style>
9
+ :root {
10
+ --rs-color-blue-50: #F0F9FD;
11
+ --rs-color-blue-100: #E6F6FB;
12
+ --rs-color-blue-500: #48A0D4;
13
+ --rs-color-blue-700: #2A719B;
14
+ --rs-color-green-100: #EDF7E6;
15
+ --rs-color-green-500: #4EAE01;
16
+ --rs-color-navygreen-100: #E5F1EA;
17
+ --rs-color-navygreen-500: #007C2F;
18
+ --rs-color-yellow-100: #FFF4E6;
19
+ --rs-color-yellow-500: #FF9001;
20
+ --rs-color-red-100: #FFF0F1;
21
+ --rs-color-red-500: #D80115;
22
+ --rs-color-darkblue-100: #E5ECF5;
23
+ --rs-color-darkblue-500: #004A9F;
24
+ --rs-color-navyblue-100: var(--rs-color-darkblue-100);
25
+ --rs-color-navyblue-500: var(--rs-color-darkblue-500);
26
+ --rs-color-gray-100: #F6F6F6;
27
+ --rs-color-gray-300: #EEEEEE;
28
+ --rs-color-gray-500: #D1D1D1;
29
+ --rs-color-gray-700: #909090;
30
+ --rs-color-black-500: #000000;
31
+ --rs-color-white-500: #FFFFFF;
32
+ --rs-font-family: 'Inter', sans-serif;
33
+ --rs-color-background: var(--rs-color-gray-100);
34
+ --rs-color-background-disabled: var(--rs-color-gray-100);
35
+ --rs-color-background-caution: var(--rs-color-yellow-100);
36
+ --rs-color-background-info: var(--rs-color-blue-100);
37
+ --rs-color-surface-primary: var(--rs-color-white-500);
38
+ --rs-color-surface-tertiary: var(--rs-color-black-500);
39
+ --rs-color-text-primary: var(--rs-color-black-500);
40
+ --rs-color-text-secondary: var(--rs-color-gray-700);
41
+ --rs-color-text-brand: var(--rs-color-blue-500);
42
+ --rs-color-text-brand-blue: var(--rs-color-blue-500);
43
+ --rs-color-text-brand-green: var(--rs-color-green-500);
44
+ --rs-color-text-brand-yellow: var(--rs-color-yellow-500);
45
+ --rs-color-text-brand-red: var(--rs-color-red-500);
46
+ --rs-color-text-placeholder: var(--rs-color-gray-500);
47
+ --rs-color-text-caution: var(--rs-color-yellow-500);
48
+ --rs-color-text-button-primary: var(--rs-color-white-500);
49
+ --rs-color-text-button-secondary: var(--rs-color-black-500);
50
+ --rs-color-text-button-tertiary: var(--rs-color-blue-500);
51
+ --rs-color-text-button-tertiary-hover: var(--rs-color-blue-700);
52
+ --rs-color-icon-primary: var(--rs-color-blue-500);
53
+ --rs-color-icon-secondary: var(--rs-color-black-500);
54
+ --rs-color-icon-button-primary: var(--rs-color-white-500);
55
+ --rs-color-icon-button-secondary: var(--rs-color-black-500);
56
+ --rs-color-icon-button-tertiary: var(--rs-color-blue-500);
57
+ --rs-color-icon-input: var(--rs-color-black-500);
58
+ --rs-color-icon-brand-blue: var(--rs-color-blue-500);
59
+ --rs-color-icon-brand-green: var(--rs-color-green-500);
60
+ --rs-color-icon-brand-yellow: var(--rs-color-yellow-500);
61
+ --rs-color-icon-brand-red: var(--rs-color-red-500);
62
+ --rs-color-icon-brand-darkblue: var(--rs-color-darkblue-500);
63
+ --rs-color-stroke-default: var(--rs-color-gray-500);
64
+ --rs-color-stroke-focused: var(--rs-color-blue-500);
65
+ --rs-color-stroke-disabled: var(--rs-color-gray-100);
66
+ --rs-color-stroke-success: var(--rs-color-green-500);
67
+ --rs-color-stroke-caution: var(--rs-color-yellow-500);
68
+ --rs-color-stroke-error: var(--rs-color-red-500);
69
+ --rs-color-button-primary: var(--rs-color-blue-500);
70
+ --rs-color-button-primary-hover: var(--rs-color-blue-700);
71
+ --rs-color-button-secondary: var(--rs-color-gray-500);
72
+ --rs-color-button-secondary-hover: var(--rs-color-gray-700);
73
+ --rs-color-button-blue-surface: var(--rs-color-blue-100);
74
+ --rs-color-button-green-surface: var(--rs-color-green-100);
75
+ --rs-color-button-yellow-surface: var(--rs-color-yellow-100);
76
+ --rs-color-button-red-surface: var(--rs-color-red-100);
77
+ --rs-pill-bg-brand-blue: var(--rs-color-blue-100);
78
+ --rs-pill-color-brand-blue: var(--rs-color-blue-500);
79
+ --rs-pill-bg-brand-navyblue: var(--rs-color-navyblue-100);
80
+ --rs-pill-color-brand-navyblue: var(--rs-color-navyblue-500);
81
+ --rs-pill-bg-brand-green: var(--rs-color-green-100);
82
+ --rs-pill-color-brand-green: var(--rs-color-green-500);
83
+ --rs-pill-bg-brand-navygreen: var(--rs-color-navygreen-100);
84
+ --rs-pill-color-brand-navygreen: var(--rs-color-navygreen-500);
85
+ --rs-pill-bg-brand-red: var(--rs-color-red-100);
86
+ --rs-pill-color-brand-red: var(--rs-color-red-500);
87
+ --rs-pill-bg-brand-yellow: var(--rs-color-yellow-100);
88
+ --rs-pill-color-brand-yellow: var(--rs-color-yellow-500);
89
+ --rs-color-sidebar-background: var(--rs-color-white-500);
90
+ --rs-color-sidebar-background-active: var(--rs-color-blue-100);
91
+ --rs-color-sidebar-background-hover: var(--rs-color-blue-100);
92
+ --rs-color-sidebar-stroke: var(--rs-color-gray-100);
93
+ --rs-color-sidebar-stroke-active: var(--rs-color-blue-500);
94
+ --page-background: #f7f8fa;
95
+ --page-surface: #ffffff;
96
+ --page-text: #1f2933;
97
+ --page-muted: #667085;
98
+ --page-border: #d9dee7;
99
+ }
100
+
101
+ * {
102
+ box-sizing: border-box;
103
+ }
104
+
105
+ body {
106
+ margin: 0;
107
+ background: var(--page-background);
108
+ color: var(--page-text);
109
+ font-family: var(--rs-font-family);
110
+ line-height: 1.5;
111
+ }
112
+
113
+ header,
114
+ main {
115
+ width: min(1120px, calc(100% - 32px));
116
+ margin: 0 auto;
117
+ }
118
+
119
+ header {
120
+ padding: 48px 0 24px;
121
+ }
122
+
123
+ h1 {
124
+ margin: 0 0 12px;
125
+ font-size: 32px;
126
+ line-height: 1.15;
127
+ }
128
+
129
+ p {
130
+ margin: 0;
131
+ color: var(--page-muted);
132
+ }
133
+
134
+ section {
135
+ margin: 24px 0;
136
+ }
137
+
138
+ h2 {
139
+ margin: 0 0 12px;
140
+ font-size: 20px;
141
+ }
142
+
143
+ table {
144
+ width: 100%;
145
+ border-collapse: collapse;
146
+ background: var(--page-surface);
147
+ border: 1px solid var(--page-border);
148
+ }
149
+
150
+ th,
151
+ td {
152
+ padding: 12px;
153
+ border-bottom: 1px solid var(--page-border);
154
+ text-align: left;
155
+ vertical-align: middle;
156
+ }
157
+
158
+ th {
159
+ color: var(--page-muted);
160
+ font-size: 13px;
161
+ font-weight: 600;
162
+ }
163
+
164
+ code {
165
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
166
+ font-size: 13px;
167
+ }
168
+
169
+ .swatch {
170
+ display: inline-block;
171
+ width: 28px;
172
+ height: 28px;
173
+ margin-right: 10px;
174
+ border: 1px solid var(--page-border);
175
+ vertical-align: middle;
176
+ }
177
+
178
+ @media (max-width: 760px) {
179
+ table,
180
+ thead,
181
+ tbody,
182
+ tr,
183
+ th,
184
+ td {
185
+ display: block;
186
+ }
187
+
188
+ thead {
189
+ display: none;
190
+ }
191
+
192
+ tr {
193
+ border-bottom: 1px solid var(--page-border);
194
+ }
195
+
196
+ td {
197
+ border-bottom: 0;
198
+ }
199
+ }
200
+ </style>
201
+ </head>
202
+ <body>
203
+ <header>
204
+ <h1>Robosophy tokens</h1>
205
+ <p>Generated from <code>packages/tokens/src/tokens.ts</code>. Public CSS variables use the <code>--rs-</code> prefix.</p>
206
+ </header>
207
+ <main>
208
+ <section id="color">
209
+ <h2>Color tokens</h2>
210
+ <table>
211
+ <thead>
212
+ <tr><th>Token</th><th>CSS variable</th><th>Value</th><th>Description</th></tr>
213
+ </thead>
214
+ <tbody>
215
+ <tr>
216
+ <td><span class="swatch" style="background: var(--rs-color-blue-50);"></span><code>color-blue-50</code></td>
217
+ <td><code>--rs-color-blue-50</code></td>
218
+ <td><code>#F0F9FD</code></td>
219
+ <td></td>
220
+ </tr>
221
+ <tr>
222
+ <td><span class="swatch" style="background: var(--rs-color-blue-100);"></span><code>color-blue-100</code></td>
223
+ <td><code>--rs-color-blue-100</code></td>
224
+ <td><code>#E6F6FB</code></td>
225
+ <td></td>
226
+ </tr>
227
+ <tr>
228
+ <td><span class="swatch" style="background: var(--rs-color-blue-500);"></span><code>color-blue-500</code></td>
229
+ <td><code>--rs-color-blue-500</code></td>
230
+ <td><code>#48A0D4</code></td>
231
+ <td></td>
232
+ </tr>
233
+ <tr>
234
+ <td><span class="swatch" style="background: var(--rs-color-blue-700);"></span><code>color-blue-700</code></td>
235
+ <td><code>--rs-color-blue-700</code></td>
236
+ <td><code>#2A719B</code></td>
237
+ <td></td>
238
+ </tr>
239
+ <tr>
240
+ <td><span class="swatch" style="background: var(--rs-color-green-100);"></span><code>color-green-100</code></td>
241
+ <td><code>--rs-color-green-100</code></td>
242
+ <td><code>#EDF7E6</code></td>
243
+ <td></td>
244
+ </tr>
245
+ <tr>
246
+ <td><span class="swatch" style="background: var(--rs-color-green-500);"></span><code>color-green-500</code></td>
247
+ <td><code>--rs-color-green-500</code></td>
248
+ <td><code>#4EAE01</code></td>
249
+ <td></td>
250
+ </tr>
251
+ <tr>
252
+ <td><span class="swatch" style="background: var(--rs-color-navygreen-100);"></span><code>color-navygreen-100</code></td>
253
+ <td><code>--rs-color-navygreen-100</code></td>
254
+ <td><code>#E5F1EA</code></td>
255
+ <td></td>
256
+ </tr>
257
+ <tr>
258
+ <td><span class="swatch" style="background: var(--rs-color-navygreen-500);"></span><code>color-navygreen-500</code></td>
259
+ <td><code>--rs-color-navygreen-500</code></td>
260
+ <td><code>#007C2F</code></td>
261
+ <td></td>
262
+ </tr>
263
+ <tr>
264
+ <td><span class="swatch" style="background: var(--rs-color-yellow-100);"></span><code>color-yellow-100</code></td>
265
+ <td><code>--rs-color-yellow-100</code></td>
266
+ <td><code>#FFF4E6</code></td>
267
+ <td></td>
268
+ </tr>
269
+ <tr>
270
+ <td><span class="swatch" style="background: var(--rs-color-yellow-500);"></span><code>color-yellow-500</code></td>
271
+ <td><code>--rs-color-yellow-500</code></td>
272
+ <td><code>#FF9001</code></td>
273
+ <td></td>
274
+ </tr>
275
+ <tr>
276
+ <td><span class="swatch" style="background: var(--rs-color-red-100);"></span><code>color-red-100</code></td>
277
+ <td><code>--rs-color-red-100</code></td>
278
+ <td><code>#FFF0F1</code></td>
279
+ <td></td>
280
+ </tr>
281
+ <tr>
282
+ <td><span class="swatch" style="background: var(--rs-color-red-500);"></span><code>color-red-500</code></td>
283
+ <td><code>--rs-color-red-500</code></td>
284
+ <td><code>#D80115</code></td>
285
+ <td></td>
286
+ </tr>
287
+ <tr>
288
+ <td><span class="swatch" style="background: var(--rs-color-darkblue-100);"></span><code>color-darkblue-100</code></td>
289
+ <td><code>--rs-color-darkblue-100</code></td>
290
+ <td><code>#E5ECF5</code></td>
291
+ <td></td>
292
+ </tr>
293
+ <tr>
294
+ <td><span class="swatch" style="background: var(--rs-color-darkblue-500);"></span><code>color-darkblue-500</code></td>
295
+ <td><code>--rs-color-darkblue-500</code></td>
296
+ <td><code>#004A9F</code></td>
297
+ <td></td>
298
+ </tr>
299
+ <tr>
300
+ <td><span class="swatch" style="background: var(--rs-color-navyblue-100);"></span><code>color-navyblue-100</code></td>
301
+ <td><code>--rs-color-navyblue-100</code></td>
302
+ <td><code>var(--rs-color-darkblue-100)</code></td>
303
+ <td>Backfilled legacy navyblue reference from the darkblue scale.</td>
304
+ </tr>
305
+ <tr>
306
+ <td><span class="swatch" style="background: var(--rs-color-navyblue-500);"></span><code>color-navyblue-500</code></td>
307
+ <td><code>--rs-color-navyblue-500</code></td>
308
+ <td><code>var(--rs-color-darkblue-500)</code></td>
309
+ <td>Backfilled legacy navyblue reference from the darkblue scale.</td>
310
+ </tr>
311
+ <tr>
312
+ <td><span class="swatch" style="background: var(--rs-color-gray-100);"></span><code>color-gray-100</code></td>
313
+ <td><code>--rs-color-gray-100</code></td>
314
+ <td><code>#F6F6F6</code></td>
315
+ <td></td>
316
+ </tr>
317
+ <tr>
318
+ <td><span class="swatch" style="background: var(--rs-color-gray-300);"></span><code>color-gray-300</code></td>
319
+ <td><code>--rs-color-gray-300</code></td>
320
+ <td><code>#EEEEEE</code></td>
321
+ <td></td>
322
+ </tr>
323
+ <tr>
324
+ <td><span class="swatch" style="background: var(--rs-color-gray-500);"></span><code>color-gray-500</code></td>
325
+ <td><code>--rs-color-gray-500</code></td>
326
+ <td><code>#D1D1D1</code></td>
327
+ <td></td>
328
+ </tr>
329
+ <tr>
330
+ <td><span class="swatch" style="background: var(--rs-color-gray-700);"></span><code>color-gray-700</code></td>
331
+ <td><code>--rs-color-gray-700</code></td>
332
+ <td><code>#909090</code></td>
333
+ <td></td>
334
+ </tr>
335
+ <tr>
336
+ <td><span class="swatch" style="background: var(--rs-color-black-500);"></span><code>color-black-500</code></td>
337
+ <td><code>--rs-color-black-500</code></td>
338
+ <td><code>#000000</code></td>
339
+ <td></td>
340
+ </tr>
341
+ <tr>
342
+ <td><span class="swatch" style="background: var(--rs-color-white-500);"></span><code>color-white-500</code></td>
343
+ <td><code>--rs-color-white-500</code></td>
344
+ <td><code>#FFFFFF</code></td>
345
+ <td></td>
346
+ </tr>
347
+ <tr>
348
+ <td><span class="swatch" style="background: var(--rs-color-background);"></span><code>color-background</code></td>
349
+ <td><code>--rs-color-background</code></td>
350
+ <td><code>var(--rs-color-gray-100)</code></td>
351
+ <td></td>
352
+ </tr>
353
+ <tr>
354
+ <td><span class="swatch" style="background: var(--rs-color-background-disabled);"></span><code>color-background-disabled</code></td>
355
+ <td><code>--rs-color-background-disabled</code></td>
356
+ <td><code>var(--rs-color-gray-100)</code></td>
357
+ <td></td>
358
+ </tr>
359
+ <tr>
360
+ <td><span class="swatch" style="background: var(--rs-color-background-caution);"></span><code>color-background-caution</code></td>
361
+ <td><code>--rs-color-background-caution</code></td>
362
+ <td><code>var(--rs-color-yellow-100)</code></td>
363
+ <td></td>
364
+ </tr>
365
+ <tr>
366
+ <td><span class="swatch" style="background: var(--rs-color-background-info);"></span><code>color-background-info</code></td>
367
+ <td><code>--rs-color-background-info</code></td>
368
+ <td><code>var(--rs-color-blue-100)</code></td>
369
+ <td></td>
370
+ </tr>
371
+ <tr>
372
+ <td><span class="swatch" style="background: var(--rs-color-surface-primary);"></span><code>color-surface-primary</code></td>
373
+ <td><code>--rs-color-surface-primary</code></td>
374
+ <td><code>var(--rs-color-white-500)</code></td>
375
+ <td></td>
376
+ </tr>
377
+ <tr>
378
+ <td><span class="swatch" style="background: var(--rs-color-surface-tertiary);"></span><code>color-surface-tertiary</code></td>
379
+ <td><code>--rs-color-surface-tertiary</code></td>
380
+ <td><code>var(--rs-color-black-500)</code></td>
381
+ <td></td>
382
+ </tr>
383
+ <tr>
384
+ <td><span class="swatch" style="background: var(--rs-color-text-primary);"></span><code>color-text-primary</code></td>
385
+ <td><code>--rs-color-text-primary</code></td>
386
+ <td><code>var(--rs-color-black-500)</code></td>
387
+ <td></td>
388
+ </tr>
389
+ <tr>
390
+ <td><span class="swatch" style="background: var(--rs-color-text-secondary);"></span><code>color-text-secondary</code></td>
391
+ <td><code>--rs-color-text-secondary</code></td>
392
+ <td><code>var(--rs-color-gray-700)</code></td>
393
+ <td></td>
394
+ </tr>
395
+ <tr>
396
+ <td><span class="swatch" style="background: var(--rs-color-text-brand);"></span><code>color-text-brand</code></td>
397
+ <td><code>--rs-color-text-brand</code></td>
398
+ <td><code>var(--rs-color-blue-500)</code></td>
399
+ <td></td>
400
+ </tr>
401
+ <tr>
402
+ <td><span class="swatch" style="background: var(--rs-color-text-brand-blue);"></span><code>color-text-brand-blue</code></td>
403
+ <td><code>--rs-color-text-brand-blue</code></td>
404
+ <td><code>var(--rs-color-blue-500)</code></td>
405
+ <td></td>
406
+ </tr>
407
+ <tr>
408
+ <td><span class="swatch" style="background: var(--rs-color-text-brand-green);"></span><code>color-text-brand-green</code></td>
409
+ <td><code>--rs-color-text-brand-green</code></td>
410
+ <td><code>var(--rs-color-green-500)</code></td>
411
+ <td></td>
412
+ </tr>
413
+ <tr>
414
+ <td><span class="swatch" style="background: var(--rs-color-text-brand-yellow);"></span><code>color-text-brand-yellow</code></td>
415
+ <td><code>--rs-color-text-brand-yellow</code></td>
416
+ <td><code>var(--rs-color-yellow-500)</code></td>
417
+ <td></td>
418
+ </tr>
419
+ <tr>
420
+ <td><span class="swatch" style="background: var(--rs-color-text-brand-red);"></span><code>color-text-brand-red</code></td>
421
+ <td><code>--rs-color-text-brand-red</code></td>
422
+ <td><code>var(--rs-color-red-500)</code></td>
423
+ <td></td>
424
+ </tr>
425
+ <tr>
426
+ <td><span class="swatch" style="background: var(--rs-color-text-placeholder);"></span><code>color-text-placeholder</code></td>
427
+ <td><code>--rs-color-text-placeholder</code></td>
428
+ <td><code>var(--rs-color-gray-500)</code></td>
429
+ <td></td>
430
+ </tr>
431
+ <tr>
432
+ <td><span class="swatch" style="background: var(--rs-color-text-caution);"></span><code>color-text-caution</code></td>
433
+ <td><code>--rs-color-text-caution</code></td>
434
+ <td><code>var(--rs-color-yellow-500)</code></td>
435
+ <td></td>
436
+ </tr>
437
+ <tr>
438
+ <td><span class="swatch" style="background: var(--rs-color-text-button-primary);"></span><code>color-text-button-primary</code></td>
439
+ <td><code>--rs-color-text-button-primary</code></td>
440
+ <td><code>var(--rs-color-white-500)</code></td>
441
+ <td></td>
442
+ </tr>
443
+ <tr>
444
+ <td><span class="swatch" style="background: var(--rs-color-text-button-secondary);"></span><code>color-text-button-secondary</code></td>
445
+ <td><code>--rs-color-text-button-secondary</code></td>
446
+ <td><code>var(--rs-color-black-500)</code></td>
447
+ <td></td>
448
+ </tr>
449
+ <tr>
450
+ <td><span class="swatch" style="background: var(--rs-color-text-button-tertiary);"></span><code>color-text-button-tertiary</code></td>
451
+ <td><code>--rs-color-text-button-tertiary</code></td>
452
+ <td><code>var(--rs-color-blue-500)</code></td>
453
+ <td></td>
454
+ </tr>
455
+ <tr>
456
+ <td><span class="swatch" style="background: var(--rs-color-text-button-tertiary-hover);"></span><code>color-text-button-tertiary-hover</code></td>
457
+ <td><code>--rs-color-text-button-tertiary-hover</code></td>
458
+ <td><code>var(--rs-color-blue-700)</code></td>
459
+ <td></td>
460
+ </tr>
461
+ <tr>
462
+ <td><span class="swatch" style="background: var(--rs-color-icon-primary);"></span><code>color-icon-primary</code></td>
463
+ <td><code>--rs-color-icon-primary</code></td>
464
+ <td><code>var(--rs-color-blue-500)</code></td>
465
+ <td></td>
466
+ </tr>
467
+ <tr>
468
+ <td><span class="swatch" style="background: var(--rs-color-icon-secondary);"></span><code>color-icon-secondary</code></td>
469
+ <td><code>--rs-color-icon-secondary</code></td>
470
+ <td><code>var(--rs-color-black-500)</code></td>
471
+ <td></td>
472
+ </tr>
473
+ <tr>
474
+ <td><span class="swatch" style="background: var(--rs-color-icon-button-primary);"></span><code>color-icon-button-primary</code></td>
475
+ <td><code>--rs-color-icon-button-primary</code></td>
476
+ <td><code>var(--rs-color-white-500)</code></td>
477
+ <td></td>
478
+ </tr>
479
+ <tr>
480
+ <td><span class="swatch" style="background: var(--rs-color-icon-button-secondary);"></span><code>color-icon-button-secondary</code></td>
481
+ <td><code>--rs-color-icon-button-secondary</code></td>
482
+ <td><code>var(--rs-color-black-500)</code></td>
483
+ <td></td>
484
+ </tr>
485
+ <tr>
486
+ <td><span class="swatch" style="background: var(--rs-color-icon-button-tertiary);"></span><code>color-icon-button-tertiary</code></td>
487
+ <td><code>--rs-color-icon-button-tertiary</code></td>
488
+ <td><code>var(--rs-color-blue-500)</code></td>
489
+ <td></td>
490
+ </tr>
491
+ <tr>
492
+ <td><span class="swatch" style="background: var(--rs-color-icon-input);"></span><code>color-icon-input</code></td>
493
+ <td><code>--rs-color-icon-input</code></td>
494
+ <td><code>var(--rs-color-black-500)</code></td>
495
+ <td></td>
496
+ </tr>
497
+ <tr>
498
+ <td><span class="swatch" style="background: var(--rs-color-icon-brand-blue);"></span><code>color-icon-brand-blue</code></td>
499
+ <td><code>--rs-color-icon-brand-blue</code></td>
500
+ <td><code>var(--rs-color-blue-500)</code></td>
501
+ <td></td>
502
+ </tr>
503
+ <tr>
504
+ <td><span class="swatch" style="background: var(--rs-color-icon-brand-green);"></span><code>color-icon-brand-green</code></td>
505
+ <td><code>--rs-color-icon-brand-green</code></td>
506
+ <td><code>var(--rs-color-green-500)</code></td>
507
+ <td></td>
508
+ </tr>
509
+ <tr>
510
+ <td><span class="swatch" style="background: var(--rs-color-icon-brand-yellow);"></span><code>color-icon-brand-yellow</code></td>
511
+ <td><code>--rs-color-icon-brand-yellow</code></td>
512
+ <td><code>var(--rs-color-yellow-500)</code></td>
513
+ <td></td>
514
+ </tr>
515
+ <tr>
516
+ <td><span class="swatch" style="background: var(--rs-color-icon-brand-red);"></span><code>color-icon-brand-red</code></td>
517
+ <td><code>--rs-color-icon-brand-red</code></td>
518
+ <td><code>var(--rs-color-red-500)</code></td>
519
+ <td></td>
520
+ </tr>
521
+ <tr>
522
+ <td><span class="swatch" style="background: var(--rs-color-icon-brand-darkblue);"></span><code>color-icon-brand-darkblue</code></td>
523
+ <td><code>--rs-color-icon-brand-darkblue</code></td>
524
+ <td><code>var(--rs-color-darkblue-500)</code></td>
525
+ <td></td>
526
+ </tr>
527
+ <tr>
528
+ <td><span class="swatch" style="background: var(--rs-color-stroke-default);"></span><code>color-stroke-default</code></td>
529
+ <td><code>--rs-color-stroke-default</code></td>
530
+ <td><code>var(--rs-color-gray-500)</code></td>
531
+ <td></td>
532
+ </tr>
533
+ <tr>
534
+ <td><span class="swatch" style="background: var(--rs-color-stroke-focused);"></span><code>color-stroke-focused</code></td>
535
+ <td><code>--rs-color-stroke-focused</code></td>
536
+ <td><code>var(--rs-color-blue-500)</code></td>
537
+ <td></td>
538
+ </tr>
539
+ <tr>
540
+ <td><span class="swatch" style="background: var(--rs-color-stroke-disabled);"></span><code>color-stroke-disabled</code></td>
541
+ <td><code>--rs-color-stroke-disabled</code></td>
542
+ <td><code>var(--rs-color-gray-100)</code></td>
543
+ <td></td>
544
+ </tr>
545
+ <tr>
546
+ <td><span class="swatch" style="background: var(--rs-color-stroke-success);"></span><code>color-stroke-success</code></td>
547
+ <td><code>--rs-color-stroke-success</code></td>
548
+ <td><code>var(--rs-color-green-500)</code></td>
549
+ <td></td>
550
+ </tr>
551
+ <tr>
552
+ <td><span class="swatch" style="background: var(--rs-color-stroke-caution);"></span><code>color-stroke-caution</code></td>
553
+ <td><code>--rs-color-stroke-caution</code></td>
554
+ <td><code>var(--rs-color-yellow-500)</code></td>
555
+ <td></td>
556
+ </tr>
557
+ <tr>
558
+ <td><span class="swatch" style="background: var(--rs-color-stroke-error);"></span><code>color-stroke-error</code></td>
559
+ <td><code>--rs-color-stroke-error</code></td>
560
+ <td><code>var(--rs-color-red-500)</code></td>
561
+ <td></td>
562
+ </tr>
563
+ <tr>
564
+ <td><span class="swatch" style="background: var(--rs-color-button-primary);"></span><code>color-button-primary</code></td>
565
+ <td><code>--rs-color-button-primary</code></td>
566
+ <td><code>var(--rs-color-blue-500)</code></td>
567
+ <td></td>
568
+ </tr>
569
+ <tr>
570
+ <td><span class="swatch" style="background: var(--rs-color-button-primary-hover);"></span><code>color-button-primary-hover</code></td>
571
+ <td><code>--rs-color-button-primary-hover</code></td>
572
+ <td><code>var(--rs-color-blue-700)</code></td>
573
+ <td></td>
574
+ </tr>
575
+ <tr>
576
+ <td><span class="swatch" style="background: var(--rs-color-button-secondary);"></span><code>color-button-secondary</code></td>
577
+ <td><code>--rs-color-button-secondary</code></td>
578
+ <td><code>var(--rs-color-gray-500)</code></td>
579
+ <td></td>
580
+ </tr>
581
+ <tr>
582
+ <td><span class="swatch" style="background: var(--rs-color-button-secondary-hover);"></span><code>color-button-secondary-hover</code></td>
583
+ <td><code>--rs-color-button-secondary-hover</code></td>
584
+ <td><code>var(--rs-color-gray-700)</code></td>
585
+ <td></td>
586
+ </tr>
587
+ <tr>
588
+ <td><span class="swatch" style="background: var(--rs-color-button-blue-surface);"></span><code>color-button-blue-surface</code></td>
589
+ <td><code>--rs-color-button-blue-surface</code></td>
590
+ <td><code>var(--rs-color-blue-100)</code></td>
591
+ <td></td>
592
+ </tr>
593
+ <tr>
594
+ <td><span class="swatch" style="background: var(--rs-color-button-green-surface);"></span><code>color-button-green-surface</code></td>
595
+ <td><code>--rs-color-button-green-surface</code></td>
596
+ <td><code>var(--rs-color-green-100)</code></td>
597
+ <td></td>
598
+ </tr>
599
+ <tr>
600
+ <td><span class="swatch" style="background: var(--rs-color-button-yellow-surface);"></span><code>color-button-yellow-surface</code></td>
601
+ <td><code>--rs-color-button-yellow-surface</code></td>
602
+ <td><code>var(--rs-color-yellow-100)</code></td>
603
+ <td></td>
604
+ </tr>
605
+ <tr>
606
+ <td><span class="swatch" style="background: var(--rs-color-button-red-surface);"></span><code>color-button-red-surface</code></td>
607
+ <td><code>--rs-color-button-red-surface</code></td>
608
+ <td><code>var(--rs-color-red-100)</code></td>
609
+ <td></td>
610
+ </tr>
611
+ </tbody>
612
+ </table>
613
+ </section>
614
+
615
+ <section id="font">
616
+ <h2>Font tokens</h2>
617
+ <table>
618
+ <thead>
619
+ <tr><th>Token</th><th>CSS variable</th><th>Value</th><th>Description</th></tr>
620
+ </thead>
621
+ <tbody>
622
+ <tr>
623
+ <td><code>font-family</code></td>
624
+ <td><code>--rs-font-family</code></td>
625
+ <td><code>'Inter', sans-serif</code></td>
626
+ <td></td>
627
+ </tr>
628
+ </tbody>
629
+ </table>
630
+ </section>
631
+
632
+ <section id="component">
633
+ <h2>Component tokens</h2>
634
+ <table>
635
+ <thead>
636
+ <tr><th>Token</th><th>CSS variable</th><th>Value</th><th>Description</th></tr>
637
+ </thead>
638
+ <tbody>
639
+ <tr>
640
+ <td><span class="swatch" style="background: var(--rs-pill-bg-brand-blue);"></span><code>pill-bg-brand-blue</code></td>
641
+ <td><code>--rs-pill-bg-brand-blue</code></td>
642
+ <td><code>var(--rs-color-blue-100)</code></td>
643
+ <td></td>
644
+ </tr>
645
+ <tr>
646
+ <td><span class="swatch" style="background: var(--rs-pill-color-brand-blue);"></span><code>pill-color-brand-blue</code></td>
647
+ <td><code>--rs-pill-color-brand-blue</code></td>
648
+ <td><code>var(--rs-color-blue-500)</code></td>
649
+ <td></td>
650
+ </tr>
651
+ <tr>
652
+ <td><span class="swatch" style="background: var(--rs-pill-bg-brand-navyblue);"></span><code>pill-bg-brand-navyblue</code></td>
653
+ <td><code>--rs-pill-bg-brand-navyblue</code></td>
654
+ <td><code>var(--rs-color-navyblue-100)</code></td>
655
+ <td>Legacy token referenced an undefined navyblue scale.</td>
656
+ </tr>
657
+ <tr>
658
+ <td><span class="swatch" style="background: var(--rs-pill-color-brand-navyblue);"></span><code>pill-color-brand-navyblue</code></td>
659
+ <td><code>--rs-pill-color-brand-navyblue</code></td>
660
+ <td><code>var(--rs-color-navyblue-500)</code></td>
661
+ <td>Legacy token referenced an undefined navyblue scale.</td>
662
+ </tr>
663
+ <tr>
664
+ <td><span class="swatch" style="background: var(--rs-pill-bg-brand-green);"></span><code>pill-bg-brand-green</code></td>
665
+ <td><code>--rs-pill-bg-brand-green</code></td>
666
+ <td><code>var(--rs-color-green-100)</code></td>
667
+ <td></td>
668
+ </tr>
669
+ <tr>
670
+ <td><span class="swatch" style="background: var(--rs-pill-color-brand-green);"></span><code>pill-color-brand-green</code></td>
671
+ <td><code>--rs-pill-color-brand-green</code></td>
672
+ <td><code>var(--rs-color-green-500)</code></td>
673
+ <td></td>
674
+ </tr>
675
+ <tr>
676
+ <td><span class="swatch" style="background: var(--rs-pill-bg-brand-navygreen);"></span><code>pill-bg-brand-navygreen</code></td>
677
+ <td><code>--rs-pill-bg-brand-navygreen</code></td>
678
+ <td><code>var(--rs-color-navygreen-100)</code></td>
679
+ <td></td>
680
+ </tr>
681
+ <tr>
682
+ <td><span class="swatch" style="background: var(--rs-pill-color-brand-navygreen);"></span><code>pill-color-brand-navygreen</code></td>
683
+ <td><code>--rs-pill-color-brand-navygreen</code></td>
684
+ <td><code>var(--rs-color-navygreen-500)</code></td>
685
+ <td></td>
686
+ </tr>
687
+ <tr>
688
+ <td><span class="swatch" style="background: var(--rs-pill-bg-brand-red);"></span><code>pill-bg-brand-red</code></td>
689
+ <td><code>--rs-pill-bg-brand-red</code></td>
690
+ <td><code>var(--rs-color-red-100)</code></td>
691
+ <td></td>
692
+ </tr>
693
+ <tr>
694
+ <td><span class="swatch" style="background: var(--rs-pill-color-brand-red);"></span><code>pill-color-brand-red</code></td>
695
+ <td><code>--rs-pill-color-brand-red</code></td>
696
+ <td><code>var(--rs-color-red-500)</code></td>
697
+ <td></td>
698
+ </tr>
699
+ <tr>
700
+ <td><span class="swatch" style="background: var(--rs-pill-bg-brand-yellow);"></span><code>pill-bg-brand-yellow</code></td>
701
+ <td><code>--rs-pill-bg-brand-yellow</code></td>
702
+ <td><code>var(--rs-color-yellow-100)</code></td>
703
+ <td></td>
704
+ </tr>
705
+ <tr>
706
+ <td><span class="swatch" style="background: var(--rs-pill-color-brand-yellow);"></span><code>pill-color-brand-yellow</code></td>
707
+ <td><code>--rs-pill-color-brand-yellow</code></td>
708
+ <td><code>var(--rs-color-yellow-500)</code></td>
709
+ <td></td>
710
+ </tr>
711
+ <tr>
712
+ <td><span class="swatch" style="background: var(--rs-color-sidebar-background);"></span><code>color-sidebar-background</code></td>
713
+ <td><code>--rs-color-sidebar-background</code></td>
714
+ <td><code>var(--rs-color-white-500)</code></td>
715
+ <td></td>
716
+ </tr>
717
+ <tr>
718
+ <td><span class="swatch" style="background: var(--rs-color-sidebar-background-active);"></span><code>color-sidebar-background-active</code></td>
719
+ <td><code>--rs-color-sidebar-background-active</code></td>
720
+ <td><code>var(--rs-color-blue-100)</code></td>
721
+ <td></td>
722
+ </tr>
723
+ <tr>
724
+ <td><span class="swatch" style="background: var(--rs-color-sidebar-background-hover);"></span><code>color-sidebar-background-hover</code></td>
725
+ <td><code>--rs-color-sidebar-background-hover</code></td>
726
+ <td><code>var(--rs-color-blue-100)</code></td>
727
+ <td></td>
728
+ </tr>
729
+ <tr>
730
+ <td><span class="swatch" style="background: var(--rs-color-sidebar-stroke);"></span><code>color-sidebar-stroke</code></td>
731
+ <td><code>--rs-color-sidebar-stroke</code></td>
732
+ <td><code>var(--rs-color-gray-100)</code></td>
733
+ <td></td>
734
+ </tr>
735
+ <tr>
736
+ <td><span class="swatch" style="background: var(--rs-color-sidebar-stroke-active);"></span><code>color-sidebar-stroke-active</code></td>
737
+ <td><code>--rs-color-sidebar-stroke-active</code></td>
738
+ <td><code>var(--rs-color-blue-500)</code></td>
739
+ <td></td>
740
+ </tr>
741
+ </tbody>
742
+ </table>
743
+ </section>
744
+ </main>
745
+ </body>
746
+ </html>
package/dist/tokens.md ADDED
@@ -0,0 +1,105 @@
1
+ <!-- AUTO-GENERATED FILE. DO NOT EDIT MANUALLY. -->
2
+ # Robosophy tokens
3
+
4
+ Generated from `packages/tokens/src/tokens.ts`.
5
+
6
+ Public CSS variables use the `--rs-` prefix. Import `@robosophy/tokens/tokens.css` before using them, unless the app imports `@robosophy/prime-theme/prime.css` which already includes it.
7
+
8
+ ## Color tokens
9
+
10
+ | Token | CSS variable | Value | Description |
11
+ | --- | --- | --- | --- |
12
+ | `color-blue-50` | `--rs-color-blue-50` | `#F0F9FD` | |
13
+ | `color-blue-100` | `--rs-color-blue-100` | `#E6F6FB` | |
14
+ | `color-blue-500` | `--rs-color-blue-500` | `#48A0D4` | |
15
+ | `color-blue-700` | `--rs-color-blue-700` | `#2A719B` | |
16
+ | `color-green-100` | `--rs-color-green-100` | `#EDF7E6` | |
17
+ | `color-green-500` | `--rs-color-green-500` | `#4EAE01` | |
18
+ | `color-navygreen-100` | `--rs-color-navygreen-100` | `#E5F1EA` | |
19
+ | `color-navygreen-500` | `--rs-color-navygreen-500` | `#007C2F` | |
20
+ | `color-yellow-100` | `--rs-color-yellow-100` | `#FFF4E6` | |
21
+ | `color-yellow-500` | `--rs-color-yellow-500` | `#FF9001` | |
22
+ | `color-red-100` | `--rs-color-red-100` | `#FFF0F1` | |
23
+ | `color-red-500` | `--rs-color-red-500` | `#D80115` | |
24
+ | `color-darkblue-100` | `--rs-color-darkblue-100` | `#E5ECF5` | |
25
+ | `color-darkblue-500` | `--rs-color-darkblue-500` | `#004A9F` | |
26
+ | `color-navyblue-100` | `--rs-color-navyblue-100` | `var(--rs-color-darkblue-100)` | Backfilled legacy navyblue reference from the darkblue scale. |
27
+ | `color-navyblue-500` | `--rs-color-navyblue-500` | `var(--rs-color-darkblue-500)` | Backfilled legacy navyblue reference from the darkblue scale. |
28
+ | `color-gray-100` | `--rs-color-gray-100` | `#F6F6F6` | |
29
+ | `color-gray-300` | `--rs-color-gray-300` | `#EEEEEE` | |
30
+ | `color-gray-500` | `--rs-color-gray-500` | `#D1D1D1` | |
31
+ | `color-gray-700` | `--rs-color-gray-700` | `#909090` | |
32
+ | `color-black-500` | `--rs-color-black-500` | `#000000` | |
33
+ | `color-white-500` | `--rs-color-white-500` | `#FFFFFF` | |
34
+ | `color-background` | `--rs-color-background` | `var(--rs-color-gray-100)` | |
35
+ | `color-background-disabled` | `--rs-color-background-disabled` | `var(--rs-color-gray-100)` | |
36
+ | `color-background-caution` | `--rs-color-background-caution` | `var(--rs-color-yellow-100)` | |
37
+ | `color-background-info` | `--rs-color-background-info` | `var(--rs-color-blue-100)` | |
38
+ | `color-surface-primary` | `--rs-color-surface-primary` | `var(--rs-color-white-500)` | |
39
+ | `color-surface-tertiary` | `--rs-color-surface-tertiary` | `var(--rs-color-black-500)` | |
40
+ | `color-text-primary` | `--rs-color-text-primary` | `var(--rs-color-black-500)` | |
41
+ | `color-text-secondary` | `--rs-color-text-secondary` | `var(--rs-color-gray-700)` | |
42
+ | `color-text-brand` | `--rs-color-text-brand` | `var(--rs-color-blue-500)` | |
43
+ | `color-text-brand-blue` | `--rs-color-text-brand-blue` | `var(--rs-color-blue-500)` | |
44
+ | `color-text-brand-green` | `--rs-color-text-brand-green` | `var(--rs-color-green-500)` | |
45
+ | `color-text-brand-yellow` | `--rs-color-text-brand-yellow` | `var(--rs-color-yellow-500)` | |
46
+ | `color-text-brand-red` | `--rs-color-text-brand-red` | `var(--rs-color-red-500)` | |
47
+ | `color-text-placeholder` | `--rs-color-text-placeholder` | `var(--rs-color-gray-500)` | |
48
+ | `color-text-caution` | `--rs-color-text-caution` | `var(--rs-color-yellow-500)` | |
49
+ | `color-text-button-primary` | `--rs-color-text-button-primary` | `var(--rs-color-white-500)` | |
50
+ | `color-text-button-secondary` | `--rs-color-text-button-secondary` | `var(--rs-color-black-500)` | |
51
+ | `color-text-button-tertiary` | `--rs-color-text-button-tertiary` | `var(--rs-color-blue-500)` | |
52
+ | `color-text-button-tertiary-hover` | `--rs-color-text-button-tertiary-hover` | `var(--rs-color-blue-700)` | |
53
+ | `color-icon-primary` | `--rs-color-icon-primary` | `var(--rs-color-blue-500)` | |
54
+ | `color-icon-secondary` | `--rs-color-icon-secondary` | `var(--rs-color-black-500)` | |
55
+ | `color-icon-button-primary` | `--rs-color-icon-button-primary` | `var(--rs-color-white-500)` | |
56
+ | `color-icon-button-secondary` | `--rs-color-icon-button-secondary` | `var(--rs-color-black-500)` | |
57
+ | `color-icon-button-tertiary` | `--rs-color-icon-button-tertiary` | `var(--rs-color-blue-500)` | |
58
+ | `color-icon-input` | `--rs-color-icon-input` | `var(--rs-color-black-500)` | |
59
+ | `color-icon-brand-blue` | `--rs-color-icon-brand-blue` | `var(--rs-color-blue-500)` | |
60
+ | `color-icon-brand-green` | `--rs-color-icon-brand-green` | `var(--rs-color-green-500)` | |
61
+ | `color-icon-brand-yellow` | `--rs-color-icon-brand-yellow` | `var(--rs-color-yellow-500)` | |
62
+ | `color-icon-brand-red` | `--rs-color-icon-brand-red` | `var(--rs-color-red-500)` | |
63
+ | `color-icon-brand-darkblue` | `--rs-color-icon-brand-darkblue` | `var(--rs-color-darkblue-500)` | |
64
+ | `color-stroke-default` | `--rs-color-stroke-default` | `var(--rs-color-gray-500)` | |
65
+ | `color-stroke-focused` | `--rs-color-stroke-focused` | `var(--rs-color-blue-500)` | |
66
+ | `color-stroke-disabled` | `--rs-color-stroke-disabled` | `var(--rs-color-gray-100)` | |
67
+ | `color-stroke-success` | `--rs-color-stroke-success` | `var(--rs-color-green-500)` | |
68
+ | `color-stroke-caution` | `--rs-color-stroke-caution` | `var(--rs-color-yellow-500)` | |
69
+ | `color-stroke-error` | `--rs-color-stroke-error` | `var(--rs-color-red-500)` | |
70
+ | `color-button-primary` | `--rs-color-button-primary` | `var(--rs-color-blue-500)` | |
71
+ | `color-button-primary-hover` | `--rs-color-button-primary-hover` | `var(--rs-color-blue-700)` | |
72
+ | `color-button-secondary` | `--rs-color-button-secondary` | `var(--rs-color-gray-500)` | |
73
+ | `color-button-secondary-hover` | `--rs-color-button-secondary-hover` | `var(--rs-color-gray-700)` | |
74
+ | `color-button-blue-surface` | `--rs-color-button-blue-surface` | `var(--rs-color-blue-100)` | |
75
+ | `color-button-green-surface` | `--rs-color-button-green-surface` | `var(--rs-color-green-100)` | |
76
+ | `color-button-yellow-surface` | `--rs-color-button-yellow-surface` | `var(--rs-color-yellow-100)` | |
77
+ | `color-button-red-surface` | `--rs-color-button-red-surface` | `var(--rs-color-red-100)` | |
78
+
79
+ ## Font tokens
80
+
81
+ | Token | CSS variable | Value | Description |
82
+ | --- | --- | --- | --- |
83
+ | `font-family` | `--rs-font-family` | `'Inter', sans-serif` | |
84
+
85
+ ## Component tokens
86
+
87
+ | Token | CSS variable | Value | Description |
88
+ | --- | --- | --- | --- |
89
+ | `pill-bg-brand-blue` | `--rs-pill-bg-brand-blue` | `var(--rs-color-blue-100)` | |
90
+ | `pill-color-brand-blue` | `--rs-pill-color-brand-blue` | `var(--rs-color-blue-500)` | |
91
+ | `pill-bg-brand-navyblue` | `--rs-pill-bg-brand-navyblue` | `var(--rs-color-navyblue-100)` | Legacy token referenced an undefined navyblue scale. |
92
+ | `pill-color-brand-navyblue` | `--rs-pill-color-brand-navyblue` | `var(--rs-color-navyblue-500)` | Legacy token referenced an undefined navyblue scale. |
93
+ | `pill-bg-brand-green` | `--rs-pill-bg-brand-green` | `var(--rs-color-green-100)` | |
94
+ | `pill-color-brand-green` | `--rs-pill-color-brand-green` | `var(--rs-color-green-500)` | |
95
+ | `pill-bg-brand-navygreen` | `--rs-pill-bg-brand-navygreen` | `var(--rs-color-navygreen-100)` | |
96
+ | `pill-color-brand-navygreen` | `--rs-pill-color-brand-navygreen` | `var(--rs-color-navygreen-500)` | |
97
+ | `pill-bg-brand-red` | `--rs-pill-bg-brand-red` | `var(--rs-color-red-100)` | |
98
+ | `pill-color-brand-red` | `--rs-pill-color-brand-red` | `var(--rs-color-red-500)` | |
99
+ | `pill-bg-brand-yellow` | `--rs-pill-bg-brand-yellow` | `var(--rs-color-yellow-100)` | |
100
+ | `pill-color-brand-yellow` | `--rs-pill-color-brand-yellow` | `var(--rs-color-yellow-500)` | |
101
+ | `color-sidebar-background` | `--rs-color-sidebar-background` | `var(--rs-color-white-500)` | |
102
+ | `color-sidebar-background-active` | `--rs-color-sidebar-background-active` | `var(--rs-color-blue-100)` | |
103
+ | `color-sidebar-background-hover` | `--rs-color-sidebar-background-hover` | `var(--rs-color-blue-100)` | |
104
+ | `color-sidebar-stroke` | `--rs-color-sidebar-stroke` | `var(--rs-color-gray-100)` | |
105
+ | `color-sidebar-stroke-active` | `--rs-color-sidebar-stroke-active` | `var(--rs-color-blue-500)` | |
package/package.json CHANGED
@@ -1,11 +1,14 @@
1
1
  {
2
2
  "name": "@robosophy/tokens",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "private": false,
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
8
8
  "types": "./dist/index.d.ts",
9
+ "bin": {
10
+ "robosophy-tokens": "./dist/cli.js"
11
+ },
9
12
  "exports": {
10
13
  ".": {
11
14
  "types": "./dist/index.d.ts",
@@ -14,12 +17,16 @@
14
17
  "./tokens.css": "./dist/tokens.css",
15
18
  "./tailwind.css": "./dist/tailwind.css",
16
19
  "./tokens.json": "./dist/tokens.json",
20
+ "./tokens.md": "./dist/tokens.md",
21
+ "./tokens.html": "./dist/tokens.html",
22
+ "./ai-context.md": "./dist/ai-context.md",
17
23
  "./tailwind-preset": {
18
24
  "types": "./dist/tailwind-preset.d.ts",
19
25
  "default": "./dist/tailwind-preset.js"
20
26
  }
21
27
  },
22
28
  "files": [
29
+ "AGENTS.md",
23
30
  "dist",
24
31
  "README.md",
25
32
  "package.json"
@@ -28,9 +35,12 @@
28
35
  "**/*.css"
29
36
  ],
30
37
  "scripts": {
31
- "build": "tsup scripts/build-tokens.ts --format esm --platform node --out-dir .build --clean && node .build/build-tokens.js && rm -rf .build"
38
+ "build": "tsup scripts/build-tokens.ts --format esm --platform node --out-dir .build --clean && node .build/build-tokens.js && rimraf .build",
39
+ "test": "node --test scripts/*.test.mjs"
32
40
  },
33
41
  "devDependencies": {
42
+ "@types/node": "^24.10.1",
43
+ "rimraf": "^6.0.1",
34
44
  "tsup": "^8.5.0",
35
45
  "typescript": "^5.9.3"
36
46
  }