Aparência
A seção Aparência das configurações de um produto de IA: tema, cor de destaque, tom do plano de fundo, densidade, fonte do chat, tamanhos de texto e opções de acessibilidade, tudo mantido como rascunho até que as pessoas salvem.
O Appearance reúne tudo sobre a aparência do app em uma única seção. Os cards de tema mostram uma pequena janela em cada tema, desenhada na cor de destaque que você escolheu, para que a escolha fique clara antes de salvar.
System segue o dispositivo e informa qual é no momento. High contrast reforça bordas e texto e mantém os fundos neutros, então o slider de tom é desativado enquanto ele estiver selecionado.
O matiz do destaque é uma trilha de cor de verdade com oito escolhas rápidas abaixo, e o indicador nomeia a cor, como Blue 250°. O tom do plano de fundo mistura esse destaque às superfícies. Os cards de densidade e de fonte do chat mostram um exemplo de cada opção, e os dois tamanhos de texto são steppers com limites.
Reduce motion e Reduce transparency informam quando o dispositivo já pede uma das duas.
Tudo é um rascunho até ser salvo. A barra de salvar do Settings sobe assim que algo difere, Discard traz de volta a aparência salva e Reset devolve todas as opções ao padrão como um rascunho que você ainda pode descartar.
Adicione o registro Pro ao components.json
components.json Adicione seu token
Crie um token na sua página de conta e coloque-o em
.env.localcomoHEXTAUI_PRO_TOKEN.Adicione o bloco
pnpm dlx shadcn@latest add @hextaui-pro/appearance
Salve na sua API
Passe os valores salvos e um onSave assíncrono. Nada é enviado até alguém pressionar Save na barra. Lance um erro para mostrar sua mensagem na barra e manter as escolhas da pessoa.
Aplique a aparência salva
Depois de salvo, aplique os valores ao seu app da forma como ele aplica temas. normalizeAppearance corrige qualquer coisa armazenada por uma versão mais antiga, para que um valor inválido nunca quebre a página.
Anatomia
As partes que você compõe, de fora para dentro.
| Parte | Descrição |
|---|---|
AppearanceSettings | O conteúdo da seção: os grupos de opções, ligados à barra de salvar do shell. |
normalizeAppearance | Transforma valores armazenados ou parciais em valores válidos: limita os tamanhos, dá a volta no matiz e usa um fallback para nomes desconhecidos. |
appearanceDefaults | Os valores para os quais o Reset volta quando você não passa os seus. |
AppearanceSettings
Use dentro de um SettingsSection. Também aceita todas as props de div.
| Prop | Tipo | Padrão |
|---|---|---|
valuesO que está salvo agora: { theme, hue, intensity, density, chatFont, interfaceSize, codeSize, reduceMotion, reduceTransparency }. Valores inválidos são corrigidos, e a correção não conta como uma alteração não salva. | AppearanceValues | – |
onSaveSalva o rascunho. Lance um erro para mostrar a mensagem na barra de salvar e manter o rascunho. | (values) => void | errors | Promise<void | errors> | – |
defaultsO que o Reset restaura. | AppearanceValues | appearanceDefaults |
| Prop | Tipo | Padrão |
|---|---|---|
themeSystem segue o prefers-color-scheme. | "system" | "light" | "dark" | "contrast" | "system" |
hueO matiz OKLCH do destaque, de 0 a 359. | number | 250 |
intensityO quanto do destaque tinge os fundos, de 0 a 100. | number | 30 |
densityEspaço entre as mensagens e dentro delas. | "compact" | "comfortable" | "comfortable" |
chatFontA fonte das mensagens. | "sans" | "serif" | "mono" | "sans" |
interfaceSizeTamanho do texto em pixels, de 12 a 18. | number | 14 |
codeSizeTamanho do código em pixels, de 11 a 20. | number | 13 |
reduceMotionPara os spinners e os painéis deslizantes. | boolean | false |
reduceTransparencyFundos sólidos em vez de desfocados. | boolean | false |
| Tecla | Ação |
|---|---|
| ←→ | Nos cards de tema, densidade ou fonte, escolhe o card anterior ou o próximo. Na trilha de matiz, move um grau. |
| Shift→ | Na trilha de matiz, move 15 graus. Page Up e Page Down fazem o mesmo. |
| HomeEnd | Na trilha de matiz, salta para qualquer uma das extremidades. |
| ↑↓ | Em um campo de tamanho de texto, altera o tamanho em um pixel. |
| ⌘S | Salva enquanto algo não está salvo. Ctrl+S no Windows e no Linux. |
- Cada grupo de cards é um radio group nomeado por sua linha, e cada card é nomeado pelo próprio rótulo, então os leitores de tela anunciam "Escuro, botão de opção, 3 de 4".
- A trilha de matiz lê sua cor pelo nome, como "Azul, 250 graus", e as escolhas rápidas são botões de alternância nomeados pela cor.
- Reset mantém o foco depois de executar e anuncia que os padrões voltaram e precisam ser salvos.
Construído com
Os componentes gratuitos do HextaUI de que Appearance é feito. Cada um é instalado separadamente.
Código
2 arquivos, adicionados a components/blocks/appearance.