Skip to main content

Overview

ScopedVariables overrides CSS variables for a specific subtree without changing the active theme or global variable values. Use it for component previews, branded sections, and local design-token overrides. The nearest ScopedVariables value wins, so nested scopes inherit parent values and can override only what they need.
ScopedVariables is a runtime variable boundary. Class names, hooks, and withUniwind-wrapped components inside the boundary resolve variables from the scoped values first.

Usage

Basic Example

Nested Scoped Variables

Nested scopes merge with their parents. The closest value for each variable wins.

Reading a Scoped Variable in JavaScript

useCSSVariable reads the nearest scoped value and updates when the scope changes.

API Reference

Component Signature

Props

Record<string, string | number>
required
CSS variable overrides for this subtree. Every variable name must start with --; invalid names are ignored.
React.ReactNode
required
React children rendered inside the scoped variable boundary.

Behavior Notes

  • ScopedVariables affects only its descendants and never mutates global theme variables.
  • Nested scopes merge with parent scopes; the nearest value for a variable wins.
  • Scoped values are used by className, useCSSVariable, useResolveClassNames, and withUniwind-wrapped components.
  • On web, numeric values become pixel values. For example, 16 is applied as 16px.
  • The overridden variable should be defined in your theme or used by a class name, just like other CSS variables.

Scoped Variables vs Other Theme APIs

  • Use ScopedVariables to override one or more values for a subtree.
  • Use ScopedTheme to apply an existing theme to a subtree.
  • Use Uniwind.updateCSSVariables to persistently update values for an entire theme at runtime.

Scoped Themes

Apply an existing theme to a subtree

useCSSVariable

Read CSS variables in JavaScript

Update CSS Variables

Update variables for an entire theme at runtime

Global CSS

Define CSS variables in your theme configuration