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.
- package/README.md +105 -0
- package/llm/CHANGELOG.md +7 -0
- package/llm/components/ai-background.json +90 -0
- package/llm/components/ai-orb.json +91 -0
- package/llm/components/ai-perl.json +91 -0
- package/llm/components/all-components.json +104 -0
- package/llm/components/animation-references.json +84 -0
- package/llm/components/avatar.json +149 -0
- package/llm/components/badge.json +263 -0
- package/llm/components/banner-marketplace.json +81 -0
- package/llm/components/banner.json +120 -0
- package/llm/components/breadcrumb.json +169 -0
- package/llm/components/button-container.json +150 -0
- package/llm/components/button-feedback.json +155 -0
- package/llm/components/button.json +290 -0
- package/llm/components/card-assessment.json +93 -0
- package/llm/components/card-test.json +83 -0
- package/llm/components/card.json +94 -0
- package/llm/components/chat.json +155 -0
- package/llm/components/checkbox.json +186 -0
- package/llm/components/checkmark.json +175 -0
- package/llm/components/collapsible.json +100 -0
- package/llm/components/color-palette.json +79 -0
- package/llm/components/color-usage.json +83 -0
- package/llm/components/combobox.json +143 -0
- package/llm/components/command-palette.json +159 -0
- package/llm/components/countdown.json +113 -0
- package/llm/components/datepicker.json +151 -0
- package/llm/components/divider.json +104 -0
- package/llm/components/empty-state.json +80 -0
- package/llm/components/field.json +123 -0
- package/llm/components/fieldset.json +78 -0
- package/llm/components/file-upload.json +163 -0
- package/llm/components/form-example.json +82 -0
- package/llm/components/getting-started.json +70 -0
- package/llm/components/icons-reference.json +78 -0
- package/llm/components/illustrations-library.json +78 -0
- package/llm/components/input-group.json +94 -0
- package/llm/components/introduction.json +71 -0
- package/llm/components/join.json +105 -0
- package/llm/components/kbd.json +139 -0
- package/llm/components/key-value.json +86 -0
- package/llm/components/link.json +120 -0
- package/llm/components/loader.json +117 -0
- package/llm/components/logotype.json +75 -0
- package/llm/components/menu.json +192 -0
- package/llm/components/modal.json +167 -0
- package/llm/components/navbar.json +158 -0
- package/llm/components/pagination.json +122 -0
- package/llm/components/pie-chart.json +94 -0
- package/llm/components/popover.json +174 -0
- package/llm/components/progress-bullet.json +203 -0
- package/llm/components/progress-linear.json +129 -0
- package/llm/components/progress-radial.json +125 -0
- package/llm/components/radio.json +162 -0
- package/llm/components/range-slider.json +125 -0
- package/llm/components/scrollbar.json +96 -0
- package/llm/components/select-input.json +224 -0
- package/llm/components/shadows.json +107 -0
- package/llm/components/skeleton.json +84 -0
- package/llm/components/stacked-chart.json +100 -0
- package/llm/components/state.json +138 -0
- package/llm/components/stepper.json +95 -0
- package/llm/components/steps.json +177 -0
- package/llm/components/surface.json +181 -0
- package/llm/components/table.json +223 -0
- package/llm/components/tabs.json +147 -0
- package/llm/components/template-ai.json +80 -0
- package/llm/components/template-login.json +88 -0
- package/llm/components/template-stats.json +76 -0
- package/llm/components/text-input.json +275 -0
- package/llm/components/textarea.json +183 -0
- package/llm/components/timeline.json +142 -0
- package/llm/components/toast.json +164 -0
- package/llm/components/toggle.json +158 -0
- package/llm/components/tool-svg-to-base64.json +78 -0
- package/llm/components/tool-svg-to-icon-data.json +81 -0
- package/llm/components/tooltip.json +90 -0
- package/llm/examples/ai-background.html +1 -0
- package/llm/examples/ai-orb.html +1 -0
- package/llm/examples/ai-perl.html +1 -0
- package/llm/examples/all-components.html +1 -0
- package/llm/examples/animation-references.html +1 -0
- package/llm/examples/avatar.html +1 -0
- package/llm/examples/badge.html +1 -0
- package/llm/examples/banner-marketplace.html +1 -0
- package/llm/examples/banner.html +1 -0
- package/llm/examples/breadcrumb.html +1 -0
- package/llm/examples/button-container.html +1 -0
- package/llm/examples/button-feedback.html +1 -0
- package/llm/examples/button.html +3 -0
- package/llm/examples/card-assessment.html +1 -0
- package/llm/examples/card-test.html +1 -0
- package/llm/examples/card.html +1 -0
- package/llm/examples/chat.html +1 -0
- package/llm/examples/checkbox.html +1 -0
- package/llm/examples/checkmark.html +1 -0
- package/llm/examples/collapsible.html +1 -0
- package/llm/examples/color-palette.html +1 -0
- package/llm/examples/color-usage.html +1 -0
- package/llm/examples/combobox.html +1 -0
- package/llm/examples/command-palette.html +1 -0
- package/llm/examples/countdown.html +1 -0
- package/llm/examples/datepicker.html +1 -0
- package/llm/examples/divider.html +1 -0
- package/llm/examples/empty-state.html +1 -0
- package/llm/examples/field.html +1 -0
- package/llm/examples/fieldset.html +1 -0
- package/llm/examples/file-upload.html +1 -0
- package/llm/examples/form-example.html +1 -0
- package/llm/examples/getting-started.html +1 -0
- package/llm/examples/icons-reference.html +1 -0
- package/llm/examples/illustrations-library.html +1 -0
- package/llm/examples/input-group.html +1 -0
- package/llm/examples/introduction.html +1 -0
- package/llm/examples/join.html +1 -0
- package/llm/examples/kbd.html +1 -0
- package/llm/examples/key-value.html +1 -0
- package/llm/examples/link.html +1 -0
- package/llm/examples/loader.html +1 -0
- package/llm/examples/logotype.html +1 -0
- package/llm/examples/menu.html +1 -0
- package/llm/examples/modal.html +16 -0
- package/llm/examples/navbar.html +1 -0
- package/llm/examples/pagination.html +1 -0
- package/llm/examples/pie-chart.html +1 -0
- package/llm/examples/popover.html +1 -0
- package/llm/examples/progress-bullet.html +1 -0
- package/llm/examples/progress-linear.html +1 -0
- package/llm/examples/progress-radial.html +1 -0
- package/llm/examples/radio.html +1 -0
- package/llm/examples/range-slider.html +1 -0
- package/llm/examples/scrollbar.html +1 -0
- package/llm/examples/select-input.html +1 -0
- package/llm/examples/shadows.html +1 -0
- package/llm/examples/skeleton.html +1 -0
- package/llm/examples/stacked-chart.html +1 -0
- package/llm/examples/state.html +1 -0
- package/llm/examples/stepper.html +1 -0
- package/llm/examples/steps.html +1 -0
- package/llm/examples/surface.html +1 -0
- package/llm/examples/table.html +16 -0
- package/llm/examples/tabs.html +1 -0
- package/llm/examples/template-ai.html +1 -0
- package/llm/examples/template-login.html +1 -0
- package/llm/examples/template-stats.html +1 -0
- package/llm/examples/text-input.html +10 -0
- package/llm/examples/textarea.html +1 -0
- package/llm/examples/timeline.html +1 -0
- package/llm/examples/toast.html +5 -0
- package/llm/examples/toggle.html +1 -0
- package/llm/examples/tool-svg-to-base64.html +1 -0
- package/llm/examples/tool-svg-to-icon-data.html +1 -0
- package/llm/examples/tooltip.html +1 -0
- package/llm/index.json +1615 -0
- package/llm/llms.txt +18 -0
- package/llm/patterns.json +111 -0
- package/llm/rules.json +47 -0
- package/llm/schema.json +804 -0
- package/llm/tokens.json +3629 -0
- package/package.json +30 -0
- package/styles/ai.css +114 -0
- package/styles/animation.css +2493 -0
- package/styles/avatar.css +101 -0
- package/styles/background-ai.css +118 -0
- package/styles/badge.css +274 -0
- package/styles/banner.css +98 -0
- package/styles/breadcrumb.css +72 -0
- package/styles/button.css +621 -0
- package/styles/card.css +27 -0
- package/styles/chart-pie.css +39 -0
- package/styles/chart-stacked.css +91 -0
- package/styles/chat.css +506 -0
- package/styles/checkmark.css +105 -0
- package/styles/code.css +264 -0
- package/styles/collapsible.css +93 -0
- package/styles/colors.css +536 -0
- package/styles/combobox.css +66 -0
- package/styles/command.css +81 -0
- package/styles/contest.css +227 -0
- package/styles/countdown.css +65 -0
- package/styles/datepicker.css +124 -0
- package/styles/divider.css +72 -0
- package/styles/drawer.css +142 -0
- package/styles/dropdown.css +22 -0
- package/styles/empty-state.css +48 -0
- package/styles/field.css +47 -0
- package/styles/fieldset.css +24 -0
- package/styles/form-checkbox-radio-toggle.css +233 -0
- package/styles/form-fileupload.css +146 -0
- package/styles/form-rangeslider.css +106 -0
- package/styles/form-shared.css +41 -0
- package/styles/form-text-select.css +411 -0
- package/styles/form.css +86 -0
- package/styles/globals.css +66 -0
- package/styles/input-group.css +63 -0
- package/styles/join.css +141 -0
- package/styles/kbd.css +55 -0
- package/styles/key-value.css +44 -0
- package/styles/link.css +48 -0
- package/styles/loader.css +183 -0
- package/styles/logotype.css +13 -0
- package/styles/menu.css +317 -0
- package/styles/modal.css +172 -0
- package/styles/navbar.css +48 -0
- package/styles/package-quill.css +1001 -0
- package/styles/pagination.css +147 -0
- package/styles/panel.css +113 -0
- package/styles/popover.css +303 -0
- package/styles/prism.css +60 -0
- package/styles/progress.css +209 -0
- package/styles/scrollbar.css +17 -0
- package/styles/shadow.css +25 -0
- package/styles/shared.css +226 -0
- package/styles/skeleton.css +34 -0
- package/styles/state.css +150 -0
- package/styles/stepper.css +72 -0
- package/styles/steps.css +98 -0
- package/styles/surface.css +252 -0
- package/styles/tab.css +286 -0
- package/styles/table.css +243 -0
- package/styles/theme.css +126 -0
- package/styles/timeline.css +193 -0
- package/styles/toast.css +150 -0
- package/styles/tooltip.css +8 -0
- package/styles/typography.css +160 -0
- package/styles/utility.css +20 -0
- package/tailwind.config.cjs +9 -0
package/README.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+

|
|
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. ✨
|
package/llm/CHANGELOG.md
ADDED
|
@@ -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
|
+
}
|