@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.
- package/LICENSE +674 -0
- package/README.md +58 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.js +586 -0
- package/index.json +573 -0
- package/package.json +57 -0
- package/skills/uxelle-components/Accordion.md +51 -0
- package/skills/uxelle-components/AccordionGroup.md +39 -0
- package/skills/uxelle-components/Banner.md +73 -0
- package/skills/uxelle-components/BannerAnnouncement.md +63 -0
- package/skills/uxelle-components/Breadcrumb.md +38 -0
- package/skills/uxelle-components/Breadcrumbs.md +32 -0
- package/skills/uxelle-components/Bubble.md +34 -0
- package/skills/uxelle-components/Button.md +54 -0
- package/skills/uxelle-components/ButtonGroup.md +43 -0
- package/skills/uxelle-components/Card.md +35 -0
- package/skills/uxelle-components/Checkbox.md +57 -0
- package/skills/uxelle-components/CheckboxGroup.md +47 -0
- package/skills/uxelle-components/ChoiceChip.md +44 -0
- package/skills/uxelle-components/ChoiceChipGroup.md +50 -0
- package/skills/uxelle-components/DatePicker.md +59 -0
- package/skills/uxelle-components/DatePickerRange.md +73 -0
- package/skills/uxelle-components/Dialog.md +83 -0
- package/skills/uxelle-components/Divider.md +37 -0
- package/skills/uxelle-components/DynamicAngleLine.md +36 -0
- package/skills/uxelle-components/DynamicAngleLineCombo.md +30 -0
- package/skills/uxelle-components/DynamicAngleShape.md +32 -0
- package/skills/uxelle-components/DynamicAngleShapeSurface.md +35 -0
- package/skills/uxelle-components/DynamicAngleTexture.md +29 -0
- package/skills/uxelle-components/DynamicAngleTextureText.md +35 -0
- package/skills/uxelle-components/FieldMessage.md +31 -0
- package/skills/uxelle-components/FileUpload.md +53 -0
- package/skills/uxelle-components/FilterChip.md +35 -0
- package/skills/uxelle-components/FilterChipGroup.md +42 -0
- package/skills/uxelle-components/Footer.md +34 -0
- package/skills/uxelle-components/Hero.md +61 -0
- package/skills/uxelle-components/Icon.md +43 -0
- package/skills/uxelle-components/IconButton.md +44 -0
- package/skills/uxelle-components/Image.md +40 -0
- package/skills/uxelle-components/Label.md +35 -0
- package/skills/uxelle-components/LabelBadge.md +58 -0
- package/skills/uxelle-components/LanguageSelector.md +38 -0
- package/skills/uxelle-components/LanguageSelectorButton.md +34 -0
- package/skills/uxelle-components/Layout.md +81 -0
- package/skills/uxelle-components/LinearProgress.md +53 -0
- package/skills/uxelle-components/Link.md +52 -0
- package/skills/uxelle-components/List.md +35 -0
- package/skills/uxelle-components/ListControls.md +100 -0
- package/skills/uxelle-components/ListItem.md +69 -0
- package/skills/uxelle-components/Lockup.md +50 -0
- package/skills/uxelle-components/Logo.md +39 -0
- package/skills/uxelle-components/Menu.md +48 -0
- package/skills/uxelle-components/MultiSelect.md +54 -0
- package/skills/uxelle-components/NavLink.md +44 -0
- package/skills/uxelle-components/Navigation.md +61 -0
- package/skills/uxelle-components/NavigationSide.md +51 -0
- package/skills/uxelle-components/NavigationSideGroup.md +36 -0
- package/skills/uxelle-components/NavigationSideItem.md +56 -0
- package/skills/uxelle-components/NavigationSideSubItem.md +39 -0
- package/skills/uxelle-components/NotificationBadge.md +62 -0
- package/skills/uxelle-components/Pagination.md +49 -0
- package/skills/uxelle-components/PaginationComplex.md +51 -0
- package/skills/uxelle-components/PaginationSimple.md +44 -0
- package/skills/uxelle-components/ProductCard.md +46 -0
- package/skills/uxelle-components/Quantity.md +45 -0
- package/skills/uxelle-components/Radio.md +55 -0
- package/skills/uxelle-components/RadioGroup.md +49 -0
- package/skills/uxelle-components/SKILL.md +242 -0
- package/skills/uxelle-components/Scrim.md +28 -0
- package/skills/uxelle-components/SegmentedControl.md +118 -0
- package/skills/uxelle-components/Select.md +55 -0
- package/skills/uxelle-components/Sheet.md +31 -0
- package/skills/uxelle-components/Skeleton.md +35 -0
- package/skills/uxelle-components/Spinner.md +33 -0
- package/skills/uxelle-components/StatTile.md +150 -0
- package/skills/uxelle-components/Stepper.md +73 -0
- package/skills/uxelle-components/Switch.md +41 -0
- package/skills/uxelle-components/Tab.md +41 -0
- package/skills/uxelle-components/Table.md +55 -0
- package/skills/uxelle-components/TabsCompact.md +37 -0
- package/skills/uxelle-components/TabsStretch.md +35 -0
- package/skills/uxelle-components/Text.md +56 -0
- package/skills/uxelle-components/Textarea.md +77 -0
- package/skills/uxelle-components/Textfield.md +62 -0
- package/skills/uxelle-components/Tooltip.md +33 -0
- package/skills/uxelle-design-harness/SKILL.md +149 -0
- package/skills/uxelle-design-harness/a2ui.md +73 -0
- package/skills/uxelle-design-harness/how-to-accessibility.md +31 -0
- package/skills/uxelle-design-harness/how-to-color.md +82 -0
- package/skills/uxelle-design-harness/how-to-host.md +108 -0
- package/skills/uxelle-design-harness/how-to-page-layout.md +203 -0
- package/skills/uxelle-design-harness/principles.md +72 -0
- package/skills/uxelle-design-harness/recipe-app-chrome.md +168 -0
- package/skills/uxelle-design-harness/recipe-card-grid.md +104 -0
- package/skills/uxelle-design-harness/recipe-cta-band.md +91 -0
- package/skills/uxelle-design-harness/recipe-dashboard-overview.md +118 -0
- package/skills/uxelle-design-harness/recipe-data-table-page.md +323 -0
- package/skills/uxelle-design-harness/recipe-feature-section.md +96 -0
- package/skills/uxelle-design-harness/recipe-footer.md +156 -0
- package/skills/uxelle-design-harness/recipe-form-section.md +163 -0
- package/skills/uxelle-design-harness/recipe-hero.md +89 -0
- package/skills/uxelle-design-harness/recipe-landing-page.md +94 -0
- package/skills/uxelle-design-harness/recipe-logo-wall.md +80 -0
- package/skills/uxelle-design-harness/recipe-multi-step-flow.md +108 -0
- package/skills/uxelle-design-harness/recipe-page-header.md +102 -0
- package/skills/uxelle-design-harness/recipe-page-shell.md +82 -0
- package/skills/uxelle-design-harness/recipe-pricing.md +83 -0
- package/skills/uxelle-design-harness/recipe-query-bar.md +108 -0
- package/skills/uxelle-design-harness/recipe-record-detail.md +96 -0
- package/skills/uxelle-design-harness/recipe-settings-page.md +170 -0
- package/skills/uxelle-design-harness/recipe-stat-callouts.md +111 -0
- package/skills/uxelle-design-harness/recipe-states.md +119 -0
- package/skills/uxelle-design-harness/recipe-summary-list.md +88 -0
- package/skills/uxelle-design-harness/recipe-template.md +62 -0
- package/skills/uxelle-design-harness/recipe-testimonial.md +73 -0
- package/skills/uxelle-design-harness/spacing-steps.md +57 -0
- 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.
|