Saltar para o conteúdo
duxt

Substituir o tema

Mudar uma cor, substituir um componente, acrescentar uma primitiva shadcn-vue.

A camada entrega o tema como ficheiros que podes sombrear. Três níveis, do menor para o maior — e o menor que resolva o problema é o certo, porque um componente que substituis é um componente que passas a manter.

Passos

  1. Uma cor: redefine o token. A paleta é o conjunto neutro do shadcn como variáveis CSS. Redefine uma na tua própria folha de estilos; não é preciso bifurcar o ficheiro da camada.
    :root {
      --primary: oklch(0.55 0.2 265);
    }
    .dark {
      --primary: oklch(0.7 0.18 265);
    }
    

    Ambos os blocos importam: o tema comuta com uma classe dark, não com uma media query, por isso um token definido uma só vez está errado num dos dois modos.
  1. Uma peça do layout: cria o ficheiro. O Nuxt resolve primeiro o teu componente com o mesmo nome, por isso substituir DuxtFooter é criar app/components/DuxtFooter.vue no teu projeto. Os nomes, props e slots estão na referência de componentes — um nome documentado faz parte da superfície pública, por isso não será renomeado sem um lançamento maior.
  2. Um slot, onde exista. DuxtPageFeedback emite feedback e expõe o seu estado através de um slot, para poderes pendurar o teu próprio formulário sem substituir o componente — desenvolvido em Recolher opiniões da página.
  3. Uma primitiva nova: usa a CLI. A camada possui os seus componentes shadcn-vue em vez de os importar, e o components.json já aponta a CLI para o alias certo:
pnpm dlx shadcn-vue@latest add tooltip
  1. Um componente para Markdown. Tudo o que estiver em app/components/content/ é invocável a partir de uma página com a sintaxe de bloco MDC. O teu ficheiro com o mesmo nome substitui o da camada — ver a referência MDC.

Lista de verificação

  • Nada foi copiado da camada que um token pudesse ter mudado
  • Cada token redefinido tem valor para claro e para escuro
  • Os componentes substituídos têm exatamente o nome que a referência lhes dá
  • pnpm build continua a apresentar todas as páginas (uma substituição é onde o SSR parte)
Esta página foi útil?