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
package/README.md ADDED
@@ -0,0 +1,105 @@
1
+ ![twntyX CSS Framework](/images/logos/stryda-logo-dark-png.png)
2
+
3
+ 👉 A **CSS Framework** built on [Tailwind CSS](https://www.npmjs.com/package/tailwindcss) to bring consistency and speed to **twntyX products**.
4
+
5
+ ------
6
+
7
+ ## Documentation
8
+
9
+ For full documentation, visit [twntyX.netlify.app](https://twntyX.netlify.app/).
10
+
11
+ ## Using the framework
12
+
13
+ ### 1. Install tailwindcss
14
+
15
+ Install tailwindcss and its peer dependencies via npm.
16
+
17
+ ```bash
18
+ npm install -D tailwindcss postcss autoprefixer
19
+ ```
20
+
21
+ ### 2. Install the framework
22
+
23
+ Install twntyx-css via npm.
24
+
25
+ ```bash
26
+ npm install twntyx-css
27
+ ```
28
+
29
+ ### 3. Import the css
30
+
31
+ Import the Framework CSS into your project stylesheet.
32
+
33
+ ```css
34
+ @import 'twntyx-css/styles/globals.css';
35
+ ```
36
+
37
+ ### 4. Adapt webpack config.
38
+
39
+ Add postcss-loader to webpack.config.js.
40
+
41
+ ```js
42
+ module: {
43
+ rules: [
44
+ {
45
+ test: /\.(css)$/,
46
+ use: ['style-loader', 'css-loader', 'postcss-loader'],
47
+ }
48
+ ]
49
+ }
50
+ ```
51
+
52
+ ### 5. Import and adapt tailwind config.
53
+
54
+ Import the framework config into your project tailwind.config.js and indicate which files Tailwind should scan.
55
+
56
+ ```js
57
+ const tailwindConfig = require('twntyx-css/tailwind.config');
58
+ module.exports = {
59
+ ...tailwindConfig,
60
+ content: [
61
+ "./pages/*.{js,ts,jsx,tsx,json}",
62
+ ],
63
+ };
64
+ ```
65
+
66
+ ## LLM metadata kit
67
+
68
+ The package ships machine-readable design-system metadata for coding assistants.
69
+
70
+ ```bash
71
+ npm install twntyx-css
72
+ ```
73
+
74
+ ```js
75
+ import manifest from "twntyx-css/llm";
76
+ import buttonSpec from "twntyx-css/llm/components/button.json";
77
+ ```
78
+
79
+ Available machine-readable exports:
80
+
81
+ - `twntyx-css/llm`
82
+ - `twntyx-css/llm/components/*`
83
+ - `twntyx-css/llm/tokens`
84
+ - `twntyx-css/llm/patterns`
85
+ - `twntyx-css/llm/rules`
86
+
87
+ Maintenance workflow for keeping this metadata current lives in `LLM_MAINTENANCE.md`.
88
+
89
+ ## Publishing
90
+
91
+ From the repository root:
92
+
93
+ ```bash
94
+ npm run pack:framework
95
+ ```
96
+
97
+ When ready to publish:
98
+
99
+ ```bash
100
+ npm run publish:framework
101
+ ```
102
+
103
+ ## That's it!
104
+
105
+ Your projects can now consume the twntyX theme and components. ✨
@@ -0,0 +1,7 @@
1
+ # LLM Kit Changelog
2
+
3
+ All notable changes to the generated LLM metadata contract are documented in this file.
4
+
5
+ ## [1.0.0] - 2026-02-22
6
+ - Initial machine-readable LLM kit release.
7
+ - Added schema, component contracts, tokens, composition patterns, and global rules.
@@ -0,0 +1,90 @@
1
+ {
2
+ "id": "ai-background",
3
+ "name": "Background",
4
+ "status": "stable",
5
+ "summary": "AI background is a twntyX branded background for AI experiences with animated gradients.",
6
+ "keywords": [
7
+ "agent",
8
+ "ai",
9
+ "ai background",
10
+ "ai-background",
11
+ "background",
12
+ "background blur",
13
+ "blur",
14
+ "blur background",
15
+ "chat",
16
+ "gpt",
17
+ "llama",
18
+ "llm",
19
+ "openai",
20
+ "twntyX"
21
+ ],
22
+ "sourcePaths": [
23
+ "app/design-system/ai-background/page.js",
24
+ "assets/styles/background-ai.css"
25
+ ],
26
+ "apiModel": "html-class",
27
+ "baseClass": "background-ai-silk",
28
+ "variants": [],
29
+ "sizes": [],
30
+ "states": [],
31
+ "structure": {
32
+ "rootElement": "div",
33
+ "requiredClasses": [
34
+ "background-ai-silk"
35
+ ],
36
+ "optionalClasses": [],
37
+ "requiredChildren": [],
38
+ "optionalChildren": []
39
+ },
40
+ "attributes": {
41
+ "allowed": [
42
+ "class"
43
+ ],
44
+ "required": [],
45
+ "dataAttributes": [],
46
+ "roles": [],
47
+ "aria": []
48
+ },
49
+ "a11y": {
50
+ "interactive": false,
51
+ "requiredRoles": [],
52
+ "requiredAria": [],
53
+ "keyboardSupport": [],
54
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
55
+ },
56
+ "dos": [
57
+ "Apply the base class 'background-ai-silk' on the root element.",
58
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
59
+ "Keep semantic color usage aligned with token classes for light/dark support."
60
+ ],
61
+ "donts": [
62
+ "Do not combine conflicting state classes on the same element.",
63
+ "Do not rely on undocumented internal classes in production templates.",
64
+ "Do not remove required accessibility attributes when component is interactive."
65
+ ],
66
+ "tokenUsage": [
67
+ "brand-default",
68
+ "brand-light",
69
+ "brand-moderate",
70
+ "brand-soft",
71
+ "core-black",
72
+ "core-white"
73
+ ],
74
+ "examples": [
75
+ {
76
+ "id": "canonical",
77
+ "file": "examples/ai-background.html",
78
+ "description": "Minimal canonical Background usage."
79
+ }
80
+ ],
81
+ "composition": {
82
+ "patterns": [],
83
+ "relatedComponents": [],
84
+ "notes": []
85
+ },
86
+ "breakingChangePolicy": {
87
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
88
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
89
+ }
90
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "id": "ai-orb",
3
+ "name": "Orb",
4
+ "status": "stable",
5
+ "summary": "Ambient AI orb with layered conic gradients and soft glow.",
6
+ "keywords": [
7
+ "ai",
8
+ "ai orb",
9
+ "ai-orb",
10
+ "ambient",
11
+ "animation",
12
+ "background",
13
+ "glow",
14
+ "orb",
15
+ "sphere"
16
+ ],
17
+ "sourcePaths": [
18
+ "app/design-system/ai-orb/page.js",
19
+ "assets/styles/ai.css"
20
+ ],
21
+ "apiModel": "html-class",
22
+ "baseClass": "ai-orb",
23
+ "variants": [],
24
+ "sizes": [],
25
+ "states": [],
26
+ "structure": {
27
+ "rootElement": "div",
28
+ "requiredClasses": [
29
+ "ai-orb"
30
+ ],
31
+ "optionalClasses": [],
32
+ "requiredChildren": [],
33
+ "optionalChildren": []
34
+ },
35
+ "attributes": {
36
+ "allowed": [
37
+ "class"
38
+ ],
39
+ "required": [],
40
+ "dataAttributes": [],
41
+ "roles": [],
42
+ "aria": []
43
+ },
44
+ "a11y": {
45
+ "interactive": false,
46
+ "requiredRoles": [],
47
+ "requiredAria": [],
48
+ "keyboardSupport": [],
49
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
50
+ },
51
+ "dos": [
52
+ "Apply the base class 'ai-orb' on the root element.",
53
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
54
+ "Keep semantic color usage aligned with token classes for light/dark support."
55
+ ],
56
+ "donts": [
57
+ "Do not combine conflicting state classes on the same element.",
58
+ "Do not rely on undocumented internal classes in production templates.",
59
+ "Do not remove required accessibility attributes when component is interactive."
60
+ ],
61
+ "tokenUsage": [
62
+ "brand-default",
63
+ "brand-light",
64
+ "brand-moderate",
65
+ "brand-soft",
66
+ "core-black",
67
+ "core-ui-300",
68
+ "core-ui-400",
69
+ "core-ui-500",
70
+ "core-ui-600",
71
+ "core-white",
72
+ "text-default",
73
+ "text-inverted"
74
+ ],
75
+ "examples": [
76
+ {
77
+ "id": "canonical",
78
+ "file": "examples/ai-orb.html",
79
+ "description": "Minimal canonical Orb usage."
80
+ }
81
+ ],
82
+ "composition": {
83
+ "patterns": [],
84
+ "relatedComponents": [],
85
+ "notes": []
86
+ },
87
+ "breakingChangePolicy": {
88
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
89
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
90
+ }
91
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "id": "ai-perl",
3
+ "name": "Perl",
4
+ "status": "stable",
5
+ "summary": "Animated AI loader with circular glow ring and letter pulse.",
6
+ "keywords": [
7
+ "ai",
8
+ "ai perl",
9
+ "ai-perl",
10
+ "animation",
11
+ "generating",
12
+ "loading",
13
+ "overlay",
14
+ "perl",
15
+ "spinner"
16
+ ],
17
+ "sourcePaths": [
18
+ "app/design-system/ai-perl/page.js",
19
+ "assets/styles/ai.css"
20
+ ],
21
+ "apiModel": "html-class",
22
+ "baseClass": "ai-perl",
23
+ "variants": [],
24
+ "sizes": [],
25
+ "states": [],
26
+ "structure": {
27
+ "rootElement": "div",
28
+ "requiredClasses": [
29
+ "ai-perl"
30
+ ],
31
+ "optionalClasses": [],
32
+ "requiredChildren": [],
33
+ "optionalChildren": []
34
+ },
35
+ "attributes": {
36
+ "allowed": [
37
+ "class"
38
+ ],
39
+ "required": [],
40
+ "dataAttributes": [],
41
+ "roles": [],
42
+ "aria": []
43
+ },
44
+ "a11y": {
45
+ "interactive": false,
46
+ "requiredRoles": [],
47
+ "requiredAria": [],
48
+ "keyboardSupport": [],
49
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
50
+ },
51
+ "dos": [
52
+ "Apply the base class 'ai-perl' on the root element.",
53
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
54
+ "Keep semantic color usage aligned with token classes for light/dark support."
55
+ ],
56
+ "donts": [
57
+ "Do not combine conflicting state classes on the same element.",
58
+ "Do not rely on undocumented internal classes in production templates.",
59
+ "Do not remove required accessibility attributes when component is interactive."
60
+ ],
61
+ "tokenUsage": [
62
+ "brand-default",
63
+ "brand-light",
64
+ "brand-moderate",
65
+ "brand-soft",
66
+ "core-black",
67
+ "core-ui-300",
68
+ "core-ui-400",
69
+ "core-ui-500",
70
+ "core-ui-600",
71
+ "core-white",
72
+ "text-default",
73
+ "text-inverted"
74
+ ],
75
+ "examples": [
76
+ {
77
+ "id": "canonical",
78
+ "file": "examples/ai-perl.html",
79
+ "description": "Minimal canonical Perl usage."
80
+ }
81
+ ],
82
+ "composition": {
83
+ "patterns": [],
84
+ "relatedComponents": [],
85
+ "notes": []
86
+ },
87
+ "breakingChangePolicy": {
88
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
89
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
90
+ }
91
+ }
@@ -0,0 +1,104 @@
1
+ {
2
+ "id": "all-components",
3
+ "name": "All components",
4
+ "status": "stable",
5
+ "summary": "Overview of all available components with live examples.",
6
+ "keywords": [
7
+ "all components",
8
+ "all-components",
9
+ "catalog",
10
+ "collection",
11
+ "components",
12
+ "demo",
13
+ "docs",
14
+ "documentation",
15
+ "elements",
16
+ "examples",
17
+ "gallery",
18
+ "guide",
19
+ "index",
20
+ "interface",
21
+ "library",
22
+ "list",
23
+ "overview",
24
+ "preview",
25
+ "reference",
26
+ "sample",
27
+ "showcase",
28
+ "ui"
29
+ ],
30
+ "sourcePaths": [
31
+ "app/design-system/all-components/page.js"
32
+ ],
33
+ "apiModel": "html-class",
34
+ "baseClass": "all-components",
35
+ "variants": [],
36
+ "sizes": [],
37
+ "states": [],
38
+ "structure": {
39
+ "rootElement": "div",
40
+ "requiredClasses": [
41
+ "all-components"
42
+ ],
43
+ "optionalClasses": [],
44
+ "requiredChildren": [],
45
+ "optionalChildren": []
46
+ },
47
+ "attributes": {
48
+ "allowed": [
49
+ "class"
50
+ ],
51
+ "required": [],
52
+ "dataAttributes": [
53
+ "data-value"
54
+ ],
55
+ "roles": [
56
+ "separator",
57
+ "status"
58
+ ],
59
+ "aria": [
60
+ "aria-current",
61
+ "aria-label"
62
+ ]
63
+ },
64
+ "a11y": {
65
+ "interactive": false,
66
+ "requiredRoles": [
67
+ "separator",
68
+ "status"
69
+ ],
70
+ "requiredAria": [
71
+ "aria-current",
72
+ "aria-label"
73
+ ],
74
+ "keyboardSupport": [],
75
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
76
+ },
77
+ "dos": [
78
+ "Apply the base class 'all-components' on the root element.",
79
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
80
+ "Keep semantic color usage aligned with token classes for light/dark support."
81
+ ],
82
+ "donts": [
83
+ "Do not combine conflicting state classes on the same element.",
84
+ "Do not rely on undocumented internal classes in production templates.",
85
+ "Do not remove required accessibility attributes when component is interactive."
86
+ ],
87
+ "tokenUsage": [],
88
+ "examples": [
89
+ {
90
+ "id": "canonical",
91
+ "file": "examples/all-components.html",
92
+ "description": "Minimal canonical All components usage."
93
+ }
94
+ ],
95
+ "composition": {
96
+ "patterns": [],
97
+ "relatedComponents": [],
98
+ "notes": []
99
+ },
100
+ "breakingChangePolicy": {
101
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
102
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
103
+ }
104
+ }
@@ -0,0 +1,84 @@
1
+ {
2
+ "id": "animation-references",
3
+ "name": "Animation references",
4
+ "status": "stable",
5
+ "summary": "Browse and preview all available CSS animations from the design system. Includes entrance, exit, and infinite loop animations with live previews and copy-to-clipboard functionality.",
6
+ "keywords": [
7
+ "animation",
8
+ "animation references",
9
+ "animation-references",
10
+ "bounce",
11
+ "css animation",
12
+ "effect",
13
+ "entrance",
14
+ "exit",
15
+ "fade",
16
+ "float",
17
+ "keyframes",
18
+ "motion",
19
+ "rotate",
20
+ "scale",
21
+ "slide",
22
+ "transition"
23
+ ],
24
+ "sourcePaths": [
25
+ "app/design-system/animation-references/page.js"
26
+ ],
27
+ "apiModel": "html-class",
28
+ "baseClass": "animation-references",
29
+ "variants": [],
30
+ "sizes": [],
31
+ "states": [],
32
+ "structure": {
33
+ "rootElement": "div",
34
+ "requiredClasses": [
35
+ "animation-references"
36
+ ],
37
+ "optionalClasses": [],
38
+ "requiredChildren": [],
39
+ "optionalChildren": []
40
+ },
41
+ "attributes": {
42
+ "allowed": [
43
+ "class"
44
+ ],
45
+ "required": [],
46
+ "dataAttributes": [],
47
+ "roles": [],
48
+ "aria": []
49
+ },
50
+ "a11y": {
51
+ "interactive": false,
52
+ "requiredRoles": [],
53
+ "requiredAria": [],
54
+ "keyboardSupport": [],
55
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
56
+ },
57
+ "dos": [
58
+ "Apply the base class 'animation-references' on the root element.",
59
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
60
+ "Keep semantic color usage aligned with token classes for light/dark support."
61
+ ],
62
+ "donts": [
63
+ "Do not combine conflicting state classes on the same element.",
64
+ "Do not rely on undocumented internal classes in production templates.",
65
+ "Do not remove required accessibility attributes when component is interactive."
66
+ ],
67
+ "tokenUsage": [],
68
+ "examples": [
69
+ {
70
+ "id": "canonical",
71
+ "file": "examples/animation-references.html",
72
+ "description": "Minimal canonical Animation references usage."
73
+ }
74
+ ],
75
+ "composition": {
76
+ "patterns": [],
77
+ "relatedComponents": [],
78
+ "notes": []
79
+ },
80
+ "breakingChangePolicy": {
81
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
82
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
83
+ }
84
+ }