METHRAX
Developer Tools / @methrax/spin-wheel / Theming & Design Tokens

Theming & Design Tokens

The component exposes CSS custom properties so the consuming application owns the visual theme without forking the library.

Theme example

m-spin-wheel {
  --m-wheel-size: 450px;
  --m-wheel-border-size: 8px;
  --m-wheel-border-color: #111827;
  --m-wheel-shadow: 0 15px 40px rgba(0, 0, 0, 0.25);
  --m-wheel-pointer-color: #dc2626;
  --m-wheel-label-font-size: 18px;
  --m-wheel-label-font-weight: 800;
  --m-wheel-center-pin-size: 80px;
  --m-wheel-center-pin-background: #ffffff;
  --m-wheel-center-pin-color: #111827;
}

Wheel tokens

Token Default Description
--m-wheel-size 350px Overall wheel diameter.
--m-wheel-background transparent Wheel background.
--m-wheel-border-size 6px Wheel border width.
--m-wheel-border-color #222222 Wheel border color.
--m-wheel-border-radius 50% Wheel border radius.
--m-wheel-box-sizing border-box Wheel box-sizing.
--m-wheel-shadow 0 8px 24px rgba(0, 0, 0, 0.15) Wheel shadow.

Animation tokens

Token Default Description
--m-wheel-transition-duration 5000ms Spin transition duration.
--m-wheel-transition-timing-function cubic-bezier(0.1, 1, 0.1, 1) Spin easing curve.

spinDuration controls component behavior; keep theme-level transition settings aligned with the desired visual experience.

Pointer tokens

Token Default Description
--m-wheel-pointer-size 16px Pointer triangle size.
--m-wheel-pointer-color #ef4444 Pointer color.
--m-wheel-pointer-angle 0deg Pointer rotation.
--m-wheel-pointer-shadow drop-shadow(0 2px 4px rgba(0, 0, 0, 0.15)) Pointer shadow.

Label tokens

Token Default Description
--m-wheel-label-font-family system-ui, -apple-system, sans-serif Label font stack.
--m-wheel-label-font-size 1rem Label font size.
--m-wheel-label-font-weight 700 Label font weight.
--m-wheel-label-color inherit Default label color. Sector textColor can override it.
--m-wheel-label-letter-spacing 0.5px Label letter spacing.
--m-wheel-label-offset -0.36 Radial label offset as a wheel-size multiplier.
--m-wheel-label-rotation 90deg Label rotation.

Center-pin tokens

Token Default Description
--m-wheel-center-pin-size 65px Center-pin diameter.
--m-wheel-center-pin-background #ffffff Background color.
--m-wheel-center-pin-color #0f172a Text color.
--m-wheel-center-pin-border-width 4px Border width.
--m-wheel-center-pin-border-color #0f172a Border color.
--m-wheel-center-pin-border-radius 50% Border radius.
--m-wheel-center-pin-font-size 11px Label font size.
--m-wheel-center-pin-font-weight 900 Label font weight.
--m-wheel-center-pin-shadow none Center-pin shadow.
--m-wheel-center-pin-z-index 5 Stacking order.

Theme scope

Tokens can be applied globally to every wheel or scoped to a wrapper/class for multiple themes on the same page.

.promo-wheel m-spin-wheel {
  --m-wheel-pointer-color: #ea580c;
  --m-wheel-border-color: #0f172a;
}

.minimal-wheel m-spin-wheel {
  --m-wheel-border-size: 2px;
  --m-wheel-shadow: none;
}