Skip to main content
Nexus Design System
GitHub

Appearance

NxdsAppearanceSettings is a full settings panel for theme, typography, layout feel and interaction preferences. Render it inside NxdsAppearanceProvider. For a compact popover, use NxdsThemeQuickControl.

Installation

npx nxds-cli@latest add appearance

Run npx nxds-cli@latest init first if nxds isn’t set up in your app yet. See Install.

Usage

import {
  NxdsAppearanceSettings,
} from '@/components/nxds/components/appearance/appearance-settings/appearance-settings';
import {
  NxdsAppearanceBrandColorField,
} from '@/components/nxds/components/appearance/brand-color-field/brand-color-field';
import {
  NxdsAppearanceColorField,
} from '@/components/nxds/components/appearance/color-field/color-field';
import {
  NxdsAppearanceConfigPreview,
} from '@/components/nxds/components/appearance/config-preview/config-preview';
import {
  NxdsAppearanceProvider,
} from '@/components/nxds/components/appearance/provider/provider';
import { NxdsAppearanceScript } from '@/components/nxds/components/appearance/provider/script';
import {
  NxdsAppearanceSettingRow,
} from '@/components/nxds/components/appearance/setting-row/setting-row';
import {
  NxdsThemeQuickControl,
} from '@/components/nxds/components/appearance/theme-quick-control/theme-quick-control';

Props

NxdsAppearanceBrandColorField

NxdsAppearanceBrandColorField props
PropTypeDefaultDescription
labelRequiredstringNo default documentedNo description
onChangeRequired(hex: string) => voidNo default documentedNo description
valueRequiredstringNo default documentedNo description

NxdsAppearanceColorField

NxdsAppearanceColorField props
PropTypeDefaultDescription
labelRequiredstringNo default documentedNo description
onChangeRequired(hex: string) => voidNo default documentedNo description
valueRequiredstringNo default documentedNo description

NxdsAppearanceConfigPreview

NxdsAppearanceConfigPreview props
PropTypeDefaultDescription
resolvedModeRequiredNxdsResolvedAppearanceModeNo default documentedNo description
stateRequiredNxdsAppearanceStateNo default documentedNo description

NxdsAppearanceProvider

NxdsAppearanceProvider props
PropTypeDefaultDescription
cookieOptionsNxdsAppearanceCookieOptionsNo default documentedNo description
cookieWriteKeystring | falsefalse

Cookie the provider writes so your server can render the saved appearance. The client never reads it.

defaultStateNxdsAppearanceStateNo default documentedNo description
onStateChange((state: NxdsAppearanceState) => void)No default documentedNo description
stateNxdsAppearanceStateNo default documentedNo description
storageKeystring | false"nxds-appearance"

localStorage key for the saved appearance. The head script reads it before first paint and the provider after mount, overriding defaultState. Pass false to turn it off.

NxdsAppearanceScript

NxdsAppearanceScript props
PropTypeDefaultDescription
defaultStateNxdsAppearanceStateNo default documentedNo description
noncestringNo default documentedNo description
storageKeystring | falseNo default documentedNo description

NxdsAppearanceSettingRow

NxdsAppearanceSettingRow props
PropTypeDefaultDescription
descriptionstringNo default documentedNo description
labelRequiredstringNo default documentedNo description

NxdsAppearanceSettings

NxdsAppearanceSettings adds no props of its own; it accepts the props of the element or primitive it wraps.

NxdsThemeQuickControl

NxdsThemeQuickControl props
PropTypeDefaultDescription
onCustomize(() => void)No default documentedNo description
Vue Appearance is coming soon

Appearance isn't in the Vue package yet. The React version is ready to use today.