Skip to content

NumberField theming

Every cosmetic value NumberField renders is a --rozie-number-field-* custom property with a built-in fallback, so the component works with zero configuration and stays fully re-skinnable. The structural rules compile per-leaf and are not consumer-overridable — only the values below flow through tokens.

css
.rozie-number-field {
  --rozie-number-field-gap: 0;
  --rozie-number-field-bg: #fff;
  --rozie-number-field-width: 4.5rem;
  --rozie-number-field-focus-ring-width: 2px;
}

Tokens

layout / typography

TokenDefault
--rozie-number-field-gap0
--rozie-number-field-fontinherit
--rozie-number-field-radius0.5rem

frame

TokenDefault
--rozie-number-field-bg#fff
--rozie-number-field-border-width1px
--rozie-number-field-border-colorrgba(0, 0, 0, 0.25)

the text input

TokenDefault
--rozie-number-field-width4.5rem
--rozie-number-field-padding0.375rem 0.5rem
--rozie-number-field-text-alignright
--rozie-number-field-font-size1rem
--rozie-number-field-colorinherit

focus ring (inset on the input)

TokenDefault
--rozie-number-field-focus-ring-width2px
--rozie-number-field-focus-ring-colorrgba(0, 102, 204, 0.35)

+/- stepper buttons

TokenDefault
--rozie-number-field-btn-size2rem
--rozie-number-field-btn-font-size1.1rem
--rozie-number-field-btn-colorinherit
--rozie-number-field-btn-bgrgba(0, 0, 0, 0.04)
--rozie-number-field-btn-hover-bgrgba(0, 0, 0, 0.08)

disabled

TokenDefault
--rozie-number-field-disabled-opacity0.55

Design-system bridges

Each package ships token presets that map NumberField's tokens onto a known design system's published CSS variables — import base.css first, then a bridge:

ts
import '@rozie-ui/number-field-react/themes/base.css';
import '@rozie-ui/number-field-react/themes/bootstrap.css';
import '@rozie-ui/number-field-react/themes/material.css';
import '@rozie-ui/number-field-react/themes/shadcn.css';

See also

Pre-1.0 — APIs may change between minor versions.