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
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "range-slider",
|
|
3
|
+
"name": "Range slider",
|
|
4
|
+
"status": "stable",
|
|
5
|
+
"summary": "Range slider component for selecting numeric values.",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"adjust",
|
|
8
|
+
"control",
|
|
9
|
+
"drag",
|
|
10
|
+
"form",
|
|
11
|
+
"input",
|
|
12
|
+
"max",
|
|
13
|
+
"min",
|
|
14
|
+
"number",
|
|
15
|
+
"numeric",
|
|
16
|
+
"range",
|
|
17
|
+
"range slider",
|
|
18
|
+
"range-slider",
|
|
19
|
+
"scale",
|
|
20
|
+
"slide",
|
|
21
|
+
"slider",
|
|
22
|
+
"value"
|
|
23
|
+
],
|
|
24
|
+
"sourcePaths": [
|
|
25
|
+
"app/design-system/range-slider/page.js",
|
|
26
|
+
"assets/styles/form-rangeslider.css"
|
|
27
|
+
],
|
|
28
|
+
"apiModel": "html-class",
|
|
29
|
+
"baseClass": "range-slider",
|
|
30
|
+
"variants": [],
|
|
31
|
+
"sizes": [
|
|
32
|
+
{
|
|
33
|
+
"name": "range-xs",
|
|
34
|
+
"className": "range-xs",
|
|
35
|
+
"description": "Extra small size variant"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name": "range-sm",
|
|
39
|
+
"className": "range-sm",
|
|
40
|
+
"description": "Small size variant"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "range-md",
|
|
44
|
+
"className": "range-md",
|
|
45
|
+
"description": "Medium size variant (default)"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "range-lg",
|
|
49
|
+
"className": "range-lg",
|
|
50
|
+
"description": "Large size variant"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "range-xl",
|
|
54
|
+
"className": "range-xl",
|
|
55
|
+
"description": "Extra large size variant"
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"states": [],
|
|
59
|
+
"structure": {
|
|
60
|
+
"rootElement": "input",
|
|
61
|
+
"requiredClasses": [
|
|
62
|
+
"range-slider"
|
|
63
|
+
],
|
|
64
|
+
"optionalClasses": [
|
|
65
|
+
"range-xs",
|
|
66
|
+
"range-sm",
|
|
67
|
+
"range-md",
|
|
68
|
+
"range-lg",
|
|
69
|
+
"range-xl"
|
|
70
|
+
],
|
|
71
|
+
"requiredChildren": [],
|
|
72
|
+
"optionalChildren": []
|
|
73
|
+
},
|
|
74
|
+
"attributes": {
|
|
75
|
+
"allowed": [
|
|
76
|
+
"class"
|
|
77
|
+
],
|
|
78
|
+
"required": [],
|
|
79
|
+
"dataAttributes": [],
|
|
80
|
+
"roles": [],
|
|
81
|
+
"aria": []
|
|
82
|
+
},
|
|
83
|
+
"a11y": {
|
|
84
|
+
"interactive": false,
|
|
85
|
+
"requiredRoles": [],
|
|
86
|
+
"requiredAria": [],
|
|
87
|
+
"keyboardSupport": [],
|
|
88
|
+
"focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
|
|
89
|
+
},
|
|
90
|
+
"dos": [
|
|
91
|
+
"Apply the base class 'range-slider' on the root element.",
|
|
92
|
+
"Use documented modifiers for visual variants instead of ad-hoc custom classes.",
|
|
93
|
+
"Keep semantic color usage aligned with token classes for light/dark support."
|
|
94
|
+
],
|
|
95
|
+
"donts": [
|
|
96
|
+
"Do not combine conflicting state classes on the same element.",
|
|
97
|
+
"Do not rely on undocumented internal classes in production templates.",
|
|
98
|
+
"Do not remove required accessibility attributes when component is interactive."
|
|
99
|
+
],
|
|
100
|
+
"tokenUsage": [
|
|
101
|
+
"background-brand",
|
|
102
|
+
"brand-default",
|
|
103
|
+
"core-black",
|
|
104
|
+
"core-white",
|
|
105
|
+
"line-focus",
|
|
106
|
+
"line-highlight",
|
|
107
|
+
"line-strong"
|
|
108
|
+
],
|
|
109
|
+
"examples": [
|
|
110
|
+
{
|
|
111
|
+
"id": "canonical",
|
|
112
|
+
"file": "examples/range-slider.html",
|
|
113
|
+
"description": "Minimal canonical Range slider usage."
|
|
114
|
+
}
|
|
115
|
+
],
|
|
116
|
+
"composition": {
|
|
117
|
+
"patterns": [],
|
|
118
|
+
"relatedComponents": [],
|
|
119
|
+
"notes": []
|
|
120
|
+
},
|
|
121
|
+
"breakingChangePolicy": {
|
|
122
|
+
"classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
|
|
123
|
+
"a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
|
|
124
|
+
}
|
|
125
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "scrollbar",
|
|
3
|
+
"name": "Scrollbar",
|
|
4
|
+
"status": "stable",
|
|
5
|
+
"summary": "Alternative scrollbar designs for the browser's scrollbar.",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"bar",
|
|
8
|
+
"container",
|
|
9
|
+
"custom scrollbar",
|
|
10
|
+
"overflow",
|
|
11
|
+
"pane",
|
|
12
|
+
"scroll",
|
|
13
|
+
"scroll styling",
|
|
14
|
+
"scrollbar",
|
|
15
|
+
"scroller",
|
|
16
|
+
"scrolling",
|
|
17
|
+
"thumb",
|
|
18
|
+
"track",
|
|
19
|
+
"viewport"
|
|
20
|
+
],
|
|
21
|
+
"sourcePaths": [
|
|
22
|
+
"app/design-system/scrollbar/page.js",
|
|
23
|
+
"assets/styles/scrollbar.css"
|
|
24
|
+
],
|
|
25
|
+
"apiModel": "html-class",
|
|
26
|
+
"baseClass": "scrollbar",
|
|
27
|
+
"variants": [
|
|
28
|
+
{
|
|
29
|
+
"name": "scrollbar",
|
|
30
|
+
"className": "scrollbar",
|
|
31
|
+
"description": "Custom scrollbar"
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"sizes": [],
|
|
35
|
+
"states": [],
|
|
36
|
+
"structure": {
|
|
37
|
+
"rootElement": "div",
|
|
38
|
+
"requiredClasses": [
|
|
39
|
+
"scrollbar"
|
|
40
|
+
],
|
|
41
|
+
"optionalClasses": [
|
|
42
|
+
"scrollbar"
|
|
43
|
+
],
|
|
44
|
+
"requiredChildren": [],
|
|
45
|
+
"optionalChildren": []
|
|
46
|
+
},
|
|
47
|
+
"attributes": {
|
|
48
|
+
"allowed": [
|
|
49
|
+
"class"
|
|
50
|
+
],
|
|
51
|
+
"required": [],
|
|
52
|
+
"dataAttributes": [],
|
|
53
|
+
"roles": [],
|
|
54
|
+
"aria": []
|
|
55
|
+
},
|
|
56
|
+
"a11y": {
|
|
57
|
+
"interactive": false,
|
|
58
|
+
"requiredRoles": [],
|
|
59
|
+
"requiredAria": [],
|
|
60
|
+
"keyboardSupport": [],
|
|
61
|
+
"focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
|
|
62
|
+
},
|
|
63
|
+
"dos": [
|
|
64
|
+
"Apply the base class 'scrollbar' on the root element.",
|
|
65
|
+
"Use documented modifiers for visual variants instead of ad-hoc custom classes.",
|
|
66
|
+
"Keep semantic color usage aligned with token classes for light/dark support."
|
|
67
|
+
],
|
|
68
|
+
"donts": [
|
|
69
|
+
"Do not combine conflicting state classes on the same element.",
|
|
70
|
+
"Do not rely on undocumented internal classes in production templates.",
|
|
71
|
+
"Do not remove required accessibility attributes when component is interactive."
|
|
72
|
+
],
|
|
73
|
+
"tokenUsage": [
|
|
74
|
+
"core-ui-100",
|
|
75
|
+
"core-ui-300",
|
|
76
|
+
"core-ui-400",
|
|
77
|
+
"core-ui-500",
|
|
78
|
+
"core-ui-700"
|
|
79
|
+
],
|
|
80
|
+
"examples": [
|
|
81
|
+
{
|
|
82
|
+
"id": "canonical",
|
|
83
|
+
"file": "examples/scrollbar.html",
|
|
84
|
+
"description": "Minimal canonical Scrollbar usage."
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"composition": {
|
|
88
|
+
"patterns": [],
|
|
89
|
+
"relatedComponents": [],
|
|
90
|
+
"notes": []
|
|
91
|
+
},
|
|
92
|
+
"breakingChangePolicy": {
|
|
93
|
+
"classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
|
|
94
|
+
"a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "select-input",
|
|
3
|
+
"name": "Select input",
|
|
4
|
+
"status": "stable",
|
|
5
|
+
"summary": "Select input component for choosing from predefined options.",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"choice",
|
|
8
|
+
"choose",
|
|
9
|
+
"combobox",
|
|
10
|
+
"dropdown",
|
|
11
|
+
"field",
|
|
12
|
+
"form",
|
|
13
|
+
"input",
|
|
14
|
+
"list",
|
|
15
|
+
"menu",
|
|
16
|
+
"options",
|
|
17
|
+
"picker",
|
|
18
|
+
"select",
|
|
19
|
+
"select input",
|
|
20
|
+
"select-input",
|
|
21
|
+
"selection"
|
|
22
|
+
],
|
|
23
|
+
"sourcePaths": [
|
|
24
|
+
"app/design-system/select-input/page.js",
|
|
25
|
+
"assets/styles/button.css",
|
|
26
|
+
"assets/styles/chat.css",
|
|
27
|
+
"assets/styles/collapsible.css",
|
|
28
|
+
"assets/styles/field.css",
|
|
29
|
+
"assets/styles/form-checkbox-radio-toggle.css",
|
|
30
|
+
"assets/styles/form-text-select.css",
|
|
31
|
+
"assets/styles/input-group.css",
|
|
32
|
+
"assets/styles/toast.css"
|
|
33
|
+
],
|
|
34
|
+
"apiModel": "html-class",
|
|
35
|
+
"baseClass": "input-select",
|
|
36
|
+
"variants": [
|
|
37
|
+
{
|
|
38
|
+
"name": "input-divide",
|
|
39
|
+
"className": "input-divide",
|
|
40
|
+
"description": "Adds divider between select and addons"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "input-ghost",
|
|
44
|
+
"className": "input-ghost",
|
|
45
|
+
"description": "Removes borders and background"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "rounded-none",
|
|
49
|
+
"className": "rounded-none",
|
|
50
|
+
"description": "Removes border radius"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "rounded-full",
|
|
54
|
+
"className": "rounded-full",
|
|
55
|
+
"description": "Fully rounded corners (default)"
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"sizes": [
|
|
59
|
+
{
|
|
60
|
+
"name": "input-xs",
|
|
61
|
+
"className": "input-xs",
|
|
62
|
+
"description": "Extra small size variant"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "input-sm",
|
|
66
|
+
"className": "input-sm",
|
|
67
|
+
"description": "Small size variant"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "input-lg",
|
|
71
|
+
"className": "input-lg",
|
|
72
|
+
"description": "Large size variant"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"name": "rounded-sm",
|
|
76
|
+
"className": "rounded-sm",
|
|
77
|
+
"description": "Small border radius (2px)"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"name": "rounded-md",
|
|
81
|
+
"className": "rounded-md",
|
|
82
|
+
"description": "Medium border radius (6px)"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"name": "rounded-lg",
|
|
86
|
+
"className": "rounded-lg",
|
|
87
|
+
"description": "Large border radius (8px)"
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
"states": [
|
|
91
|
+
{
|
|
92
|
+
"name": "is-loading",
|
|
93
|
+
"className": "is-loading",
|
|
94
|
+
"description": "Shows loading spinner"
|
|
95
|
+
}
|
|
96
|
+
],
|
|
97
|
+
"structure": {
|
|
98
|
+
"rootElement": "input",
|
|
99
|
+
"requiredClasses": [
|
|
100
|
+
"input-select"
|
|
101
|
+
],
|
|
102
|
+
"optionalClasses": [
|
|
103
|
+
"input-divide",
|
|
104
|
+
"input-ghost",
|
|
105
|
+
"rounded-none",
|
|
106
|
+
"rounded-full",
|
|
107
|
+
"input-xs",
|
|
108
|
+
"input-sm",
|
|
109
|
+
"input-lg",
|
|
110
|
+
"rounded-sm",
|
|
111
|
+
"rounded-md",
|
|
112
|
+
"rounded-lg",
|
|
113
|
+
"is-loading"
|
|
114
|
+
],
|
|
115
|
+
"requiredChildren": [],
|
|
116
|
+
"optionalChildren": []
|
|
117
|
+
},
|
|
118
|
+
"attributes": {
|
|
119
|
+
"allowed": [
|
|
120
|
+
"class",
|
|
121
|
+
"id",
|
|
122
|
+
"tabindex"
|
|
123
|
+
],
|
|
124
|
+
"required": [],
|
|
125
|
+
"dataAttributes": [],
|
|
126
|
+
"roles": [],
|
|
127
|
+
"aria": []
|
|
128
|
+
},
|
|
129
|
+
"a11y": {
|
|
130
|
+
"interactive": true,
|
|
131
|
+
"requiredRoles": [],
|
|
132
|
+
"requiredAria": [
|
|
133
|
+
"aria-label (when no visible label)"
|
|
134
|
+
],
|
|
135
|
+
"keyboardSupport": [
|
|
136
|
+
"Tab",
|
|
137
|
+
"Shift+Tab",
|
|
138
|
+
"Enter",
|
|
139
|
+
"Space"
|
|
140
|
+
],
|
|
141
|
+
"focusBehavior": "Visible focus state is required when the component is focusable or clickable."
|
|
142
|
+
},
|
|
143
|
+
"dos": [
|
|
144
|
+
"Apply the base class 'input-select' on the root element.",
|
|
145
|
+
"Use documented modifiers for visual variants instead of ad-hoc custom classes.",
|
|
146
|
+
"Keep semantic color usage aligned with token classes for light/dark support."
|
|
147
|
+
],
|
|
148
|
+
"donts": [
|
|
149
|
+
"Do not combine conflicting state classes on the same element.",
|
|
150
|
+
"Do not rely on undocumented internal classes in production templates.",
|
|
151
|
+
"Do not remove required accessibility attributes when component is interactive."
|
|
152
|
+
],
|
|
153
|
+
"tokenUsage": [
|
|
154
|
+
"background-brand",
|
|
155
|
+
"background-brand-active",
|
|
156
|
+
"background-error",
|
|
157
|
+
"background-error-active",
|
|
158
|
+
"background-info",
|
|
159
|
+
"background-info-active",
|
|
160
|
+
"background-inverted",
|
|
161
|
+
"background-page",
|
|
162
|
+
"background-success",
|
|
163
|
+
"background-success-active",
|
|
164
|
+
"background-surface",
|
|
165
|
+
"background-surface-elevated",
|
|
166
|
+
"background-surface-sunken",
|
|
167
|
+
"background-warning",
|
|
168
|
+
"background-warning-active",
|
|
169
|
+
"brand-default",
|
|
170
|
+
"brand-moderate",
|
|
171
|
+
"brand-strong",
|
|
172
|
+
"core-black",
|
|
173
|
+
"core-ui-100",
|
|
174
|
+
"core-ui-300",
|
|
175
|
+
"core-ui-400",
|
|
176
|
+
"core-ui-50",
|
|
177
|
+
"core-ui-500",
|
|
178
|
+
"core-ui-700",
|
|
179
|
+
"core-ui-800",
|
|
180
|
+
"core-ui-900",
|
|
181
|
+
"core-white",
|
|
182
|
+
"line-default",
|
|
183
|
+
"line-error",
|
|
184
|
+
"line-focus",
|
|
185
|
+
"line-highlight",
|
|
186
|
+
"line-info",
|
|
187
|
+
"line-strong",
|
|
188
|
+
"line-success",
|
|
189
|
+
"line-warning",
|
|
190
|
+
"text-attention",
|
|
191
|
+
"text-brand",
|
|
192
|
+
"text-brand-active",
|
|
193
|
+
"text-brand-hover",
|
|
194
|
+
"text-default",
|
|
195
|
+
"text-disabled",
|
|
196
|
+
"text-error",
|
|
197
|
+
"text-info",
|
|
198
|
+
"text-inverted",
|
|
199
|
+
"text-link",
|
|
200
|
+
"text-link-hover",
|
|
201
|
+
"text-secondary",
|
|
202
|
+
"text-success",
|
|
203
|
+
"text-tertiary",
|
|
204
|
+
"text-warning"
|
|
205
|
+
],
|
|
206
|
+
"examples": [
|
|
207
|
+
{
|
|
208
|
+
"id": "canonical",
|
|
209
|
+
"file": "examples/select-input.html",
|
|
210
|
+
"description": "Minimal canonical Select input usage."
|
|
211
|
+
}
|
|
212
|
+
],
|
|
213
|
+
"composition": {
|
|
214
|
+
"patterns": [
|
|
215
|
+
"form-field-composition"
|
|
216
|
+
],
|
|
217
|
+
"relatedComponents": [],
|
|
218
|
+
"notes": []
|
|
219
|
+
},
|
|
220
|
+
"breakingChangePolicy": {
|
|
221
|
+
"classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
|
|
222
|
+
"a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
|
|
223
|
+
}
|
|
224
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "shadows",
|
|
3
|
+
"name": "Shadows",
|
|
4
|
+
"status": "stable",
|
|
5
|
+
"summary": "Layered shadow system for adding depth and elevation to elements.",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"blur",
|
|
8
|
+
"box-shadow",
|
|
9
|
+
"depth",
|
|
10
|
+
"dimension",
|
|
11
|
+
"drop",
|
|
12
|
+
"effect",
|
|
13
|
+
"elevation",
|
|
14
|
+
"layer",
|
|
15
|
+
"shade",
|
|
16
|
+
"shadows",
|
|
17
|
+
"spread",
|
|
18
|
+
"stack"
|
|
19
|
+
],
|
|
20
|
+
"sourcePaths": [
|
|
21
|
+
"app/design-system/shadows/page.js",
|
|
22
|
+
"assets/styles/shadow.css"
|
|
23
|
+
],
|
|
24
|
+
"apiModel": "html-class",
|
|
25
|
+
"baseClass": "shadow-sm",
|
|
26
|
+
"variants": [],
|
|
27
|
+
"sizes": [
|
|
28
|
+
{
|
|
29
|
+
"name": "shadow-sm",
|
|
30
|
+
"className": "shadow-sm",
|
|
31
|
+
"description": "Small elevation shadow (1-4px)"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "shadow-md",
|
|
35
|
+
"className": "shadow-md",
|
|
36
|
+
"description": "Medium elevation shadow (1-8px)"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "shadow-lg",
|
|
40
|
+
"className": "shadow-lg",
|
|
41
|
+
"description": "Large elevation shadow (1-16px)"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "shadow-xl",
|
|
45
|
+
"className": "shadow-xl",
|
|
46
|
+
"description": "Extra large elevation shadow (1-32px)"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"states": [],
|
|
50
|
+
"structure": {
|
|
51
|
+
"rootElement": "div",
|
|
52
|
+
"requiredClasses": [
|
|
53
|
+
"shadow-sm"
|
|
54
|
+
],
|
|
55
|
+
"optionalClasses": [
|
|
56
|
+
"shadow-sm",
|
|
57
|
+
"shadow-md",
|
|
58
|
+
"shadow-lg",
|
|
59
|
+
"shadow-xl"
|
|
60
|
+
],
|
|
61
|
+
"requiredChildren": [],
|
|
62
|
+
"optionalChildren": []
|
|
63
|
+
},
|
|
64
|
+
"attributes": {
|
|
65
|
+
"allowed": [
|
|
66
|
+
"class"
|
|
67
|
+
],
|
|
68
|
+
"required": [],
|
|
69
|
+
"dataAttributes": [],
|
|
70
|
+
"roles": [],
|
|
71
|
+
"aria": []
|
|
72
|
+
},
|
|
73
|
+
"a11y": {
|
|
74
|
+
"interactive": false,
|
|
75
|
+
"requiredRoles": [],
|
|
76
|
+
"requiredAria": [],
|
|
77
|
+
"keyboardSupport": [],
|
|
78
|
+
"focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
|
|
79
|
+
},
|
|
80
|
+
"dos": [
|
|
81
|
+
"Apply the base class 'shadow-sm' on the root element.",
|
|
82
|
+
"Use documented modifiers for visual variants instead of ad-hoc custom classes.",
|
|
83
|
+
"Keep semantic color usage aligned with token classes for light/dark support."
|
|
84
|
+
],
|
|
85
|
+
"donts": [
|
|
86
|
+
"Do not combine conflicting state classes on the same element.",
|
|
87
|
+
"Do not rely on undocumented internal classes in production templates.",
|
|
88
|
+
"Do not remove required accessibility attributes when component is interactive."
|
|
89
|
+
],
|
|
90
|
+
"tokenUsage": [],
|
|
91
|
+
"examples": [
|
|
92
|
+
{
|
|
93
|
+
"id": "canonical",
|
|
94
|
+
"file": "examples/shadows.html",
|
|
95
|
+
"description": "Minimal canonical Shadows usage."
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
"composition": {
|
|
99
|
+
"patterns": [],
|
|
100
|
+
"relatedComponents": [],
|
|
101
|
+
"notes": []
|
|
102
|
+
},
|
|
103
|
+
"breakingChangePolicy": {
|
|
104
|
+
"classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
|
|
105
|
+
"a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
|
|
106
|
+
}
|
|
107
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "skeleton",
|
|
3
|
+
"name": "Skeleton",
|
|
4
|
+
"status": "stable",
|
|
5
|
+
"summary": "Skeleton loaders provide visual placeholders for content while it loads, improving perceived performance.",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"animation",
|
|
8
|
+
"fallback",
|
|
9
|
+
"loader",
|
|
10
|
+
"loading",
|
|
11
|
+
"placeholder",
|
|
12
|
+
"preview",
|
|
13
|
+
"progress",
|
|
14
|
+
"pulse",
|
|
15
|
+
"shimmer",
|
|
16
|
+
"skeleton",
|
|
17
|
+
"suspense",
|
|
18
|
+
"wait",
|
|
19
|
+
"wave"
|
|
20
|
+
],
|
|
21
|
+
"sourcePaths": [
|
|
22
|
+
"app/design-system/skeleton/page.js",
|
|
23
|
+
"assets/styles/skeleton.css"
|
|
24
|
+
],
|
|
25
|
+
"apiModel": "html-class",
|
|
26
|
+
"baseClass": "skeleton",
|
|
27
|
+
"variants": [],
|
|
28
|
+
"sizes": [],
|
|
29
|
+
"states": [],
|
|
30
|
+
"structure": {
|
|
31
|
+
"rootElement": "div",
|
|
32
|
+
"requiredClasses": [
|
|
33
|
+
"skeleton"
|
|
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 'skeleton' 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
|
+
"text-default"
|
|
67
|
+
],
|
|
68
|
+
"examples": [
|
|
69
|
+
{
|
|
70
|
+
"id": "canonical",
|
|
71
|
+
"file": "examples/skeleton.html",
|
|
72
|
+
"description": "Minimal canonical Skeleton 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
|
+
}
|