ui-foundations 0.3.1 → 0.4.1

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 (69) hide show
  1. package/README.md +179 -36
  2. package/dist/assets/icons/checkmark.svg +1 -0
  3. package/dist/core/index.css +7 -7
  4. package/dist/macros/ui.njk +142 -0
  5. package/dist/main.css +465 -173
  6. package/dist/react/badge.js +41 -0
  7. package/dist/react/button.js +15 -6
  8. package/dist/react/checkbox.js +30 -0
  9. package/dist/react/icon.js +19 -1
  10. package/dist/react/index.js +2 -0
  11. package/dist/react/label.js +1 -1
  12. package/dist/react/radio.js +62 -0
  13. package/dist/react/switch.js +18 -0
  14. package/dist/tokens/css/{appearance-(modes).tokens.mode-dark.css → appearance-modes.tokens.mode-dark.css} +1 -1
  15. package/dist/tokens/css/{appearance-(modes).tokens.mode-light.css → appearance-modes.tokens.mode-light.css} +1 -1
  16. package/dist/tokens/css/{components-(ui).tokens.css → components-ui.tokens.css} +46 -3
  17. package/dist/tokens/css/{core-(primitives).tokens.css → core-primitives.tokens.css} +61 -19
  18. package/dist/tokens/css/{semantics-(roles).tokens.css → semantics-roles.tokens.css} +1 -1
  19. package/dist/tokens/css/themes-brands.tokens.brand-a.css +22 -0
  20. package/dist/tokens/css/{themes-(brands).tokens.brand-b.css → themes-brands.tokens.brand-b.css} +9 -9
  21. package/dist/tokens/json/appearance-modes.tokens.mode-dark.json +121 -0
  22. package/dist/tokens/json/appearance-modes.tokens.mode-light.json +121 -0
  23. package/dist/tokens/json/components-ui.tokens.json +715 -0
  24. package/dist/tokens/json/{core-(primitives).tokens.json → core-primitives.tokens.json} +227 -413
  25. package/dist/tokens/json/semantics-roles.tokens.json +141 -0
  26. package/dist/tokens/json/themes-brands.tokens.brand-a.json +81 -0
  27. package/dist/tokens/json/themes-brands.tokens.brand-b.json +81 -0
  28. package/dist/tokens/missing-tokens.json +43 -0
  29. package/dist/tokens/tokens.yaml +1254 -149
  30. package/dist/tokens/ts/{appearance-(modes).tokens.mode-dark.ts → appearance-modes.tokens.mode-dark.ts} +1 -1
  31. package/dist/tokens/ts/{appearance-(modes).tokens.mode-light.ts → appearance-modes.tokens.mode-light.ts} +1 -1
  32. package/dist/tokens/ts/{components-(ui).tokens.ts → components-ui.tokens.ts} +47 -4
  33. package/dist/tokens/ts/{core-(primitives).tokens.ts → core-primitives.tokens.ts} +62 -20
  34. package/dist/tokens/ts/{semantics-(roles).tokens.ts → semantics-roles.tokens.ts} +1 -1
  35. package/dist/tokens/ts/{themes-(brands).tokens.brand-a.ts → themes-brands.tokens.brand-a.ts} +9 -9
  36. package/dist/tokens/ts/{themes-(brands).tokens.brand-b.ts → themes-brands.tokens.brand-b.ts} +9 -9
  37. package/dist/ui/index.css +2 -0
  38. package/dist/ui/patterns/badge.css +49 -0
  39. package/dist/ui/patterns/checkbox.css +71 -22
  40. package/dist/ui/patterns/radio.css +109 -0
  41. package/docs/README.md +38 -0
  42. package/docs/agentic/README.md +34 -0
  43. package/docs/agentic/assistant-behavior-rules.md +48 -0
  44. package/docs/agentic/skills/ux-writing-coach.md +116 -0
  45. package/docs/foundations/README.md +31 -0
  46. package/docs/foundations/foundation-001-token-layering.md +6 -0
  47. package/docs/foundations/foundation-002-naming-and-grouping.md +6 -0
  48. package/docs/foundations/foundation-003-color-semantics-and-status.md +6 -0
  49. package/docs/foundations/foundation-004-typography-scale-and-line-height.md +6 -0
  50. package/docs/foundations/foundation-005-responsive-breakpoints-and-containers.md +6 -0
  51. package/docs/foundations/foundation-006-z-index-layering.md +6 -0
  52. package/docs/foundations/foundation-007-typography-selectors-and-specificity.md +6 -0
  53. package/docs/foundations/foundation-008-mode-activation-and-consumer-control.md +6 -0
  54. package/docs/foundations/foundation-009-component-boundaries-and-utility.md +6 -0
  55. package/docs/foundations/foundation-010-implementation-and-pipeline-workflow.md +6 -0
  56. package/docs/foundations/foundation-011-branching-and-release-governance.md +6 -0
  57. package/docs/foundations/foundation-012-minimal-markup-and-composition.md +6 -0
  58. package/package.json +16 -14
  59. package/dist/tokens/css/themes-(brands).tokens.brand-a.css +0 -22
  60. package/dist/tokens/json/appearance-(modes).tokens.mode-dark.json +0 -182
  61. package/dist/tokens/json/appearance-(modes).tokens.mode-light.json +0 -182
  62. package/dist/tokens/json/components-(ui).tokens.json +0 -739
  63. package/dist/tokens/json/semantics-(roles).tokens.json +0 -203
  64. package/dist/tokens/json/themes-(brands).tokens.brand-a.json +0 -115
  65. package/dist/tokens/json/themes-(brands).tokens.brand-b.json +0 -115
  66. package/docs/agentic/skills/README.md +0 -51
  67. package/docs/agentic/skills/design-ops-specialist/SKILL.md +0 -60
  68. package/docs/agentic/skills/design-system-architect/SKILL.md +0 -106
  69. package/docs/agentic/team-ai-playbook.md +0 -226
@@ -0,0 +1,141 @@
1
+ {
2
+ "$schema": "https://www.designtokens.org/schemas/2025.10/format.json",
3
+ "Typography": {
4
+ "Heading": {
5
+ "Font Family": {
6
+ "$type": "fontFamily",
7
+ "$value": "{Brand.Font.Lead}"
8
+ },
9
+ "Font Size": {
10
+ "md": {
11
+ "$type": "number",
12
+ "$value": "{Font.Size.md}"
13
+ },
14
+ "xs": {
15
+ "$type": "number",
16
+ "$value": "{Font.Size.xs}"
17
+ },
18
+ "sm": {
19
+ "$type": "number",
20
+ "$value": "{Font.Size.sm}"
21
+ },
22
+ "lg": {
23
+ "$type": "number",
24
+ "$value": "{Font.Size.lg}"
25
+ },
26
+ "xl": {
27
+ "$type": "number",
28
+ "$value": "{Font.Size.xl}"
29
+ },
30
+ "xxl": {
31
+ "$type": "number",
32
+ "$value": "{Font.Size.xxl}"
33
+ },
34
+ "xxxl": {
35
+ "$type": "number",
36
+ "$value": "{Font.Size.xxxl}"
37
+ }
38
+ },
39
+ "Font Weight": {
40
+ "$type": "fontWeight",
41
+ "$value": "{Font.Weight.700}"
42
+ },
43
+ "Line Height": {
44
+ "md": {
45
+ "$type": "number",
46
+ "$value": "{Line Height.md}"
47
+ },
48
+ "xs": {
49
+ "$type": "number",
50
+ "$value": "{Line Height.xs}"
51
+ },
52
+ "sm": {
53
+ "$type": "number",
54
+ "$value": "{Line Height.sm}"
55
+ },
56
+ "lg": {
57
+ "$type": "number",
58
+ "$value": "{Line Height.lg}"
59
+ },
60
+ "xl": {
61
+ "$type": "number",
62
+ "$value": "{Line Height.xl}"
63
+ },
64
+ "xxl": {
65
+ "$type": "number",
66
+ "$value": "{Line Height.xxl}"
67
+ },
68
+ "xxxl": {
69
+ "$type": "number",
70
+ "$value": "{Line Height.xxxl}"
71
+ }
72
+ }
73
+ },
74
+ "Code": {
75
+ "$type": "fontFamily",
76
+ "$value": "{Font.Family.Mono}"
77
+ },
78
+ "Label": {
79
+ "Font Family": {
80
+ "$type": "fontFamily",
81
+ "$value": "{Brand.Font.Lead}"
82
+ },
83
+ "Font Weight": {
84
+ "$type": "fontWeight",
85
+ "$value": "{Font.Weight.600}"
86
+ },
87
+ "Font Size": {
88
+ "$type": "number",
89
+ "$value": "{Font.Size.md}"
90
+ },
91
+ "Line Height": {
92
+ "$type": "number",
93
+ "$value": "{Line Height.md}"
94
+ },
95
+ "Gap": {
96
+ "$type": "number",
97
+ "$value": "{Size.Spacing.200}"
98
+ }
99
+ },
100
+ "Body": {
101
+ "Font Family": {
102
+ "$type": "fontFamily",
103
+ "$value": "{Brand.Font.Base}"
104
+ },
105
+ "Font Weight": {
106
+ "$type": "fontWeight",
107
+ "$value": "{Font.Weight.400}"
108
+ },
109
+ "Font Size": {
110
+ "$type": "number",
111
+ "$value": "{Font.Size.md}"
112
+ },
113
+ "Line Height": {
114
+ "$type": "number",
115
+ "$value": "{Line Height.md}"
116
+ }
117
+ }
118
+ },
119
+ "Corner": {
120
+ "Button Radius": {
121
+ "$type": "number",
122
+ "$value": "{Brand.Corner.Button}"
123
+ },
124
+ "Card Radius": {
125
+ "$type": "number",
126
+ "$value": "{Brand.Corner.Card}"
127
+ },
128
+ "Modal Radius": {
129
+ "$type": "number",
130
+ "$value": "{Brand.Corner.Modal}"
131
+ },
132
+ "Form Radius": {
133
+ "$type": "number",
134
+ "$value": "{Brand.Corner.Card}"
135
+ },
136
+ "Checkbox Radius": {
137
+ "$type": "number",
138
+ "$value": "{Brand.Corner.Input}"
139
+ }
140
+ }
141
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "$schema": "https://www.designtokens.org/schemas/2025.10/format.json",
3
+ "Brand": {
4
+ "Color": {
5
+ "Functional": {
6
+ "Success": {
7
+ "$type": "color",
8
+ "$value": "{Color.Brand A.Green.600}"
9
+ },
10
+ "Danger": {
11
+ "$type": "color",
12
+ "$value": "{Color.Brand A.Red.600}"
13
+ },
14
+ "Base": {
15
+ "$type": "color",
16
+ "$value": "{Color.Brand A.Green.700}"
17
+ },
18
+ "Base Dark": {
19
+ "$type": "color",
20
+ "$value": "{Color.Brand A.Green.900}"
21
+ }
22
+ },
23
+ "Primary": {
24
+ "$type": "color",
25
+ "$value": "{Color.Brand A.Sand.700}"
26
+ },
27
+ "Accent": {
28
+ "$type": "color",
29
+ "$value": "{Color.Brand A.Green.400}"
30
+ },
31
+ "Primary Dark": {
32
+ "$type": "color",
33
+ "$value": "{Color.Brand A.Sand.900}"
34
+ },
35
+ "Accent Dark": {
36
+ "$type": "color",
37
+ "$value": "{Color.Brand A.Green.600}"
38
+ },
39
+ "Subtle": {
40
+ "$type": "color",
41
+ "$value": "{Color.Neutral.500}"
42
+ },
43
+ "Subtle Dark": {
44
+ "$type": "color",
45
+ "$value": "{Color.Neutral.800}"
46
+ },
47
+ "Subtle Light": {
48
+ "$type": "color",
49
+ "$value": "{Color.Neutral.200}"
50
+ }
51
+ },
52
+ "Font": {
53
+ "Base": {
54
+ "$type": "string",
55
+ "$value": "{Font.Family.Sans}"
56
+ },
57
+ "Lead": {
58
+ "$type": "string",
59
+ "$value": "{Font.Family.Serif}"
60
+ }
61
+ },
62
+ "Corner": {
63
+ "Button": {
64
+ "$type": "number",
65
+ "$value": "{Size.Radius.700}"
66
+ },
67
+ "Card": {
68
+ "$type": "number",
69
+ "$value": "{Size.Radius.200}"
70
+ },
71
+ "Modal": {
72
+ "$type": "number",
73
+ "$value": "{Size.Radius.400}"
74
+ },
75
+ "Input": {
76
+ "$type": "number",
77
+ "$value": "{Size.Radius.200}"
78
+ }
79
+ }
80
+ }
81
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "$schema": "https://www.designtokens.org/schemas/2025.10/format.json",
3
+ "Brand": {
4
+ "Color": {
5
+ "Functional": {
6
+ "Success": {
7
+ "$type": "color",
8
+ "$value": "{Color.Brand A.Green.600}"
9
+ },
10
+ "Danger": {
11
+ "$type": "color",
12
+ "$value": "{Color.Brand A.Red.600}"
13
+ },
14
+ "Base": {
15
+ "$type": "color",
16
+ "$value": "{Color.Brand A.Green.700}"
17
+ },
18
+ "Base Dark": {
19
+ "$type": "color",
20
+ "$value": "{Color.Brand A.Green.900}"
21
+ }
22
+ },
23
+ "Primary": {
24
+ "$type": "color",
25
+ "$value": "{Color.Brand A.Sand.700}"
26
+ },
27
+ "Accent": {
28
+ "$type": "color",
29
+ "$value": "{Color.Brand A.Green.400}"
30
+ },
31
+ "Primary Dark": {
32
+ "$type": "color",
33
+ "$value": "{Color.Brand A.Sand.900}"
34
+ },
35
+ "Accent Dark": {
36
+ "$type": "color",
37
+ "$value": "{Color.Brand A.Green.600}"
38
+ },
39
+ "Subtle": {
40
+ "$type": "color",
41
+ "$value": "{Color.Neutral.500}"
42
+ },
43
+ "Subtle Dark": {
44
+ "$type": "color",
45
+ "$value": "{Color.Neutral.800}"
46
+ },
47
+ "Subtle Light": {
48
+ "$type": "color",
49
+ "$value": "{Color.Neutral.200}"
50
+ }
51
+ },
52
+ "Font": {
53
+ "Base": {
54
+ "$type": "string",
55
+ "$value": "{Font.Family.Sans}"
56
+ },
57
+ "Lead": {
58
+ "$type": "string",
59
+ "$value": "{Font.Family.Serif}"
60
+ }
61
+ },
62
+ "Corner": {
63
+ "Button": {
64
+ "$type": "number",
65
+ "$value": "{Size.Radius.700}"
66
+ },
67
+ "Card": {
68
+ "$type": "number",
69
+ "$value": "{Size.Radius.200}"
70
+ },
71
+ "Modal": {
72
+ "$type": "number",
73
+ "$value": "{Size.Radius.400}"
74
+ },
75
+ "Input": {
76
+ "$type": "number",
77
+ "$value": "{Size.Radius.200}"
78
+ }
79
+ }
80
+ }
81
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "generated": "2026-04-19T14:37:39.153Z",
3
+ "description": "Missing alias targets — these tokens are referenced but do not exist in any Figma export. Create them in Figma or add temporary mocks.",
4
+ "missing": [
5
+ {
6
+ "ref": "Size/Spacing/50",
7
+ "referencedBy": [
8
+ "Form/Slider/Track Height",
9
+ "Form/Slider/Track Height"
10
+ ],
11
+ "suggestedMock": {
12
+ "type": "number",
13
+ "value": 2,
14
+ "unit": "px",
15
+ "note": "Core: spacing 50 — add to Core (Primitives)"
16
+ }
17
+ },
18
+ {
19
+ "ref": "Color/Fill/Muted",
20
+ "referencedBy": [
21
+ "Form/Slider/Track Color",
22
+ "Form/Slider/Track Color"
23
+ ],
24
+ "suggestedMock": {
25
+ "type": "color",
26
+ "value": "#e5e5e5",
27
+ "note": "Semantic: muted fill — add to Appearance (Modes)"
28
+ }
29
+ },
30
+ {
31
+ "ref": "Color/Border/Focus",
32
+ "referencedBy": [
33
+ "Form/Slider/Focus Ring Color",
34
+ "Form/Slider/Focus Ring Color"
35
+ ],
36
+ "suggestedMock": {
37
+ "type": "color",
38
+ "value": "#3b82f6",
39
+ "note": "Semantic: focus border — add to Appearance (Modes)"
40
+ }
41
+ }
42
+ ]
43
+ }