@uxelle/skills 0.2.0-beta.2

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 (117) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +58 -0
  3. package/dist/index.d.ts +26 -0
  4. package/dist/index.js +586 -0
  5. package/index.json +573 -0
  6. package/package.json +57 -0
  7. package/skills/uxelle-components/Accordion.md +51 -0
  8. package/skills/uxelle-components/AccordionGroup.md +39 -0
  9. package/skills/uxelle-components/Banner.md +73 -0
  10. package/skills/uxelle-components/BannerAnnouncement.md +63 -0
  11. package/skills/uxelle-components/Breadcrumb.md +38 -0
  12. package/skills/uxelle-components/Breadcrumbs.md +32 -0
  13. package/skills/uxelle-components/Bubble.md +34 -0
  14. package/skills/uxelle-components/Button.md +54 -0
  15. package/skills/uxelle-components/ButtonGroup.md +43 -0
  16. package/skills/uxelle-components/Card.md +35 -0
  17. package/skills/uxelle-components/Checkbox.md +57 -0
  18. package/skills/uxelle-components/CheckboxGroup.md +47 -0
  19. package/skills/uxelle-components/ChoiceChip.md +44 -0
  20. package/skills/uxelle-components/ChoiceChipGroup.md +50 -0
  21. package/skills/uxelle-components/DatePicker.md +59 -0
  22. package/skills/uxelle-components/DatePickerRange.md +73 -0
  23. package/skills/uxelle-components/Dialog.md +83 -0
  24. package/skills/uxelle-components/Divider.md +37 -0
  25. package/skills/uxelle-components/DynamicAngleLine.md +36 -0
  26. package/skills/uxelle-components/DynamicAngleLineCombo.md +30 -0
  27. package/skills/uxelle-components/DynamicAngleShape.md +32 -0
  28. package/skills/uxelle-components/DynamicAngleShapeSurface.md +35 -0
  29. package/skills/uxelle-components/DynamicAngleTexture.md +29 -0
  30. package/skills/uxelle-components/DynamicAngleTextureText.md +35 -0
  31. package/skills/uxelle-components/FieldMessage.md +31 -0
  32. package/skills/uxelle-components/FileUpload.md +53 -0
  33. package/skills/uxelle-components/FilterChip.md +35 -0
  34. package/skills/uxelle-components/FilterChipGroup.md +42 -0
  35. package/skills/uxelle-components/Footer.md +34 -0
  36. package/skills/uxelle-components/Hero.md +61 -0
  37. package/skills/uxelle-components/Icon.md +43 -0
  38. package/skills/uxelle-components/IconButton.md +44 -0
  39. package/skills/uxelle-components/Image.md +40 -0
  40. package/skills/uxelle-components/Label.md +35 -0
  41. package/skills/uxelle-components/LabelBadge.md +58 -0
  42. package/skills/uxelle-components/LanguageSelector.md +38 -0
  43. package/skills/uxelle-components/LanguageSelectorButton.md +34 -0
  44. package/skills/uxelle-components/Layout.md +81 -0
  45. package/skills/uxelle-components/LinearProgress.md +53 -0
  46. package/skills/uxelle-components/Link.md +52 -0
  47. package/skills/uxelle-components/List.md +35 -0
  48. package/skills/uxelle-components/ListControls.md +100 -0
  49. package/skills/uxelle-components/ListItem.md +69 -0
  50. package/skills/uxelle-components/Lockup.md +50 -0
  51. package/skills/uxelle-components/Logo.md +39 -0
  52. package/skills/uxelle-components/Menu.md +48 -0
  53. package/skills/uxelle-components/MultiSelect.md +54 -0
  54. package/skills/uxelle-components/NavLink.md +44 -0
  55. package/skills/uxelle-components/Navigation.md +61 -0
  56. package/skills/uxelle-components/NavigationSide.md +51 -0
  57. package/skills/uxelle-components/NavigationSideGroup.md +36 -0
  58. package/skills/uxelle-components/NavigationSideItem.md +56 -0
  59. package/skills/uxelle-components/NavigationSideSubItem.md +39 -0
  60. package/skills/uxelle-components/NotificationBadge.md +62 -0
  61. package/skills/uxelle-components/Pagination.md +49 -0
  62. package/skills/uxelle-components/PaginationComplex.md +51 -0
  63. package/skills/uxelle-components/PaginationSimple.md +44 -0
  64. package/skills/uxelle-components/ProductCard.md +46 -0
  65. package/skills/uxelle-components/Quantity.md +45 -0
  66. package/skills/uxelle-components/Radio.md +55 -0
  67. package/skills/uxelle-components/RadioGroup.md +49 -0
  68. package/skills/uxelle-components/SKILL.md +242 -0
  69. package/skills/uxelle-components/Scrim.md +28 -0
  70. package/skills/uxelle-components/SegmentedControl.md +118 -0
  71. package/skills/uxelle-components/Select.md +55 -0
  72. package/skills/uxelle-components/Sheet.md +31 -0
  73. package/skills/uxelle-components/Skeleton.md +35 -0
  74. package/skills/uxelle-components/Spinner.md +33 -0
  75. package/skills/uxelle-components/StatTile.md +150 -0
  76. package/skills/uxelle-components/Stepper.md +73 -0
  77. package/skills/uxelle-components/Switch.md +41 -0
  78. package/skills/uxelle-components/Tab.md +41 -0
  79. package/skills/uxelle-components/Table.md +55 -0
  80. package/skills/uxelle-components/TabsCompact.md +37 -0
  81. package/skills/uxelle-components/TabsStretch.md +35 -0
  82. package/skills/uxelle-components/Text.md +56 -0
  83. package/skills/uxelle-components/Textarea.md +77 -0
  84. package/skills/uxelle-components/Textfield.md +62 -0
  85. package/skills/uxelle-components/Tooltip.md +33 -0
  86. package/skills/uxelle-design-harness/SKILL.md +149 -0
  87. package/skills/uxelle-design-harness/a2ui.md +73 -0
  88. package/skills/uxelle-design-harness/how-to-accessibility.md +31 -0
  89. package/skills/uxelle-design-harness/how-to-color.md +82 -0
  90. package/skills/uxelle-design-harness/how-to-host.md +108 -0
  91. package/skills/uxelle-design-harness/how-to-page-layout.md +203 -0
  92. package/skills/uxelle-design-harness/principles.md +72 -0
  93. package/skills/uxelle-design-harness/recipe-app-chrome.md +168 -0
  94. package/skills/uxelle-design-harness/recipe-card-grid.md +104 -0
  95. package/skills/uxelle-design-harness/recipe-cta-band.md +91 -0
  96. package/skills/uxelle-design-harness/recipe-dashboard-overview.md +118 -0
  97. package/skills/uxelle-design-harness/recipe-data-table-page.md +323 -0
  98. package/skills/uxelle-design-harness/recipe-feature-section.md +96 -0
  99. package/skills/uxelle-design-harness/recipe-footer.md +156 -0
  100. package/skills/uxelle-design-harness/recipe-form-section.md +163 -0
  101. package/skills/uxelle-design-harness/recipe-hero.md +89 -0
  102. package/skills/uxelle-design-harness/recipe-landing-page.md +94 -0
  103. package/skills/uxelle-design-harness/recipe-logo-wall.md +80 -0
  104. package/skills/uxelle-design-harness/recipe-multi-step-flow.md +108 -0
  105. package/skills/uxelle-design-harness/recipe-page-header.md +102 -0
  106. package/skills/uxelle-design-harness/recipe-page-shell.md +82 -0
  107. package/skills/uxelle-design-harness/recipe-pricing.md +83 -0
  108. package/skills/uxelle-design-harness/recipe-query-bar.md +108 -0
  109. package/skills/uxelle-design-harness/recipe-record-detail.md +96 -0
  110. package/skills/uxelle-design-harness/recipe-settings-page.md +170 -0
  111. package/skills/uxelle-design-harness/recipe-stat-callouts.md +111 -0
  112. package/skills/uxelle-design-harness/recipe-states.md +119 -0
  113. package/skills/uxelle-design-harness/recipe-summary-list.md +88 -0
  114. package/skills/uxelle-design-harness/recipe-template.md +62 -0
  115. package/skills/uxelle-design-harness/recipe-testimonial.md +73 -0
  116. package/skills/uxelle-design-harness/spacing-steps.md +57 -0
  117. package/skills/uxelle-design-harness/tokens.md +101 -0
@@ -0,0 +1,101 @@
1
+ # The variable foundation
2
+
3
+ Every generated surface is styled with **real** `--uxl-*` variables from the
4
+ loaded theme. This file is the canonical reference for the token families you use
5
+ in app and recipe CSS. Confirm a name here before writing custom CSS.
6
+
7
+ Three rules hold everywhere:
8
+
9
+ - **Never invent** `--uxl-*` names. The spacing ramp uses sequential indices
10
+ (`medium-10` exists, `large-10` does not) — size band must match the index.
11
+ - **Never** use `var(--token, fallback)`. A missing variable must fail visibly so
12
+ the theme gets fixed, not masked.
13
+ - **Never** use `--uxl-component-*` in app or recipe CSS. Those belong inside
14
+ components; use the switcher/layout/radius families below instead.
15
+
16
+ ## Color (switcher roles)
17
+
18
+ Style themeable surfaces with these role tokens. They resolve to whatever palette
19
+ is active for the region (see palette selection and `data-color-switcher` in
20
+ [how-to-color.md](how-to-color.md)).
21
+
22
+ | Role | Token |
23
+ |------|-------|
24
+ | Page / region background | `--uxl-color-switcher-background` |
25
+ | Body text | `--uxl-color-switcher-text` |
26
+ | Headlines | `--uxl-color-switcher-headline` |
27
+ | Borders / rules | `--uxl-color-switcher-stroke` |
28
+ | Large / full-bleed surface (banner, panel, open accordion) | `--uxl-color-switcher-component-surface-1` |
29
+ | Small component surface (badge, bubble, chip) | `--uxl-color-switcher-component-surface-2` |
30
+ | Brand accent | `--uxl-color-switcher-brand` |
31
+ | Primary button fill | `--uxl-color-switcher-button-fill` |
32
+ | Text on filled button | `--uxl-color-switcher-button-text-on-fill` |
33
+ | Interactive icons / focus rings | `--uxl-color-switcher-interactive-icon` |
34
+
35
+ Never hardcode hex/rgb for themeable UI. Palette selection (`default`,
36
+ `default-subtle`, status, `brand-1..4`) is covered in [how-to-color.md](how-to-color.md).
37
+
38
+ ## Spacing (layout ramp)
39
+
40
+ Stacks on `Layout` / `A2uiLayout` pass `0` or `var(--uxl-theme-layout-spacing-*)`
41
+ on `gap` / padding / margin. The full 0-16 ramp and how to choose a step is in
42
+ [spacing-steps.md](spacing-steps.md). Set `display="flex"` (or `grid`) when using `gap`.
43
+
44
+ ## Page chrome (React app/page body)
45
+
46
+ For the page body only — not A2UI. Do not invent `uxl-breakpoint-*` (singular).
47
+ Usage in [how-to-page-layout.md](how-to-page-layout.md).
48
+
49
+ - `--uxl-breakpoints-max-container-width` — cap the body column
50
+ - `--uxl-breakpoints-margin` — padding around the body
51
+ - `--uxl-breakpoints-gutter` — gap between columns / `fr` tracks
52
+
53
+ Breakpoint bounds (read-only, for the rare JS switch) are exposed as
54
+ `--uxl-theme-layout-{mobile,tablet,desktop,desktop-plus}-screen-width-{min,max}`,
55
+ and the active band as `--uxl-breakpoints-screen-width-{min,max}`. Reference these
56
+ names — never hardcode their px values. See [how-to-page-layout.md](how-to-page-layout.md).
57
+
58
+ ## Radius
59
+
60
+ Prefix `--uxl-theme-radius-`: `xs` | `sm` | `md` | `lg` | `xlg` | `round`.
61
+ There is no `--uxl-theme-radius-full` — use `round` for pills and circles.
62
+
63
+ ## Elevation
64
+
65
+ There is **no** single `--uxl-theme-elevation-depth-N` variable. Prefer `Card` /
66
+ `ProductCard` for elevated surfaces rather than composing shadows by hand. When you
67
+ must, compose a `box-shadow` from levels `1`-`3` at depths `1`-`4`:
68
+
69
+ - `--uxl-theme-elevation-depth-{depth}-level-{level}-x` (and `-y`, `-blur`, `-spread`, `-color`)
70
+
71
+ ## Typography
72
+
73
+ Render copy with the `Text` component (`type="Display Small"`, `Body Medium`,
74
+ `Button`, …) and its `as` prop — never set font-size in app CSS. Font-family
75
+ variables exist for custom chrome only:
76
+
77
+ - `--uxl-component-text-font-family-display`
78
+ - `--uxl-component-text-font-family-body`
79
+
80
+ ## Component tokens
81
+
82
+ `--uxl-component-<component>-*` tokens style a specific component from inside that
83
+ component. Do not reach for them in app/recipe CSS; use the switcher and layout
84
+ families above.
85
+
86
+ ## Anti-patterns
87
+
88
+ - Inventing `large-10`, `radius-full`, `surface-container-low`, or
89
+ `uxl-breakpoint-gutter` (singular) instead of `--uxl-breakpoints-gutter`.
90
+ - `var(--uxl-theme-layout-spacing-medium-8, 16px)` fallbacks.
91
+ - Hardcoding `1120px` / `1600px` for the page column (use
92
+ `--uxl-breakpoints-max-container-width`; a one-column form/settings page may use
93
+ `600px`).
94
+ - Hardcoding hex, font-family, or breakpoint px anywhere in app CSS.
95
+ - Assuming Material "size = big number" naming instead of the sequential index rule.
96
+
97
+ ## Verify a token exists
98
+
99
+ Check the family here (and [spacing-steps.md](spacing-steps.md) for the ramp). If a
100
+ variable is missing at runtime it will be visibly absent — fix the theme, do not
101
+ invent a name or add a fallback.