Theme

GitLab
Um componente headless para tematizar componentes filhos.

Uso

O componente Theme permite sobrescrever as classes de slot e as props padrão de todos os componentes filhos sem modificar cada um individualmente. Ele usa o mecanismo provide / inject do Vue internamente, então as sobrescritas se aplicam em qualquer profundidade.

O componente Theme não renderiza nenhum elemento HTML; ele apenas fornece sobrescritas de tema aos seus filhos.
Para a configuração de tema no nível do app, recomendamos usar o arquivo app.config.ts.
Para a configuração de tema no nível do app, recomendamos usar o arquivo vite.config.ts.

Classes de slot

Use a prop ui para sobrescrever as classes de slot dos componentes descendentes. As chaves são os nomes dos componentes (camelCase) e os valores são as sobrescritas das classes de slot deles.

Valores padrão de props 4.8+

Use a prop props para sobrescrever o valor padrão de qualquer prop nos componentes descendentes. Cada chave corresponde a um parcial das props daquele componente.

Props explícitas em um componente (ex.: <NButton color="primary" />) sempre prevalecem sobre <NTheme :props>. Os padrões do Theme só se aplicam quando a prop não foi passada explicitamente.

Exemplos

Múltiplos componentes

Use chaves diferentes em ui ou props para tematizar vários tipos de componentes de uma vez.

Temas aninhados

Aninhe vários componentes Theme para compor as sobrescritas. O Theme mais interno tem precedência, enquanto as chaves não sobrescritas são herdadas do Theme externo.

Prioridade explícita

Definir explicitamente qualquer prop (incluindo ui) em um componente individual sempre tem prioridade sobre o componente Theme.

Propagação profunda

As sobrescritas ficam disponíveis para todos os componentes descendentes, independentemente de quão profundamente aninhados eles estejam.

Neste exemplo, MyButton é um componente personalizado que renderiza um UButton internamente. As sobrescritas de tema ainda se aplicam porque se propagam por toda a árvore de componentes.

Componentes de formulário

Use o componente Theme para aplicar uma estilização consistente em um grupo de componentes de formulário.

Seu nome público de exibição.

Usado para notificações.

Uma breve descrição sobre você.

<NFormField>, <NFieldGroup> and <NAvatarGroup> keep precedence over <NTheme :props> for size, color and highlight. Validation errors also force the error color over any theme value.

Componentes de prose

Use o namespace prose para tematizar os componentes de tipografia. As chaves ficam aninhadas sob prose (ex.: prose.p, prose.code).

Getting started

This is a paragraph with a tighter typographic scale applied through the Theme component.

  • First item
  • Second item
  • Third item

The spacing and font sizes are smaller than the defaults, making it ideal for compact content areas.

API

Props

Prop Default Type
props ThemeDefaults

Per-component prop defaults that flow through useComponentProps to every descendant. Each key maps to a partial of that component's props.

ui ThemeUI

Per-component slot class overrides (flat shorthand for :props.<name>.ui).

Slots

Slot Type
default{}

Changelog

No recent changes