twntyx-css 1.0.0

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 (228) hide show
  1. package/README.md +105 -0
  2. package/llm/CHANGELOG.md +7 -0
  3. package/llm/components/ai-background.json +90 -0
  4. package/llm/components/ai-orb.json +91 -0
  5. package/llm/components/ai-perl.json +91 -0
  6. package/llm/components/all-components.json +104 -0
  7. package/llm/components/animation-references.json +84 -0
  8. package/llm/components/avatar.json +149 -0
  9. package/llm/components/badge.json +263 -0
  10. package/llm/components/banner-marketplace.json +81 -0
  11. package/llm/components/banner.json +120 -0
  12. package/llm/components/breadcrumb.json +169 -0
  13. package/llm/components/button-container.json +150 -0
  14. package/llm/components/button-feedback.json +155 -0
  15. package/llm/components/button.json +290 -0
  16. package/llm/components/card-assessment.json +93 -0
  17. package/llm/components/card-test.json +83 -0
  18. package/llm/components/card.json +94 -0
  19. package/llm/components/chat.json +155 -0
  20. package/llm/components/checkbox.json +186 -0
  21. package/llm/components/checkmark.json +175 -0
  22. package/llm/components/collapsible.json +100 -0
  23. package/llm/components/color-palette.json +79 -0
  24. package/llm/components/color-usage.json +83 -0
  25. package/llm/components/combobox.json +143 -0
  26. package/llm/components/command-palette.json +159 -0
  27. package/llm/components/countdown.json +113 -0
  28. package/llm/components/datepicker.json +151 -0
  29. package/llm/components/divider.json +104 -0
  30. package/llm/components/empty-state.json +80 -0
  31. package/llm/components/field.json +123 -0
  32. package/llm/components/fieldset.json +78 -0
  33. package/llm/components/file-upload.json +163 -0
  34. package/llm/components/form-example.json +82 -0
  35. package/llm/components/getting-started.json +70 -0
  36. package/llm/components/icons-reference.json +78 -0
  37. package/llm/components/illustrations-library.json +78 -0
  38. package/llm/components/input-group.json +94 -0
  39. package/llm/components/introduction.json +71 -0
  40. package/llm/components/join.json +105 -0
  41. package/llm/components/kbd.json +139 -0
  42. package/llm/components/key-value.json +86 -0
  43. package/llm/components/link.json +120 -0
  44. package/llm/components/loader.json +117 -0
  45. package/llm/components/logotype.json +75 -0
  46. package/llm/components/menu.json +192 -0
  47. package/llm/components/modal.json +167 -0
  48. package/llm/components/navbar.json +158 -0
  49. package/llm/components/pagination.json +122 -0
  50. package/llm/components/pie-chart.json +94 -0
  51. package/llm/components/popover.json +174 -0
  52. package/llm/components/progress-bullet.json +203 -0
  53. package/llm/components/progress-linear.json +129 -0
  54. package/llm/components/progress-radial.json +125 -0
  55. package/llm/components/radio.json +162 -0
  56. package/llm/components/range-slider.json +125 -0
  57. package/llm/components/scrollbar.json +96 -0
  58. package/llm/components/select-input.json +224 -0
  59. package/llm/components/shadows.json +107 -0
  60. package/llm/components/skeleton.json +84 -0
  61. package/llm/components/stacked-chart.json +100 -0
  62. package/llm/components/state.json +138 -0
  63. package/llm/components/stepper.json +95 -0
  64. package/llm/components/steps.json +177 -0
  65. package/llm/components/surface.json +181 -0
  66. package/llm/components/table.json +223 -0
  67. package/llm/components/tabs.json +147 -0
  68. package/llm/components/template-ai.json +80 -0
  69. package/llm/components/template-login.json +88 -0
  70. package/llm/components/template-stats.json +76 -0
  71. package/llm/components/text-input.json +275 -0
  72. package/llm/components/textarea.json +183 -0
  73. package/llm/components/timeline.json +142 -0
  74. package/llm/components/toast.json +164 -0
  75. package/llm/components/toggle.json +158 -0
  76. package/llm/components/tool-svg-to-base64.json +78 -0
  77. package/llm/components/tool-svg-to-icon-data.json +81 -0
  78. package/llm/components/tooltip.json +90 -0
  79. package/llm/examples/ai-background.html +1 -0
  80. package/llm/examples/ai-orb.html +1 -0
  81. package/llm/examples/ai-perl.html +1 -0
  82. package/llm/examples/all-components.html +1 -0
  83. package/llm/examples/animation-references.html +1 -0
  84. package/llm/examples/avatar.html +1 -0
  85. package/llm/examples/badge.html +1 -0
  86. package/llm/examples/banner-marketplace.html +1 -0
  87. package/llm/examples/banner.html +1 -0
  88. package/llm/examples/breadcrumb.html +1 -0
  89. package/llm/examples/button-container.html +1 -0
  90. package/llm/examples/button-feedback.html +1 -0
  91. package/llm/examples/button.html +3 -0
  92. package/llm/examples/card-assessment.html +1 -0
  93. package/llm/examples/card-test.html +1 -0
  94. package/llm/examples/card.html +1 -0
  95. package/llm/examples/chat.html +1 -0
  96. package/llm/examples/checkbox.html +1 -0
  97. package/llm/examples/checkmark.html +1 -0
  98. package/llm/examples/collapsible.html +1 -0
  99. package/llm/examples/color-palette.html +1 -0
  100. package/llm/examples/color-usage.html +1 -0
  101. package/llm/examples/combobox.html +1 -0
  102. package/llm/examples/command-palette.html +1 -0
  103. package/llm/examples/countdown.html +1 -0
  104. package/llm/examples/datepicker.html +1 -0
  105. package/llm/examples/divider.html +1 -0
  106. package/llm/examples/empty-state.html +1 -0
  107. package/llm/examples/field.html +1 -0
  108. package/llm/examples/fieldset.html +1 -0
  109. package/llm/examples/file-upload.html +1 -0
  110. package/llm/examples/form-example.html +1 -0
  111. package/llm/examples/getting-started.html +1 -0
  112. package/llm/examples/icons-reference.html +1 -0
  113. package/llm/examples/illustrations-library.html +1 -0
  114. package/llm/examples/input-group.html +1 -0
  115. package/llm/examples/introduction.html +1 -0
  116. package/llm/examples/join.html +1 -0
  117. package/llm/examples/kbd.html +1 -0
  118. package/llm/examples/key-value.html +1 -0
  119. package/llm/examples/link.html +1 -0
  120. package/llm/examples/loader.html +1 -0
  121. package/llm/examples/logotype.html +1 -0
  122. package/llm/examples/menu.html +1 -0
  123. package/llm/examples/modal.html +16 -0
  124. package/llm/examples/navbar.html +1 -0
  125. package/llm/examples/pagination.html +1 -0
  126. package/llm/examples/pie-chart.html +1 -0
  127. package/llm/examples/popover.html +1 -0
  128. package/llm/examples/progress-bullet.html +1 -0
  129. package/llm/examples/progress-linear.html +1 -0
  130. package/llm/examples/progress-radial.html +1 -0
  131. package/llm/examples/radio.html +1 -0
  132. package/llm/examples/range-slider.html +1 -0
  133. package/llm/examples/scrollbar.html +1 -0
  134. package/llm/examples/select-input.html +1 -0
  135. package/llm/examples/shadows.html +1 -0
  136. package/llm/examples/skeleton.html +1 -0
  137. package/llm/examples/stacked-chart.html +1 -0
  138. package/llm/examples/state.html +1 -0
  139. package/llm/examples/stepper.html +1 -0
  140. package/llm/examples/steps.html +1 -0
  141. package/llm/examples/surface.html +1 -0
  142. package/llm/examples/table.html +16 -0
  143. package/llm/examples/tabs.html +1 -0
  144. package/llm/examples/template-ai.html +1 -0
  145. package/llm/examples/template-login.html +1 -0
  146. package/llm/examples/template-stats.html +1 -0
  147. package/llm/examples/text-input.html +10 -0
  148. package/llm/examples/textarea.html +1 -0
  149. package/llm/examples/timeline.html +1 -0
  150. package/llm/examples/toast.html +5 -0
  151. package/llm/examples/toggle.html +1 -0
  152. package/llm/examples/tool-svg-to-base64.html +1 -0
  153. package/llm/examples/tool-svg-to-icon-data.html +1 -0
  154. package/llm/examples/tooltip.html +1 -0
  155. package/llm/index.json +1615 -0
  156. package/llm/llms.txt +18 -0
  157. package/llm/patterns.json +111 -0
  158. package/llm/rules.json +47 -0
  159. package/llm/schema.json +804 -0
  160. package/llm/tokens.json +3629 -0
  161. package/package.json +30 -0
  162. package/styles/ai.css +114 -0
  163. package/styles/animation.css +2493 -0
  164. package/styles/avatar.css +101 -0
  165. package/styles/background-ai.css +118 -0
  166. package/styles/badge.css +274 -0
  167. package/styles/banner.css +98 -0
  168. package/styles/breadcrumb.css +72 -0
  169. package/styles/button.css +621 -0
  170. package/styles/card.css +27 -0
  171. package/styles/chart-pie.css +39 -0
  172. package/styles/chart-stacked.css +91 -0
  173. package/styles/chat.css +506 -0
  174. package/styles/checkmark.css +105 -0
  175. package/styles/code.css +264 -0
  176. package/styles/collapsible.css +93 -0
  177. package/styles/colors.css +536 -0
  178. package/styles/combobox.css +66 -0
  179. package/styles/command.css +81 -0
  180. package/styles/contest.css +227 -0
  181. package/styles/countdown.css +65 -0
  182. package/styles/datepicker.css +124 -0
  183. package/styles/divider.css +72 -0
  184. package/styles/drawer.css +142 -0
  185. package/styles/dropdown.css +22 -0
  186. package/styles/empty-state.css +48 -0
  187. package/styles/field.css +47 -0
  188. package/styles/fieldset.css +24 -0
  189. package/styles/form-checkbox-radio-toggle.css +233 -0
  190. package/styles/form-fileupload.css +146 -0
  191. package/styles/form-rangeslider.css +106 -0
  192. package/styles/form-shared.css +41 -0
  193. package/styles/form-text-select.css +411 -0
  194. package/styles/form.css +86 -0
  195. package/styles/globals.css +66 -0
  196. package/styles/input-group.css +63 -0
  197. package/styles/join.css +141 -0
  198. package/styles/kbd.css +55 -0
  199. package/styles/key-value.css +44 -0
  200. package/styles/link.css +48 -0
  201. package/styles/loader.css +183 -0
  202. package/styles/logotype.css +13 -0
  203. package/styles/menu.css +317 -0
  204. package/styles/modal.css +172 -0
  205. package/styles/navbar.css +48 -0
  206. package/styles/package-quill.css +1001 -0
  207. package/styles/pagination.css +147 -0
  208. package/styles/panel.css +113 -0
  209. package/styles/popover.css +303 -0
  210. package/styles/prism.css +60 -0
  211. package/styles/progress.css +209 -0
  212. package/styles/scrollbar.css +17 -0
  213. package/styles/shadow.css +25 -0
  214. package/styles/shared.css +226 -0
  215. package/styles/skeleton.css +34 -0
  216. package/styles/state.css +150 -0
  217. package/styles/stepper.css +72 -0
  218. package/styles/steps.css +98 -0
  219. package/styles/surface.css +252 -0
  220. package/styles/tab.css +286 -0
  221. package/styles/table.css +243 -0
  222. package/styles/theme.css +126 -0
  223. package/styles/timeline.css +193 -0
  224. package/styles/toast.css +150 -0
  225. package/styles/tooltip.css +8 -0
  226. package/styles/typography.css +160 -0
  227. package/styles/utility.css +20 -0
  228. package/tailwind.config.cjs +9 -0
@@ -0,0 +1,100 @@
1
+ {
2
+ "id": "stacked-chart",
3
+ "name": "Stacked chart",
4
+ "status": "stable",
5
+ "summary": "Stacked chart component used to visualize and compare scores or performance metrics across multiple individuals or groups.",
6
+ "keywords": [
7
+ "analytics",
8
+ "benchmark",
9
+ "chart",
10
+ "comparison",
11
+ "data visualization",
12
+ "distribution",
13
+ "evaluation",
14
+ "graph",
15
+ "group",
16
+ "individual",
17
+ "investor score",
18
+ "measurement",
19
+ "metrics",
20
+ "performance",
21
+ "ranking",
22
+ "results",
23
+ "score",
24
+ "stacked",
25
+ "stacked chart",
26
+ "stacked-chart",
27
+ "statistics",
28
+ "visualization"
29
+ ],
30
+ "sourcePaths": [
31
+ "app/design-system/stacked-chart/page.js",
32
+ "assets/styles/chart-stacked.css"
33
+ ],
34
+ "apiModel": "html-class",
35
+ "baseClass": "chart-stacked",
36
+ "variants": [],
37
+ "sizes": [],
38
+ "states": [],
39
+ "structure": {
40
+ "rootElement": "div",
41
+ "requiredClasses": [
42
+ "chart-stacked"
43
+ ],
44
+ "optionalClasses": [],
45
+ "requiredChildren": [],
46
+ "optionalChildren": []
47
+ },
48
+ "attributes": {
49
+ "allowed": [
50
+ "class"
51
+ ],
52
+ "required": [],
53
+ "dataAttributes": [],
54
+ "roles": [],
55
+ "aria": [
56
+ "aria-label"
57
+ ]
58
+ },
59
+ "a11y": {
60
+ "interactive": false,
61
+ "requiredRoles": [],
62
+ "requiredAria": [
63
+ "aria-label"
64
+ ],
65
+ "keyboardSupport": [],
66
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
67
+ },
68
+ "dos": [
69
+ "Apply the base class 'chart-stacked' on the root element.",
70
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
71
+ "Keep semantic color usage aligned with token classes for light/dark support."
72
+ ],
73
+ "donts": [
74
+ "Do not combine conflicting state classes on the same element.",
75
+ "Do not rely on undocumented internal classes in production templates.",
76
+ "Do not remove required accessibility attributes when component is interactive."
77
+ ],
78
+ "tokenUsage": [
79
+ "background-surface-elevated",
80
+ "line-default",
81
+ "line-subtle",
82
+ "text-tertiary"
83
+ ],
84
+ "examples": [
85
+ {
86
+ "id": "canonical",
87
+ "file": "examples/stacked-chart.html",
88
+ "description": "Minimal canonical Stacked chart usage."
89
+ }
90
+ ],
91
+ "composition": {
92
+ "patterns": [],
93
+ "relatedComponents": [],
94
+ "notes": []
95
+ },
96
+ "breakingChangePolicy": {
97
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
98
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
99
+ }
100
+ }
@@ -0,0 +1,138 @@
1
+ {
2
+ "id": "state",
3
+ "name": "State",
4
+ "status": "stable",
5
+ "summary": "State feedback for displaying temporary messages and feedback.",
6
+ "keywords": [
7
+ "alert",
8
+ "banner",
9
+ "error",
10
+ "feedback",
11
+ "indicator",
12
+ "info",
13
+ "message",
14
+ "notification",
15
+ "response",
16
+ "state",
17
+ "status",
18
+ "success",
19
+ "toast",
20
+ "update",
21
+ "warning"
22
+ ],
23
+ "sourcePaths": [
24
+ "app/design-system/state/page.js",
25
+ "assets/styles/state.css"
26
+ ],
27
+ "apiModel": "html-class",
28
+ "baseClass": "state",
29
+ "variants": [
30
+ {
31
+ "name": "state-success",
32
+ "className": "state-success",
33
+ "description": "Applies success state styling"
34
+ },
35
+ {
36
+ "name": "state-error",
37
+ "className": "state-error",
38
+ "description": "Applies error state styling"
39
+ },
40
+ {
41
+ "name": "state-info",
42
+ "className": "state-info",
43
+ "description": "Applies info state styling"
44
+ },
45
+ {
46
+ "name": "state-warning",
47
+ "className": "state-warning",
48
+ "description": "Applies warning state styling"
49
+ },
50
+ {
51
+ "name": "state-left",
52
+ "className": "state-left",
53
+ "description": "Left aligns the state content"
54
+ },
55
+ {
56
+ "name": "state-right",
57
+ "className": "state-right",
58
+ "description": "Right aligns the state content"
59
+ }
60
+ ],
61
+ "sizes": [],
62
+ "states": [
63
+ {
64
+ "name": "has-animation",
65
+ "className": "has-animation",
66
+ "description": "Enables animation effects"
67
+ }
68
+ ],
69
+ "structure": {
70
+ "rootElement": "div",
71
+ "requiredClasses": [
72
+ "state"
73
+ ],
74
+ "optionalClasses": [
75
+ "state-success",
76
+ "state-error",
77
+ "state-info",
78
+ "state-warning",
79
+ "state-left",
80
+ "state-right",
81
+ "has-animation"
82
+ ],
83
+ "requiredChildren": [],
84
+ "optionalChildren": []
85
+ },
86
+ "attributes": {
87
+ "allowed": [
88
+ "class"
89
+ ],
90
+ "required": [],
91
+ "dataAttributes": [],
92
+ "roles": [],
93
+ "aria": []
94
+ },
95
+ "a11y": {
96
+ "interactive": false,
97
+ "requiredRoles": [],
98
+ "requiredAria": [],
99
+ "keyboardSupport": [],
100
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
101
+ },
102
+ "dos": [
103
+ "Apply the base class 'state' on the root element.",
104
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
105
+ "Keep semantic color usage aligned with token classes for light/dark support."
106
+ ],
107
+ "donts": [
108
+ "Do not combine conflicting state classes on the same element.",
109
+ "Do not rely on undocumented internal classes in production templates.",
110
+ "Do not remove required accessibility attributes when component is interactive."
111
+ ],
112
+ "tokenUsage": [
113
+ "brand-default",
114
+ "brand-soft",
115
+ "line-default",
116
+ "line-error",
117
+ "line-success",
118
+ "line-warning"
119
+ ],
120
+ "examples": [
121
+ {
122
+ "id": "canonical",
123
+ "file": "examples/state.html",
124
+ "description": "Minimal canonical State usage."
125
+ }
126
+ ],
127
+ "composition": {
128
+ "patterns": [
129
+ "feedback-and-status"
130
+ ],
131
+ "relatedComponents": [],
132
+ "notes": []
133
+ },
134
+ "breakingChangePolicy": {
135
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
136
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
137
+ }
138
+ }
@@ -0,0 +1,95 @@
1
+ {
2
+ "id": "stepper",
3
+ "name": "Stepper",
4
+ "status": "stable",
5
+ "summary": "Animated number stepper for displaying percentage values.",
6
+ "keywords": [
7
+ "control",
8
+ "count",
9
+ "counter",
10
+ "decrement",
11
+ "increment",
12
+ "input",
13
+ "number",
14
+ "numeric",
15
+ "percentage",
16
+ "progress",
17
+ "stepper",
18
+ "value"
19
+ ],
20
+ "sourcePaths": [
21
+ "app/design-system/stepper/page.js",
22
+ "assets/styles/shared.css",
23
+ "assets/styles/stepper.css"
24
+ ],
25
+ "apiModel": "html-class",
26
+ "baseClass": "stepper",
27
+ "variants": [],
28
+ "sizes": [],
29
+ "states": [],
30
+ "structure": {
31
+ "rootElement": "button",
32
+ "requiredClasses": [
33
+ "stepper"
34
+ ],
35
+ "optionalClasses": [],
36
+ "requiredChildren": [],
37
+ "optionalChildren": []
38
+ },
39
+ "attributes": {
40
+ "allowed": [
41
+ "class"
42
+ ],
43
+ "required": [],
44
+ "dataAttributes": [],
45
+ "roles": [],
46
+ "aria": []
47
+ },
48
+ "a11y": {
49
+ "interactive": false,
50
+ "requiredRoles": [],
51
+ "requiredAria": [],
52
+ "keyboardSupport": [],
53
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
54
+ },
55
+ "dos": [
56
+ "Apply the base class 'stepper' on the root element.",
57
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
58
+ "Keep semantic color usage aligned with token classes for light/dark support."
59
+ ],
60
+ "donts": [
61
+ "Do not combine conflicting state classes on the same element.",
62
+ "Do not rely on undocumented internal classes in production templates.",
63
+ "Do not remove required accessibility attributes when component is interactive."
64
+ ],
65
+ "tokenUsage": [
66
+ "background-surface",
67
+ "background-surface-elevated",
68
+ "brand-default",
69
+ "brand-moderate",
70
+ "line-brand",
71
+ "line-default",
72
+ "line-error",
73
+ "line-focus",
74
+ "line-highlight",
75
+ "line-strong",
76
+ "text-default",
77
+ "text-inverted"
78
+ ],
79
+ "examples": [
80
+ {
81
+ "id": "canonical",
82
+ "file": "examples/stepper.html",
83
+ "description": "Minimal canonical Stepper usage."
84
+ }
85
+ ],
86
+ "composition": {
87
+ "patterns": [],
88
+ "relatedComponents": [],
89
+ "notes": []
90
+ },
91
+ "breakingChangePolicy": {
92
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
93
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
94
+ }
95
+ }
@@ -0,0 +1,177 @@
1
+ {
2
+ "id": "steps",
3
+ "name": "Steps",
4
+ "status": "stable",
5
+ "summary": "Step-by-step navigation component for multi-step processes.",
6
+ "keywords": [
7
+ "flow",
8
+ "guide",
9
+ "journey",
10
+ "navigation",
11
+ "path",
12
+ "phases",
13
+ "process",
14
+ "progress",
15
+ "sequence",
16
+ "stages",
17
+ "stepper",
18
+ "steps",
19
+ "wizard"
20
+ ],
21
+ "sourcePaths": [
22
+ "app/design-system/steps/page.js",
23
+ "assets/styles/breadcrumb.css",
24
+ "assets/styles/button.css",
25
+ "assets/styles/chat.css",
26
+ "assets/styles/checkmark.css",
27
+ "assets/styles/command.css",
28
+ "assets/styles/form-text-select.css",
29
+ "assets/styles/menu.css",
30
+ "assets/styles/navbar.css",
31
+ "assets/styles/pagination.css",
32
+ "assets/styles/progress.css",
33
+ "assets/styles/steps.css",
34
+ "assets/styles/tab.css",
35
+ "assets/styles/table.css",
36
+ "assets/styles/toast.css"
37
+ ],
38
+ "apiModel": "html-class",
39
+ "baseClass": "steps",
40
+ "variants": [
41
+ {
42
+ "name": "steps-vertical",
43
+ "className": "steps-vertical",
44
+ "description": "Makes steps display vertically"
45
+ }
46
+ ],
47
+ "sizes": [
48
+ {
49
+ "name": "steps-sm",
50
+ "className": "steps-sm",
51
+ "description": "Small size variant"
52
+ },
53
+ {
54
+ "name": "steps-lg",
55
+ "className": "steps-lg",
56
+ "description": "Large size variant"
57
+ }
58
+ ],
59
+ "states": [
60
+ {
61
+ "name": "is-active",
62
+ "className": "is-active",
63
+ "description": "Marks a step as active/complete"
64
+ }
65
+ ],
66
+ "structure": {
67
+ "rootElement": "div",
68
+ "requiredClasses": [
69
+ "steps"
70
+ ],
71
+ "optionalClasses": [
72
+ "steps-vertical",
73
+ "steps-sm",
74
+ "steps-lg",
75
+ "is-active"
76
+ ],
77
+ "requiredChildren": [],
78
+ "optionalChildren": []
79
+ },
80
+ "attributes": {
81
+ "allowed": [
82
+ "class"
83
+ ],
84
+ "required": [],
85
+ "dataAttributes": [],
86
+ "roles": [],
87
+ "aria": []
88
+ },
89
+ "a11y": {
90
+ "interactive": false,
91
+ "requiredRoles": [],
92
+ "requiredAria": [],
93
+ "keyboardSupport": [],
94
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
95
+ },
96
+ "dos": [
97
+ "Apply the base class 'steps' on the root element.",
98
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
99
+ "Keep semantic color usage aligned with token classes for light/dark support."
100
+ ],
101
+ "donts": [
102
+ "Do not combine conflicting state classes on the same element.",
103
+ "Do not rely on undocumented internal classes in production templates.",
104
+ "Do not remove required accessibility attributes when component is interactive."
105
+ ],
106
+ "tokenUsage": [
107
+ "background-brand",
108
+ "background-brand-active",
109
+ "background-error",
110
+ "background-error-active",
111
+ "background-info",
112
+ "background-info-active",
113
+ "background-inverted",
114
+ "background-page",
115
+ "background-success",
116
+ "background-success-active",
117
+ "background-surface",
118
+ "background-surface-elevated",
119
+ "background-surface-sunken",
120
+ "background-warning",
121
+ "background-warning-active",
122
+ "brand-default",
123
+ "brand-moderate",
124
+ "brand-strong",
125
+ "core-black",
126
+ "core-ui-100",
127
+ "core-ui-300",
128
+ "core-ui-400",
129
+ "core-ui-50",
130
+ "core-ui-600",
131
+ "core-ui-700",
132
+ "core-ui-800",
133
+ "core-ui-900",
134
+ "core-white",
135
+ "line-brand",
136
+ "line-default",
137
+ "line-error",
138
+ "line-focus",
139
+ "line-highlight",
140
+ "line-info",
141
+ "line-strong",
142
+ "line-success",
143
+ "line-warning",
144
+ "text-attention",
145
+ "text-brand",
146
+ "text-brand-active",
147
+ "text-brand-hover",
148
+ "text-default",
149
+ "text-disabled",
150
+ "text-error",
151
+ "text-info",
152
+ "text-inverted",
153
+ "text-link",
154
+ "text-link-active",
155
+ "text-link-hover",
156
+ "text-secondary",
157
+ "text-success",
158
+ "text-tertiary",
159
+ "text-warning"
160
+ ],
161
+ "examples": [
162
+ {
163
+ "id": "canonical",
164
+ "file": "examples/steps.html",
165
+ "description": "Minimal canonical Steps usage."
166
+ }
167
+ ],
168
+ "composition": {
169
+ "patterns": [],
170
+ "relatedComponents": [],
171
+ "notes": []
172
+ },
173
+ "breakingChangePolicy": {
174
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
175
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
176
+ }
177
+ }
@@ -0,0 +1,181 @@
1
+ {
2
+ "id": "surface",
3
+ "name": "Surface",
4
+ "status": "stable",
5
+ "summary": "Surface components for creating consistent container styles with backgrounds and borders.",
6
+ "keywords": [
7
+ "area",
8
+ "background",
9
+ "block",
10
+ "border",
11
+ "box",
12
+ "card",
13
+ "container",
14
+ "panel",
15
+ "region",
16
+ "section",
17
+ "surface",
18
+ "wrapper"
19
+ ],
20
+ "sourcePaths": [
21
+ "app/design-system/surface/page.js",
22
+ "assets/styles/form-checkbox-radio-toggle.css",
23
+ "assets/styles/surface.css"
24
+ ],
25
+ "apiModel": "html-class",
26
+ "baseClass": "surface",
27
+ "variants": [
28
+ {
29
+ "name": "surface-elevated",
30
+ "className": "surface-elevated",
31
+ "description": "Surface with elevated background color"
32
+ },
33
+ {
34
+ "name": "surface-sunken",
35
+ "className": "surface-sunken",
36
+ "description": "Surface with sunken background color"
37
+ },
38
+ {
39
+ "name": "surface-brand",
40
+ "className": "surface-brand",
41
+ "description": "Surface with brand colors"
42
+ },
43
+ {
44
+ "name": "surface-success",
45
+ "className": "surface-success",
46
+ "description": "Surface with success status colors"
47
+ },
48
+ {
49
+ "name": "surface-error",
50
+ "className": "surface-error",
51
+ "description": "Surface with error status colors"
52
+ },
53
+ {
54
+ "name": "surface-warning",
55
+ "className": "surface-warning",
56
+ "description": "Surface with warning status colors"
57
+ },
58
+ {
59
+ "name": "surface-info",
60
+ "className": "surface-info",
61
+ "description": "Surface with info status colors"
62
+ },
63
+ {
64
+ "name": "surface-interactive",
65
+ "className": "surface-interactive",
66
+ "description": "Makes any surface variant interactive with hover and active states"
67
+ }
68
+ ],
69
+ "sizes": [],
70
+ "states": [],
71
+ "structure": {
72
+ "rootElement": "div",
73
+ "requiredClasses": [
74
+ "surface"
75
+ ],
76
+ "optionalClasses": [
77
+ "surface-elevated",
78
+ "surface-sunken",
79
+ "surface-brand",
80
+ "surface-success",
81
+ "surface-error",
82
+ "surface-warning",
83
+ "surface-info",
84
+ "surface-interactive"
85
+ ],
86
+ "requiredChildren": [],
87
+ "optionalChildren": []
88
+ },
89
+ "attributes": {
90
+ "allowed": [
91
+ "class"
92
+ ],
93
+ "required": [],
94
+ "dataAttributes": [],
95
+ "roles": [],
96
+ "aria": []
97
+ },
98
+ "a11y": {
99
+ "interactive": false,
100
+ "requiredRoles": [],
101
+ "requiredAria": [],
102
+ "keyboardSupport": [],
103
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
104
+ },
105
+ "dos": [
106
+ "Apply the base class 'surface' on the root element.",
107
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
108
+ "Keep semantic color usage aligned with token classes for light/dark support."
109
+ ],
110
+ "donts": [
111
+ "Do not combine conflicting state classes on the same element.",
112
+ "Do not rely on undocumented internal classes in production templates.",
113
+ "Do not remove required accessibility attributes when component is interactive."
114
+ ],
115
+ "tokenUsage": [
116
+ "background-attention",
117
+ "background-attention-active",
118
+ "background-error",
119
+ "background-error-active",
120
+ "background-info",
121
+ "background-info-active",
122
+ "background-page",
123
+ "background-success",
124
+ "background-success-active",
125
+ "background-surface",
126
+ "background-surface-elevated",
127
+ "background-surface-sunken",
128
+ "background-warning",
129
+ "background-warning-active",
130
+ "brand-default",
131
+ "brand-moderate",
132
+ "brand-soft",
133
+ "brand-strong",
134
+ "core-black",
135
+ "core-ui-200",
136
+ "core-ui-300",
137
+ "core-ui-400",
138
+ "core-ui-50",
139
+ "core-ui-500",
140
+ "core-ui-600",
141
+ "core-ui-700",
142
+ "core-ui-900",
143
+ "core-white",
144
+ "line-attention",
145
+ "line-default",
146
+ "line-error",
147
+ "line-focus",
148
+ "line-highlight",
149
+ "line-hover",
150
+ "line-info",
151
+ "line-strong",
152
+ "line-success",
153
+ "line-warning",
154
+ "text-attention",
155
+ "text-default",
156
+ "text-error",
157
+ "text-info",
158
+ "text-inverted",
159
+ "text-success",
160
+ "text-tertiary",
161
+ "text-warning"
162
+ ],
163
+ "examples": [
164
+ {
165
+ "id": "canonical",
166
+ "file": "examples/surface.html",
167
+ "description": "Minimal canonical Surface usage."
168
+ }
169
+ ],
170
+ "composition": {
171
+ "patterns": [
172
+ "surface-and-content"
173
+ ],
174
+ "relatedComponents": [],
175
+ "notes": []
176
+ },
177
+ "breakingChangePolicy": {
178
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
179
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
180
+ }
181
+ }