CLAUDE.md@bulma-ui/src/helpers · git:20260704.209df49 · 2026-07-04 · sha256 73d088e9a43648ef

CLAUDE.md@bulma-ui/src/helpers git:20260704.209df49A

Immutable. This exact content never changes and is served at /api/v1/blob/73d088e9a43648ef.

# helpers/ — the shared prop system (blast radius: every component)

Three things live here:

- **`useBulmaClasses`** — the hook every component routes its Bulma helper props through
  (color, spacing `m`/`p`, typography, flexbox, visibility). It aggregates the per-concern
  hooks: `useColorClasses`, `useSpacingClasses`, `useTypographyClasses`, `useFlexboxClasses`,
  `useVisibilityClasses`, `useOtherClasses`. `classNames.ts` is the class-string builder.
- **`Config.tsx`** — `ConfigProvider` context for the global class prefix (pairs with the
  `bestax-prefixed` CSS flavor; all class emission must respect it — tests assert prefixed
  output) and the default icon library (`useIconLibrary`).
- **`Theme`** — CSS-variable theming (`--bulma-*` overrides) and `colorMode`
  (light/dark/system via `data-theme`).

**Changing a helper prop ripples everywhere.** A new or renamed helper prop must update: the
concern hook + `useBulmaClasses` types, tests, the helpers docs (`docs/docs/api/helpers/`,
`docs/docs/guides/helpers/`), and the skill reference
`skills/bestax-custom-component/references/api.md` — then `pnpm gen:catalog`.

Valid-value constants exported here (colors, sizes, alignments) are public API used by
consumers and the skills — extend, don't reorder or remove.