Skip to main content

Theme System

Set your brand once on SpiceFlowProvider. Every SDK component inherits it automatically.

SpiceTheme Options

Surface tokens (shell, card, text, textMuted, border) have sensible defaults per mode — only set what you want to override.

Dark Mode

Default Surface Colors


Custom Surfaces

Override any surface token alongside the mode:

Per-Component Override

Pass styles to any component to override the provider theme for that instance only:

Available styles keys per component

inputVariant accepts "light" or "dark" to override the input field style independently of the global mode.

Fonts

The SDK uses two fonts:
  • Helvetica Neue — all body text, labels, headings, descriptions
  • IBM Plex Mono — amounts, addresses, hashes, button labels
Override the body font via theme.fontFamily. The monospace font is always used for technical displays.

Examples

Orange Dark

Blue Light

Green Dark with Custom Surfaces

Sharp Trading UI


Building Custom Components

Use useSpiceBrand to match the SDK theme inside your own components:
palette is the fully-resolved palette for the current mode — dark or light values depending on dark. It exposes: shell, cardBg, inputBg, hoverBg, textPrimary, textSecondary, inputText, inputPlaceholder, cardBorder, inputBorder, buttonBorder, and semantic tokens (successBg, errorBg, warningBg, infoBg, and their border/text variants). dk is the raw dark palette, useful when you need dark-specific values regardless of mode (e.g. for overlay rendering).

Next Steps

Components

See all available components

Configuration

Configure providers and chains

Examples

See styled examples in action

Best Practices

Follow integration best practices