Pular para o conteúdo

Footer

Rodapé padrão para páginas institucionais e produtos do ITpS.

Em cada stack

HTML e Astro
Classes itps-* do CSS Sinapse, com todas as variantes desta página.
React e Vue
Componentes padrão do shadcn (separator) com o tema Sinapse: cores, fonte e raio vêm do tema, e as variantes itps-* desta página existem só no HTML. O Button é o Sinapse. A linha de assinatura ITpS vem pronta (ItpsSignature, item itps-brand).

Instalação

O comando instala o Separator da sua stack, o Button Sinapse e a marca ITpS (ItpsSignature, item itps-brand) com o tema Sinapse. Configure o registry uma vez por projeto em Comece por aqui.

terminal · React/Next

pnpm dlx shadcn@latest add @sinapse/footer

terminal · Vue 3/Nuxt 4

pnpm dlx shadcn-vue@latest add https://dsystem.sinapse.org.br/r/vue/footer.json

Sem shadcn, não há instalação por componente: use o CSS Sinapse e as classes da API copy-first desta página.

Uso

O Footer não tem componente primitivo próprio no shadcn/ui. Em React/Next ou Vue 3/Nuxt 4, componha um <footer> semântico com Button asChild/as-child para links estilizados e Separator para dividir a linha legal.

Para HTML ou wrappers finos, use itps-footer. Esse é o contrato do CSS copy-first e já inclui grid responsivo, texto de apoio, colunas de navegação e estados de foco nos links.

Em todo produto do ITpS, a última linha do footer é a assinatura ITpS. Ela é obrigatória; veja abaixo e em Marca.

Exemplos

Estrutura

PeçaReact/Next e Vue 3/Nuxt 4HTML
Região<footer>itps-footer
Layoutgrid com utilitáriositps-footer__grid
Resumotexto semânticoitps-footer__summary + itps-footer__description
Coluna<nav aria-label>itps-footer__column
Títuloheading localitps-footer__column-title
LinksButton asChild / Button as-childitps-footer__link
Texto não interativo<span>itps-footer__text
Divisão legalSeparatoritps-footer__legal
Assinatura ITpSItpsSignatureitps-signature

Use a linha legal quando o footer precisa expor site institucional, termos ou contato. Links continuam sendo elementos <a> reais; itens informativos ficam como texto para evitar falsos alvos de foco.

Assinatura ITpS

Obrigatória em todo produto do ITpS, como última linha do footer e em toda a largura da página: logo ITpS, ”© Uma iniciativa do Instituto Todos pela Saúde (ITpS)”, endereço e o link “Conheça o ITpS”. No celular ficam só o logo e a frase. Mantenha o texto como está; o padrão vem do Figma (Brand Usage) e está em Marca.

© Uma iniciativa do Instituto Todos pela Saúde (ITpS)

Avenida Paulista, 1.938 - 16º andar, CEP: 01310-942 - São Paulo (SP)

Conheça o ITpS

API copy-first

Classe/atributoUso
itps-footerRegião final da página com largura máxima e espaçamento responsivo.
itps-footer__gridOrganiza resumo e colunas de links.
itps-footer__summaryLimita a largura do texto institucional.
itps-footer__descriptionTexto de apoio do sistema, produto ou organização.
itps-footer__columnColuna de navegação dentro do grid.
itps-footer__column-titleHeading curta para uma coluna de navegação.
itps-footer__listLista sem marcadores para links ou textos.
itps-footer__linkAnchor com cor, hover e foco do sistema.
itps-footer__textItem informativo sem ação.
itps-footer__legalLinha separada para organização, termos e contato.
itps-footer__legal-textLink ou texto institucional da organização.
itps-footer__legal-linksLista horizontal de links legais.
itps-signatureFaixa da assinatura ITpS, em toda a largura, como última linha do footer.
itps-signature__contentLinha da assinatura, com a mesma largura e espaçamento de itps-footer.
itps-signature__brandLink para o site do ITpS com o logo e o divisor.
itps-signature__logoLogo ITpS com 32 px de altura (cor no claro, negativo no escuro).
itps-signature__text, itps-signature__nameFrase ”© Uma iniciativa do Instituto Todos pela Saúde (ITpS)”.
itps-signature__addressEndereço do ITpS; some no celular.
itps-signature__linkLink “Conheça o ITpS”; some no celular.
aria-labelNomeia cada coluna de navegação.

Acessibilidade

Use <footer> apenas uma vez por página ou por região independente. Agrupe listas de links em <nav aria-label="..."> quando existirem várias colunas. Não use Button para navegação copy-first; use <a>. Nos snippets shadcn, Button asChild/as-child preserva o elemento <a> como destino real.