Seletor de tema
Um controle manual de luz/escuro para barras laterais da aplicativo. O tema seguinte revela suavemente a partir do ponto de interação exato, a escolha do usuário persiste localmente, e os navegadores de movimento reduzido ou não suportados voltam para um interruptor imediato.
Instalação
Adicione o tema reutilizável e suas dependências semânticas usando o CLI ou manualmente:
Modo escuro pronto - este componente segue tokens semânticos BoardUI automaticamente. Configurar a mudança de tema.
O CLI copia a fonte do componente (com suas dependências internas) em seu projeto e instala quaisquer pacotes npm necessários.
npx boardui@latest add theme-toggleUsando um pacote de UI compartilhado ou aliases de importação personalizados? Configure seus caminhos de instalação antes de executar o CLI. Exemplos de copy-paste usam as importações padrão.
Configuração do projeto
A luz é o padrão. Aplicar o salvo boardui:theme valor antes da hidratação para evitar um flash de primeira pintura, e adicionar suppressHydrationWarning porque a classe raiz é definida no navegador antes de React hidratos.
// app/layout.tsximport Script from "next/script";import "@/styles/globals.css";
const themeScript = '(function(){try{var dark=localStorage.getItem("boardui:theme")==="dark";document.documentElement.classList.toggle("dark",dark)}catch(e){document.documentElement.classList.remove("dark")}})();';
export default function RootLayout({ children }: { children: React.ReactNode }) { return ( <html lang="en" suppressHydrationWarning> <body> <Script id="boardui-theme" strategy="beforeInteractive"> {themeScript} </Script> {children} </body> </html> );}A opção é apenas manual: não lê o tema do sistema operativo. O seu movimento reduzido e o interruptor de navegação não suportado mudam imediatamente sem a revelação circular.
Barra lateral colapsada
Definir collapsed para um controle somente de ícones de 36px que se encaixa em um trilho sidebar compacto, mantendo o mesmo estado pressionado acessível.
<ThemeToggle collapsed />