@antadesign/anta 0.3.26 → 0.3.28

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 (133) hide show
  1. package/README.md +26 -28
  2. package/dist/anta_helpers.d.ts +8 -0
  3. package/dist/anta_helpers.js +18 -0
  4. package/dist/box-types.d.ts +1 -1
  5. package/dist/bundle.css +1 -1
  6. package/dist/bundle.js +36 -42
  7. package/dist/capture-types.d.ts +156 -0
  8. package/dist/components/Banner.js +2 -2
  9. package/dist/components/Box.d.ts +15 -0
  10. package/dist/components/Box.js +3 -11
  11. package/dist/components/Button.js +2 -2
  12. package/dist/components/Capture.d.ts +39 -0
  13. package/dist/components/Capture.js +36 -0
  14. package/dist/components/Card.js +2 -2
  15. package/dist/components/Checkbox.d.ts +10 -11
  16. package/dist/components/Checkbox.js +5 -13
  17. package/dist/components/Expander.js +2 -2
  18. package/dist/components/Input.js +2 -2
  19. package/dist/components/InputTime.js +2 -2
  20. package/dist/components/Loader.js +2 -1
  21. package/dist/components/MenuItem.d.ts +7 -8
  22. package/dist/components/MenuItem.js +4 -4
  23. package/dist/components/Progress.js +2 -2
  24. package/dist/components/RadioGroup.d.ts +12 -13
  25. package/dist/components/RadioGroup.js +7 -23
  26. package/dist/components/Select.d.ts +12 -7
  27. package/dist/components/Select.js +4 -3
  28. package/dist/components/SelectFaceted.d.ts +7 -5
  29. package/dist/components/SelectFaceted.js +4 -3
  30. package/dist/components/Slider.js +3 -3
  31. package/dist/components/Steps.css +1 -1
  32. package/dist/components/Switch.d.ts +7 -8
  33. package/dist/components/Switch.js +3 -11
  34. package/dist/components/Tabs.js +2 -2
  35. package/dist/components/Tag.d.ts +7 -9
  36. package/dist/components/Tag.js +2 -2
  37. package/dist/components/Text.js +2 -2
  38. package/dist/components/Title.js +2 -2
  39. package/dist/components/capture-props.d.ts +30 -0
  40. package/dist/components/capture-props.js +44 -0
  41. package/dist/elements/a-avatar.css +1 -1
  42. package/dist/elements/a-banner.css +1 -1
  43. package/dist/elements/a-box.d.ts +1 -1
  44. package/dist/elements/a-box.js +11 -3
  45. package/dist/elements/a-button.css +1 -1
  46. package/dist/elements/a-button.d.ts +7 -9
  47. package/dist/elements/a-calendar.css +1 -1
  48. package/dist/elements/a-capture.css +1 -0
  49. package/dist/elements/a-capture.d.ts +10 -0
  50. package/dist/elements/a-capture.js +24 -0
  51. package/dist/elements/a-card.css +1 -1
  52. package/dist/elements/a-checkbox.css +1 -1
  53. package/dist/elements/a-checkbox.js +4 -4
  54. package/dist/elements/a-dialog.css +1 -1
  55. package/dist/elements/a-expander.css +1 -1
  56. package/dist/elements/a-expander.js +1 -0
  57. package/dist/elements/a-input-time.css +1 -1
  58. package/dist/elements/a-input-time.js +5 -7
  59. package/dist/elements/a-input.css +1 -1
  60. package/dist/elements/a-input.js +4 -6
  61. package/dist/elements/a-menu-item.css +1 -1
  62. package/dist/elements/a-menu.css +1 -1
  63. package/dist/elements/a-progress.css +1 -1
  64. package/dist/elements/a-radio.css +1 -1
  65. package/dist/elements/a-slider.css +1 -1
  66. package/dist/elements/a-slider.js +6 -9
  67. package/dist/elements/a-switch.css +1 -1
  68. package/dist/elements/a-tab.css +1 -1
  69. package/dist/elements/a-tabs.css +1 -1
  70. package/dist/elements/a-tag.css +1 -1
  71. package/dist/elements/a-text.css +1 -1
  72. package/dist/elements/a-text.js +1 -0
  73. package/dist/elements/a-title.css +1 -1
  74. package/dist/elements/a-tooltip.css +1 -1
  75. package/dist/elements/a-tooltip.d.ts +3 -4
  76. package/dist/elements/a-tooltip.js +0 -1
  77. package/dist/elements/capture-input.d.ts +5 -0
  78. package/dist/elements/capture-input.js +609 -0
  79. package/dist/elements/index.d.ts +1 -0
  80. package/dist/elements/index.js +3 -0
  81. package/dist/general_types.d.ts +56 -23
  82. package/dist/index.d.ts +4 -1
  83. package/dist/index.js +2 -0
  84. package/dist/jsx-runtime.d.ts +2 -1
  85. package/dist/reset.css +1 -1
  86. package/dist/theme-antithesis.css +1 -0
  87. package/dist/theme-antune.css +1 -0
  88. package/dist/tokens.css +1 -1
  89. package/docs/accessibility.md +24 -0
  90. package/docs/changelog.md +79 -0
  91. package/docs/colors.md +141 -0
  92. package/docs/comparison.md +463 -28
  93. package/docs/components/avatar.md +13 -17
  94. package/docs/components/banner.md +13 -27
  95. package/docs/components/box.md +226 -154
  96. package/docs/components/breadcrumbs.md +49 -12
  97. package/docs/components/button.md +48 -37
  98. package/docs/components/capture.md +345 -0
  99. package/docs/components/card.md +17 -38
  100. package/docs/components/checkbox.md +27 -50
  101. package/docs/components/dialog.md +14 -36
  102. package/docs/components/expander.md +15 -40
  103. package/docs/components/icon.md +111 -9
  104. package/docs/components/input-autocomplete.md +9 -11
  105. package/docs/components/input-date.md +33 -23
  106. package/docs/components/input-time.md +15 -23
  107. package/docs/components/input.md +27 -76
  108. package/docs/components/loader.md +7 -5
  109. package/docs/components/menu.md +75 -80
  110. package/docs/components/progress.md +10 -14
  111. package/docs/components/radio.md +28 -46
  112. package/docs/components/select-faceted.md +8 -25
  113. package/docs/components/select.md +33 -105
  114. package/docs/components/slider.md +16 -21
  115. package/docs/components/steps.md +38 -8
  116. package/docs/components/switch.md +16 -19
  117. package/docs/components/tabs.md +52 -40
  118. package/docs/components/tag.md +15 -24
  119. package/docs/components/text.md +10 -23
  120. package/docs/components/title.md +7 -8
  121. package/docs/components/toaster.md +6 -3
  122. package/docs/components/tooltip.md +13 -23
  123. package/docs/index.md +3 -1
  124. package/docs/install-config.md +42 -8
  125. package/docs/normalization.md +48 -3
  126. package/docs/packages/stickers.md +56 -0
  127. package/docs/theming.md +362 -14
  128. package/package.json +7 -4
  129. package/dist/components/InputDate.module.css +0 -1
  130. package/dist/components/Select.module.css +0 -1
  131. package/dist/components/SelectFaceted.module.css +0 -1
  132. package/dist/theme-anta.css +0 -1
  133. /package/dist/{search-index.json → capture-types.js} +0 -0
@@ -1,33 +1,468 @@
1
1
  # Comparison
2
2
 
3
- Compare four delivery models: styled React libraries, headless primitives,
4
- copy-paste source, and framework-agnostic web components. Versions are a
5
- snapshot from ; use each system's link for the current release.
6
-
7
- Most systems are React-only and use CSS-in-JS, Sass, StyleX, or Tailwind.
8
- Anta ships web components with plain CSS in one `@layer`, without a style
9
- runtime. Consumer CSS overrides its defaults normally.
10
-
11
- Browser years show the oldest published fixed floor. `~` marks the earliest
12
- year shared by a browser feature the current system ships, rather than a
13
- published support promise. Hover a value for the policy and the feature behind
14
- that estimate.
15
-
16
- Fixed-package sizes are measured from the version named on each card. Each npm
17
- artifact was downloaded, bundled as a full ESM import with esbuild, minified,
18
- and gzipped, then rounded up to the nearest 10 KiB. React and React DOM are
19
- external. When a library ships base CSS, the total adds its separately gzipped
20
- CSS bundle. The line below each figure states what it counts.
21
-
22
- Tree-shaking, peer dependencies, icons, styles, and copied source still make
23
- the numbers different shapes. Polaris is a dated CDN snapshot, not a
24
- release-based package figure. Independently versioned packages and copied-source
25
- systems need an explicit component boundary; each card names it. Every browser
26
- version includes its release year. Rolling policies are pinned to the current
27
- stable releases in this snapshot.
3
+ <a id="frameworks-styling-license-browser-support"></a>
4
+
5
+ ## Frameworks, styling, licenses, and browser support
6
+
7
+ | System | Version | Frameworks | Styling | License | Browser baseline | Browser policy |
8
+ | --- | --- | --- | --- | --- | --- | --- |
9
+ | [Anta](https://anta.design) | @antadesign/anta 0.3.26 | Web components; React and Preact wrappers | Plain CSS + CSS-variable tokens | MIT | 2024 | Chrome / Edge 125 (2024), Safari 17.4 (2024), and Firefox 126 (2024), or later. Requires custom elements, ElementInternals, Popover, and modern CSS. |
10
+ | [MUI (Material UI)](https://mui.com/material-ui/) | @mui/material 9.4.0 | React | CSS-in-JS (Emotion) | MIT core + paid MUI X | 2024 | Chrome 117 (2023), Edge 121 (2024), Firefox 121 (2024), and Safari 17.0 (2023), or later. |
11
+ | [Mantine](https://mantine.dev) | @mantine/core 9.6.0 | React | CSS Modules + CSS variables | MIT | 2022 | Tested on Chromium 108 (2022), Firefox 101 (2022), and Safari 15.4 (2022), or later. |
12
+ | [Astryx](https://astryx.atmeta.com) | @astryxdesign/core 0.5.3 | React | StyleX (precompiled atomic CSS) | MIT | 2024 / 2026 | Two documented tiers: functional support at Baseline 2024 and full fidelity at Baseline 2026. Older functional-tier browsers need a positioning fallback for anchored overlays. |
13
+ | [Ant Design](https://ant.design) | antd 6.6.2 | React; Angular, Vue community ports | CSS-in-JS + CSS variables (v6) | MIT | ~2023 | Estimated compatibility: Chrome / Edge 111+, Firefox 121+, and Safari 16.2+ (2023), based on :has(), color-mix(), and ResizeObserver in current components. Ant Design officially targets modern browsers; some enhancements can require newer versions. |
14
+ | [Gravity UI](https://gravity-ui.com) | @gravity-ui/uikit 7.49.0 | React | CSS (BEM classes) + CSS variables | MIT | ~2023 | Estimated compatibility: Chrome / Edge 105+, Firefox 121+, and Safari 15.4+ (2023), based on :has() in theme CSS, Array.at() in tabs and tables, and ResizeObserver. Extension packages can add requirements. |
15
+ | [shadcn](https://ui.shadcn.com) + [Base UI](https://base-ui.com) + [Tailwind](https://tailwindcss.com) | Base UI registry | React; Vue, Svelte community ports | Tailwind + CSS variables | MIT | 2024 | Depends on the selected primitives. Tailwind CSS 4 requires Safari 16.4 (2023), Chrome 111 (2023), and Firefox 128 (2024), or later. |
16
+ | [Untitled UI](https://www.untitledui.com/react) + [React Aria](https://react-spectrum.adobe.com/react-aria/) + [Tailwind](https://tailwindcss.com) | React app source | React | Tailwind CSS + React Aria | MIT core + paid Pro tier | 2024 | Tailwind CSS 4 requires Safari 16.4 (2023), Chrome 111 (2023), and Firefox 128 (2024), or later. React Aria can add feature-specific requirements. |
17
+ | [Blueprint](https://blueprintjs.com) | @blueprintjs/core 6.18.0 | React | Sass-compiled CSS (bp6- classes) | Apache-2.0 | ~2023 | Estimated compatibility: Chrome / Edge 111+, Firefox 113+, and Safari 16.2+ (2023), based on color-mix() in core CSS. Relative-color enhancements have fallbacks. The repository maintains a rolling Browserslist target. |
18
+ | [Carbon](https://carbondesignsystem.com) | @carbon/react 1.115.0 | React + Lit web components; Angular, Vue, Svelte community | Sass + CSS variables | Apache-2.0 | ~2023 | Estimated compatibility: Chrome / Edge 105+, Firefox 121+, and Safari 16+ (2023), based on :has() and container queries in the shipped CSS. Official support covers the latest stable browser releases. |
19
+ | [Atlassian (Atlaskit)](https://atlassian.design) | @atlaskit/tokens 16.11.2 | React | Compiled CSS-in-JS + tokens | Package-specific OSS + ADS terms | ~2022 | Estimated compatibility for compiled controls: Chrome / Edge 86+, Firefox 85+, and Safari 15.4+ (2022), based on CSS variables and :focus-visible. Other packages can require newer features. Official support follows the target Atlassian product. |
20
+ | [Web Awesome](https://webawesome.com) | @awesome.me/webawesome 3.12.0 | Web components; React, Vue, Angular, Svelte guides | CSS framework + CSS variables | MIT core + paid Pro tier | ~2024 | Estimated compatibility: Chrome / Edge 125+, Firefox 128+, and Safari 18+ (2024). Current styles use custom states and relative OKLCH colors. Official support covers the latest two major browser versions. |
21
+ | [Shopify Polaris](https://shopify.dev/docs/api/app-home/web-components) | Polaris CDN 1.x; 1.1 RC | Web components | Locked to the Shopify look | Restricted (Shopify apps) | ~2023 | Estimated compatibility: Chrome / Edge 105+, Firefox 121+, and Safari 16.4+ (2023), based on :has(), container queries, and form-associated custom elements. The CDN includes a Popover polyfill. Shopify does not guarantee this minimum set. |
22
+
23
+ Browser years summarize minimum-version release dates. `~` marks a compatibility
24
+ estimate from shipped CSS and APIs, checked against
25
+ [MDN browser data](https://github.com/mdn/browser-compat-data).
26
+ Each value includes browser versions, the estimate’s basis, and the official
27
+ support policy. Astryx lists functional and full-fidelity tiers.
28
+
29
+ ## The systems
30
+
31
+ Sizes measure full imports, minified with esbuild and compressed with gzip,
32
+ including separately compressed base CSS. Figures round up to 10 KiB and
33
+ exclude React and React DOM. Each card lists its measured package or source
34
+ snapshot and other exclusions.
35
+
36
+ These imports cover different component sets. Selective imports and copied
37
+ components usually ship less code. Measure your application before comparing
38
+ download costs.
39
+
40
+ ### Anta
41
+
42
+ [Anta](https://anta.design). Framework-agnostic web components with optional React/Preact wrappers and no style runtime.
43
+
44
+ | Field | Value |
45
+ | --- | --- |
46
+ | Version | @antadesign/anta 0.3.26 |
47
+ | Delivery | Styled web components + JSX wrappers |
48
+ | Gzipped size | ~100 KiB |
49
+ | Measured version | @antadesign/anta 0.3.16 |
50
+ | Measurement scope | Wrappers, elements, CSS, tokens, and reset. Excludes React, the branded theme, and stickers. |
51
+ | Browser support | Chrome / Edge 125 (2024), Safari 17.4 (2024), and Firefox 126 (2024), or later. Requires custom elements, ElementInternals, Popover, and modern CSS. |
52
+
53
+ #### Strengths
54
+
55
+ - Runs in React, Preact, and plain HTML; JSX wrappers are optional.
56
+ - Plain CSS and cascade layers support overrides without a style runtime.
57
+ - Shared color, font, and focus tokens support light and dark themes.
58
+
59
+ #### Trade-offs
60
+
61
+ - No data grid or chart components in the published package.
62
+ - Requires modern browsers and provides no baseline polyfills.
63
+ - The API is still in 0.x and can change between minor releases.
64
+
65
+ #### Sources
66
+
67
+ - [Installation and browser support](./install-config.md#browser-support)
68
+ - [Theming](./theming.md)
69
+
70
+ ### MUI (Material UI)
71
+
72
+ [MUI (Material UI)](https://mui.com/material-ui/). MUI’s React implementation of Google’s Material Design.
73
+
74
+ | Field | Value |
75
+ | --- | --- |
76
+ | Version | @mui/material 9.4.0 |
77
+ | Delivery | Styled React components |
78
+ | Gzipped size | ~170 KiB |
79
+ | Measured version | @mui/material 9.2.0 |
80
+ | Measurement scope | Material UI core and Emotion. Excludes React, icons, MUI X, and date adapters. |
81
+ | Browser support | Chrome 117 (2023), Edge 121 (2024), Firefox 121 (2024), and Safari 17.0 (2023), or later. |
82
+
83
+ #### Strengths
84
+
85
+ - Core controls plus MUI X data grids, charts, and date pickers.
86
+ - Themes provide component variants, slot overrides, and CSS variables.
87
+ - v9 adds NumberField and Menubar and expands keyboard navigation.
88
+
89
+ #### Trade-offs
90
+
91
+ - Emotion resolves styles at runtime; Pigment CSS remains on hold.
92
+ - Some MUI X features require Pro or Premium licenses.
93
+ - React-only. Custom designs can require component-level overrides.
94
+
95
+ #### Sources
96
+
97
+ - [v9 features](https://mui.com/blog/introducing-mui-v9/)
98
+ - [Browser requirements](https://mui.com/material-ui/migration/upgrade-to-v9/)
99
+ - [Project status](https://mui.com/blog/2026-and-beyond/)
100
+
101
+ ### Mantine
102
+
103
+ [Mantine](https://mantine.dev). A React library with extensive hooks and official form, date, and chart packages.
104
+
105
+ | Field | Value |
106
+ | --- | --- |
107
+ | Version | @mantine/core 9.6.0 |
108
+ | Delivery | Styled React components |
109
+ | Gzipped size | ~210 KiB |
110
+ | Measured version | @mantine/core 9.4.2 |
111
+ | Measurement scope | Core components, hooks, and CSS. Excludes React and extension packages. |
112
+ | Browser support | Tested on Chromium 108 (2022), Firefox 101 (2022), and Safari 15.4 (2022), or later. |
113
+
114
+ #### Strengths
115
+
116
+ - Official packages cover forms, dates, charts, notifications, and rich text.
117
+ - CSS Modules and CSS variables avoid runtime CSS-in-JS.
118
+ - The Styles API exposes component selectors and CSS variables.
119
+
120
+ #### Trade-offs
121
+
122
+ - v9 requires React 19.2 or later; older React apps need an earlier Mantine major.
123
+ - Extensions add dependencies such as Recharts and Tiptap.
124
+
125
+ #### Sources
126
+
127
+ - [Packages and setup](https://mantine.dev/getting-started/)
128
+ - [v9 requirements](https://mantine.dev/changelog/9-0-0/)
129
+ - [Browser policy](https://mantine.dev/browser-support/)
130
+
131
+ ### Astryx
132
+
133
+ [Astryx](https://astryx.atmeta.com). Meta's React design system on StyleX, with precompiled CSS and first-party AI-agent tooling.
134
+
135
+ | Field | Value |
136
+ | --- | --- |
137
+ | Version | @astryxdesign/core 0.5.3 |
138
+ | Delivery | Styled React components |
139
+ | Gzipped size | ~260 KiB |
140
+ | Measured version | @astryxdesign/core 0.1.8 |
141
+ | Measurement scope | Core components, StyleX runtime, and precompiled CSS. Excludes React. |
142
+ | Browser support | Two documented tiers: functional support at Baseline 2024 and full fidelity at Baseline 2026. Older functional-tier browsers need a positioning fallback for anchored overlays. |
143
+
144
+ #### Strengths
145
+
146
+ - Components, templates, and brand theming built on React and StyleX.
147
+ - Precompiled CSS needs no StyleX build step; source compilation is optional for tree-shaking.
148
+ - Agent tooling includes an MCP server, `llms.txt`, and a CLI for context files and source ejection.
149
+
150
+ #### Trade-offs
151
+
152
+ - Requires React 19 and a StyleX runtime peer dependency.
153
+ - Overlay positioning depends on CSS anchor positioning or an application-provided fallback.
154
+ - The public package is in 0.x; check migrations when updating.
155
+
156
+ #### Sources
157
+
158
+ - [Components and tooling](https://astryx.atmeta.com/blog/introducing-astryx)
159
+ - [Browser tiers](https://astryx.atmeta.com/docs/browser-support)
160
+
161
+ ### Ant Design
162
+
163
+ [Ant Design](https://ant.design). An enterprise React library for data-dense admin and dashboard UIs.
164
+
165
+ | Field | Value |
166
+ | --- | --- |
167
+ | Version | antd 6.6.2 |
168
+ | Delivery | Styled React components |
169
+ | Gzipped size | ~470 KiB |
170
+ | Measured version | antd 6.5.2 |
171
+ | Measurement scope | All antd exports and its CSS-in-JS runtime. Excludes React and separately imported charts and icons. |
172
+ | Browser support | Estimated compatibility: Chrome / Edge 111+, Firefox 121+, and Safari 16.2+ (2023), based on :has(), color-mix(), and ResizeObserver in current components. Ant Design officially targets modern browsers; some enhancements can require newer versions. |
173
+
174
+ #### Strengths
175
+
176
+ - Table, Form, Transfer, and Cascader cover data-heavy application flows.
177
+ - Theme tokens provide dark and compact modes.
178
+ - v6 exposes semantic element styles and class names across components.
179
+
180
+ #### Trade-offs
181
+
182
+ - v6 requires React 18 or later and retains a CSS-in-JS runtime.
183
+ - Overrides that depend on internal DOM structure can need migration work.
184
+ - React-only; Vue and Angular versions are separate community projects.
185
+
186
+ #### Sources
187
+
188
+ - [v6 requirements](https://ant.design/docs/react/migration-v6/)
189
+ - [Component changes](https://ant.design/components/changelog/)
190
+ - [Checkbox focus styles](https://unpkg.com/antd@6.6.2/es/checkbox/style/index.js)
191
+
192
+ ### Gravity UI
193
+
194
+ [Gravity UI](https://gravity-ui.com). A React design system with separate packages for controls, data tables, charts, and navigation.
195
+
196
+ | Field | Value |
197
+ | --- | --- |
198
+ | Version | @gravity-ui/uikit 7.49.0 |
199
+ | Delivery | Styled React components |
200
+ | Gzipped size | ~220 KiB |
201
+ | Measured version | @gravity-ui/uikit 7.47.1 |
202
+ | Measurement scope | UIKit components and CSS. Excludes React, icons, dates, charts, and the headless table package. |
203
+ | Browser support | Estimated compatibility: Chrome / Edge 105+, Firefox 121+, and Safari 15.4+ (2023), based on :has() in theme CSS, Array.at() in tabs and tables, and ResizeObserver. Extension packages can add requirements. |
204
+
205
+ #### Strengths
206
+
207
+ - A broad core plus packages for dates, icons, charts, navigation, and a headless data table.
208
+ - Built-in light, dark, and high-contrast themes, with CSS variables and a hosted theme editor.
209
+ - Supports React 16.14 through 19 in one release.
210
+
211
+ #### Trade-offs
212
+
213
+ - React-only.
214
+ - Dates, charts, and the data table add separate dependencies.
215
+
216
+ #### Sources
217
+
218
+ - [UIKit requirements and packages](https://gravity-ui.com/libraries/uikit)
219
+ - [Shipped theme CSS](https://unpkg.com/@gravity-ui/uikit@7.49.0/styles/styles.css)
220
+
221
+ ### shadcn + Base UI + Tailwind
222
+
223
+ [shadcn](https://ui.shadcn.com) + [Base UI](https://base-ui.com) + [Tailwind](https://tailwindcss.com). Tailwind-styled source copied into your repo by CLI, using Base UI primitives by default.
224
+
225
+ | Field | Value |
226
+ | --- | --- |
227
+ | Version | Base UI registry |
228
+ | Delivery | Copy-paste React source on Base UI |
229
+ | Gzipped size | ~350 KiB |
230
+ | Measured version | shadcn/ui source @ 705ce59 |
231
+ | Measurement scope | 61 Base UI registry components and generated Tailwind CSS. Excludes React and Lucide. |
232
+ | Browser support | Depends on the selected primitives. Tailwind CSS 4 requires Safari 16.4 (2023), Chrome 111 (2023), and Firefox 128 (2024), or later. |
233
+
234
+ #### Strengths
235
+
236
+ - Copied source can be edited directly in your repository.
237
+ - Base UI is the default; Radix and React Aria are also supported.
238
+ - The CLI installs components, styles, and their dependencies.
239
+
240
+ #### Trade-offs
241
+
242
+ - Tailwind is required; generated components use utility classes throughout.
243
+ - Upstream fixes require manual diffs, especially after local edits.
244
+ - You own consistency across copied files, and registry quality varies.
245
+
246
+ #### Sources
247
+
248
+ - [Default Base UI registry](https://ui.shadcn.com/docs/changelog/2026-07-base-ui-default)
249
+ - [React Aria option](https://ui.shadcn.com/docs/changelog/2026-07-react-aria)
250
+ - [Tailwind browser requirements](https://tailwindcss.com/docs/compatibility)
251
+
252
+ ### Untitled UI + React Aria + Tailwind
253
+
254
+ [Untitled UI](https://www.untitledui.com/react) + [React Aria](https://react-spectrum.adobe.com/react-aria/) + [Tailwind](https://tailwindcss.com). React and Tailwind component source built on React Aria, with a companion Figma kit.
255
+
256
+ | Field | Value |
257
+ | --- | --- |
258
+ | Version | React app source |
259
+ | Delivery | Copy-paste React source |
260
+ | Gzipped size | ~410 KiB |
261
+ | Measured version | Untitled UI source @ eaee6a5 |
262
+ | Measurement scope | 102 base and application source files, React Aria, and generated Tailwind CSS. Excludes React, Next.js, and icons. |
263
+ | Browser support | Tailwind CSS 4 requires Safari 16.4 (2023), Chrome 111 (2023), and Firefox 128 (2024), or later. React Aria can add feature-specific requirements. |
264
+
265
+ #### Strengths
266
+
267
+ - Component source can be edited directly in your repository.
268
+ - React Aria provides the underlying interaction primitives.
269
+ - Includes application and marketing components with a companion Figma kit.
270
+
271
+ #### Trade-offs
272
+
273
+ - Uses React 19.2, Tailwind CSS 4, and React Aria runtime dependencies.
274
+ - Additional components, page examples, and design assets have paid tiers.
275
+ - You own consistency and upgrades across copied files.
276
+
277
+ #### Sources
278
+
279
+ - [Stack and licensing](https://www.untitledui.com/react/docs/introduction)
280
+ - [Tailwind browser requirements](https://tailwindcss.com/docs/compatibility)
281
+
282
+ ### Blueprint
283
+
284
+ [Blueprint](https://blueprintjs.com). Palantir's React toolkit for complex, data-dense desktop interfaces.
285
+
286
+ | Field | Value |
287
+ | --- | --- |
288
+ | Version | @blueprintjs/core 6.18.0 |
289
+ | Delivery | Styled React components |
290
+ | Gzipped size | ~350 KiB |
291
+ | Measured version | @blueprintjs/core 6.17.2 |
292
+ | Measurement scope | Core components and compiled CSS. Excludes React and the Table, Select, and Datetime packages. |
293
+ | Browser support | Estimated compatibility: Chrome / Edge 111+, Firefox 113+, and Safari 16.2+ (2023), based on color-mix() in core CSS. Relative-color enhancements have fallbacks. The repository maintains a rolling Browserslist target. |
294
+
295
+ #### Strengths
296
+
297
+ - Built for dense desktop tools: a virtualized Table, Omnibar, and dual-calendar date picker.
298
+ - Core CSS ships precompiled and can be customized with Sass.
299
+ - FocusStyleManager switches focus indicators by input method.
300
+
301
+ #### Trade-offs
302
+
303
+ - Designed for desktop applications; test touch-heavy flows separately.
304
+ - Table, Select, and Datetime are separate packages.
305
+ - React-only.
306
+
307
+ #### Sources
308
+
309
+ - [Toolkit and packages](https://github.com/palantir/blueprint)
310
+ - [Browser targets](https://github.com/palantir/blueprint/blob/develop/.browserslistrc)
311
+ - [Shipped CSS and fallbacks](https://unpkg.com/@blueprintjs/core@6.18.0/lib/css/blueprint.css)
312
+
313
+ ### Carbon
314
+
315
+ [Carbon](https://carbondesignsystem.com). IBM's enterprise design system for React and first-party web components.
316
+
317
+ | Field | Value |
318
+ | --- | --- |
319
+ | Version | @carbon/react 1.115.0 |
320
+ | Delivery | Styled React (+ web components) |
321
+ | Gzipped size | ~300 KiB |
322
+ | Measured version | @carbon/react 1.112.0 |
323
+ | Measurement scope | React components and compiled Carbon CSS. Excludes React, separately imported icons, charts, and web components. |
324
+ | Browser support | Estimated compatibility: Chrome / Edge 105+, Firefox 121+, and Safari 16+ (2023), based on :has() and container queries in the shipped CSS. Official support covers the latest stable browser releases. |
325
+
326
+ #### Strengths
327
+
328
+ - Publishes component accessibility results, including manual screen-reader checks mapped to WCAG.
329
+ - First-party React and web-component implementations.
330
+ - Theme-scoped role tokens support four built-in themes.
331
+
332
+ #### Trade-offs
333
+
334
+ - The documented React setup requires a Sass build step.
335
+ - Typography and component customization can require Sass or CSS overrides.
336
+ - Angular, Vue, and Svelte implementations are community-maintained.
337
+
338
+ #### Sources
339
+
340
+ - [React setup](https://carbondesignsystem.com/developing/frameworks/react/)
341
+ - [Frameworks and browser policy](https://carbondesignsystem.com/help/faq/)
342
+ - [Themes](https://carbondesignsystem.com/elements/themes/overview/)
343
+ - [Shipped CSS](https://unpkg.com/@carbon/styles@1.114.0/css/styles.css)
344
+
345
+ ### Atlassian (Atlaskit)
346
+
347
+ [Atlassian (Atlaskit)](https://atlassian.design). Atlassian’s React design system, distributed as independently versioned packages.
348
+
349
+ | Field | Value |
350
+ | --- | --- |
351
+ | Version | @atlaskit/tokens 16.11.2 |
352
+ | Delivery | Styled React components |
353
+ | Gzipped size | ~600 KiB |
354
+ | Measured version | 57-package snapshot, July 2026 |
355
+ | Measurement scope | 57 Design System packages. Excludes React, tables, icons, editors, and product packages. |
356
+ | Browser support | Estimated compatibility for compiled controls: Chrome / Edge 86+, Firefox 85+, and Safari 15.4+ (2022), based on CSS variables and :focus-visible. Other packages can require newer features. Official support follows the target Atlassian product. |
357
+
358
+ #### Strengths
359
+
360
+ - Design tokens and components used in Atlassian products.
361
+ - Compiled styles ship as CSS alongside the packages.
362
+ - Separate utilities include Pragmatic drag and drop and Focus ring.
363
+
364
+ #### Trade-offs
365
+
366
+ - Independently versioned packages require dependency coordination.
367
+ - The recommended build setup adds Babel and Compiled configuration.
368
+ - ADS terms cover Atlassian integrations; individual open-source packages may grant broader rights.
369
+
370
+ #### Sources
371
+
372
+ - [Build setup](https://atlassian.design/get-started/develop/atlassians/)
373
+ - [Design system license](https://atlassian.design/license/)
374
+ - [Button focus styles](https://unpkg.com/@atlaskit/button@25.3.2/dist/esm/new-button/variants/shared/button-base.compiled.css)
375
+
376
+ ### Web Awesome
377
+
378
+ [Web Awesome](https://webawesome.com). Font Awesome's framework-agnostic web components and CSS framework, succeeding Shoelace.
379
+
380
+ | Field | Value |
381
+ | --- | --- |
382
+ | Version | @awesome.me/webawesome 3.12.0 |
383
+ | Delivery | Styled web components |
384
+ | Gzipped size | ~190 KiB |
385
+ | Measured version | @awesome.me/webawesome 3.10.0 |
386
+ | Measurement scope | Free components, Lit, and base CSS. Excludes Pro components and web fonts. |
387
+ | Browser support | Estimated compatibility: Chrome / Edge 125+, Firefox 128+, and Safari 18+ (2024). Current styles use custom states and relative OKLCH colors. Official support covers the latest two major browser versions. |
388
+
389
+ #### Strengths
390
+
391
+ - Works in any stack or plain HTML without a build step.
392
+ - Includes form controls, layout utilities, observers, and Toasts.
393
+ - CSS variables and shadow parts support theming.
394
+
395
+ #### Trade-offs
396
+
397
+ - Combobox, date and file inputs, Data Grid, charts, and video require Pro.
398
+ - Lit is a runtime dependency alongside React or Vue.
399
+ - Its own docs describe SSR support as experimental.
400
+
401
+ #### Sources
402
+
403
+ - [Components and Pro features](https://webawesome.com/docs/components)
404
+ - [Server rendering](https://webawesome.com/docs/ssr)
405
+ - [Browser policy](https://webawesome.com/docs/resources/browser-support)
406
+ - [Shipped theme CSS](https://unpkg.com/@awesome.me/webawesome@3.12.0/dist/styles/themes/default.css)
407
+
408
+ ### Shopify Polaris
409
+
410
+ [Shopify Polaris](https://shopify.dev/docs/api/app-home/web-components). Shopify's web-component system for apps that must match Shopify Admin.
411
+
412
+ | Field | Value |
413
+ | --- | --- |
414
+ | Version | Polaris CDN 1.x; 1.1 RC |
415
+ | Delivery | Styled web components (CDN) |
416
+ | Gzipped size | ~120 KiB |
417
+ | Measured version | polaris.js, July 31, 2026 |
418
+ | Measurement scope | CDN script with embedded component CSS. Excludes separately loaded fonts and icons. |
419
+ | Browser support | Estimated compatibility: Chrome / Edge 105+, Firefox 121+, and Safari 16.4+ (2023), based on :has(), container queries, and form-associated custom elements. The CDN includes a Popover polyfill. Shopify does not guarantee this minimum set. |
420
+
421
+ #### Strengths
422
+
423
+ - Web components match Shopify Admin across frameworks.
424
+ - Box exposes layout, spacing, border, and color properties.
425
+ - CDN versioning now separates compatible updates from major upgrades.
426
+
427
+ #### Trade-offs
428
+
429
+ - Styled for Shopify apps, with customization limited to the exposed properties.
430
+ - The 1.1 release candidate changes in place until it becomes stable.
431
+ - Use is subject to Shopify’s app-specific license terms.
432
+
433
+ #### Sources
434
+
435
+ - [CDN versioning](https://community.shopify.dev/t/the-polaris-cdn-is-adopting-semantic-versioning/37332)
436
+ - [1.1 release candidate](https://shopify.dev/changelog/polaris-cdn-1-1-release-candidate)
437
+ - [Box properties](https://shopify.dev/docs/api/app-home/latest/web-components/layout-and-structure/box)
438
+ - [CDN implementation](https://cdn.shopify.com/shopifycloud/polaris-1.js)
28
439
 
29
440
  ## Component coverage
30
441
 
31
- Rows group components by job, so Dialog, Modal, and Drawer share one mark.
32
- Anta covers the common controls but remains narrower than full suites. The
33
- shadcn row reflects its default Base UI registry.
442
+ | Component category | [Anta](https://anta.design) | [MUI (Material UI)](https://mui.com/material-ui/) | [Mantine](https://mantine.dev) | [Astryx](https://astryx.atmeta.com) | [Ant Design](https://ant.design) | [Gravity UI](https://gravity-ui.com) | [shadcn](https://ui.shadcn.com) + [Base UI](https://base-ui.com) + [Tailwind](https://tailwindcss.com) | [Untitled UI](https://www.untitledui.com/react) + [React Aria](https://react-spectrum.adobe.com/react-aria/) + [Tailwind](https://tailwindcss.com) | [Blueprint](https://blueprintjs.com) | [Carbon](https://carbondesignsystem.com) | [Atlassian (Atlaskit)](https://atlassian.design) | [Web Awesome](https://webawesome.com) | [Shopify Polaris](https://shopify.dev/docs/api/app-home/web-components) |
443
+ | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
444
+ | Button: Button, icon button, group | [Included](./components/button.md) | [Included](https://mui.com/material-ui/react-button/) | [Included](https://mantine.dev/core/button/) | [Included](https://astryx.atmeta.com/components/Button) | [Included](https://ant.design/components/button) | [Included](https://gravity-ui.com/components/uikit/button) | [Included](https://ui.shadcn.com/docs/components/button) | [Included](https://www.untitledui.com/react/components/buttons) | [Included](https://blueprintjs.com/docs/#core/components/button) | [Included](https://carbondesignsystem.com/components/button/usage/) | [Included](https://atlassian.design/components/button/examples) | [Included](https://webawesome.com/docs/components/button/) | [Included](https://shopify.dev/docs/api/app-home/web-components/actions/button) |
445
+ | Text input: Text, number, password, textarea | [Included](./components/input.md) | [Included](https://mui.com/material-ui/react-text-field/) | [Included](https://mantine.dev/core/text-input/) | [Included](https://astryx.atmeta.com/components/TextInput) | [Included](https://ant.design/components/input) | [Included](https://gravity-ui.com/components/uikit/text-input) | [Included](https://ui.shadcn.com/docs/components/input) | [Included](https://www.untitledui.com/react/components/inputs) | [Included](https://blueprintjs.com/docs/#core/components/input-group) | [Included](https://carbondesignsystem.com/components/text-input/usage/) | [Included](https://atlassian.design/components/textfield/examples) | [Included](https://webawesome.com/docs/components/input/) | [Included](https://shopify.dev/docs/api/app-home/web-components/forms/text-field) |
446
+ | Select: Single/multi dropdown select | [Included](./components/select.md) | [Included](https://mui.com/material-ui/react-select/) | [Included](https://mantine.dev/core/select/) | [Included](https://astryx.atmeta.com/components/Selector) | [Included](https://ant.design/components/select) | [Included](https://gravity-ui.com/components/uikit/select) | [Included](https://ui.shadcn.com/docs/components/select) | [Included](https://www.untitledui.com/react/components/select) | [Included](https://blueprintjs.com/docs/#select/select-component) | [Included](https://carbondesignsystem.com/components/dropdown/usage/) | [Included](https://atlassian.design/components/select/examples) | [Included](https://webawesome.com/docs/components/select/) | [Included](https://shopify.dev/docs/api/app-home/web-components/forms/select) |
447
+ | Combobox: Autocomplete, searchable select | [Included](./components/input-autocomplete.md) | [Included](https://mui.com/material-ui/react-autocomplete/) | [Included](https://mantine.dev/core/autocomplete/) | [Included](https://astryx.atmeta.com/components/Typeahead) | [Included](https://ant.design/components/auto-complete) | [Basic or community-only](https://gravity-ui.com/components/uikit/select) | [Included](https://ui.shadcn.com/docs/components/combobox) | [Included](https://www.untitledui.com/react/components/select) | [Included](https://blueprintjs.com/docs/#select/suggest) | [Included](https://carbondesignsystem.com/components/dropdown/usage/) | [Basic or community-only](https://atlassian.design/components/select/async-select/examples) | [Paid tier](https://webawesome.com/docs/components/combobox/) | Not shipped |
448
+ | Checkbox / Radio / Switch: Toggles and choice groups | [Included](./components/checkbox.md) | [Included](https://mui.com/material-ui/react-checkbox/) | [Included](https://mantine.dev/core/checkbox/) | [Included](https://astryx.atmeta.com/components/CheckboxInput) | [Included](https://ant.design/components/checkbox) | [Included](https://gravity-ui.com/components/uikit/checkbox) | [Included](https://ui.shadcn.com/docs/components/checkbox) | [Included](https://www.untitledui.com/react/components/checkboxes) | [Included](https://blueprintjs.com/docs/#core/components/checkbox) | [Included](https://carbondesignsystem.com/components/checkbox/usage/) | [Included](https://atlassian.design/components/checkbox/examples) | [Included](https://webawesome.com/docs/components/checkbox/) | [Included](https://shopify.dev/docs/api/app-home/web-components/forms/checkbox) |
449
+ | Slider: Range / value slider | [Included](./components/slider.md) | [Included](https://mui.com/material-ui/react-slider/) | [Included](https://mantine.dev/core/slider/) | [Included](https://astryx.atmeta.com/components/Slider) | [Included](https://ant.design/components/slider) | [Included](https://gravity-ui.com/components/uikit/slider) | [Included](https://ui.shadcn.com/docs/components/slider) | [Included](https://www.untitledui.com/react/components/sliders) | [Included](https://blueprintjs.com/docs/#core/components/sliders) | [Included](https://carbondesignsystem.com/components/slider/usage/) | [Included](https://atlassian.design/components/range/examples) | [Included](https://webawesome.com/docs/components/slider/) | Not shipped |
450
+ | Date & time: Calendar, date/time picker | [Included](./components/input-date.md) | [Included](https://mui.com/x/react-date-pickers/) | [Included](https://mantine.dev/dates/date-picker-input/) | [Included](https://astryx.atmeta.com/components/DateInput) | [Included](https://ant.design/components/date-picker) | [Basic or community-only](https://gravity-ui.com/components/date-components/date-picker) | [Included](https://ui.shadcn.com/docs/components/date-picker) | [Included](https://www.untitledui.com/react/components/date-pickers) | [Included](https://blueprintjs.com/docs/#datetime/date-picker) | [Included](https://carbondesignsystem.com/components/date-picker/usage/) | [Included](https://atlassian.design/components/datetime-picker/examples) | [Paid tier](https://webawesome.com/docs/components/date-picker/) | [Included](https://shopify.dev/docs/api/app-home/web-components/forms/date-picker) |
451
+ | Tabs: Tab strip + panels | [Included](./components/tabs.md) | [Included](https://mui.com/material-ui/react-tabs/) | [Included](https://mantine.dev/core/tabs/) | [Included](https://astryx.atmeta.com/components/TabList) | [Included](https://ant.design/components/tabs) | [Included](https://gravity-ui.com/components/uikit/tabs) | [Included](https://ui.shadcn.com/docs/components/tabs) | [Included](https://www.untitledui.com/react/components/tabs) | [Included](https://blueprintjs.com/docs/#core/components/tabs) | [Included](https://carbondesignsystem.com/components/tabs/usage/) | [Included](https://atlassian.design/components/tabs/examples) | [Included](https://webawesome.com/docs/components/tab-group/) | Included |
452
+ | Menu: Dropdown, context, menubar | [Included](./components/menu.md) | [Included](https://mui.com/material-ui/react-menu/) | [Included](https://mantine.dev/core/menu/) | [Included](https://astryx.atmeta.com/components/DropdownMenu) | [Included](https://ant.design/components/menu) | [Included](https://gravity-ui.com/components/uikit/dropdown-menu) | [Included](https://ui.shadcn.com/docs/components/dropdown-menu) | [Included](https://www.untitledui.com/react/components/dropdowns) | [Included](https://blueprintjs.com/docs/#core/components/menu) | [Included](https://carbondesignsystem.com/components/overflow-menu/usage/) | [Included](https://atlassian.design/components/menu/examples) | [Included](https://webawesome.com/docs/components/dropdown/) | [Included](https://shopify.dev/docs/api/app-home/web-components/actions/menu) |
453
+ | Tooltip / Popover: Hover + click surfaces | [Included](./components/tooltip.md) | [Included](https://mui.com/material-ui/react-tooltip/) | [Included](https://mantine.dev/core/tooltip/) | [Included](https://astryx.atmeta.com/components/Tooltip) | [Included](https://ant.design/components/tooltip) | [Included](https://gravity-ui.com/components/uikit/tooltip) | [Included](https://ui.shadcn.com/docs/components/tooltip) | [Included](https://www.untitledui.com/react/components/tooltips) | [Included](https://blueprintjs.com/docs/#core/components/tooltip) | [Included](https://carbondesignsystem.com/components/tooltip/usage/) | [Included](https://atlassian.design/components/tooltip/examples) | [Included](https://webawesome.com/docs/components/tooltip/) | [Included](https://shopify.dev/docs/api/app-home/web-components/typography-and-content/tooltip) |
454
+ | Dialog: Modal, drawer, sheet | [Included](./components/dialog.md) | [Included](https://mui.com/material-ui/react-dialog/) | [Included](https://mantine.dev/core/modal/) | [Included](https://astryx.atmeta.com/components/Dialog) | [Included](https://ant.design/components/modal) | [Included](https://gravity-ui.com/components/uikit/modal) | [Included](https://ui.shadcn.com/docs/components/dialog) | [Included](https://www.untitledui.com/react/components/modals) | [Included](https://blueprintjs.com/docs/#core/components/dialog) | [Basic or community-only](https://carbondesignsystem.com/components/modal/usage/) | [Included](https://atlassian.design/components/modal-dialog/examples) | [Included](https://webawesome.com/docs/components/dialog/) | [Basic or community-only](https://shopify.dev/docs/api/app-home/web-components/overlays/modal) |
455
+ | Notification: Toast, banner, inline alert | [Included](./components/toaster.md) | [Included](https://mui.com/material-ui/react-snackbar/) | [Included](https://mantine.dev/x/notifications/) | [Included](https://astryx.atmeta.com/components/Toast) | [Included](https://ant.design/components/message) | [Included](https://gravity-ui.com/components/uikit/toaster) | [Included](https://ui.shadcn.com/docs/components/sonner) | [Paid tier](https://www.untitledui.com/react/components/notifications) | [Included](https://blueprintjs.com/docs/#core/components/toast) | [Included](https://carbondesignsystem.com/components/notification/usage/) | [Included](https://atlassian.design/components/flag/examples) | [Included](https://webawesome.com/docs/components/toast/) | [Basic or community-only](https://shopify.dev/docs/api/app-home/web-components/feedback-and-status-indicators/banner) |
456
+ | Expander: Disclosure / Accordion | [Included](./components/expander.md) | [Included](https://mui.com/material-ui/react-accordion/) | [Included](https://mantine.dev/core/accordion/) | [Included](https://astryx.atmeta.com/components/Collapsible) | [Included](https://ant.design/components/collapse) | [Included](https://gravity-ui.com/components/uikit/disclosure) | [Included](https://ui.shadcn.com/docs/components/accordion) | [Paid tier](https://www.untitledui.com/react/marketing/faq-sections/faq-accordion-04-brand) | [Included](https://blueprintjs.com/docs/#core/components/collapse) | [Included](https://carbondesignsystem.com/components/accordion/usage/) | Not shipped | [Included](https://webawesome.com/docs/components/accordion/) | Not shipped |
457
+ | Table: Table / data grid | [Basic or community-only](./packages/table.md) | [Included](https://mui.com/material-ui/react-table/) | [Basic or community-only](https://mantine.dev/core/table/) | [Included](https://astryx.atmeta.com/components/Table) | [Included](https://ant.design/components/table) | [Included](https://gravity-ui.com/components/uikit/table) | [Included](https://ui.shadcn.com/docs/components/table) | [Included](https://www.untitledui.com/react/components/tables) | [Included](https://blueprintjs.com/docs/#table) | [Included](https://carbondesignsystem.com/components/data-table/usage/) | [Included](https://atlassian.design/components/dynamic-table/examples) | [Paid tier](https://webawesome.com/docs/components/data-grid/) | [Included](https://shopify.dev/docs/api/app-home/web-components/layout-and-structure/table) |
458
+ | Tag / Badge: Tag, badge, chip, lozenge | [Included](./components/tag.md) | [Included](https://mui.com/material-ui/react-chip/) | [Included](https://mantine.dev/core/badge/) | [Included](https://astryx.atmeta.com/components/Badge) | [Included](https://ant.design/components/tag) | [Included](https://gravity-ui.com/components/uikit/label) | [Included](https://ui.shadcn.com/docs/components/badge) | [Included](https://www.untitledui.com/react/components/tags) | [Included](https://blueprintjs.com/docs/#core/components/tag) | [Included](https://carbondesignsystem.com/components/tag/usage/) | [Included](https://atlassian.design/components/tag/examples) | [Included](https://webawesome.com/docs/components/tag/) | [Included](https://shopify.dev/docs/api/app-home/web-components/feedback-and-status-indicators/badge) |
459
+ | Progress: Bar, spinner, skeleton | [Included](./components/progress.md) | [Included](https://mui.com/material-ui/react-progress/) | [Included](https://mantine.dev/core/progress/) | [Included](https://astryx.atmeta.com/components/ProgressBar) | [Included](https://ant.design/components/progress) | [Included](https://gravity-ui.com/components/uikit/progress) | [Included](https://ui.shadcn.com/docs/components/progress) | [Included](https://www.untitledui.com/react/components/progress-indicators) | [Included](https://blueprintjs.com/docs/#core/components/progress-bar) | [Included](https://carbondesignsystem.com/components/progress-bar/usage/) | [Included](https://atlassian.design/components/progress-bar/examples) | [Included](https://webawesome.com/docs/components/progress-bar/) | [Basic or community-only](https://shopify.dev/docs/api/app-home/web-components/feedback-and-status-indicators/spinner) |
460
+ | Avatar: Avatar / avatar group | [Included](./components/avatar.md) | [Included](https://mui.com/material-ui/react-avatar/) | [Included](https://mantine.dev/core/avatar/) | [Included](https://astryx.atmeta.com/components/Avatar) | [Included](https://ant.design/components/avatar) | [Included](https://gravity-ui.com/components/uikit/avatar) | [Included](https://ui.shadcn.com/docs/components/avatar) | [Included](https://www.untitledui.com/react/components/avatars) | Not shipped | Not shipped | [Included](https://atlassian.design/components/avatar/examples) | [Included](https://webawesome.com/docs/components/avatar/) | [Included](https://shopify.dev/docs/api/app-home/web-components/media-and-visuals/avatar) |
461
+ | Card: Card / tile / surface | [Included](./components/card.md) | [Included](https://mui.com/material-ui/react-card/) | [Included](https://mantine.dev/core/card/) | [Included](https://astryx.atmeta.com/components/Card) | [Included](https://ant.design/components/card) | [Included](https://gravity-ui.com/components/uikit/card) | [Included](https://ui.shadcn.com/docs/components/card) | Not shipped | [Included](https://blueprintjs.com/docs/#core/components/card) | [Included](https://carbondesignsystem.com/components/tile/usage/) | Basic or community-only | [Included](https://webawesome.com/docs/components/card/) | [Included](https://shopify.dev/docs/api/app-home/web-components/layout-and-structure/section) |
462
+ | Steps: Stepper, wizard, progress tracker | [Included](./components/steps.md) | [Included](https://mui.com/material-ui/react-stepper/) | [Included](https://mantine.dev/core/stepper/) | Not shipped | [Included](https://ant.design/components/steps) | [Included](https://gravity-ui.com/components/uikit/stepper) | Basic or community-only | [Paid tier](https://www.untitledui.com/react/components/progress-steps) | Not shipped | [Included](https://carbondesignsystem.com/components/progress-indicator/usage/) | [Included](https://atlassian.design/components/progress-tracker/examples) | Not shipped | Not shipped |
463
+ | Breadcrumbs: Breadcrumb navigation | [Included](./components/breadcrumbs.md) | [Included](https://mui.com/material-ui/react-breadcrumbs/) | [Included](https://mantine.dev/core/breadcrumbs/) | [Included](https://astryx.atmeta.com/components/Breadcrumbs) | [Included](https://ant.design/components/breadcrumb) | [Included](https://gravity-ui.com/components/uikit/breadcrumbs) | [Included](https://ui.shadcn.com/docs/components/breadcrumb) | [Paid tier](https://www.untitledui.com/react/components/breadcrumbs) | [Included](https://blueprintjs.com/docs/#core/components/breadcrumbs) | [Included](https://carbondesignsystem.com/components/breadcrumb/usage/) | [Included](https://atlassian.design/components/breadcrumbs/examples) | [Included](https://webawesome.com/docs/components/breadcrumb/) | Not shipped |
464
+ | Icons: Bundled icon set | [Included](./components/icon.md) | [Included](https://mui.com/material-ui/material-icons/) | [Basic or community-only](https://mantine.dev/guides/icons/) | [Included](https://astryx.atmeta.com/components/Icon) | [Included](https://ant.design/components/icon) | [Included](https://gravity-ui.com/components/uikit/icon) | Basic or community-only | [Included](https://www.untitledui.com/react/docs/icons) | [Included](https://blueprintjs.com/docs/#core/components/icon) | [Included](https://carbondesignsystem.com/elements/icons/usage/) | [Included](https://atlassian.design/components/icon/examples) | [Included](https://webawesome.com/docs/components/icon/) | [Included](https://shopify.dev/docs/api/app-home/web-components/media-and-visuals/icon) |
465
+ | Typography: Text / title components | [Included](./components/text.md) | [Included](https://mui.com/material-ui/react-typography/) | [Included](https://mantine.dev/core/typography/) | [Included](https://astryx.atmeta.com/components/Text) | [Included](https://ant.design/components/typography) | [Included](https://gravity-ui.com/components/uikit/text) | Not shipped | [Included](https://www.untitledui.com/react/docs/typography) | [Basic or community-only](https://blueprintjs.com/docs/#core/typography) | [Basic or community-only](https://carbondesignsystem.com/elements/typography/overview/) | [Basic or community-only](https://atlassian.design/components/heading/examples) | [Basic or community-only](https://webawesome.com/docs/tokens/typography/) | [Included](https://shopify.dev/docs/api/app-home/web-components/typography-and-content/text) |
466
+ | Charts: First-party data viz | Not shipped | [Included](https://mui.com/x/react-charts/) | [Included](https://mantine.dev/charts/getting-started/) | Basic or community-only | [Included](https://charts.ant.design/en) | Basic or community-only | [Included](https://ui.shadcn.com/charts) | [Included](https://www.untitledui.com/react/components/line-bar-charts) | Not shipped | [Included](https://charts.carbondesignsystem.com/) | Not shipped | [Paid tier](https://webawesome.com/docs/components/chart/) | Not shipped |
467
+ | Utility containers: Boxes with observers | [Included (Box, Capture)](./components/box.md) | [Included (ClickAwayListener)](https://mui.com/material-ui/react-click-away-listener/) | [Included (useResizeObserver)](https://mantine.dev/hooks/use-resize-observer/) | [Included (useScrollOverflow)](https://astryx.atmeta.com/components/useScrollOverflow) | Not shipped | [Included (useResizeObserver)](https://github.com/gravity-ui/uikit/tree/main/src/hooks/useResizeObserver) | [Included (Scroll Area)](https://ui.shadcn.com/docs/components/scroll-area) | [Included (React Aria useMove)](https://react-aria.adobe.com/useMove) | [Included (ResizeSensor)](https://blueprintjs.com/docs/#core/components/resize-sensor) | Not shipped | [Included (Pragmatic drag and drop)](https://atlassian.design/components/pragmatic-drag-and-drop/core-package/) | [Included (Resize Observer)](https://webawesome.com/docs/components/resize-observer/) | [Included (Box (responsive styling and accessibility))](https://shopify.dev/docs/api/app-home/web-components/layout-and-structure/box) |
468
+ | Focus utility: Focus detection and traps | Basic or community-only (Tabs, RadioGroup, Menu, and Calendar manage keyboard focus; Dialog traps and restores focus; Box detects focus within) | [Included (Unstable_TrapFocus (experimental))](https://github.com/mui/material-ui/tree/master/packages/mui-material/src/Unstable_TrapFocus) | [Included (FocusTrap, useFocusTrap)](https://mantine.dev/core/focus-trap/) | [Included (useFocusTrap, useListFocus)](https://astryx.atmeta.com/components/useFocusTrap) | Not shipped | Not shipped | Not shipped | [Included (React Aria FocusScope, useFocusManager)](https://react-aria.adobe.com/FocusScope) | [Included (FocusStyleManager (focus indicators))](https://github.com/palantir/blueprint/blob/develop/packages/core/src/accessibility/focusStyleManager.ts) | Not shipped | Not shipped | Not shipped | Not shipped |
@@ -158,6 +158,8 @@ over a squarer jaw reads mechanical, and the reverse reads natural. And under
158
158
  `any` both radii average near or above `1`, so heads read round to oval unless
159
159
  you narrow them yourself.
160
160
 
161
+ ## Generator config
162
+
161
163
  `generator` takes an `AvatarGenConfig`. Every field is optional — anything you
162
164
  leave out keeps its default from the table above.
163
165
 
@@ -266,27 +268,19 @@ outside a component: `resolveAvatar(config, seed)` returns the resolved colors
266
268
  and geometry, `avatarToSvg(resolved)` renders it, and `getInitials(name)` derives
267
269
  the fallback letters.
268
270
 
269
- ### Props
271
+ ## Component props
270
272
 
271
273
  | Prop | Type | Default | Description |
272
274
  |------|------|---------|-------------|
273
- | `badge?` | 'neutral' \| 'brand' \| 'info' \| 'success' \| 'warning' \| 'critical' \| (string & {}) | — | Corner badge, colored by tone. Pass a named tone or any literal CSS color;
274
- the application decides what each tone means (`success` for online,
275
- `critical` for busy, `neutral` for offline). Omit for no badge. |
276
- | `generator?` | AvatarGenConfig | — | Brand generation constraints — each dimension is OFF / ANY / RANGE / LIST.
277
- Colors cap OKLCH ranges or pass an explicit palette. Omit for the default
278
- varied figure. Define one config for the app and reuse it across avatars. |
279
- | `name?` | string | — | Person or entity name. Supplies the initials fallback (up to 3 letters from
280
- the first 3 words) and the accessible name, and seeds generation when `seed`
281
- is absent. |
282
- | `round?` | boolean \| number \| string | — | Fully-round (circular) frame. Pass a `number` (px) or a CSS length string
283
- for a custom radius instead. |
284
- | `seed?` | string | — | Alphanumeric seed that deterministically drives the generated userpic. The
285
- same seed always renders the same avatar. Falls back to `name` when omitted,
286
- so a stable user id or name is a good value. |
275
+ | `badge?` | 'neutral' \| 'brand' \| 'info' \| 'success' \| 'warning' \| 'critical' \| (string & {}) | — | Corner badge, colored by tone. Pass a named tone or any literal CSS color; the application decides what each tone means (`success` for online, `critical` for busy, `neutral` for offline). Omit for no badge. |
276
+ | `generator?` | AvatarGenConfig | — | Brand generation constraints — each dimension is OFF / ANY / RANGE / LIST. Colors cap OKLCH ranges or pass an explicit palette. Omit for the default varied figure. Define one config for the app and reuse it across avatars. |
277
+ | `name?` | string | — | Person or entity name. Supplies the initials fallback (up to 3 letters from the first 3 words) and the accessible name, and seeds generation when `seed` is absent. |
278
+ | `round?` | boolean \| number \| string | — | Fully-round (circular) frame. Pass a `number` (px) or a CSS length string for a custom radius instead. |
279
+ | `seed?` | string | — | Alphanumeric seed that deterministically drives the generated userpic. The same seed always renders the same avatar. Falls back to `name` when omitted, so a stable user id or name is a good value. |
287
280
  | `size?` | 'small' \| 'medium' \| 'large' \| number | medium | Size of the square container. A number is a pixel size. |
288
- | `src?` | string | — | Image URL. When set, the image is shown instead of a generated userpic,
289
- cropped to fill the container. |
281
+ | `src?` | string | — | Image URL. When set, the image is shown instead of a generated userpic, cropped to fill the container. |
282
+
283
+ ## Vanilla web component
290
284
 
291
285
  Use the web component directly when you are not using React or Preact. The
292
286
  generation config rides the `config` attribute as a JSON string, so the element
@@ -301,6 +295,8 @@ generates from plain markup with no JavaScript of your own.
301
295
  ></a-avatar>
302
296
  ```
303
297
 
298
+ ## Styling
299
+
304
300
  Reach for the props first: **`size`** sets the dimensions and **`generator`** the
305
301
  generated look. Everything else is `--avatar-*` custom properties on the host and
306
302
  `::part()` on the shadow content.