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/llm/llms.txt ADDED
@@ -0,0 +1,18 @@
1
+ # twntyX CSS Framework LLM Kit
2
+
3
+ This package ships machine-readable design-system metadata for coding assistants.
4
+
5
+ - Package: twntyx-css
6
+ - Manifest: ./index.json
7
+ - Schema: ./schema.json
8
+ - Components: ./components/*.json
9
+ - Tokens: ./tokens.json
10
+ - Patterns: ./patterns.json
11
+ - Rules: ./rules.json
12
+ - Canonical HTML Examples: ./examples/*.html
13
+
14
+ Lookup contract:
15
+ 1. Resolve component by id/name/keywords from index.json.
16
+ 2. Load component contract from ./components/<id>.json.
17
+ 3. Follow dos/donts, a11y constraints, and tokenUsage exactly.
18
+ 4. If not found, return the unsupportedComponent payload from index.json.
@@ -0,0 +1,111 @@
1
+ {
2
+ "llmSchemaVersion": "1.0.0",
3
+ "patterns": [
4
+ {
5
+ "id": "form-field-composition",
6
+ "name": "Field + Control + Validation",
7
+ "summary": "Compose input-like controls with labels, helper text, and validation states.",
8
+ "components": [
9
+ "field",
10
+ "text-input",
11
+ "textarea",
12
+ "select-input",
13
+ "checkbox",
14
+ "radio",
15
+ "combobox"
16
+ ],
17
+ "template": "Wrap each control in `.field`, render `.input-label` first, and keep helper/error copy directly under the control.",
18
+ "dos": [
19
+ "Place labels before controls.",
20
+ "Include helper text for format-sensitive fields."
21
+ ],
22
+ "donts": [
23
+ "Do not rely on placeholders as labels.",
24
+ "Do not hide validation reason text."
25
+ ]
26
+ },
27
+ {
28
+ "id": "feedback-and-status",
29
+ "name": "Feedback Layering",
30
+ "summary": "Pick transient vs persistent feedback patterns based on severity and blocking behavior.",
31
+ "components": [
32
+ "banner",
33
+ "toast",
34
+ "state",
35
+ "modal",
36
+ "button"
37
+ ],
38
+ "template": "Use toast for transient success/info, banner/state for persistent contextual feedback, and modal for blocking decisions.",
39
+ "dos": [
40
+ "Escalate severity progressively.",
41
+ "Keep one clear next action for blocking feedback."
42
+ ],
43
+ "donts": [
44
+ "Do not stack multiple blocking dialogs.",
45
+ "Do not use toasts for critical failures requiring confirmation."
46
+ ]
47
+ },
48
+ {
49
+ "id": "table-data-disclosure",
50
+ "name": "Data Table + Pagination",
51
+ "summary": "Pattern for scanning and acting on structured data sets.",
52
+ "components": [
53
+ "table",
54
+ "pagination",
55
+ "checkbox",
56
+ "button"
57
+ ],
58
+ "template": "Render sortable headers, keep row selection explicit, and place pagination controls adjacent to the table footer.",
59
+ "dos": [
60
+ "Expose sorting state textually and visually.",
61
+ "Keep row actions discoverable on focus and hover."
62
+ ],
63
+ "donts": [
64
+ "Do not paginate without preserving filters/sort state.",
65
+ "Do not encode row status only by color."
66
+ ]
67
+ },
68
+ {
69
+ "id": "navigation-hierarchy",
70
+ "name": "Navigation Hierarchy",
71
+ "summary": "Coordinate global and local navigation primitives.",
72
+ "components": [
73
+ "navbar",
74
+ "menu",
75
+ "breadcrumb",
76
+ "tabs",
77
+ "link"
78
+ ],
79
+ "template": "Use navbar for global sections, breadcrumb for hierarchy, and tabs/menu for local context switching.",
80
+ "dos": [
81
+ "Keep active location unambiguous.",
82
+ "Preserve keyboard navigation across all items."
83
+ ],
84
+ "donts": [
85
+ "Do not duplicate the same hierarchy level in multiple nav patterns.",
86
+ "Do not remove semantic link/button elements from interactive nav items."
87
+ ]
88
+ },
89
+ {
90
+ "id": "surface-and-content",
91
+ "name": "Surface + Content Blocks",
92
+ "summary": "Create coherent content groups using surface, card, and lightweight status elements.",
93
+ "components": [
94
+ "surface",
95
+ "card",
96
+ "badge",
97
+ "avatar",
98
+ "divider"
99
+ ],
100
+ "template": "Start with a surface layer, then place card content blocks and optional badges for status emphasis.",
101
+ "dos": [
102
+ "Keep vertical spacing rhythm consistent.",
103
+ "Use badges for short, non-blocking state cues."
104
+ ],
105
+ "donts": [
106
+ "Do not combine conflicting elevation styles in one container.",
107
+ "Do not turn decorative badges into primary action controls."
108
+ ]
109
+ }
110
+ ]
111
+ }
package/llm/rules.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "llmSchemaVersion": "1.0.0",
3
+ "apiModel": "html-class",
4
+ "dos": [
5
+ "Use component base classes exactly as documented in component metadata.",
6
+ "Prefer semantic token classes (`text-*`, `bg-*`, `line-*`) for color intent.",
7
+ "Generate minimal valid HTML before layering variants and states."
8
+ ],
9
+ "donts": [
10
+ "Do not invent undocumented classes or variant names.",
11
+ "Do not remove accessibility attributes from interactive elements.",
12
+ "Do not mix conflicting state classes on one root element."
13
+ ],
14
+ "accessibility": [
15
+ "Interactive primitives must be keyboard reachable and visibly focused.",
16
+ "Validation and status must not be conveyed by color alone.",
17
+ "Use native semantics first; add ARIA only when required by behavior."
18
+ ],
19
+ "namingConventions": {
20
+ "classPrefixes": [
21
+ "button",
22
+ "badge",
23
+ "card",
24
+ "modal",
25
+ "table",
26
+ "surface",
27
+ "input",
28
+ "toast",
29
+ "menu"
30
+ ],
31
+ "statePrefixes": [
32
+ "is-",
33
+ "has-"
34
+ ],
35
+ "sizeMarkers": [
36
+ "-xs",
37
+ "-sm",
38
+ "-md",
39
+ "-lg",
40
+ "-xl"
41
+ ]
42
+ },
43
+ "responseContract": {
44
+ "whenUnknown": "Return UNSUPPORTED_COMPONENT from index.json and suggest nearest stable matches.",
45
+ "whenAmbiguous": "Prefer stable components and produce the smallest canonical markup that satisfies requirements."
46
+ }
47
+ }