Skip to content

ThemeToggler

Purpose

ThemeToggler provides a compact theme selector with:

  • Light, dark, and system options
  • Animated selection indicator
  • Multiple size variants

When to use

Use ThemeToggler for:

  • Settings pages
  • Header/footer theme controls
  • User preference panels

Basic usage

tsx
import ThemeToggler from '@/shared/ui/components/ThemeToggler'

<ThemeToggler />

With size variant

tsx
<ThemeToggler size="sm" />
<ThemeToggler size="md" />
<ThemeToggler size="lg" />

Props

PropTypeDefaultDescription
size'sm' | 'md' | 'lg''md'Size variant
classNamestring-Additional class

Notes

  • Uses useTheme hook from ThemeProvider
  • Built on NavRail for consistent styling
  • Icons: Sun (light), Moon (dark), Monitor (system)
  • Theme preference is persisted automatically