@atelier-ui/angular 0.2.10 → 0.2.12

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atelier-ui/angular",
3
- "version": "0.2.10",
3
+ "version": "0.2.12",
4
4
  "description": "Atelier component library for Angular — LLM-optimised, accessible, design-token-driven",
5
5
  "keywords": [
6
6
  "angular",
@@ -11,6 +11,8 @@
11
11
  * Mono (code), chosen 2026-08-26 — see ADR-0035, which revises ADR-0020's
12
12
  * Inter choice. The library declares the stacks; loading the faces is the
13
13
  * consumer's job (the docs app does it through Astro's fonts config).
14
+ * The --ui-type-* roles (ADR-0036) are the layer component CSS should
15
+ * reference; the individual axes remain for the cases a role does not fit.
14
16
  *
15
17
  * Plan: ~/.claude/plans/atelier-design-rebrief.md (Direction A pivot)
16
18
  *
@@ -34,18 +36,75 @@
34
36
  --ui-letter-spacing-tight: -0.01em;
35
37
  --ui-letter-spacing-normal: 0;
36
38
  --ui-letter-spacing-wide: 0.01em;
39
+ --ui-letter-spacing-uppercase: 0.08em;
40
+ --ui-font-size-3xl: 2.25rem;
37
41
  --ui-font-weight-normal: 400;
38
42
  --ui-font-weight-medium: 500;
39
43
  --ui-font-weight-semibold: 600;
44
+ --ui-font-weight-bold: 700;
40
45
  --ui-line-height-tight: 1.25;
41
46
  --ui-line-height-normal: 1.5;
42
47
 
48
+ /* ── Type roles ─────────────────────────────────────────────
49
+ * Composed entirely from the axes above, so sizes and weights stay
50
+ * single-sourced and a role adds meaning rather than new numbers.
51
+ * Reference a ROLE from component CSS (`font: var(--ui-type-body-md)`),
52
+ * not an axis — the role is what carries ADR-0035's rule that weight
53
+ * comes from the sans and the display face is never bolded.
54
+ *
55
+ * `font:` is a shorthand: it resets font-style, font-variant,
56
+ * font-stretch and line-height, so declare it BEFORE any font-* override
57
+ * on the same rule. It does not touch letter-spacing — pair the display
58
+ * role with --ui-letter-spacing-tight and an uppercased label role with
59
+ * --ui-letter-spacing-uppercase yourself.
60
+ */
61
+ --ui-type-display: italic var(--ui-font-weight-normal) var(--ui-font-size-3xl) /
62
+ var(--ui-line-height-tight) var(--ui-font-display);
63
+ --ui-type-headline: var(--ui-font-weight-bold) var(--ui-font-size-2xl) /
64
+ var(--ui-line-height-tight) var(--ui-font-family);
65
+ --ui-type-title: var(--ui-font-weight-semibold) var(--ui-font-size-lg) /
66
+ var(--ui-line-height-tight) var(--ui-font-family);
67
+ --ui-type-body-lg: var(--ui-font-weight-normal) var(--ui-font-size-lg) /
68
+ var(--ui-line-height-normal) var(--ui-font-family);
69
+ --ui-type-body-md: var(--ui-font-weight-normal) var(--ui-font-size-md) /
70
+ var(--ui-line-height-normal) var(--ui-font-family);
71
+ --ui-type-body-sm: var(--ui-font-weight-normal) var(--ui-font-size-sm) /
72
+ var(--ui-line-height-normal) var(--ui-font-family);
73
+ --ui-type-label: var(--ui-font-weight-medium) var(--ui-font-size-xs) /
74
+ var(--ui-line-height-tight) var(--ui-font-family);
75
+ --ui-type-code: var(--ui-font-weight-normal) var(--ui-font-size-sm) /
76
+ var(--ui-line-height-normal) var(--ui-font-mono);
77
+
43
78
  /* ── Colours · light mode (default) ────────────────────────── */
44
79
 
45
80
  /* Primary — Conciso deep teal */
46
- --ui-color-primary: #006470;
47
- --ui-color-primary-hover: #004e58;
48
- --ui-color-primary-active: #003a42;
81
+
82
+ /* ── Teal ramp · primitive tier (ADR-0038) ──────────────────
83
+ * The brand hue as a tonal scale. Semantics below alias into it, so a step
84
+ * is declared once and every mode picks a different step of the same ramp.
85
+ *
86
+ * Annotations are CHECKED, not decorative — `check:contrast` re-measures
87
+ * every one and fails if a stated ratio is wrong or below AA:
88
+ * ★ the brand anchor
89
+ * T on surface(light|dark) N.NN this step carries normal text on that
90
+ * canvas at the stated WCAG 2.2 ratio
91
+ * Steps 50–500 are generated by perceptual (OKLab) interpolation between the
92
+ * shipping values; 100–300 and 700–900 ARE the shipping values, unchanged.
93
+ */
94
+ --ui-color-teal-50: #99f4f4;
95
+ --ui-color-teal-100: #87efef;
96
+ --ui-color-teal-200: #5ee5e5;
97
+ --ui-color-teal-300: #34d8d8; /* T on surface(dark) 10.83 */
98
+ --ui-color-teal-400: #27babd; /* T on surface(dark) 8.01 */
99
+ --ui-color-teal-500: #1a9ca3; /* T on surface(dark) 5.73 — lightest step that still carries text on dark */
100
+ --ui-color-teal-600: #0d7f89; /* T on surface(light) 4.76 — lightest step that still carries text on light */
101
+ --ui-color-teal-700: #006470; /* ★ · T on surface(light) 6.87 */
102
+ --ui-color-teal-800: #004e58; /* T on surface(light) 9.41 */
103
+ --ui-color-teal-900: #003a42; /* T on surface(light) 12.47 */
104
+
105
+ --ui-color-primary: var(--ui-color-teal-700);
106
+ --ui-color-primary-hover: var(--ui-color-teal-800);
107
+ --ui-color-primary-active: var(--ui-color-teal-900);
49
108
  --ui-color-primary-light: rgba(0, 100, 112, 0.08);
50
109
 
51
110
  /* Secondary (legacy — kept for components that opt in) */
@@ -170,9 +229,9 @@
170
229
 
171
230
  @media (prefers-color-scheme: dark) {
172
231
  :root {
173
- --ui-color-primary: #34d8d8;
174
- --ui-color-primary-hover: #5ee5e5;
175
- --ui-color-primary-active: #87efef;
232
+ --ui-color-primary: var(--ui-color-teal-300);
233
+ --ui-color-primary-hover: var(--ui-color-teal-200);
234
+ --ui-color-primary-active: var(--ui-color-teal-100);
176
235
  --ui-color-primary-light: rgba(52, 216, 216, 0.15);
177
236
 
178
237
  --ui-color-secondary: #94a3b8;
@@ -230,9 +289,9 @@
230
289
  }
231
290
 
232
291
  [data-theme="dark"] {
233
- --ui-color-primary: #34d8d8;
234
- --ui-color-primary-hover: #5ee5e5;
235
- --ui-color-primary-active: #87efef;
292
+ --ui-color-primary: var(--ui-color-teal-300);
293
+ --ui-color-primary-hover: var(--ui-color-teal-200);
294
+ --ui-color-primary-active: var(--ui-color-teal-100);
236
295
  --ui-color-primary-light: rgba(52, 216, 216, 0.15);
237
296
 
238
297
  --ui-color-secondary: #94a3b8;
@@ -290,9 +349,9 @@
290
349
 
291
350
  /* Explicit light theme — declared last so it wins over prefers-color-scheme: dark */
292
351
  [data-theme="light"] {
293
- --ui-color-primary: #006470;
294
- --ui-color-primary-hover: #004e58;
295
- --ui-color-primary-active: #003a42;
352
+ --ui-color-primary: var(--ui-color-teal-700);
353
+ --ui-color-primary-hover: var(--ui-color-teal-800);
354
+ --ui-color-primary-active: var(--ui-color-teal-900);
296
355
  --ui-color-primary-light: rgba(0, 100, 112, 0.08);
297
356
 
298
357
  --ui-color-secondary: #475569;