@antadesign/anta 0.3.26 → 0.3.27

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 (69) hide show
  1. package/README.md +26 -28
  2. package/dist/anta_helpers.d.ts +4 -0
  3. package/dist/anta_helpers.js +14 -0
  4. package/dist/box-types.d.ts +1 -1
  5. package/dist/bundle.css +1 -1
  6. package/dist/bundle.js +25 -25
  7. package/dist/capture-types.d.ts +156 -0
  8. package/dist/capture-types.js +0 -0
  9. package/dist/components/Box.d.ts +15 -0
  10. package/dist/components/Box.js +3 -11
  11. package/dist/components/Capture.d.ts +39 -0
  12. package/dist/components/Capture.js +36 -0
  13. package/dist/components/capture-props.d.ts +30 -0
  14. package/dist/components/capture-props.js +44 -0
  15. package/dist/elements/a-box.d.ts +1 -1
  16. package/dist/elements/a-box.js +11 -3
  17. package/dist/elements/a-capture.css +1 -0
  18. package/dist/elements/a-capture.d.ts +10 -0
  19. package/dist/elements/a-capture.js +24 -0
  20. package/dist/elements/a-checkbox.js +4 -4
  21. package/dist/elements/a-slider.js +6 -6
  22. package/dist/elements/capture-input.d.ts +5 -0
  23. package/dist/elements/capture-input.js +609 -0
  24. package/dist/elements/index.d.ts +1 -0
  25. package/dist/elements/index.js +3 -0
  26. package/dist/general_types.d.ts +34 -0
  27. package/dist/index.d.ts +3 -0
  28. package/dist/index.js +2 -0
  29. package/dist/jsx-runtime.d.ts +2 -1
  30. package/docs/accessibility.md +24 -0
  31. package/docs/changelog.md +22 -0
  32. package/docs/colors.md +141 -0
  33. package/docs/comparison.md +463 -28
  34. package/docs/components/avatar.md +13 -17
  35. package/docs/components/banner.md +13 -27
  36. package/docs/components/box.md +226 -154
  37. package/docs/components/breadcrumbs.md +7 -6
  38. package/docs/components/button.md +48 -37
  39. package/docs/components/capture.md +345 -0
  40. package/docs/components/card.md +17 -38
  41. package/docs/components/checkbox.md +16 -39
  42. package/docs/components/dialog.md +14 -36
  43. package/docs/components/expander.md +15 -40
  44. package/docs/components/icon.md +111 -9
  45. package/docs/components/input-autocomplete.md +9 -11
  46. package/docs/components/input-date.md +33 -23
  47. package/docs/components/input-time.md +15 -23
  48. package/docs/components/input.md +27 -76
  49. package/docs/components/loader.md +7 -5
  50. package/docs/components/menu.md +73 -77
  51. package/docs/components/progress.md +10 -14
  52. package/docs/components/radio.md +17 -36
  53. package/docs/components/select-faceted.md +7 -25
  54. package/docs/components/select.md +24 -97
  55. package/docs/components/slider.md +16 -21
  56. package/docs/components/steps.md +38 -8
  57. package/docs/components/switch.md +11 -14
  58. package/docs/components/tabs.md +52 -40
  59. package/docs/components/tag.md +11 -22
  60. package/docs/components/text.md +10 -23
  61. package/docs/components/title.md +7 -8
  62. package/docs/components/toaster.md +6 -3
  63. package/docs/components/tooltip.md +13 -23
  64. package/docs/index.md +3 -1
  65. package/docs/install-config.md +24 -0
  66. package/docs/normalization.md +45 -0
  67. package/docs/packages/stickers.md +56 -0
  68. package/docs/theming.md +270 -0
  69. package/package.json +3 -1
@@ -97,34 +97,19 @@ more" and "Show less". `collapsible` takes effect only with `expandable`.
97
97
  <Text truncate={3} expandable collapsible>{longSentence}</Text>
98
98
  ```
99
99
 
100
- ### Props
100
+ ## Component props
101
101
 
102
102
  | Prop | Type | Default | Description |
103
103
  |------|------|---------|-------------|
104
- | `collapsible?` | boolean | — | Let the reader collapse back after expanding: the chevron becomes a
105
- "Show more" / "Show less" toggle that stays visible while expanded.
106
- Only takes effect together with `expandable`. |
107
- | `expandable?` | boolean | — | Show a fade hint and chevron over the truncated text and let the user
108
- expand it by clicking the chevron region or pressing Enter while the
109
- chevron has keyboard focus. Only takes effect together with `truncate`.
110
- On its own, expanding is **one-way** — the control is removed once
111
- expanded; add `collapsible` for a two-way toggle. |
104
+ | `collapsible?` | boolean | — | Let the reader collapse back after expanding: the chevron becomes a "Show more" / "Show less" toggle that stays visible while expanded. Only takes effect together with `expandable`. |
105
+ | `expandable?` | boolean | — | Show a fade hint and chevron over the truncated text and let the user expand it by clicking the chevron region or pressing Enter while the chevron has keyboard focus. Only takes effect together with `truncate`. On its own, expanding is **one-way** — the control is removed once expanded; add `collapsible` for a two-way toggle. |
112
106
  | `inline?` | boolean | — | Render as inline-block instead of the default block element. |
113
- | `priority?` | 'primary' \| 'secondary' \| 'tertiary' \| 'quaternary' | secondary | Visual priority. Maps to text-1..text-4 (`primary` = text-1, the
114
- strongest). The default is `secondary` (text-2) — body text reads a
115
- step softer than the strongest foreground; pass `primary` for emphasis. |
107
+ | `priority?` | 'primary' \| 'secondary' \| 'tertiary' \| 'quaternary' | secondary | Visual priority. Maps to text-1..text-4 (`primary` = text-1, the strongest). The default is `secondary` (text-2) — body text reads a step softer than the strongest foreground; pass `primary` for emphasis. |
116
108
  | `size?` | 'small' \| 'medium' \| 'large' | medium | Type scale. `small` = 13/16, `medium` = 15/20, `large` = 17/24. |
117
- | `tone?` | 'neutral' \| 'brand' \| 'info' \| 'success' \| 'warning' \| 'critical' \| (string & {}) | neutral | Color tint. `neutral` (the default) is the untinted `--text-{N}` scale; a
118
- named tone applies the matching `--text-{N}-{tone}` palette. Any literal CSS
119
- color (`'#ff1493'`, `'rebeccapurple'`) is a one-off custom tone — its hue is
120
- kept while lightness/chroma are pinned per priority in oklch. |
121
- | `truncate?` | boolean \| number | — | Truncate with a trailing ellipsis. `true` (or `1`) clamps to a
122
- single line; any integer ≥ 2 clamps to that many lines; `0` or a
123
- negative value means no truncation. A clipped, non-expandable JSX
124
- `Text` shows its text content in a tooltip by default. Nest a
125
- `<Tooltip>` to provide your own tooltip instead. Uses the
126
- `-webkit-line-clamp` technique, supported in all major browsers
127
- (Firefox 68+, Chrome, Safari, Edge). |
109
+ | `tone?` | 'neutral' \| 'brand' \| 'info' \| 'success' \| 'warning' \| 'critical' \| (string & {}) | neutral | Color tint. `neutral` (the default) is the untinted `--text-{N}` scale; a named tone applies the matching `--text-{N}-{tone}` palette. Any literal CSS color (`'#ff1493'`, `'rebeccapurple'`) is a one-off custom tone — its hue is kept while lightness/chroma are pinned per priority in oklch. |
110
+ | `truncate?` | boolean \| number | — | Truncate with a trailing ellipsis. `true` (or `1`) clamps to a single line; any integer ≥ 2 clamps to that many lines; `0` or a negative value means no truncation. A clipped, non-expandable JSX `Text` shows its text content in a tooltip by default. Nest a `<Tooltip>` to provide your own tooltip instead. Uses the `-webkit-line-clamp` technique, supported in all major browsers (Firefox 68+, Chrome, Safari, Edge). |
111
+
112
+ ## Web Component
128
113
 
129
114
  Use the web component directly when you are not using React or Preact and a native control does not fit.
130
115
 
@@ -136,6 +121,8 @@ Use `<a-text>` directly for a block that carries the text priority and tone.
136
121
  </a-text>
137
122
  ```
138
123
 
124
+ ## Styling
125
+
139
126
  Color comes from **`priority`** (the neutral text level) and **`tone`** (the tint);
140
127
  `size` and the type props set the rest. For a named tone, `Text` consumes the
141
128
  global **text role tokens** (`--text-1` … `--text-5`, the `-{tone}` tints,
@@ -93,18 +93,15 @@ The four priorities are shown across every named tone at `level={3}`. Omit
93
93
  document outline or SEO needs heading elements; the reset applies the same type
94
94
  scale.
95
95
 
96
- ### Props
96
+ ## Component props
97
97
 
98
98
  | Prop | Type | Default | Description |
99
99
  |------|------|---------|-------------|
100
- | `level?` | 1 \| 2 \| 3 \| 4 \| 5 \| 6 | 2 | Heading level, 1-6. Drives font-size, line-height, and vertical
101
- rhythm. Also surfaced to assistive tech via `aria-level`
102
- (h1 is typically reserved for the page title). |
100
+ | `level?` | 1 \| 2 \| 3 \| 4 \| 5 \| 6 | 2 | Heading level, 1-6. Drives font-size, line-height, and vertical rhythm. Also surfaced to assistive tech via `aria-level` (h1 is typically reserved for the page title). |
103
101
  | `priority?` | 'primary' \| 'secondary' \| 'tertiary' \| 'quaternary' | primary | Visual priority. Maps to text-1..text-4 (`primary` = text-1). |
104
- | `tone?` | 'neutral' \| 'brand' \| 'info' \| 'success' \| 'warning' \| 'critical' \| (string & {}) | neutral | Color tint. `neutral` (the default) is the untinted `--text-{N}` scale; a
105
- named tone applies the matching `--text-{N}-{tone}` palette. Any literal CSS
106
- color (`'#ff1493'`, `'rebeccapurple'`) is a one-off custom tone — its hue is
107
- kept while lightness/chroma are pinned per priority in oklch. |
102
+ | `tone?` | 'neutral' \| 'brand' \| 'info' \| 'success' \| 'warning' \| 'critical' \| (string & {}) | neutral | Color tint. `neutral` (the default) is the untinted `--text-{N}` scale; a named tone applies the matching `--text-{N}-{tone}` palette. Any literal CSS color (`'#ff1493'`, `'rebeccapurple'`) is a one-off custom tone — its hue is kept while lightness/chroma are pinned per priority in oklch. |
103
+
104
+ ## Web Component
108
105
 
109
106
  Use the web component directly when you are not using React or Preact and a native control does not fit.
110
107
 
@@ -116,6 +113,8 @@ Set the heading role and level when writing `<a-title>` directly.
116
113
  </a-title>
117
114
  ```
118
115
 
116
+ ## Styling
117
+
119
118
  `priority` selects a neutral text level. Named `tone`s use the matching global
120
119
  text tokens. A literal `tone` is stored in `--title-tone-source` and resolved
121
120
  into the four priority levels.
@@ -222,13 +222,14 @@ Toaster.manager.add(() => <Banner tone="critical" message="Connection lost" />,
222
222
  })
223
223
  ```
224
224
 
225
- ### Props
225
+ ## Component props
226
226
 
227
227
  | Prop | Type | Default | Description |
228
228
  |------|------|---------|-------------|
229
229
  | `label?` | string | 'Notifications' | Accessible label for the region landmark. |
230
- | `toaster?` | Toaster | — | The store this region renders. Omit to bind the default store driven by
231
- `Toaster.manager`; pass a `createToaster()` for an isolated region. |
230
+ | `toaster?` | Toaster | — | The store this region renders. Omit to bind the default store driven by `Toaster.manager`; pass a `createToaster()` for an isolated region. |
231
+
232
+ ## Web Component
232
233
 
233
234
  Use the web component directly when you are not using React or Preact and a native control does not fit.
234
235
 
@@ -266,6 +267,8 @@ remove the toast from the DOM.
266
267
  </script>
267
268
  ```
268
269
 
270
+ ## Styling
271
+
269
272
  The region and item are plain custom elements — style them with ordinary CSS
270
273
  (`@layer anta`, so an un-layered rule of yours wins without `!important`).
271
274
 
@@ -117,32 +117,20 @@ arrives later works normally; a bubble whose content is cleared while it's open
117
117
  closes itself. Content that's a single icon or image (an element, no text) still
118
118
  shows.
119
119
 
120
- ### Props
120
+ ## Component props
121
121
 
122
122
  | Prop | Type | Default | Description |
123
123
  |------|------|---------|-------------|
124
- | `children?` | ReactNode | — | Tooltip content. Renders anything — text, markup, an icon + text.
125
- Lives in the light DOM, so it's styleable with your own plain CSS. |
126
- | `delay?` | number | 300 | Show delay in milliseconds after hover / focus. Never use `0` — use
127
- ~`50` for a near-instant tooltip (0 has caused issues in practice). |
128
- | `follow?` | boolean | — | Follow the cursor instead of pinning under the anchor. The bubble is
129
- pinned (anchored beneath the target) by default; pass `follow` for the
130
- cursor-tracking behavior, which fades by distance as the cursor leaves. |
131
- | `interactive?` | boolean | — | Make the bubble hoverable and clickable — enables pointer events and
132
- keeps it open while the cursor is over it, so its content (links,
133
- buttons) can be interacted with. Always pinned (an interactive bubble
134
- can't follow the cursor, even with `follow`). |
135
- | `placement?` | 'top' \| 'bottom' | bottom | Which side of the anchor the bubble prefers. Auto-flips to the other
136
- side when there isn't room. |
137
- | `round?` | boolean \| number \| string | — | Round the bubble to a 20px radius (matching a round menu). Pass a `number`
138
- (px) or a CSS length string for a custom radius. |
139
- | `truncatedOnly?` | boolean | — | Only show when the target is actually truncated (its text overflows and is
140
- ellipsized); a label that fits gets no tooltip. The check is a UI-thread
141
- layout read, re-measured on each show. By default it measures every Anta
142
- ellipsizing label part inside the anchor, then the anchor itself —
143
- override with `truncatedSelector`. |
144
- | `truncatedSelector?` | string | — | CSS selector (resolved within the anchor) for the element or elements
145
- whose overflow decides whether a `truncatedOnly` tooltip shows. |
124
+ | `children?` | ReactNode | — | Tooltip content. Renders anything — text, markup, an icon + text. Lives in the light DOM, so it's styleable with your own plain CSS. |
125
+ | `delay?` | number | 300 | Show delay in milliseconds after hover / focus. Never use `0` — use ~`50` for a near-instant tooltip (0 has caused issues in practice). |
126
+ | `follow?` | boolean | — | Follow the cursor instead of pinning under the anchor. The bubble is pinned (anchored beneath the target) by default; pass `follow` for the cursor-tracking behavior, which fades by distance as the cursor leaves. |
127
+ | `interactive?` | boolean | — | Make the bubble hoverable and clickable — enables pointer events and keeps it open while the cursor is over it, so its content (links, buttons) can be interacted with. Always pinned (an interactive bubble can't follow the cursor, even with `follow`). |
128
+ | `placement?` | 'top' \| 'bottom' | bottom | Which side of the anchor the bubble prefers. Auto-flips to the other side when there isn't room. |
129
+ | `round?` | boolean \| number \| string | — | Round the bubble to a 20px radius (matching a round menu). Pass a `number` (px) or a CSS length string for a custom radius. |
130
+ | `truncatedOnly?` | boolean | — | Only show when the target is actually truncated (its text overflows and is ellipsized); a label that fits gets no tooltip. The check is a UI-thread layout read, re-measured on each show. By default it measures every Anta ellipsizing label part inside the anchor, then the anchor itself — override with `truncatedSelector`. |
131
+ | `truncatedSelector?` | string | — | CSS selector (resolved within the anchor) for the element or elements whose overflow decides whether a `truncatedOnly` tooltip shows. |
132
+
133
+ ## Web Component
146
134
 
147
135
  Use the web component directly when you are not using React or Preact and a native control does not fit.
148
136
 
@@ -155,6 +143,8 @@ Place `<a-tooltip>` inside the element it describes.
155
143
  </a-button>
156
144
  ```
157
145
 
146
+ ## Styling
147
+
158
148
  The bubble lives in shadow DOM and is exposed as a single **part** — style the box
159
149
  (background, frost, shadow, radius, padding, a border) with `::part(bubble)`. Its
160
150
  *content* is slotted light DOM with a **normalized text baseline** (Anta body
package/docs/index.md CHANGED
@@ -41,7 +41,6 @@ Anta is designed for a clean DOM. Prefer the props and attributes exposed by eac
41
41
  - [Select](./components/select.md)
42
42
  - [SelectFaceted](./components/select-faceted.md)
43
43
 
44
- - [Box](./components/box.md)
45
44
  - [Banner](./components/banner.md)
46
45
  - [Card](./components/card.md)
47
46
  - [Dialog](./components/dialog.md)
@@ -49,6 +48,9 @@ Anta is designed for a clean DOM. Prefer the props and attributes exposed by eac
49
48
  - [Expander](./components/expander.md)
50
49
  - [Menu](./components/menu.md)
51
50
 
51
+ - [Box](./components/box.md)
52
+ - [Capture](./components/capture.md)
53
+
52
54
  ## Packages
53
55
 
54
56
  - [Table](./packages/table.md)
@@ -93,6 +93,30 @@ Token custom properties stay unlayered so they apply everywhere.
93
93
  > `@layer base { … }`; `reset.css` already applies the same universal reset in
94
94
  > `@layer anta.reset`.
95
95
 
96
+ ## AI setup
97
+
98
+ Anta includes version-matched Markdown documentation in its npm package.
99
+ Append this section to your application's agent instruction file, such as
100
+ `AGENTS.md`, `CLAUDE.md`, or your tool's equivalent. Keep existing project rules:
101
+
102
+ ```md
103
+ ## Anta
104
+
105
+ Before Anta UI work, read
106
+ `node_modules/@antadesign/anta/docs/index.md`
107
+ and the pages relevant to the task.
108
+ Verify component names, imports, props, and event signatures against the
109
+ installed documentation and TypeScript declarations. Do not infer Anta APIs
110
+ from similarly named components in other libraries.
111
+ ```
112
+
113
+ The path is relative to the application directory where Anta is installed.
114
+ Adjust it for your workspace or package-manager layout. Installing Anta does
115
+ not modify your agent configuration.
116
+
117
+ For tools without local file access, provide the [web documentation index](https://anta.design/llms.txt)
118
+ and your installed Anta version. Web documentation may describe a newer release.
119
+
96
120
  ## Registering elements
97
121
 
98
122
  JSX wrappers render `<a-*>` tags. Register their classes before those tags reach
@@ -105,7 +105,52 @@ Or import both and override only the pieces you want (unlayered, or in a later l
105
105
  The reset gives headings, lists, links, and tables the same baseline as Anta
106
106
  components. Omit it when your own reset should control them.
107
107
 
108
+ ## Default HTML tags
109
+
108
110
  Tags styled by the reset, rendered live.
109
111
 
112
+ This specimen shows the native tags styled by `reset.css`:
113
+
114
+ ```html
115
+ <div class="specimen">
116
+ <h2>Heading two</h2>
117
+ <h3>Heading three</h3>
118
+ <h4>Heading four</h4>
119
+ <p>
120
+ Body text with <a href="/normalization">a link</a>, <strong>strong</strong>,
121
+ <em>em</em>, <code>inline code</code>, <kbd>Ctrl</kbd>, <samp>samp output</samp>,
122
+ <dfn>a defined term</dfn>, <small>small print</small>, <mark>mark</mark>,
123
+ <abbr title="Cascading Style Sheets">abbr</abbr>, <del>deleted</del>,
124
+ <ins>inserted</ins>, the variable <var>w</var>, H<sub>2</sub>O and x<sup>2</sup>.
125
+ </p>
126
+ <blockquote>A blockquote, marked by a rule rather than an indent.</blockquote>
127
+ <ul>
128
+ <li>Unordered item</li>
129
+ <li>Second item</li>
130
+ </ul>
131
+ <ol>
132
+ <li>Ordered item</li>
133
+ <li>Second item</li>
134
+ </ol>
135
+ <dl>
136
+ <dt>Term</dt>
137
+ <dd>Definition</dd>
138
+ </dl>
139
+ <pre><code>a code block</code></pre>
140
+ <table>
141
+ <caption>Table caption</caption>
142
+ <thead>
143
+ <tr><th>Header</th><th>Another</th></tr>
144
+ </thead>
145
+ <tbody>
146
+ <tr><td>Cell</td><td>Cell</td></tr>
147
+ <tr><td>Cell</td><td>Cell</td></tr>
148
+ </tbody>
149
+ </table>
150
+ <figure><figcaption>A figcaption</figcaption></figure>
151
+ <hr />
152
+ </div>
153
+ ```
154
+
110
155
  `abbr`, `q`, and `cite` keep browser typographic styles. `dd` has no browser indent
111
156
  because the reset clears margins. The reset adds no `kbd` typography.
@@ -21,6 +21,60 @@ npm install @antadesign/stickers # pulls @antadesign/anta + lottie-web
21
21
 
22
22
  The full set is also published as a [Telegram sticker pack](https://t.me/addstickers/SnoutyAntithesis).
23
23
 
24
+ ## Available stickers
25
+
26
+ | Name | Static export | Animated export | Asset imports |
27
+ | --- | --- | --- | --- |
28
+ | Angry | `StickerAngry` | `StickerAngryAnimated` | `@antadesign/stickers/angry`, `@antadesign/stickers/angry-animated` |
29
+ | Ask | `StickerAsk` | `StickerAskAnimated` | `@antadesign/stickers/ask`, `@antadesign/stickers/ask-animated` |
30
+ | Balance | `StickerBalance` | `StickerBalanceAnimated` | `@antadesign/stickers/balance`, `@antadesign/stickers/balance-animated` |
31
+ | Butterfly | `StickerButterfly` | `StickerButterflyAnimated` | `@antadesign/stickers/butterfly`, `@antadesign/stickers/butterfly-animated` |
32
+ | ButterflySnake | `StickerButterflySnake` | `StickerButterflySnakeAnimated` | `@antadesign/stickers/butterfly-snake`, `@antadesign/stickers/butterfly-snake-animated` |
33
+ | Catch | `StickerCatch` | `StickerCatchAnimated` | `@antadesign/stickers/catch`, `@antadesign/stickers/catch-animated` |
34
+ | Clap | `StickerClap` | `StickerClapAnimated` | `@antadesign/stickers/clap`, `@antadesign/stickers/clap-animated` |
35
+ | Coding | `StickerCoding` | `StickerCodingAnimated` | `@antadesign/stickers/coding`, `@antadesign/stickers/coding-animated` |
36
+ | Cowboy | `StickerCowboy` | `StickerCowboyAnimated` | `@antadesign/stickers/cowboy`, `@antadesign/stickers/cowboy-animated` |
37
+ | Dance | `StickerDance` | `StickerDanceAnimated` | `@antadesign/stickers/dance`, `@antadesign/stickers/dance-animated` |
38
+ | Detective | `StickerDetective` | `StickerDetectiveAnimated` | `@antadesign/stickers/detective`, `@antadesign/stickers/detective-animated` |
39
+ | Disapprove | `StickerDisapprove` | `StickerDisapproveAnimated` | `@antadesign/stickers/disapprove`, `@antadesign/stickers/disapprove-animated` |
40
+ | Distracted | `StickerDistracted` | `StickerDistractedAnimated` | `@antadesign/stickers/distracted`, `@antadesign/stickers/distracted-animated` |
41
+ | Dive | `StickerDive` | `StickerDiveAnimated` | `@antadesign/stickers/dive`, `@antadesign/stickers/dive-animated` |
42
+ | Eat | `StickerEat` | `StickerEatAnimated` | `@antadesign/stickers/eat`, `@antadesign/stickers/eat-animated` |
43
+ | Facepalm | `StickerFacepalm` | `StickerFacepalmAnimated` | `@antadesign/stickers/facepalm`, `@antadesign/stickers/facepalm-animated` |
44
+ | Failed | `StickerFailed` | `StickerFailedAnimated` | `@antadesign/stickers/failed`, `@antadesign/stickers/failed-animated` |
45
+ | Found | `StickerFound` | `StickerFoundAnimated` | `@antadesign/stickers/found`, `@antadesign/stickers/found-animated` |
46
+ | Grow | `StickerGrow` | `StickerGrowAnimated` | `@antadesign/stickers/grow`, `@antadesign/stickers/grow-animated` |
47
+ | Handstand | `StickerHandstand` | `StickerHandstandAnimated` | `@antadesign/stickers/handstand`, `@antadesign/stickers/handstand-animated` |
48
+ | Heart | `StickerHeart` | `StickerHeartAnimated` | `@antadesign/stickers/heart`, `@antadesign/stickers/heart-animated` |
49
+ | Hello | `StickerHello` | `StickerHelloAnimated` | `@antadesign/stickers/hello`, `@antadesign/stickers/hello-animated` |
50
+ | Idea | `StickerIdea` | `StickerIdeaAnimated` | `@antadesign/stickers/idea`, `@antadesign/stickers/idea-animated` |
51
+ | Laugh | `StickerLaugh` | `StickerLaughAnimated` | `@antadesign/stickers/laugh`, `@antadesign/stickers/laugh-animated` |
52
+ | Love | `StickerLove` | `StickerLoveAnimated` | `@antadesign/stickers/love`, `@antadesign/stickers/love-animated` |
53
+ | Nap | `StickerNap` | `StickerNapAnimated` | `@antadesign/stickers/nap`, `@antadesign/stickers/nap-animated` |
54
+ | Party | `StickerParty` | `StickerPartyAnimated` | `@antadesign/stickers/party`, `@antadesign/stickers/party-animated` |
55
+ | Passed | `StickerPassed` | `StickerPassedAnimated` | `@antadesign/stickers/passed`, `@antadesign/stickers/passed-animated` |
56
+ | Peekaboo | `StickerPeekaboo` | `StickerPeekabooAnimated` | `@antadesign/stickers/peekaboo`, `@antadesign/stickers/peekaboo-animated` |
57
+ | Pizza | `StickerPizza` | `StickerPizzaAnimated` | `@antadesign/stickers/pizza`, `@antadesign/stickers/pizza-animated` |
58
+ | Puzzle | `StickerPuzzle` | `StickerPuzzleAnimated` | `@antadesign/stickers/puzzle`, `@antadesign/stickers/puzzle-animated` |
59
+ | Sad | `StickerSad` | `StickerSadAnimated` | `@antadesign/stickers/sad`, `@antadesign/stickers/sad-animated` |
60
+ | Scared | `StickerScared` | `StickerScaredAnimated` | `@antadesign/stickers/scared`, `@antadesign/stickers/scared-animated` |
61
+ | Scroll | `StickerScroll` | `StickerScrollAnimated` | `@antadesign/stickers/scroll`, `@antadesign/stickers/scroll-animated` |
62
+ | Search | `StickerSearch` | `StickerSearchAnimated` | `@antadesign/stickers/search`, `@antadesign/stickers/search-animated` |
63
+ | Shield | `StickerShield` | `StickerShieldAnimated` | `@antadesign/stickers/shield`, `@antadesign/stickers/shield-animated` |
64
+ | Shocked | `StickerShocked` | `StickerShockedAnimated` | `@antadesign/stickers/shocked`, `@antadesign/stickers/shocked-animated` |
65
+ | Sleep | `StickerSleep` | `StickerSleepAnimated` | `@antadesign/stickers/sleep`, `@antadesign/stickers/sleep-animated` |
66
+ | Stressed | `StickerStressed` | `StickerStressedAnimated` | `@antadesign/stickers/stressed`, `@antadesign/stickers/stressed-animated` |
67
+ | Suspicious | `StickerSuspicious` | `StickerSuspiciousAnimated` | `@antadesign/stickers/suspicious`, `@antadesign/stickers/suspicious-animated` |
68
+ | Thanks | `StickerThanks` | `StickerThanksAnimated` | `@antadesign/stickers/thanks`, `@antadesign/stickers/thanks-animated` |
69
+ | Think | `StickerThink` | `StickerThinkAnimated` | `@antadesign/stickers/think`, `@antadesign/stickers/think-animated` |
70
+ | ThinkOfYou | `StickerThinkOfYou` | `StickerThinkOfYouAnimated` | `@antadesign/stickers/think-of-you`, `@antadesign/stickers/think-of-you-animated` |
71
+ | ThumbsUp | `StickerThumbsUp` | `StickerThumbsUpAnimated` | `@antadesign/stickers/thumbs-up`, `@antadesign/stickers/thumbs-up-animated` |
72
+ | Vacation | `StickerVacation` | `StickerVacationAnimated` | `@antadesign/stickers/vacation`, `@antadesign/stickers/vacation-animated` |
73
+ | Wait | `StickerWait` | `StickerWaitAnimated` | `@antadesign/stickers/wait`, `@antadesign/stickers/wait-animated` |
74
+ | Wink | `StickerWink` | `StickerWinkAnimated` | `@antadesign/stickers/wink`, `@antadesign/stickers/wink-animated` |
75
+ | Work | `StickerWork` | `StickerWorkAnimated` | `@antadesign/stickers/work`, `@antadesign/stickers/work-animated` |
76
+ | Zen | `StickerZen` | `StickerZenAnimated` | `@antadesign/stickers/zen`, `@antadesign/stickers/zen-animated` |
77
+
24
78
  ## Props
25
79
 
26
80
  Both flavors share the same base props; the animated flavor adds playback props.
@@ -45,6 +99,8 @@ Same as the static base, plus:
45
99
  | `playOnce?` | `boolean` | Plays once and holds the final frame instead of looping. |
46
100
  | `replayOnClick?` | `boolean` | With `playOnce`, lets people click or press Enter/Space to replay the animation. The sticker becomes a labeled button. |
47
101
 
102
+ ## Web Component
103
+
48
104
  Use the web component directly when you are not using React or Preact and a native control does not fit.
49
105
 
50
106
  Pass the generated SVG payload to `<a-sticker>` and set a size through
package/docs/theming.md CHANGED
@@ -29,3 +29,273 @@ overrides them without `!important`, and shadow-DOM components expose
29
29
  its rest, hover, and active values. Each component page lists its styling hooks.
30
30
 
31
31
  The lab below shows the derivation live. For each toned component, the shipped Default sits next to a Custom preview driven by the seed picker, with the formula constants editable and the resolved CSS shown.
32
+
33
+ ## Theming lab reference
34
+
35
+ The lab varies a tone seed and formula inputs in light and dark mode. These inputs describe the lab's calculations. For application styling, use tone props, global role tokens, CSS, and the parts documented on each component page.
36
+
37
+ | Tone | Seed property | Initial lab seed |
38
+ | --- | --- | --- |
39
+ | neutral | `--anta-seed-neutral` | `#635b65` |
40
+ | brand | `--anta-seed-brand` | `#5f4bc3` |
41
+ | info | `--anta-seed-info` | `#1f6eb2` |
42
+ | success | `--anta-seed-success` | `#2a7e43` |
43
+ | warning | `--anta-seed-warning` | `#c37416` |
44
+ | critical | `--anta-seed-critical` | `#c9302c` |
45
+
46
+ ### Background and Borders
47
+
48
+ The container background and border role scales, derived from the source hue. Backgrounds sit near the page lightness with a faint tint that grows per step; borders step down in lightness from a saturated edge (border-1) to the faint bg-5, chroma easing off as they lighten. Neutral zeroes chroma to stay grey.
49
+
50
+ #### Background
51
+
52
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
53
+ | --- | --- | --- | --- | --- | --- | --- | --- |
54
+ | bg-1 L | 1 | 0 | 1 | 0 | 0–1 | 0.005 | |
55
+ | bg-2 L | 0.99 | 0.13 | 0.985 | 0.16 | 0–1 | 0.005 | |
56
+ | bg-2 C | 0.004 | 0.02 | 0.002 | 0.002 | 0–0.4 | 0.005 | |
57
+ | bg-3 L | 0.972 | 0.17 | 0.97 | 0.177 | 0–1 | 0.005 | |
58
+ | bg-3 C | 0.011 | 0.035 | 0.004 | 0.005 | 0–0.4 | 0.005 | |
59
+ | bg-4 L | 0.955 | 0.185 | 0.954 | 0.191 | 0–1 | 0.005 | |
60
+ | bg-4 C | 0.02 | 0.05 | 0.004 | 0.006 | 0–0.4 | 0.005 | |
61
+ | bg-5 L | 0.935 | 0.205 | 0.935 | 0.2 | 0–1 | 0.005 | |
62
+ | bg-5 C | 0.03 | 0.055 | 0.006 | 0.009 | 0–0.4 | 0.005 | |
63
+
64
+ #### Border
65
+
66
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
67
+ | --- | --- | --- | --- | --- | --- | --- | --- |
68
+ | border-1 L | 0.67 | 0.52 | 0.67 | 0.52 | 0–1 | 0.005 | |
69
+ | border-1 C | 0.13 | 0.15 | 0.008 | 0.008 | 0–0.4 | 0.005 | |
70
+ | border-2 L | 0.8 | 0.41 | 0.8 | 0.41 | 0–1 | 0.005 | |
71
+ | border-2 C | 0.09 | 0.12 | 0.008 | 0.008 | 0–0.4 | 0.005 | |
72
+ | border-3 L | 0.86 | 0.33 | 0.86 | 0.33 | 0–1 | 0.005 | |
73
+ | border-3 C | 0.055 | 0.09 | 0.008 | 0.008 | 0–0.4 | 0.005 | |
74
+ | border-4 L | 0.9 | 0.26 | 0.9 | 0.26 | 0–1 | 0.005 | |
75
+ | border-4 C | 0.04 | 0.06 | 0.008 | 0.008 | 0–0.4 | 0.005 | |
76
+ | border-5 L | 0.935 | 0.21 | 0.935 | 0.21 | 0–1 | 0.005 | |
77
+ | border-5 C | 0.028 | 0.045 | 0.008 | 0.008 | 0–0.4 | 0.005 | |
78
+
79
+ ### Text
80
+
81
+ The text color role scale, derived from the source hue. text-1 is the strong primary; text-2 the base (secondary); text-3/4 step text-2 down by alpha — Title and Text read text-1..4 as their priorities. text-5 is the faintest step (text-2 at a lower alpha), used for disabled / hint text across components, not a Title/Text priority.
82
+
83
+ #### Primary
84
+
85
+ text-1.
86
+
87
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
88
+ | --- | --- | --- | --- | --- | --- | --- | --- |
89
+ | text-1 L | 0.38 | 0.85 | 0.1 | 0.94 | 0–1 | 0.005 | |
90
+ | text-1 C | 0.11 | 0.1 | 0.01 | 0.008 | 0–0.4 | 0.005 | |
91
+
92
+ #### Secondary
93
+
94
+ text-2 base.
95
+
96
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
97
+ | --- | --- | --- | --- | --- | --- | --- | --- |
98
+ | text-2 L | 0.43 | 0.77 | 0.3 | 0.8 | 0–1 | 0.005 | |
99
+ | text-2 C | 0.15 | 0.11 | 0.015 | 0.015 | 0–0.4 | 0.005 | |
100
+
101
+ #### Tertiary
102
+
103
+ text-2 base at this alpha (→ text-3).
104
+
105
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
106
+ | --- | --- | --- | --- | --- | --- | --- | --- |
107
+ | text-3 α % | 82 | 80 | 82 | 80 | 0–100 | 1 | |
108
+
109
+ #### Quaternary
110
+
111
+ text-2 base at this alpha (→ text-4).
112
+
113
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
114
+ | --- | --- | --- | --- | --- | --- | --- | --- |
115
+ | text-4 α % | 60 | 60 | 60 | 60 | 0–100 | 1 | |
116
+
117
+ #### Faint (text-5)
118
+
119
+ text-2 base at this alpha (→ text-5) — the disabled / hint step, not a Title/Text priority.
120
+
121
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
122
+ | --- | --- | --- | --- | --- | --- | --- | --- |
123
+ | text-5 α % | 40 | 40 | 40 | 40 | 0–100 | 1 | |
124
+
125
+ ### Buttons
126
+
127
+ Primary is the source fill at three lightnesses. Secondary, tertiary, and quaternary share one foreground; secondary and tertiary share an alpha-tinted fill (tertiary a step softer, transparent at rest), quaternary has none. Secondary’s label subtracts an l-shift to read a step stronger than its tint.
128
+
129
+ #### Primary
130
+
131
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
132
+ | --- | --- | --- | --- | --- | --- | --- | --- |
133
+ | L rest | 0.51 | 0.4 | 0.5 | 0.4 | 0–1 | 0.005 | |
134
+ | L hover | 0.46 | 0.44 | 0.45 | 0.44 | 0–1 | 0.005 | |
135
+ | L active | 0.41 | 0.48 | 0.4 | 0.48 | 0–1 | 0.005 | |
136
+ | fill C | 0.17 | 0.16 | 0.02 | 0.015 | 0–0.4 | 0.005 | One chroma for the primary fill across rest/hover/active. Neutral pins it near-grey; toned versions set the saturation here instead of inheriting the seed’s own chroma. |
137
+
138
+ #### Secondary
139
+
140
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
141
+ | --- | --- | --- | --- | --- | --- | --- | --- |
142
+ | fg L | 0.46 | 0.86 | 0.46 | 0.86 | 0–1 | 0.005 | |
143
+ | fg L hover | 0.4 | 0.86 | 0.4 | 0.86 | 0–1 | 0.005 | |
144
+ | fg C | 0.17 | 0.13 | 0.008 | 0.015 | 0–0.4 | 0.005 | |
145
+ | fg l-shift | 0.05 | 0 | 0.05 | 0 | 0–0.3 | 0.005 | Subtracted from the secondary label’s OKLCH lightness so it reads one step stronger than the tint behind it. |
146
+ | tint L | 0.54 | 0.58 | 0.54 | 0.44 | 0–1 | 0.005 | |
147
+ | tint C | 0.17 | 0.16 | 0.03 | 0.01 | 0–0.4 | 0.005 | |
148
+ | α rest | 0.1 | 0.215 | 0.1 | 0.24 | 0–1 | 0.005 | |
149
+ | α hover | 0.15 | 0.29 | 0.15 | 0.34 | 0–1 | 0.005 | |
150
+ | α active | 0.2 | 0.34 | 0.2 | 0.44 | 0–1 | 0.005 | |
151
+
152
+ #### Tertiary
153
+
154
+ Reuses the secondary foreground + tint (no separate Anta constant).
155
+
156
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
157
+ | --- | --- | --- | --- | --- | --- | --- | --- |
158
+ | fg L | 0.46 | 0.86 | 0.46 | 0.86 | 0–1 | 0.005 | |
159
+ | fg L hover | 0.4 | 0.86 | 0.4 | 0.86 | 0–1 | 0.005 | |
160
+ | fg C | 0.17 | 0.13 | 0.008 | 0.015 | 0–0.4 | 0.005 | |
161
+ | tint L | 0.54 | 0.58 | 0.54 | 0.44 | 0–1 | 0.005 | |
162
+ | tint C | 0.17 | 0.16 | 0.03 | 0.01 | 0–0.4 | 0.005 | |
163
+ | α rest | 0.1 | 0.215 | 0.1 | 0.24 | 0–1 | 0.005 | |
164
+ | α hover | 0.15 | 0.29 | 0.15 | 0.34 | 0–1 | 0.005 | |
165
+
166
+ #### Quaternary
167
+
168
+ Rest (and active) is the tertiary foreground at the rest α; hover uses its own detached lightness at full opacity. No fill.
169
+
170
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
171
+ | --- | --- | --- | --- | --- | --- | --- | --- |
172
+ | fg L | 0.46 | 0.86 | 0.46 | 0.86 | 0–1 | 0.005 | |
173
+ | fg C | 0.17 | 0.13 | 0.008 | 0.015 | 0–0.4 | 0.005 | |
174
+ | hover L | 0.38 | 0.9 | 0.38 | 0.9 | 0–1 | 0.005 | Quaternary hover lightness, detached from tertiary — its own value, not the shared secondary fg-hover. Rest and active carry the rest α; hover is opaque. |
175
+ | α rest | 0.85 | 0.85 | 0.85 | 0.85 | 0–1 | 0.005 | Alpha on the quaternary rest (and active) foreground. Light-mode neutral needs ≈0.83 to clear WCAG AA (4.5:1) over bg-2. |
176
+
177
+ ### Tags
178
+
179
+ Primary is a solid fill; secondary an alpha tint of the tint hue; tertiary an outline. The label and edge are the Text scale — edge = --text-2, label = --text-2 at the label α (80 → --text-3), tunable per Tag (e.g. raise it for small-text contrast). The tint and solid fill are the Tag’s own (source hue at these L/C); alphas set each priority’s strength.
180
+
181
+ #### Primary
182
+
183
+ Solid fill; white label.
184
+
185
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
186
+ | --- | --- | --- | --- | --- | --- | --- | --- |
187
+ | solid L | 0.58 | 0.46 | 0.55 | 0.48 | 0–1 | 0.005 | |
188
+ | solid C | 0.175 | 0.165 | 0.015 | 0.015 | 0–0.4 | 0.005 | Chroma of the primary solid fill, independent of the secondary tint’s C. Neutral pins it near-grey. |
189
+
190
+ #### Secondary
191
+
192
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
193
+ | --- | --- | --- | --- | --- | --- | --- | --- |
194
+ | tint L | 0.57 | 0.63 | 0.55 | 0.63 | 0–1 | 0.005 | |
195
+ | tint C | 0.16 | 0.17 | 0.03 | 0.04 | 0–0.4 | 0.005 | |
196
+ | fill α % | 10 | 20 | 10 | 20 | 0–100 | 1 | |
197
+ | border α % | 15 | 25 | 15 | 25 | 0–100 | 1 | |
198
+
199
+ #### Tertiary
200
+
201
+ Outline alpha; the edge color is --text-2.
202
+
203
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
204
+ | --- | --- | --- | --- | --- | --- | --- | --- |
205
+ | edge α % | 20 | 30 | 20 | 30 | 0–100 | 1 | |
206
+
207
+ #### Label
208
+
209
+ Label = --text-2 at this alpha (80 → --text-3). Raise for small-text contrast.
210
+
211
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
212
+ | --- | --- | --- | --- | --- | --- | --- | --- |
213
+ | label α % | 80 | 80 | 80 | 80 | 0–100 | 1 | |
214
+
215
+ ### Tabs
216
+
217
+ The strip’s primary/secondary/tertiary differ structurally (filled track vs subtle vs underline). Labels and rings are the role scale: selected/hover = --text-1, rest = --text-2 at the rest α (80 → --text-3), tertiary hover = --text-2, track ring = --border-4, selected ring = --border-2, selected pill = --bg-1. Only the recessed track tint, secondary fill, and the rest α are the Tabs’ own — the knobs below.
218
+
219
+ #### Track & fill
220
+
221
+ The recessed track tint (primary) and the selected secondary fill — a faint overlay of the source hue.
222
+
223
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
224
+ | --- | --- | --- | --- | --- | --- | --- | --- |
225
+ | fill L | 0.55 | 0.8 | 0.55 | 0.8 | 0–1 | 0.005 | |
226
+ | fill C | 0.14 | 0.12 | 0.008 | 0.008 | 0–0.4 | 0.005 | |
227
+ | track α | 0.06 | 0.07 | 0.06 | 0.07 | 0–1 | 0.005 | |
228
+ | fill α | 0.03 | 0.08 | 0.03 | 0.08 | 0–1 | 0.005 | |
229
+
230
+ #### Rest label
231
+
232
+ Non-selected label = --text-2 at this alpha (80 → --text-3). Selected/hover use full --text-1.
233
+
234
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
235
+ | --- | --- | --- | --- | --- | --- | --- | --- |
236
+ | rest α % | 80 | 80 | 80 | 80 | 0–100 | 1 | |
237
+
238
+ ### Checkboxes
239
+
240
+ Hoisted to --_tone-l-* inputs: the checked fill is the source at three lightnesses. The off-state box border ramps off that fill mixed toward neutral grey. On = toneSelected; off = tone.
241
+
242
+ #### Fill
243
+
244
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
245
+ | --- | --- | --- | --- | --- | --- | --- | --- |
246
+ | L rest | 0.5 | 0.45 | 0.6 | 0.42 | 0–1 | 0.005 | |
247
+ | L hover | 0.45 | 0.5 | 0.45 | 0.45 | 0–1 | 0.005 | |
248
+ | L active | 0.4 | 0.57 | 0.4 | 0.5 | 0–1 | 0.005 | |
249
+
250
+ ### Radio
251
+
252
+ Identical fill curve to Checkbox: --_tone-l-* set the selected dot at three lightnesses, and the off-ring border ramps off it. Group toneSelected drives the picked option.
253
+
254
+ #### Fill
255
+
256
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
257
+ | --- | --- | --- | --- | --- | --- | --- | --- |
258
+ | L rest | 0.5 | 0.45 | 0.6 | 0.42 | 0–1 | 0.005 | |
259
+ | L hover | 0.45 | 0.5 | 0.45 | 0.45 | 0–1 | 0.005 | |
260
+ | L active | 0.4 | 0.57 | 0.4 | 0.5 | 0–1 | 0.005 | |
261
+
262
+ ### Expander
263
+
264
+ Every color is a role token; the Expander defines none of its own. Label: rest --text-2, hover --text-1 (Title’s secondary/primary). Fill and border are the surface scale (secondary --bg-2 / --border-5, primary --bg-4 / --border-4), and the fill lightens a step on hover. Tertiary is text only, all themed per tone.
265
+
266
+ ### Input
267
+
268
+ One border color from the seed hue at a tunable L/C — the goal is a single L/C per theme that works across every tone. Hover thickens the edge 0.5→1px (no recolor). Neutral overrides pin it grey (≈ --border-2). Applies to Input and the InputDate trigger (both compose <a-input>).
269
+
270
+ #### Border
271
+
272
+ Seed hue at this L/C (hover thickens the edge, no recolor). Toned starts at the average of today’s per-status literals; neutral pins grey ≈ --border-2.
273
+
274
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
275
+ | --- | --- | --- | --- | --- | --- | --- | --- |
276
+ | border L | 0.58 | 0.52 | 0.8 | 0.4 | 0–1 | 0.005 | |
277
+ | border C | 0.18 | 0.15 | 0.015 | 0.019 | 0–0.4 | 0.005 | |
278
+
279
+ ### Menu items
280
+
281
+ The item label is --text-2; the hint and icon are --text-2 at the hint α (80 → --text-3), so the text follows the Text spec while the hint strength stays tunable. The selected row holds a persistent tint of the label color — its alpha is the Menu’s own knob too.
282
+
283
+ #### Text
284
+
285
+ Label is full --text-2; hint + icon are --text-2 at this alpha (80 → --text-3).
286
+
287
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
288
+ | --- | --- | --- | --- | --- | --- | --- | --- |
289
+ | hint α % | 80 | 80 | 80 | 80 | 0–100 | 1 | |
290
+
291
+ #### Selected
292
+
293
+ Tint held on the selected row — a % of the item color (--text-2).
294
+
295
+ | Input | Toned light | Toned dark | Neutral light | Neutral dark | Range | Step | Meaning |
296
+ | --- | --- | --- | --- | --- | --- | --- | --- |
297
+ | selected α % | 9 | 12 | 9 | 12 | 0–100 | 1 | |
298
+
299
+ ### Progress
300
+
301
+ Every color is a role token; Progress defines none of its own. Track = --bg-4, border = --border-4, the fill indicator = --bg-5, the label = --text-2, and the right-aligned hint = --text-3. Named tones swap in the matching -{tone} role variant (so dark mode is free), and the fill’s right-edge fades from --bg-5 to --border-4. Follows the Text and Background & Borders panels live.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antadesign/anta",
3
- "version": "0.3.26",
3
+ "version": "0.3.27",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -62,6 +62,8 @@
62
62
  "dev:run": "echo $$ > \"$ANTA_DEV_PID_FILE\"; trap 'rm -f \"$ANTA_DEV_PID_FILE\"' EXIT; pnpm run build:dev && pnpm --filter @antadesign/stickers run build:dev && pnpm --filter anta-site run docs && (node scripts/dev-watch.mjs & pnpm --filter anta-site run dev:server & wait)",
63
63
  "stop": "node scripts/dev-stop.mjs",
64
64
  "typecheck": "tsc --noEmit -p src/tsconfig.json",
65
+ "test": "node --test tests/*.test.mjs",
66
+ "test:capture-input": "node --test tests/capture-input.test.mjs",
65
67
  "lint": "node scripts/lint-getters.mjs && node scripts/lint-css-layers.mjs",
66
68
  "verify": "pnpm run lint && pnpm run typecheck && pnpm --filter anta-site run docs:api",
67
69
  "icons": "node scripts/generate-icons.mjs --input src/elements/icons --output src/elements --name a-icon.shapes --internal",