@cogenta/theme-docs 0.3.2

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 (117) hide show
  1. package/LICENSE +373 -0
  2. package/dist/src/index.d.ts +21 -0
  3. package/dist/src/index.d.ts.map +1 -0
  4. package/dist/src/index.js +21 -0
  5. package/dist/src/index.js.map +1 -0
  6. package/dist/src/render/blocks/accordion.d.ts +4 -0
  7. package/dist/src/render/blocks/accordion.d.ts.map +1 -0
  8. package/dist/src/render/blocks/accordion.js +15 -0
  9. package/dist/src/render/blocks/accordion.js.map +1 -0
  10. package/dist/src/render/blocks/collection-list.d.ts +14 -0
  11. package/dist/src/render/blocks/collection-list.d.ts.map +1 -0
  12. package/dist/src/render/blocks/collection-list.js +77 -0
  13. package/dist/src/render/blocks/collection-list.js.map +1 -0
  14. package/dist/src/render/blocks/cta.d.ts +4 -0
  15. package/dist/src/render/blocks/cta.d.ts.map +1 -0
  16. package/dist/src/render/blocks/cta.js +7 -0
  17. package/dist/src/render/blocks/cta.js.map +1 -0
  18. package/dist/src/render/blocks/embed.d.ts +4 -0
  19. package/dist/src/render/blocks/embed.d.ts.map +1 -0
  20. package/dist/src/render/blocks/embed.js +71 -0
  21. package/dist/src/render/blocks/embed.js.map +1 -0
  22. package/dist/src/render/blocks/faq.d.ts +4 -0
  23. package/dist/src/render/blocks/faq.d.ts.map +1 -0
  24. package/dist/src/render/blocks/faq.js +15 -0
  25. package/dist/src/render/blocks/faq.js.map +1 -0
  26. package/dist/src/render/blocks/feature-grid.d.ts +4 -0
  27. package/dist/src/render/blocks/feature-grid.d.ts.map +1 -0
  28. package/dist/src/render/blocks/feature-grid.js +27 -0
  29. package/dist/src/render/blocks/feature-grid.js.map +1 -0
  30. package/dist/src/render/blocks/gallery.d.ts +10 -0
  31. package/dist/src/render/blocks/gallery.d.ts.map +1 -0
  32. package/dist/src/render/blocks/gallery.js +19 -0
  33. package/dist/src/render/blocks/gallery.js.map +1 -0
  34. package/dist/src/render/blocks/hero.d.ts +16 -0
  35. package/dist/src/render/blocks/hero.d.ts.map +1 -0
  36. package/dist/src/render/blocks/hero.js +28 -0
  37. package/dist/src/render/blocks/hero.js.map +1 -0
  38. package/dist/src/render/blocks/logo-strip.d.ts +4 -0
  39. package/dist/src/render/blocks/logo-strip.d.ts.map +1 -0
  40. package/dist/src/render/blocks/logo-strip.js +16 -0
  41. package/dist/src/render/blocks/logo-strip.js.map +1 -0
  42. package/dist/src/render/blocks/logos.d.ts +4 -0
  43. package/dist/src/render/blocks/logos.d.ts.map +1 -0
  44. package/dist/src/render/blocks/logos.js +22 -0
  45. package/dist/src/render/blocks/logos.js.map +1 -0
  46. package/dist/src/render/blocks/media-figure.d.ts +10 -0
  47. package/dist/src/render/blocks/media-figure.d.ts.map +1 -0
  48. package/dist/src/render/blocks/media-figure.js +25 -0
  49. package/dist/src/render/blocks/media-figure.js.map +1 -0
  50. package/dist/src/render/blocks/pricing-table.d.ts +4 -0
  51. package/dist/src/render/blocks/pricing-table.d.ts.map +1 -0
  52. package/dist/src/render/blocks/pricing-table.js +28 -0
  53. package/dist/src/render/blocks/pricing-table.js.map +1 -0
  54. package/dist/src/render/blocks/prose.d.ts +4 -0
  55. package/dist/src/render/blocks/prose.d.ts.map +1 -0
  56. package/dist/src/render/blocks/prose.js +36 -0
  57. package/dist/src/render/blocks/prose.js.map +1 -0
  58. package/dist/src/render/blocks/quote.d.ts +9 -0
  59. package/dist/src/render/blocks/quote.d.ts.map +1 -0
  60. package/dist/src/render/blocks/quote.js +22 -0
  61. package/dist/src/render/blocks/quote.js.map +1 -0
  62. package/dist/src/render/blocks/stat-counter.d.ts +4 -0
  63. package/dist/src/render/blocks/stat-counter.d.ts.map +1 -0
  64. package/dist/src/render/blocks/stat-counter.js +15 -0
  65. package/dist/src/render/blocks/stat-counter.js.map +1 -0
  66. package/dist/src/render/blocks/stats.d.ts +4 -0
  67. package/dist/src/render/blocks/stats.d.ts.map +1 -0
  68. package/dist/src/render/blocks/stats.js +11 -0
  69. package/dist/src/render/blocks/stats.js.map +1 -0
  70. package/dist/src/render/blocks/testimonial.d.ts +11 -0
  71. package/dist/src/render/blocks/testimonial.d.ts.map +1 -0
  72. package/dist/src/render/blocks/testimonial.js +20 -0
  73. package/dist/src/render/blocks/testimonial.js.map +1 -0
  74. package/dist/src/render/chrome.d.ts +3 -0
  75. package/dist/src/render/chrome.d.ts.map +1 -0
  76. package/dist/src/render/chrome.js +94 -0
  77. package/dist/src/render/chrome.js.map +1 -0
  78. package/dist/src/render/render-block.d.ts +15 -0
  79. package/dist/src/render/render-block.d.ts.map +1 -0
  80. package/dist/src/render/render-block.js +176 -0
  81. package/dist/src/render/render-block.js.map +1 -0
  82. package/dist/src/render/term-archive.d.ts +10 -0
  83. package/dist/src/render/term-archive.d.ts.map +1 -0
  84. package/dist/src/render/term-archive.js +32 -0
  85. package/dist/src/render/term-archive.js.map +1 -0
  86. package/dist/theme.config.d.ts +16 -0
  87. package/dist/theme.config.d.ts.map +1 -0
  88. package/dist/theme.config.js +46 -0
  89. package/dist/theme.config.js.map +1 -0
  90. package/package.json +57 -0
  91. package/src/index.ts +20 -0
  92. package/src/render/blocks/accordion.ts +51 -0
  93. package/src/render/blocks/collection-list.ts +170 -0
  94. package/src/render/blocks/cta.ts +25 -0
  95. package/src/render/blocks/embed.ts +94 -0
  96. package/src/render/blocks/faq.ts +46 -0
  97. package/src/render/blocks/feature-grid.ts +67 -0
  98. package/src/render/blocks/gallery.ts +39 -0
  99. package/src/render/blocks/hero.ts +61 -0
  100. package/src/render/blocks/logo-strip.ts +31 -0
  101. package/src/render/blocks/logos.ts +52 -0
  102. package/src/render/blocks/media-figure.ts +36 -0
  103. package/src/render/blocks/pricing-table.ts +72 -0
  104. package/src/render/blocks/prose.ts +49 -0
  105. package/src/render/blocks/quote.ts +35 -0
  106. package/src/render/blocks/stat-counter.ts +37 -0
  107. package/src/render/blocks/stats.ts +38 -0
  108. package/src/render/blocks/testimonial.ts +36 -0
  109. package/src/render/chrome.ts +124 -0
  110. package/src/render/render-block.ts +305 -0
  111. package/src/render/term-archive.ts +78 -0
  112. package/src/styles/archive.css +39 -0
  113. package/src/styles/base.css +1106 -0
  114. package/src/styles/blocks.css +1238 -0
  115. package/src/styles/theme.css +34 -0
  116. package/src/styles/tokens.css +307 -0
  117. package/tokens.json +36 -0
@@ -0,0 +1,34 @@
1
+ /*
2
+ * `@cogenta/theme-docs`'s stylesheet — the entry point, and nothing else.
3
+ *
4
+ * Three layers, in the only order that works:
5
+ *
6
+ * tokens.css the design system, derived entirely from the skin's
7
+ * `--cogenta-*` custom properties (contract D)
8
+ * base.css document, accessibility floor, page frame, chrome (with its
9
+ * CSS-only mobile menu), the two-column doc-page layout
10
+ * blocks.css the seventeen vocabulary blocks
11
+ *
12
+ * Not one colour, font, radius, duration or shadow is written literally in
13
+ * any of the three: every value comes from a `--cogenta-<group>-<name>`
14
+ * property produced from the skin's tokens, or from a `--cg-*` property
15
+ * composed from those.
16
+ *
17
+ * `@import` is resolved at build time by Astro, and by `@cogenta/cli`'s own
18
+ * inliner when `cogenta serve` renders without a build. Both flatten these
19
+ * into one sheet, so no visitor ever pays for four round trips.
20
+ *
21
+ * The one thing this file adds on its own: the Google Fonts request for the
22
+ * two families `tokens.json` names — IBM Plex Sans for the UI/copy face and
23
+ * IBM Plex Mono for code, `kbd` and the eyebrow/date labels — loaded here,
24
+ * once, rather than per skin, since a skin only ever *names* a font family;
25
+ * it does not fetch one. Both fall back to a real system stack (`tokens.json`'s
26
+ * `font.sans`/`font.mono`) if Google Fonts is unreachable.
27
+ */
28
+
29
+ @import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=IBM+Plex+Mono:wght@400;500;600&display=swap");
30
+
31
+ @import "./tokens.css";
32
+ @import "./base.css";
33
+ @import "./blocks.css";
34
+ @import "./archive.css";
@@ -0,0 +1,307 @@
1
+ /*
2
+ * `@cogenta/theme-docs`'s design system.
3
+ *
4
+ * Contract D fixes a *closed* skin token set — seven colours, five type
5
+ * tokens, two spacing tokens, three radii, three motion tokens, two shadows
6
+ * — and refuses any skin that adds one. So this layer adds nothing to the
7
+ * skin: every value below is *derived* from `--cogenta-*` by composition
8
+ * (`calc`, `color-mix`, relative colour syntax). A skin swap rewrites the
9
+ * generated `--cogenta-*` sheet and this whole system follows, with no
10
+ * build step.
11
+ *
12
+ * Two rules hold everywhere in this file and the two that import it:
13
+ *
14
+ * 1. **No colour literal.** Not one hex, `rgb()`, `hsl()` or bare `oklch()`.
15
+ * Every colour is either a skin token or a function *of* a skin token.
16
+ * 2. **No second scale.** The type steps come from `--cogenta-font-size-*`
17
+ * and the spacing multiplier from `--cogenta-space-scale`, both emitted
18
+ * by `renderSkin` from the same tokens the validator checked.
19
+ *
20
+ * The default skin (`tokens.json`) is a neutral blue-grey ground with one
21
+ * confident blue accent — the Docusaurus/GitBook register the aesthetic
22
+ * direction asks for: dense, structured, and legible over long reference
23
+ * pages rather than expressive. Light mode is "structured and edged"
24
+ * (hairline borders carry most of the depth, shadow reserved for genuine
25
+ * hover elevation, exactly the language `theme-entreprise` already proved);
26
+ * dark mode is a real slate, designed on its own terms rather than
27
+ * mechanically inverted — see the colour section below for the five
28
+ * decisions that make it so.
29
+ */
30
+
31
+ :where(:root) {
32
+ color-scheme: light dark;
33
+ }
34
+
35
+ :where(:root[data-theme="dark"]) {
36
+ color-scheme: dark;
37
+ }
38
+
39
+ :where(:root[data-theme="light"]) {
40
+ color-scheme: light;
41
+ }
42
+
43
+ /* --------------------------------------------------------------------------
44
+ Space — a compact scale: a docs page is read a paragraph at a time, and
45
+ the aesthetic direction asks for information density over air.
46
+ -------------------------------------------------------------------------- */
47
+
48
+ :where(:root) {
49
+ --cg-density: var(--cogenta-space-scale, 1);
50
+ --cg-unit: calc(var(--cogenta-space-unit) * var(--cg-density));
51
+
52
+ --cg-s1: calc(var(--cg-unit) * 1);
53
+ --cg-s2: calc(var(--cg-unit) * 2);
54
+ --cg-s3: calc(var(--cg-unit) * 3);
55
+ --cg-s4: calc(var(--cg-unit) * 4);
56
+ --cg-s5: calc(var(--cg-unit) * 5);
57
+ --cg-s6: calc(var(--cg-unit) * 6);
58
+ --cg-s8: calc(var(--cg-unit) * 8);
59
+ --cg-s10: calc(var(--cg-unit) * 10);
60
+ --cg-s12: calc(var(--cg-unit) * 12);
61
+ --cg-s16: calc(var(--cg-unit) * 16);
62
+ --cg-s20: calc(var(--cg-unit) * 20);
63
+ --cg-s28: calc(var(--cg-unit) * 28);
64
+
65
+ --cg-gutter: var(--cg-s6);
66
+ --cg-gap-tight: var(--cg-s2);
67
+ --cg-gap: var(--cg-s5);
68
+ --cg-gap-loose: var(--cg-s10);
69
+ --cg-section-y: var(--cg-s16);
70
+
71
+ --cg-measure: 72ch;
72
+ --cg-measure-narrow: 44ch;
73
+ --cg-page: 78rem;
74
+ --cg-page-narrow: 50rem;
75
+ --cg-sidebar-width: 17rem;
76
+ --cg-header-height: 3.75rem;
77
+ }
78
+
79
+ :where([data-density="compact"]) {
80
+ --cg-density: 0.85;
81
+ }
82
+
83
+ :where([data-density="comfortable"]) {
84
+ --cg-density: 1;
85
+ }
86
+
87
+ :where([data-density="spacious"]) {
88
+ --cg-density: 1.25;
89
+ }
90
+
91
+ /* --------------------------------------------------------------------------
92
+ Type — the skin's scale, named; plus the rhythm the scale does not carry.
93
+ -------------------------------------------------------------------------- */
94
+
95
+ :where(:root) {
96
+ --cg-text-xs: var(--cogenta-font-size-xs, 0.72rem);
97
+ --cg-text-sm: var(--cogenta-font-size-sm, 0.85rem);
98
+ --cg-text-md: var(--cogenta-font-size-md, var(--cogenta-font-base-size, 1rem));
99
+ --cg-text-lg: var(--cogenta-font-size-lg, 1.15rem);
100
+ --cg-text-xl: var(--cogenta-font-size-xl, 1.32rem);
101
+ --cg-text-2xl: var(--cogenta-font-size-2xl, 1.52rem);
102
+ --cg-text-3xl: var(--cogenta-font-size-3xl, 1.75rem);
103
+
104
+ --cg-leading-tight: 1.15;
105
+ --cg-leading-snug: 1.3;
106
+ --cg-leading-normal: 1.6;
107
+ --cg-leading-relaxed: 1.75;
108
+
109
+ --cg-tracking-tight: -0.012em;
110
+ --cg-tracking-snug: -0.006em;
111
+ --cg-tracking-normal: 0em;
112
+ --cg-tracking-wide: 0.08em;
113
+
114
+ --cg-weight-regular: 400;
115
+ --cg-weight-medium: 500;
116
+ --cg-weight-semibold: 600;
117
+ --cg-weight-bold: 700;
118
+ }
119
+
120
+ /* --------------------------------------------------------------------------
121
+ Radius — restrained, closer to square than round: a reference site reads
122
+ as a tool, not a marketing page.
123
+ -------------------------------------------------------------------------- */
124
+
125
+ :where(:root) {
126
+ --cg-radius-xs: calc(var(--cogenta-radius-sm) / 2);
127
+ --cg-radius-sm: var(--cogenta-radius-sm);
128
+ --cg-radius-md: var(--cogenta-radius-md);
129
+ --cg-radius-lg: var(--cogenta-radius-lg);
130
+ --cg-radius-xl: calc(var(--cogenta-radius-lg) * 1.4);
131
+ --cg-radius-pill: 999rem;
132
+ }
133
+
134
+ /* --------------------------------------------------------------------------
135
+ Motion
136
+ -------------------------------------------------------------------------- */
137
+
138
+ :where(:root) {
139
+ --cg-duration-fast: calc(var(--cogenta-motion-duration) * 0.65);
140
+ --cg-duration: var(--cogenta-motion-duration);
141
+ --cg-duration-slow: calc(var(--cogenta-motion-duration) * 3);
142
+ --cg-ease: var(--cogenta-motion-easing);
143
+ }
144
+
145
+ /* --------------------------------------------------------------------------
146
+ Colour — one palette per scheme, both derived from the same seven tokens.
147
+ --------------------------------------------------------------------------
148
+
149
+ The block below declares the **light** palette in plain terms; the
150
+ scheme-aware values live in the `@supports` block after it, guarded the
151
+ same way `theme-canonical`/`theme-entreprise` guard it: a browser that
152
+ cannot parse `light-dark()` must still get a usable light palette rather
153
+ than an `unset` custom property.
154
+
155
+ **This dark palette is designed on its own terms, not inverted — five
156
+ decisions, each the opposite of what a mechanical `bg`/`fg` swap would
157
+ produce (the same five `theme-entreprise` already proved, re-derived here
158
+ from a blue accent instead of a green one):**
159
+
160
+ 1. *Elevation is a hairline, almost everywhere.* A raised surface is a
161
+ **border**, shadow reserved for genuine hover lift — a code block or a
162
+ sidebar panel looks like a plate on a desk, never a sticker.
163
+ 2. *The accent is lifted less than a mechanical swap would allow, and
164
+ **desaturated** rather than just brightened* — a saturated blue pushed
165
+ to the same lightness a mechanical fix would pick reads as neon on
166
+ slate; this palette lifts it and pulls a third of its chroma back.
167
+ 3. *The accent's foreground flips to ink* — light text on a lifted accent
168
+ fails contrast, so `accent-fg` is derived dark from the accent's own
169
+ hue rather than kept as the skin's white.
170
+ 4. *Text is never pure light and never fully desaturated* — ink carries a
171
+ trace of the accent's hue at low chroma, a blue-tinted slate rather
172
+ than a generic dark-mode grey.
173
+ 5. *A border lightens rather than darkens against its surface* — a darker
174
+ line on dark ink is invisible.
175
+
176
+ Known limit, same one `theme-canonical`/`theme-entreprise` record: the
177
+ derivation assumes a light-first skin (`bg` lighter than `fg`).
178
+ -------------------------------------------------------------------------- */
179
+
180
+ :where(:root) {
181
+ --cg-canvas: var(--cogenta-color-bg);
182
+ --cg-surface: var(--cogenta-color-bg);
183
+ --cg-surface-raised: var(--cogenta-color-bg);
184
+ --cg-surface-sunken: var(--cogenta-color-muted);
185
+ --cg-surface-tinted: color-mix(in oklab, var(--cogenta-color-accent) 7%, var(--cogenta-color-bg));
186
+
187
+ --cg-ink: var(--cogenta-color-fg);
188
+ --cg-ink-muted: var(--cogenta-color-muted-fg);
189
+ --cg-ink-subtle: color-mix(in oklab, var(--cogenta-color-muted-fg) 85%, var(--cogenta-color-bg));
190
+
191
+ --cg-accent: var(--cogenta-color-accent);
192
+ --cg-accent-fg: var(--cogenta-color-accent-fg);
193
+ --cg-accent-hover: color-mix(in oklab, var(--cogenta-color-accent) 84%, var(--cogenta-color-fg));
194
+ --cg-accent-soft: color-mix(in oklab, var(--cogenta-color-accent) 9%, var(--cogenta-color-bg));
195
+ --cg-accent-soft-fg: color-mix(
196
+ in oklab,
197
+ var(--cogenta-color-accent) 70%,
198
+ var(--cogenta-color-fg)
199
+ );
200
+
201
+ --cg-line: var(--cogenta-color-border);
202
+ --cg-line-soft: color-mix(in oklab, var(--cogenta-color-border) 50%, var(--cogenta-color-bg));
203
+ --cg-line-strong: color-mix(in oklab, var(--cogenta-color-border) 60%, var(--cogenta-color-fg));
204
+
205
+ --cg-scrim: color-mix(in oklab, var(--cogenta-color-fg) 58%, transparent);
206
+ }
207
+
208
+ @supports (color: light-dark(currentColor, currentColor)) and
209
+ (color: oklch(from currentColor l c h)) {
210
+ :where(:root) {
211
+ --cg-canvas: light-dark(
212
+ var(--cogenta-color-bg),
213
+ oklch(from var(--cogenta-color-fg) 0.155 calc(c * 0.65) h)
214
+ );
215
+ --cg-surface: light-dark(
216
+ var(--cogenta-color-bg),
217
+ oklch(from var(--cogenta-color-fg) 0.155 calc(c * 0.65) h)
218
+ );
219
+ --cg-surface-raised: light-dark(
220
+ var(--cogenta-color-bg),
221
+ oklch(from var(--cogenta-color-fg) 0.225 calc(c * 0.6) h)
222
+ );
223
+ --cg-surface-sunken: light-dark(
224
+ var(--cogenta-color-muted),
225
+ oklch(from var(--cogenta-color-fg) 0.115 calc(c * 0.75) h)
226
+ );
227
+ --cg-surface-tinted: light-dark(
228
+ color-mix(in oklab, var(--cogenta-color-accent) 7%, var(--cogenta-color-bg)),
229
+ oklch(from var(--cogenta-color-accent) 0.235 calc(c * 0.55) h)
230
+ );
231
+
232
+ --cg-ink: light-dark(
233
+ var(--cogenta-color-fg),
234
+ oklch(from var(--cogenta-color-accent) 0.93 0.01 h)
235
+ );
236
+ --cg-ink-muted: light-dark(
237
+ var(--cogenta-color-muted-fg),
238
+ oklch(from var(--cogenta-color-accent) 0.76 0.016 h)
239
+ );
240
+ --cg-ink-subtle: light-dark(
241
+ color-mix(in oklab, var(--cogenta-color-muted-fg) 85%, var(--cogenta-color-bg)),
242
+ oklch(from var(--cogenta-color-accent) 0.63 0.014 h)
243
+ );
244
+
245
+ --cg-accent: light-dark(
246
+ var(--cogenta-color-accent),
247
+ oklch(from var(--cogenta-color-accent) 0.68 calc(c * 0.72) h)
248
+ );
249
+ --cg-accent-fg: light-dark(
250
+ var(--cogenta-color-accent-fg),
251
+ oklch(from var(--cogenta-color-accent) 0.16 calc(c * 0.5) h)
252
+ );
253
+ --cg-accent-hover: light-dark(
254
+ color-mix(in oklab, var(--cogenta-color-accent) 84%, var(--cogenta-color-fg)),
255
+ oklch(from var(--cogenta-color-accent) 0.77 calc(c * 0.68) h)
256
+ );
257
+ --cg-accent-soft: light-dark(
258
+ color-mix(in oklab, var(--cogenta-color-accent) 9%, var(--cogenta-color-bg)),
259
+ oklch(from var(--cogenta-color-accent) 0.28 calc(c * 0.45) h)
260
+ );
261
+ --cg-accent-soft-fg: light-dark(
262
+ color-mix(in oklab, var(--cogenta-color-accent) 70%, var(--cogenta-color-fg)),
263
+ oklch(from var(--cogenta-color-accent) 0.87 calc(c * 0.4) h)
264
+ );
265
+
266
+ --cg-line: light-dark(
267
+ var(--cogenta-color-border),
268
+ oklch(from var(--cogenta-color-accent) 0.34 calc(c * 0.2) h)
269
+ );
270
+ --cg-line-soft: light-dark(
271
+ color-mix(in oklab, var(--cogenta-color-border) 50%, var(--cogenta-color-bg)),
272
+ oklch(from var(--cogenta-color-accent) 0.27 calc(c * 0.18) h)
273
+ );
274
+ --cg-line-strong: light-dark(
275
+ color-mix(in oklab, var(--cogenta-color-border) 60%, var(--cogenta-color-fg)),
276
+ oklch(from var(--cogenta-color-accent) 0.55 calc(c * 0.22) h)
277
+ );
278
+ }
279
+ }
280
+
281
+ /* --------------------------------------------------------------------------
282
+ Elevation — a hairline ring by default in both schemes; a real shadow is
283
+ spent only on hover.
284
+ -------------------------------------------------------------------------- */
285
+
286
+ :where(:root) {
287
+ --cg-ring: inset 0 0 0 1px var(--cg-line);
288
+ --cg-ring-accent: inset 0 0 0 1px var(--cg-accent);
289
+ --cg-ring-strong: inset 0 0 0 1px var(--cg-line-strong);
290
+
291
+ --cg-elevation-0: none;
292
+ --cg-elevation-1: var(--cg-ring);
293
+ --cg-elevation-2: var(--cogenta-shadow-sm), var(--cg-ring);
294
+ --cg-elevation-3: var(--cogenta-shadow-md), var(--cg-ring);
295
+ }
296
+
297
+ @media (prefers-color-scheme: dark) {
298
+ :where(:root:not([data-theme="light"])) {
299
+ --cg-elevation-2: var(--cg-ring-strong);
300
+ --cg-elevation-3: var(--cg-ring-strong), var(--cogenta-shadow-md);
301
+ }
302
+ }
303
+
304
+ :where(:root[data-theme="dark"]) {
305
+ --cg-elevation-2: var(--cg-ring-strong);
306
+ --cg-elevation-3: var(--cg-ring-strong), var(--cogenta-shadow-md);
307
+ }
package/tokens.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "color": {
3
+ "bg": "#ffffff",
4
+ "fg": "#0f172a",
5
+ "accent": "#1d4ed8",
6
+ "accentFg": "#ffffff",
7
+ "muted": "#f1f5f9",
8
+ "mutedFg": "#475569",
9
+ "border": "#e2e8f0"
10
+ },
11
+ "font": {
12
+ "sans": "'IBM Plex Sans', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif",
13
+ "serif": "ui-serif, Georgia, Cambria, 'Times New Roman', serif",
14
+ "mono": "'IBM Plex Mono', ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace",
15
+ "scale": 1.15,
16
+ "baseSize": "1rem"
17
+ },
18
+ "space": {
19
+ "unit": "0.25rem",
20
+ "density": "compact"
21
+ },
22
+ "radius": {
23
+ "sm": "0.25rem",
24
+ "md": "0.375rem",
25
+ "lg": "0.625rem"
26
+ },
27
+ "motion": {
28
+ "duration": "150ms",
29
+ "easing": "cubic-bezier(0.2, 0, 0, 1)",
30
+ "reduced": true
31
+ },
32
+ "shadow": {
33
+ "sm": "0 1px 2px rgba(15, 23, 42, 0.06)",
34
+ "md": "0 10px 28px rgba(15, 23, 42, 0.12)"
35
+ }
36
+ }