Pular para o conteúdo

Astro

Tutorial para usar o Sinapse DS em Astro: Tailwind v4, CSS versionado baixado do site e classes itps-* em componentes Astro.

Tutorial por stack

Astro usa o CSS Sinapse com Tailwind v4

Astro não usa o registry do shadcn: o CSS Sinapse entra como arquivos versionados baixados do site, e os componentes Astro aplicam as classes itps-*.

  1. 01 Crie ou abra um projeto Astro com Tailwind v4
  2. 02 Baixe o CSS versionado e importe depois do Tailwind
  3. 03 Crie componentes Astro com as classes itps-*
  4. 04 Confira o tema no navegador

1 · Projeto

Crie ou abra um projeto Astro com Tailwind v4

Em projeto novo, use o starter oficial. Registre o plugin do Tailwind v4 em vite.plugins no astro.config.mjs.

terminal

pnpm create astro@latest meu-app
cd meu-app
pnpm add tailwindcss @tailwindcss/vite

astro.config.mjs

import { defineConfig } from 'astro/config'
import tailwindcss from '@tailwindcss/vite'

export default defineConfig({
  vite: {
    plugins: [tailwindcss()],
  },
})

2 · CSS Sinapse

Baixe o CSS versionado e importe depois do Tailwind

O comando baixa tokens, componentes, ícones e a fonte Tabler para src/styles/sinapse. Importe o Sinapse no CSS global, sempre depois do Tailwind, e carregue o CSS global no layout.

terminal

mkdir -p src/styles/sinapse/fonts && for f in index.css tokens.css components.css icons.css fonts/tabler-icons.woff2; do curl -fsSL -o "src/styles/sinapse/$f" "https://dsystem.sinapse.org.br/css/0.9.0/$f"; done

src/styles/global.css

@import "tailwindcss";
@import "./sinapse/index.css";

src/layouts/BaseLayout.astro

---
import '../styles/global.css'
---

<html lang="pt-BR">
  <body>
    <slot />
  </body>
</html>

A versão 0.9.0 fica fixa no comando. Para atualizar, troque a versão e rode de novo; /css/latest/ acompanha sempre a versão atual, mas, em produção, prefira a versão fixa.

3 · Componente

Crie componentes Astro com as classes itps-*

Componentes Astro ficam como camada fina sobre as classes do Design System. Cada página de componente traz o HTML pronto para copiar correspondente.

src/components/Button.astro

---
interface Props {
  label?: string
}

const { label = 'Sinapse rodando' } = Astro.props
---

<button type="button" class="itps-btn itps-btn--primary">{label}</button>

4 · Validação

Confira o tema no navegador

Rode o servidor de desenvolvimento e abra uma página que use o componente. O botão padrão aparece contornado em coral com texto em azul institucional; com a classe .dark no <html>, os tokens mudam para o modo escuro.

terminal

pnpm dev

Próximos passos

Continue com a referência certa