Fundação
Componentes
- Componentes
- Accordion
- ActivityGraph
- Alert
- Alert Dialog
- Aspect Ratio
- Avatar
- AvatarGroup
- Badge
- Box
- Breadcrumb
- Button
- Button Group
- Calendar
- Card
- Carousel
- Chart
- Checkbox
- Collapsible
- Combobox
- Command
- Connector
- Container
- Context Menu
- Dialog
- Drawer
- DropdownMenu
- Empty
- EnvEditor
- Fade In
- Field
- Fps
- Hover Card
- Highlighter
- Input
- InputGroup
- Input OTP
- Item
- JSONViewer
- Kbd
- Label
- Marquee
- Menubar
- Native Select
- Navigation Menu
- NumberInput
- Pagination
- Popover
- Preview Card
- Progress
- ProgressiveBlur
- Radio Group
- Resizable
- Retro Grid
- Scan Line
- ScrollArea
- Scrubber
- SectionLabel
- Select
- Separator
- Sheet
- Signature
- Sidebar
- Skeleton
- Slider
- Sonner
- Spinner
- Stagger Group
- StatusDot
- SystemBanner
- Switch
- Table
- Tabs
- TagInput
- Textarea
- ThemeToogle
- Toggle
- Toggle Group
- Tooltip
- Typing Effect
O componente exporta-se como ThemeToogle (o ficheiro do pacote chama-se theme-toogle.tsx). Caminho: @zexon/ui/components/theme-toogle.
Utiliza document.documentElement.classList e localStorage para a chave theme, e View Transitions API quando disponível para uma animação em círculo.
Uso
Interruptor
Duração
A prop opcional duration (ms) ajusta a animação da transição de vista quando o browser suporta.
Transição mais longa
Integração
Para o tema inicial coincidir com o resto da app, use o mesmo esquema que next-themes ou a lógica de class no html — este botão observa alterações à classe dark no documentElement.
Acessibilidade
O controle é um Button com texto só para leitores de tela; mantenha o botão visível e focável no cabeçalho ou nas configurações.