create-bestax 4.2.11 → 4.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -2
- package/dist/cli.d.ts +2 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -2
- package/dist/constants.d.ts +7 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +19 -4
- package/dist/file-system.d.ts +7 -0
- package/dist/file-system.d.ts.map +1 -1
- package/dist/file-system.js +15 -0
- package/dist/project-creator.d.ts +21 -1
- package/dist/project-creator.d.ts.map +1 -1
- package/dist/project-creator.js +84 -51
- package/dist/prompts.d.ts +7 -2
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +8 -3
- package/dist/validators.d.ts +7 -0
- package/dist/validators.d.ts.map +1 -1
- package/dist/validators.js +13 -1
- package/package.json +6 -3
- package/templates/skills/bestax-custom-component/SKILL.md +21 -4
- package/templates/skills/bestax-custom-component/examples/stat-card.tsx +1 -2
- package/templates/skills/bestax-custom-component/references/api.md +103 -11
- package/templates/skills/bestax-custom-component/references/component-catalog.md +12 -5
- package/templates/skills/bestax-custom-component/references/library-contributor.md +23 -0
- package/templates/skills/bestax-form/SKILL.md +28 -17
- package/templates/skills/bestax-form/references/api.md +83 -23
- package/templates/skills/bestax-form/references/patterns.md +19 -0
- package/templates/skills/bestax-layout-scaffold/SKILL.md +17 -4
- package/templates/skills/bestax-layout-scaffold/references/layout-components.md +22 -15
- package/templates/skills/bestax-migrate/SKILL.md +32 -14
- package/templates/skills/bestax-migrate/references/bloomer/prop-map.md +9 -9
- package/templates/skills/bestax-migrate/references/bloomer/unmappables.md +19 -2
- package/templates/skills/bestax-migrate/references/bulma-classes/component-map.md +337 -0
- package/templates/skills/bestax-migrate/references/bulma-classes/prop-map.md +230 -0
- package/templates/skills/bestax-migrate/references/bulma-classes/unmappables.md +348 -0
- package/templates/skills/bestax-migrate/references/css-migration.md +8 -1
- package/templates/skills/bestax-migrate/references/rbx/component-map.md +15 -15
- package/templates/skills/bestax-migrate/references/rbx/prop-map.md +17 -19
- package/templates/skills/bestax-migrate/references/rbx/unmappables.md +17 -0
- package/templates/skills/bestax-migrate/references/react-bulma-components/component-map.md +34 -34
- package/templates/skills/bestax-migrate/references/react-bulma-components/unmappables.md +34 -7
- package/templates/skills/bestax-optimize/SKILL.md +3 -2
- package/templates/skills/bestax-optimize/references/modular-build.md +25 -5
- package/templates/skills/bestax-theming/SKILL.md +4 -3
- package/templates/skills/bestax-theming/examples/dark-mode.tsx +4 -3
- package/templates/skills/bestax-theming/references/css-variables.md +49 -8
- package/templates/skills/bestax-theming/references/themeable-components.md +12 -10
|
@@ -59,12 +59,22 @@ const [choice, setChoice] = useState('a');
|
|
|
59
59
|
</Dropdown>;
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
## `Pagination` extras (`
|
|
63
|
-
|
|
64
|
-
bestax `Pagination` renders from `total`/`current`/`onPageChange`
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
## `Pagination` extras (`showFirstLast`, `showPrevNext`, `autoHide`)
|
|
63
|
+
|
|
64
|
+
bestax `Pagination` renders from `total`/`current`/`onPageChange` when it has no children:
|
|
65
|
+
Previous, Next and the page links, with an ellipsis for each run it skips. The codemod writes
|
|
66
|
+
`delta` as `siblingCount` (the pages on each side of the current one) and `next`/`previous` as
|
|
67
|
+
`nextLabel`/`previousLabel`. It always shows Previous and Next, and the first and last pages
|
|
68
|
+
(`boundaryCount` of each, 1 by default), so drop `showPrevNext` and `showFirstLast`, or compose
|
|
69
|
+
the parts (`Pagination.Previous`, `Pagination.List`, `Pagination.Link`) by hand for a
|
|
70
|
+
different layout. Render conditionally instead of `autoHide` (`{total > 1 && <Pagination …/>}`).
|
|
71
|
+
|
|
72
|
+
Two of RBC's defaults differ, and a Pagination that doesn't write them gets no TODO: RBC hides
|
|
73
|
+
itself at a `total` of 1 (`autoHide` is on by default), and shows no first and last pages unless
|
|
74
|
+
`showFirstLast` is set. bestax renders a one-page Pagination with both ends disabled, and shows
|
|
75
|
+
the first and last pages, so check pagination that relied on either. RBC's `delta={0}` renders
|
|
76
|
+
no page links at all, while `siblingCount={0}` still shows the current, first and last pages, so
|
|
77
|
+
that one value gets a `prop:delta` TODO rather than converting.
|
|
68
78
|
|
|
69
79
|
## `Modal` (`closeOnBlur`, `showClose`)
|
|
70
80
|
|
|
@@ -130,7 +140,7 @@ bestax `Button` colors are the semantic set + `text`/`ghost`. For shades use
|
|
|
130
140
|
|
|
131
141
|
bestax components don't take `domRef`, but many forward a plain `ref` — the form controls,
|
|
132
142
|
plus `Avatar`, `Button`, `Carousel`, `CarouselItem`, `Dialog`, `Dropdown`, `Link`,
|
|
133
|
-
`LinkButton`, `Menu.Item`, `Modal`, `Navbar`, `Navbar.Burger`, `Navbar.Dropdown`,
|
|
143
|
+
`LinkButton`, `Loader`, `Menu.Item`, `Modal`, `Navbar`, `Navbar.Burger`, `Navbar.Dropdown`,
|
|
134
144
|
`Navbar.Item`, `Navbar.Link`, `Sidebar` and `Toast`. On those, rename `domRef` to
|
|
135
145
|
`ref` and it works; do not restructure the markup. "The form controls" means the inputs
|
|
136
146
|
themselves: the `Field`, `Field.Label`, `Field.Body`, `Checkboxes` and `Radios` wrappers
|
|
@@ -201,6 +211,23 @@ these either. `Level.Item` is not narrower: it declares the anchor's whole attri
|
|
|
201
211
|
every `as` and forwards it only on the `<a>`, so all of these survive at `as="a"` and none of
|
|
202
212
|
them reaches a `<p>` or a `<div>`.
|
|
203
213
|
|
|
214
|
+
## `prop:type` — a `<button>` item that no longer submits its form
|
|
215
|
+
|
|
216
|
+
`Navbar.Item`, `Navbar.Link`, `Menu.Item` and `Dropdown.Item` write `type="button"` on the
|
|
217
|
+
`<button>` an `as` makes them render, whenever the element sets no `type` or one HTML doesn't
|
|
218
|
+
define. A plain `<button>` with neither submits the form around it, so an item you rendered as a
|
|
219
|
+
button with `renderAs="button"` stops submitting once migrated. The codemod can't tell whether one sits
|
|
220
|
+
in a form, so each gets a TODO:
|
|
221
|
+
|
|
222
|
+
```jsx
|
|
223
|
+
<Navbar.Item renderAs="button">Search</Navbar.Item>
|
|
224
|
+
<Navbar.Item as="button">Search</Navbar.Item>
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
Add `type="submit"` if it should still submit, or `type="button"` to say it shouldn't, then
|
|
228
|
+
delete the comment. An item whose `type` is written out as `button`, `submit` or `reset`, or
|
|
229
|
+
comes from a spread or an expression, gets no TODO.
|
|
230
|
+
|
|
204
231
|
## Helper props dropped from plain-element replacements
|
|
205
232
|
|
|
206
233
|
Where the codemod produced a plain element (`Form.Label` → `<label>`, `Breadcrumb.Item` →
|
|
@@ -64,14 +64,15 @@ helper props compile to — components still render, but the props silently do n
|
|
|
64
64
|
recommending it, grep the app's source for helper props on bestax components:
|
|
65
65
|
|
|
66
66
|
- spacing: `m`, `mt`, `mr`, `mb`, `ml`, `mx`, `my`, `p`, `pt`, `pr`, `pb`, `pl`, `px`, `py`
|
|
67
|
+
- gap: `gap`, `columnGap`, `rowGap`, `gapless`, on any component, `Grid` included: its gap props render the same helper classes
|
|
67
68
|
- color: `color`, `backgroundColor` (+ `colorShade`/`backgroundColorShade`), `textColor`, `bgColor`
|
|
68
69
|
- typography: `textSize`, `textAlign`, `textTransform`, `textWeight`, `fontFamily`
|
|
69
70
|
- display/visibility: `display`, `visibility` (+ `displayMobile`…`visibilityFullhd` viewport variants)
|
|
70
71
|
- flexbox: `flexDirection`, `flexWrap`, `justifyContent`, `alignContent`, `alignItems`, `alignSelf`, `flexGrow`, `flexShrink`
|
|
71
|
-
- misc: `float`, `overflow`, `overlay`, `interaction`, `cursor`, `radius`, `shadow`, `skeleton`, `clearfix`, `relative`, `fullHeight`
|
|
72
|
+
- misc: `float`, `overflow`, `overflowX`, `overflowY`, `overlay`, `interaction`, `cursor`, `radius`, `shadow`, `skeleton`, `clearfix`, `pos`, `relative`, `fullHeight`, `aspectRatio`
|
|
72
73
|
|
|
73
74
|
…and for raw Bulma helper classes in `className` strings (`is-*`, `has-*`, `m*-*`, `p*-*`,
|
|
74
|
-
`is-size-*`, `is-hidden*`, `is-flex
|
|
75
|
+
`is-size-*`, `is-hidden*`, `is-flex*`, `is-gap-*`). **Any hit → do not use `no-helpers`**; fall back to
|
|
75
76
|
`no-dark-mode` or Lever 2. The bestax extras helpers (`is-cursor-*`, sizing) are dropped too.
|
|
76
77
|
|
|
77
78
|
## Lever 2 — modular Sass build
|
|
@@ -70,14 +70,15 @@ Every extras partial that exists (from the library's `src/scss/**/_index.scss`
|
|
|
70
70
|
is **more complete** than the docs page's Option C example, which omits several):
|
|
71
71
|
|
|
72
72
|
**Components** (`@allxsmith/bestax-bulma/scss/components/<name>`):
|
|
73
|
-
`loading`, `collapse`, `tooltip`, `steps`, `sidebar`, `toast`, `dialog`, `carousel`,
|
|
74
|
-
`reveal`, `avatar`, `avatars`, `badge`
|
|
73
|
+
`loading`, `collapse`, `tooltip`, `popover`, `steps`, `sidebar`, `toast`, `dialog`, `carousel`,
|
|
74
|
+
`tabs`, `reveal`, `avatar`, `avatars`, `badge`
|
|
75
75
|
|
|
76
76
|
**Form** (`@allxsmith/bestax-bulma/scss/form/<name>`):
|
|
77
77
|
`checkbox`, `radio`, `switch`, `slider`, `numberinput`, `rate`, `autocomplete`, `taginput`,
|
|
78
|
-
`picker-popover`, `dateinput`, `timeinput`, `datetimeinput`
|
|
78
|
+
`picker-popover`, `dateinput`, `timeinput`, `datetimeinput`, `daterangeinput`
|
|
79
79
|
|
|
80
|
-
**Elements** (`@allxsmith/bestax-bulma/scss/elements/<name>`): `linkbutton`
|
|
80
|
+
**Elements** (`@allxsmith/bestax-bulma/scss/elements/<name>`): `linkbutton`, `loader`,
|
|
81
|
+
`progress`, `skeleton`
|
|
81
82
|
|
|
82
83
|
**Helpers** (`@allxsmith/bestax-bulma/scss/helpers/<name>`): `cursor`, `sizing`
|
|
83
84
|
|
|
@@ -88,6 +89,19 @@ Notes:
|
|
|
88
89
|
- Extras `Tabs` **extends** stock Bulma tabs (vertical variant) — an app using `Tabs` needs
|
|
89
90
|
both `bulma/sass/components/tabs` and `@allxsmith/bestax-bulma/scss/components/tabs`.
|
|
90
91
|
- `DateInput`/`TimeInput`/`DateTimeInput` also need `picker-popover`.
|
|
92
|
+
- `DateRangeInput` needs `daterangeinput` for its field and `dateinput` for its calendar, and
|
|
93
|
+
`picker-popover` too.
|
|
94
|
+
- `Popover.Close` renders a Bulma button, so an app using it needs `bulma/sass/elements/button`
|
|
95
|
+
next to `scss/components/popover`.
|
|
96
|
+
- `Loader` is stock Bulma styled by `bulma/sass/elements/loader`, and the `isLoading`
|
|
97
|
+
spinners on `Button`, `Control` and `Select` are Bulma's too. The `loader` extras partial
|
|
98
|
+
stops all of them under `prefers-reduced-motion: reduce`, so include it next to the Bulma
|
|
99
|
+
modules in any build that shows one. Its rules are `!important`, so the order of the two
|
|
100
|
+
`@use` lines does not matter.
|
|
101
|
+
- `Progress` and the skeletons are stock Bulma too (`bulma/sass/elements/progress`,
|
|
102
|
+
`bulma/sass/base/skeleton`). The `progress` and `skeleton` extras partials stop the
|
|
103
|
+
indeterminate bar's sweep and the skeleton pulse (`Skeleton`, the `skeleton` prop,
|
|
104
|
+
`hasSkeleton`) under `prefers-reduced-motion: reduce`, the same way and in either order.
|
|
91
105
|
- Stock-Bulma form controls still need their Bulma module (`bulma/sass/form/…`); the extras
|
|
92
106
|
form partials above style only the bestax-specific behavior.
|
|
93
107
|
- Bulma component modules pull their own internal sub-elements — e.g.
|
|
@@ -104,11 +118,17 @@ not `flexbox` — `flexbox` holds only the alignment props. Verified failure mod
|
|
|
104
118
|
|
|
105
119
|
```scss
|
|
106
120
|
@use 'bulma/sass/helpers/spacing'; // m*/p* props
|
|
121
|
+
@use 'bulma/sass/helpers/gap'; // gap/columnGap/rowGap/gapless props, Grid's gap props included
|
|
107
122
|
@use 'bulma/sass/helpers/color'; // color/backgroundColor props, has-text-*/has-background-*
|
|
108
123
|
@use 'bulma/sass/helpers/typography'; // textSize/textAlign/textTransform/textWeight/fontFamily
|
|
109
124
|
@use 'bulma/sass/helpers/visibility'; // display/visibility props incl. display="flex" (is-flex/is-block/is-hidden*)
|
|
110
125
|
@use 'bulma/sass/helpers/flexbox'; // flex* alignment props (justifyContent/alignItems/flexGrow…) — NOT display="flex"
|
|
111
|
-
@use 'bulma/sass/helpers/
|
|
126
|
+
@use 'bulma/sass/helpers/float'; // float/clearfix props
|
|
127
|
+
@use 'bulma/sass/helpers/overflow'; // overflow/overflowX/overflowY props
|
|
128
|
+
@use 'bulma/sass/helpers/position'; // pos/relative/overlay props
|
|
129
|
+
@use 'bulma/sass/helpers/border'; // radius sizes (small/normal/large/rounded)
|
|
130
|
+
@use 'bulma/sass/helpers/aspect-ratio'; // aspectRatio prop
|
|
131
|
+
@use 'bulma/sass/helpers/other'; // interaction, radius="radiusless", shadow="shadowless"
|
|
112
132
|
```
|
|
113
133
|
|
|
114
134
|
## Procedure
|
|
@@ -25,7 +25,8 @@ Choose an override path:
|
|
|
25
25
|
- **Build-time Sass.** `@use 'bulma/sass' with ($primary: #1e6b99)` when compiling Bulma's Sass.
|
|
26
26
|
|
|
27
27
|
For **dark mode**, pass `colorMode` to `Theme` (`'light' | 'dark' | 'system'`). It writes Bulma's
|
|
28
|
-
`data-theme` attribute on `<html
|
|
28
|
+
`data-theme` attribute on `<html>` (plus `data-<prefix>theme` inside a `ConfigProvider` with a
|
|
29
|
+
`classPrefix`, which the prefixed flavors read), flipping the light/dark scheme — global, even on a scoped
|
|
29
30
|
`Theme`; `'system'` follows the OS `prefers-color-scheme`. Drive it from state on the app-root
|
|
30
31
|
`Theme`: `<Theme isRoot colorMode={mode}>`.
|
|
31
32
|
|
|
@@ -109,13 +110,13 @@ Nest `Theme` and `ConfigProvider` together at the root (order doesn't matter).
|
|
|
109
110
|
## Examples
|
|
110
111
|
|
|
111
112
|
- `examples/theme-config.tsx` — a custom brand theme at the app root, plus a scoped override.
|
|
112
|
-
- `examples/dark-mode.tsx` — a light/dark toggle using Bulma's `data-theme
|
|
113
|
+
- `examples/dark-mode.tsx` — a light/dark toggle using Bulma's `data-theme` (plus `data-<prefix>theme` inside a `ConfigProvider` with a `classPrefix`).
|
|
113
114
|
|
|
114
115
|
## Checklist
|
|
115
116
|
|
|
116
117
|
- [ ] Recolor brand colors via the HSL trio (`*-h` / `*-s` / `*-l`), not by hard-coding hex on components.
|
|
117
118
|
- [ ] Apply a global theme once with `<Theme isRoot>` (or `:root`); use scoped `<Theme>` for one-off sections.
|
|
118
119
|
- [ ] Set non-color tokens (radius, fonts, sizes) through `bulmaVars` or `:root`; a custom `--bulma-family-*` needs its font actually loaded (`index.html` `<link>` or an `@fontsource` import).
|
|
119
|
-
- [ ] Implement dark mode with `data-theme` on `<html
|
|
120
|
+
- [ ] Implement dark mode with `data-theme` on `<html>` (plus `data-<prefix>theme` inside a `ConfigProvider` with a `classPrefix`, which the prefixed flavors read); do not expect a shipped dark-mode component.
|
|
120
121
|
- [ ] Pass `color`/`textColor`/`bgColor` (not custom CSS) to color individual components.
|
|
121
122
|
- [ ] Set the icon library once with `<ConfigProvider iconLibrary="…">` at the root, not `library` on every `<Icon>`.
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Dark mode for an app built on @allxsmith/bestax-bulma.
|
|
2
2
|
//
|
|
3
3
|
// The Theme component drives the light/dark scheme: pass `colorMode` and it
|
|
4
|
-
// writes Bulma's `data-theme` attribute on <html
|
|
5
|
-
//
|
|
6
|
-
//
|
|
4
|
+
// writes Bulma's `data-theme` attribute on <html>, plus `data-<prefix>theme`
|
|
5
|
+
// under a ConfigProvider `classPrefix`, which the prefixed flavors read. This
|
|
6
|
+
// is global (even on a scoped Theme); `'system'` removes the attributes so
|
|
7
|
+
// Bulma follows the OS `prefers-color-scheme`. Wrap the app once at the root.
|
|
7
8
|
import React, { useState } from 'react';
|
|
8
9
|
import {
|
|
9
10
|
Theme,
|
|
@@ -145,10 +145,11 @@ lone class or the `style` prop cannot outrank:
|
|
|
145
145
|
styles with a selector that matches or exceeds the compound:
|
|
146
146
|
`.button.link-button { --bulma-link-button-ghost-color: … }`.
|
|
147
147
|
- **Constituent elements** — Tooltip's variables (all but `--bulma-tooltip-dashed-color`)
|
|
148
|
-
are declared on `.tooltip-content`, and Sidebar's
|
|
149
|
-
`.sidebar-background`. Values set via `className` or
|
|
150
|
-
are only inherited by the constituent, so they lose to
|
|
151
|
-
declaring element in your CSS:
|
|
148
|
+
are declared on `.tooltip-content`, Popover's on its panel, `.popover-content`, and Sidebar's
|
|
149
|
+
`--bulma-sidebar-overlay-background` on `.sidebar-background`. Values set via `className` or
|
|
150
|
+
`style` land on the component root and are only inherited by the constituent, so they lose to
|
|
151
|
+
its own declaration — target the declaring element in your CSS:
|
|
152
|
+
`.tooltip-content { --bulma-tooltip-background: … }`.
|
|
152
153
|
|
|
153
154
|
### Avatar / Avatars / Badge
|
|
154
155
|
|
|
@@ -225,15 +226,33 @@ own-selector override rule applies.
|
|
|
225
226
|
`--bulma-collapse-margin-bottom`, `--bulma-collapse-radius`,
|
|
226
227
|
`--bulma-collapse-trigger-icon-margin`, `--bulma-collapse-trigger-icon-size`
|
|
227
228
|
|
|
229
|
+
`--bulma-collapse-group-gap` is the exception to the own-selector rule above. It spaces the
|
|
230
|
+
items of a `Collapses` group, which reads it with a 0.5rem fallback and declares no value itself,
|
|
231
|
+
so set it on the group or on any ancestor, `:root` included. (`Theme`'s `bulmaVars` does not
|
|
232
|
+
list it, so set it in your CSS or through a `style` prop.)
|
|
233
|
+
|
|
228
234
|
### DateInput
|
|
229
235
|
|
|
230
236
|
`--bulma-dateinput-cell-color`, `--bulma-dateinput-cell-disabled-color`,
|
|
231
237
|
`--bulma-dateinput-cell-hover-bg`, `--bulma-dateinput-cell-other-month-color`,
|
|
232
|
-
`--bulma-dateinput-cell-radius`, `--bulma-dateinput-cell-
|
|
238
|
+
`--bulma-dateinput-cell-radius`, `--bulma-dateinput-cell-range-bg`,
|
|
239
|
+
`--bulma-dateinput-cell-range-preview-bg`, `--bulma-dateinput-cell-selected-bg`,
|
|
233
240
|
`--bulma-dateinput-cell-selected-color`, `--bulma-dateinput-cell-size`,
|
|
234
241
|
`--bulma-dateinput-cell-today-color`, `--bulma-dateinput-day-name-color`,
|
|
235
|
-
`--bulma-dateinput-day-name-size`, `--bulma-dateinput-
|
|
236
|
-
`--bulma-dateinput-
|
|
242
|
+
`--bulma-dateinput-day-name-size`, `--bulma-dateinput-focus-ring-color`,
|
|
243
|
+
`--bulma-dateinput-header-padding`, `--bulma-dateinput-min-width`,
|
|
244
|
+
`--bulma-dateinput-nav-button-size`
|
|
245
|
+
|
|
246
|
+
The two `range` variables paint a range calendar (`DateRangeInput`): the band between a range's
|
|
247
|
+
ends, and the fainter band shown while the end is still being picked. Both are mixed from
|
|
248
|
+
`--bulma-dateinput-cell-selected-bg`, so `color` and an override of the selected fill re-tint
|
|
249
|
+
them too.
|
|
250
|
+
|
|
251
|
+
### DateRangeInput
|
|
252
|
+
|
|
253
|
+
The field around the two inputs. Its calendar is the `DateInput` one, with the variables above.
|
|
254
|
+
|
|
255
|
+
`--bulma-daterangeinput-gap`, `--bulma-daterangeinput-separator-color`
|
|
237
256
|
|
|
238
257
|
### DateTimeInput
|
|
239
258
|
|
|
@@ -281,7 +300,7 @@ Declared on the compound `.button.link-button` — see the compound-selector exc
|
|
|
281
300
|
`--bulma-numberinput-stepper-button-hover-bg`, `--bulma-numberinput-stepper-button-hover-color`,
|
|
282
301
|
`--bulma-numberinput-stepper-width`
|
|
283
302
|
|
|
284
|
-
### Picker popover (DateInput / TimeInput / DateTimeInput)
|
|
303
|
+
### Picker popover (DateInput / TimeInput / DateTimeInput / DateRangeInput)
|
|
285
304
|
|
|
286
305
|
`--bulma-picker-popover-animation-duration`, `--bulma-picker-popover-background`,
|
|
287
306
|
`--bulma-picker-popover-border-color`, `--bulma-picker-popover-offset`,
|
|
@@ -290,6 +309,18 @@ Declared on the compound `.button.link-button` — see the compound-selector exc
|
|
|
290
309
|
`--bulma-picker-trigger-color`, `--bulma-picker-trigger-hover-color`,
|
|
291
310
|
`--bulma-picker-trigger-width`
|
|
292
311
|
|
|
312
|
+
### Popover
|
|
313
|
+
|
|
314
|
+
All are declared on the panel, `.popover-content`, so a panel rendered with `appendToBody` keeps
|
|
315
|
+
them. See the constituent-element exception above.
|
|
316
|
+
|
|
317
|
+
`--bulma-popover-animation-duration`, `--bulma-popover-background`,
|
|
318
|
+
`--bulma-popover-body-padding`, `--bulma-popover-border-color`, `--bulma-popover-color`,
|
|
319
|
+
`--bulma-popover-footer-gap`, `--bulma-popover-footer-padding`, `--bulma-popover-header-color`,
|
|
320
|
+
`--bulma-popover-header-padding`, `--bulma-popover-header-weight`, `--bulma-popover-max-width`,
|
|
321
|
+
`--bulma-popover-min-width`, `--bulma-popover-offset`, `--bulma-popover-radius`,
|
|
322
|
+
`--bulma-popover-shadow`, `--bulma-popover-z-index`
|
|
323
|
+
|
|
293
324
|
### Radio
|
|
294
325
|
|
|
295
326
|
`--bulma-radio-active-color`, `--bulma-radio-background`, `--bulma-radio-border-color`,
|
|
@@ -385,6 +416,9 @@ Declared on the compound `.button.link-button` — see the compound-selector exc
|
|
|
385
416
|
`--bulma-timeinput-wheel-radius`, `--bulma-timeinput-wheel-selected-bg`,
|
|
386
417
|
`--bulma-timeinput-wheel-selected-color`, `--bulma-timeinput-wheel-width`
|
|
387
418
|
|
|
419
|
+
`--bulma-timeinput-wheel-item-height` is registered but has no effect: the component sets each
|
|
420
|
+
wheel item's height inline.
|
|
421
|
+
|
|
388
422
|
### Toast
|
|
389
423
|
|
|
390
424
|
`--bulma-toast-action-hover-opacity`, `--bulma-toast-action-radius`,
|
|
@@ -423,6 +457,13 @@ Under the hood this is Bulma 1.x's own mechanism — `[data-theme="dark"]` / `.t
|
|
|
423
457
|
(plus the `prefers-color-scheme` media query). Setting the attribute by hand still works
|
|
424
458
|
(`document.documentElement.setAttribute('data-theme', 'dark')`); `colorMode` just does it for you.
|
|
425
459
|
|
|
460
|
+
A prefixed flavor names the attribute after its prefix: `bestax-prefixed.css` and
|
|
461
|
+
`bestax-no-helpers-prefixed.css` read `data-bestax-theme` (and `.bestax-theme-dark`), never
|
|
462
|
+
`data-theme`. Under `<ConfigProvider classPrefix="bestax-">`, `colorMode` writes both attributes,
|
|
463
|
+
so it works with those flavors. Setting it by hand there means setting `data-bestax-theme`, and
|
|
464
|
+
custom dark-mode CSS keyed off `[data-theme='dark']` still matches, because `colorMode` writes
|
|
465
|
+
`data-theme` too.
|
|
466
|
+
|
|
426
467
|
Under dark mode Bulma flips the scheme/text/border/background lightness variables (e.g.
|
|
427
468
|
`--bulma-scheme-main-l` 100% → 9%, `--bulma-text-l` 29% → 71%). Your brand color overrides from
|
|
428
469
|
`Theme isRoot` or `:root` still apply on top, because they set the hue/saturation/lightness
|
|
@@ -61,10 +61,12 @@ Shades (`colorShade` / `backgroundColorShade`): `00, 05, 10, … 95, invert, lig
|
|
|
61
61
|
| `Autocomplete` | `primary \| link \| info \| success \| warning \| danger` | `small \| medium \| large` | the 6 only |
|
|
62
62
|
| `Checkbox` | `primary \| link \| info \| success \| warning \| danger` | `small \| normal \| medium \| large` | the 6 only |
|
|
63
63
|
| `DateInput` | `primary \| link \| info \| success \| warning \| danger` | `small \| medium \| large` | also `isRounded` |
|
|
64
|
+
| `DateRangeInput` | `primary \| link \| info \| success \| warning \| danger` | `small \| medium \| large` | also `isRounded`; `color` also fills the calendar range |
|
|
64
65
|
| `DateTimeInput` | `primary \| link \| info \| success \| warning \| danger` | `small \| medium \| large` | also `isRounded` |
|
|
65
66
|
| `File` | `primary \| link \| info \| success \| warning \| danger \| black \| dark \| light \| white` | `small \| medium \| large` | also `isBoxed`, `isFullwidth` |
|
|
66
67
|
| `Hero` | every `validColors` member + `inherit`/`current` (the `-bis`/`-ter` shades, the greys, `inherit` and `current` deprecated: no CSS, dev-warn, removed next major — see ⚠️) | `small \| medium \| large \| fullheight \| fullheight-with-navbar` | section background |
|
|
67
68
|
| `LinkButton` | `primary \| link \| info \| success \| warning \| danger \| white \| light \| dark \| black` | — | button-styled link; emits `link-button-<color>` — **no `isLight`/`isOutlined`/`isInverted`** |
|
|
69
|
+
| `Loader` | — (no color props: the ring is drawn in `--bulma-border`) | — (the ring is `1em`; size it with `textSize`) | for a colored spinner over a region, use `Loading` |
|
|
68
70
|
| `Loading` | `primary \| link \| info \| success \| warning \| danger` | `small \| medium \| large` | spinner color; default light grey |
|
|
69
71
|
| `Navbar` | `primary \| link \| info \| success \| warning \| danger \| black \| dark \| light \| white` | — | — |
|
|
70
72
|
| `Numberinput` | `primary \| link \| info \| success \| warning \| danger \| light \| dark` | `small \| medium \| large` | also `inputColor` (the 6) for the inner input |
|
|
@@ -79,7 +81,7 @@ Shades (`colorShade` / `backgroundColorShade`): `00, 05, 10, … 95, invert, lig
|
|
|
79
81
|
| `Switch` | `primary \| link \| info \| success \| warning \| danger` | `small \| normal \| medium \| large` | also `isRounded`, `isThin`, `isOutlined` |
|
|
80
82
|
| `Tabs` | `primary \| link \| info \| success \| warning \| danger \| black \| dark \| light \| white` | `small \| medium \| large` | **entire `color` prop deprecated** (no CSS ships; dev-warn; removal next major) |
|
|
81
83
|
| `Taginput` | `primary \| link \| info \| success \| warning \| danger` | `small \| medium \| large` | also `tagColor` (the 6 + `dark \| light`) for the tags |
|
|
82
|
-
| `TextArea` | `primary \| link \| info \| success \| warning \| danger \| black \| dark \| light \| white` | `small \| medium \| large` |
|
|
84
|
+
| `TextArea` | `primary \| link \| info \| success \| warning \| danger \| black \| dark \| light \| white` | `small \| medium \| large` | — |
|
|
83
85
|
| `TimeInput` | `primary \| link \| info \| success \| warning \| danger` | `small \| medium \| large` | — |
|
|
84
86
|
| `Tooltip` | `primary \| link \| info \| success \| warning \| danger \| dark \| light` | `small \| medium \| large` | — |
|
|
85
87
|
| `Tr` / `Td` / `Th` | `primary \| link \| info \| success \| warning \| danger \| black \| dark \| light \| white` | — | cell background; cells take `textAlign`/`textWeight`/`textSize` directly |
|
|
@@ -90,15 +92,15 @@ entries follow the scheme variables.
|
|
|
90
92
|
|
|
91
93
|
## Typography & misc helper props (on most components)
|
|
92
94
|
|
|
93
|
-
| Prop | Accepts | Class
|
|
94
|
-
| -------------------------------------------- | --------------------------------------------------------- |
|
|
95
|
-
| `textSize` | `1 \| 2 \| 3 \| 4 \| 5 \| 6 \| 7` | `is-size-<n>`
|
|
96
|
-
| `textWeight` | `light \| normal \| medium \| semibold \| bold` | `has-text-weight-<w>`
|
|
97
|
-
| `fontFamily` | `sans-serif \| monospace \| primary \| secondary \| code` | `is-family-<f>`
|
|
98
|
-
| `textAlign` | `centered \| justified \| left \| right` | `has-text-<a>`
|
|
99
|
-
| `radius` | `radiusless`
|
|
100
|
-
| `shadow` | `shadowless` | `is-shadowless`
|
|
101
|
-
| `m` / `p` (+ `mt/mr/mb/ml/mx/my`, `pt/…/py`) | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| auto` | `m-<n>` / `p-<n>` etc.
|
|
95
|
+
| Prop | Accepts | Class |
|
|
96
|
+
| -------------------------------------------- | --------------------------------------------------------- | --------------------------------- |
|
|
97
|
+
| `textSize` | `1 \| 2 \| 3 \| 4 \| 5 \| 6 \| 7` | `is-size-<n>` |
|
|
98
|
+
| `textWeight` | `light \| normal \| medium \| semibold \| bold` | `has-text-weight-<w>` |
|
|
99
|
+
| `fontFamily` | `sans-serif \| monospace \| primary \| secondary \| code` | `is-family-<f>` |
|
|
100
|
+
| `textAlign` | `centered \| justified \| left \| right` | `has-text-<a>` |
|
|
101
|
+
| `radius` | `radiusless \| small \| normal \| large \| rounded` | `is-radiusless`, `has-radius-<r>` |
|
|
102
|
+
| `shadow` | `shadowless` | `is-shadowless` |
|
|
103
|
+
| `m` / `p` (+ `mt/mr/mb/ml/mx/my`, `pt/…/py`) | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| auto` | `m-<n>` / `p-<n>` etc. |
|
|
102
104
|
|
|
103
105
|
These map to Bulma utility classes that read the same `--bulma-*` variables, so a custom theme
|
|
104
106
|
flows through them automatically.
|