v1.0
search ⌘K
Comunidade Manifesto · Design system Manifesto em todos os lugares. O sistema que monta cada tela do app da igreja. Tokens, componentes e movimento num lugar só, a partir da identidade visual: monocromática, moderna e autêntica.
{{ s.v }} {{ s.l }}
Princípios Quatro regras que decidem o resto.
{{ p.icon }}{{ p.n }}
{{ p.t }} {{ p.d }}
Na mão Mesmo código, dois temas. Os dois cartões abaixo são o mesmo componente. Só muda o atributo data-theme do bloco. Toque em Confirmar presença.
data-theme="light"
Guadalupe, RJ Culto de celebração Domingo, 18h às 20h
4 out · domingo
data-theme="dark"
Guadalupe, RJ Culto de celebração Domingo, 18h às 20h
4 out · domingo
Tudo no sistema 24 páginas para explorar. Cada miniatura é o componente de verdade, em escala reduzida. Comece pelos fundamentos se vai desenhar; vá direto aos componentes se vai codar.
Começo1
// botão primário <Button variant="primary"> Enviar pedido </Button>
Fundamentos5
Aa
Geist400 – 700
Símbolo Manifesto
Componentes14
search
Guadalupe, RJcheck
NAA Nova Almeida
arrow_drop_down
content_copyCopiar citação
shareCompartilhar
DOM4
Culto de celebração18h · Guadalupe
check_circleConfirmado schedulePendente
Pedido de oração Devocional
Liberar turno? Sexta, 2 · 06:00
check_circleTurno confirmado
Padrões Manifesto4
Versículo do dia “…manifesta a fragrância do seu conhecimento em todos os lugares.” 2 Coríntios 2.14
RLRafael LimaOração
Peço oração pela minha entrevista na sexta.
Dízimo · R$ 100 PIX ATIVO
34.123.456/0001-78 content_copy
Produto2
Selo Comunidade Manifesto
Na prática Veja tudo junto num app de verdade. Do login à leitura do dia, ao pedido de oração e ao turno na sala: todas as telas e etapas do app, navegáveis.
Começo ·
React NativeTypeScriptNativeWindAcessível
Como usar Estrutura de pastas, tokens e convenções para quem vai desenvolver o app da Comunidade Manifesto. O sistema foi concebido para React Native com Expo, NativeWind v4 e TypeScript estrito.
npm install @comunidade-manifesto/ui
Stack oficial do aplicativo Tecnologias selecionadas para garantir máxima performance, tipagem robusta e facilidade de manutenção.
{{ s.k }} {{ s.v }}
Tokens em três camadas Nenhum componente sabe qual tom de cinza está usando. Ele consome papéis semânticos que respondem automaticamente ao tema ativo.
{{ l.n }} Camada {{ l.n }}
{{ l.t }} {{ l.d }} {{ l.code }}
tokens.css
/* 1. Primitivos: valores físicos da IDV */
:root {
  --preto: #0C0D10;
  --creme: #D8D5CD;
  --cinza-claro: #B4AFAB;
  --cinza-escuro: #757575;
  --branco: #FFFFFF;
}

/* 2. Semânticos: papéis do sistema no tema escuro (padrão) */
:root, [data-theme="dark"] {
  --bg: var(--preto);
  --surface: #16171A;
  --surface-raised: #1F2024;
  --line: #2A2B30;
  --text: var(--branco);
  --text-soft: var(--creme);
  --text-muted: #9A9794;
  --accent: var(--creme);
  --on-accent: var(--preto);
  --success: #8DB596;
  --warning: #D4B072;
  --danger: #D97A66;
}

/* 3. Tema claro: inversão proporcional */
[data-theme="light"] {
  --bg: var(--creme);
  --surface: #ECEAE5;
  --surface-raised: #FFFFFF;
  --line: #C6C2BC;
  --text: var(--preto);
  --text-soft: #303030;
  --text-muted: #757575;
  --accent: var(--preto);
  --on-accent: var(--creme);
}
Estrutura de pastas do aplicativo Organização modular orientada a features com componentes reutilizáveis isolados.
{{ t.icon }} {{ t.name }} {{ t.note }}
Convenções do projeto Regras obrigatórias de desenvolvimento para garantir consistência e acessibilidade.
1. Compound components Composição declarativa: <Card><Card.Header /><Card.Content /></Card>. O leitor de tela entende a hierarquia sem props aninhadas.
2. Exportação nomeada Sempre export { Button, Card }. Elimina imports ambíguos e facilita refatoração em larga escala.
3. Variantes desacopladas O helper buttonVariants() é exportado separado para estilizar links nativos ou componentes terceiros sem duplicar código.
4. Alvo de toque 44px Nenhum botão ou controle clicável pode ter menos de 44×44px físicos (WCAG 2.5.5).
Boas práticas Diretrizes de interface e consistência para a Comunidade Manifesto.
check_circle Faça
Use sempre as classes semânticas do NativeWind (bg-surface, text-accent, border-line).
Mantenha o foco visível em todos os controles para navegação por teclado e acessibilidade.
Use o botão IconButton exclusivamente com aria-label descritivo.
cancel Evite
Nunca utilize cores hexadecimais soltas ou arbitrárias direto nas tags JSX.
Evite criar novos componentes para variações que podem ser resolvidas com as props oficiais.
Não adicione sombras decorativas; a elevação na Manifesto é orientada por contraste e borda.
Fundamentos ·
React NativeTypeScriptNativeWindAcessível
Cores Quatro cores de marca fundamentam a identidade nobre e reverente da Comunidade Manifesto. Escalas funcionais — verde (sucesso), saibro/coral (erro e destrutivo) e âmbar (pendência e atenção) — entram exclusivamente para feedback tátil, confirmações e avisos sem quebrar a harmonia do sistema.
import { colors } from '@/tokens/colors'
No app O componente inserido nas telas reais do aplicativo da Comunidade Manifesto.
9:41
signal_cellular_alt wifi battery_full
check_circle
Turno confirmado na Sala! Lembrete push programado para 15 min antes.
check_circleCONFIRMADO MAN-2931
Quinta-feira · 20h às 21h Sala de Oração 24/7 · Intercessão Contínua
Intercessor
Filipe Manifesto
Turno
1h de oração
Local
Presencial · Sala 1
Lembrete
15 min antes
Feedback no smartphone O verde funcional (#5BB170) é o sim imediato: o check que se desenha, o switch que liga e o badge de confirmação de presença ou turno.O âmbar (#F9A91F) surge na régua de lembretes e pendências de Pix, sinalizando atenção e prazos.O saibro/coral (#D1401F) é reservado para cancelamentos, avisos de erro e ações destrutivas irreversíveis.O restante do app mantém-se no Preto Nobre (#0C0D10), Branco Creme (#D8D5CD) e cinzas neutros, garantindo que o feedback salte aos olhos com clareza máxima sem descaracterizar a reverência visual da Manifesto.
TurnPassDonationSuccesssuccesswarningdangerinfo
As quatro cores da marca Valores exatos do manual de identidade visual. Toque em qualquer cartão para copiar o hex.
Escalas Cada escala varia a luminosidade do tom original mantendo saturação equilibrada. Clique num tom para copiar o hex.
neutral
12 tons
creme (marca)
11 tons
verde (sucesso) funcional
11 tons
saibro (erro / cancelamento) funcional
11 tons
ambar (alerta / pendência) funcional
11 tons
info Primitivo é matéria-prima. Classes como bg-verde-500 existem como base técnica. O app consome papéis semânticos (bg-surface, bg-brand, text-success, text-danger), que alternam dinamicamente no tema escuro e claro.
Papéis semânticos O mesmo token em cada tema. Valores conectados à folha de estilo oficial da Manifesto.
data-theme="light"
--canvas #ECEAE5 (Creme Suave)
--surface #FFFFFF (Branco Puro)
--brand #0C0D10 (Preto Nobre)
--success #2D6335 (Verde 700)
--warning #8F5B00 (Âmbar 700)
--danger #AD351A (Saibro 700)
data-theme="dark"
--canvas #0C0D10 (Preto Nobre)
--surface #16171A (Superfície 1)
--brand #D8D5CD (Branco Creme)
--success #5BB170 (Verde 500)
--warning #F9A91F (Âmbar 500)
--danger #E15637 (Saibro 500)
Feedback Quatro estados, quatro cores. A cor ajuda a ler de relance; ícone e texto continuam obrigatórios para quem não distingue as cores.
Sucesso · verde funcional
Confirmada, ativa, deu certo. success, success-fg, -subtle, -text
Pendente e alerta · âmbar
Aguardando confirmação, prazo acabando. warning, warning-fg, -subtle, -text
Erro e negativo · saibro
Cancelada, recusada, falhou, destrutivo. danger, danger-fg, -subtle, -text
Informação · neutro
Indisponível, aviso sem urgência. info, info-fg, -subtle, -text
data-theme="light"
check_circleConfirmada schedulePendente cancelCancelada blockIndisponível
check_circle
Turno confirmado Sala de Oração · Quinta-feira às 20h. Confirmado!
warning
Contribuição pendente Confirme o Pix para registrar sua oferta no relatório.
cancel
Turno cancelado Turno liberado. Outro membro da igreja poderá assumir o horário.
info
Sala em manutenção Manutenção na Sala de Oração presencial até sexta.
data-theme="dark"
check_circleConfirmada schedulePendente cancelCancelada blockIndisponível
check_circle
Turno confirmado Sala de Oração · Quinta-feira às 20h. Confirmado!
warning
Contribuição pendente Confirme o Pix para registrar sua oferta no relatório.
cancel
Turno cancelado Turno liberado. Outro membro da igreja poderá assumir o horário.
info
Sala em manutenção Manutenção na Sala de Oração presencial até sexta.
verified De onde vêm o verde, o saibro e o âmbar: O verde traz a certeza da confirmação bíblica e comunhão ativa. O saibro (terracota e barro) é o sinal de cautela ou cancelamento de compromisso. O âmbar é a lâmpada de atenção para prazos imediatos. As três escalas são 100% funcionais: aparecem em feedback, tags, switches e badges, nunca como mera decoração solta.
Contraste Razão calculada com a fórmula WCAG 2.1 sobre os valores oficiais da identidade.
Combinação Papel no produto Razão Conformidade Amostra
Branco (#FFFFFF) no Preto (#0C0D10) Títulos principais e botões flutuantes 18.2:1 AAA · Aprovado Manifesto
Preto (#0C0D10) no Creme (#D8D5CD) Botão primário de CTA e chips ativos 13.5:1 AAA · Aprovado Confirmar
Verde (#5BB170) no Preto (#0C0D10) Feedback de sucesso e badges confirmados 7.4:1 AAA · Aprovado Confirmada
Âmbar (#F9A91F) no Preto (#0C0D10) Alertas de pendência e relógio de turnos 9.1:1 AAA · Aprovado Pendente
Saibro (#D1401F) com Branco (#FFFFFF) Botão de erro / cancelamento destrutivo 4.9:1 AA · Aprovado Cancelar
Uso Diretrizes práticas com demonstração visual imediata do que fazer e evitar.
check_circleConfirmado cancelCancelado
check_circle Faça
Acompanhe status com ícone e texto explicativo. Funciona para quem não distingue cores perfeitamente.
cancel Evite
Não utilize apenas bolinhas coloridas sem texto. Sem rótulo, a cor sozinha não explica o estado do processo.
check_circle Faça
Use o Branco Creme (#D8D5CD) como fundo sólido de superfície ou em botões primários com alto contraste.
Texto sem contraste
cancel Evite
Evite usar Branco Creme como texto fino sobre fundos claros, pois perde contraste e falha na norma WCAG AA.
Tokens Tokens de design conectados aos componentes da Comunidade Manifesto.
Token Papel no tema
--canvas / --surface fundos da aplicação (#0C0D10, #16171A)
--line / --line-strong bordas e divisores estruturais (#1F2024, #2A2B30)
--fg / --fg-muted / --fg-subtle hierarquia de texto (#FFFFFF, #B4AFAB, #757575)
--brand / --brand-cream acento nobre da marca (#D8D5CD)
--success / --success-subtle verde funcional para confirmações e checks (#5BB170, #162418)
--warning / --warning-subtle âmbar funcional para lembretes e pendências (#F9A91F, #2A2010)
--danger / --danger-subtle saibro/coral para cancelamentos e erros (#D1401F, #2A1412)
--info / --info-subtle neutro para manutenção e comunicados (#757575, #1F2024)
Fundamentos ·
React NativeTypeScriptNativeWindAcessível
Tipografia Geist Sans e Geist Mono: modernidade, equilíbrio e alta legibilidade. No leitor bíblico, a tipografia recua com nobreza para que as Escrituras ganhem o maior contraste e espaço de leitura.
import { typography } from '@/tokens/typography'
No app O componente inserido nas telas reais do aplicativo da Comunidade Manifesto.
9:41
signal_cellular_alt wifi battery_full
LEITURA DE HOJE NAA
Romanos 8 A vida no Espírito e a glória futura
1Agora, pois, já não há nenhuma condenação para os que estão em Cristo Jesus. 2Porque a lei do Espírito da vida, em Cristo Jesus, te livrou da lei do pecado e da morte.
Fonte: 16px · Entrelinha 1.65
Tipografia no app A tipografia do aplicativo da Comunidade Manifesto apoia-se em duas famílias: Geist Sans para todo o corpo, títulos e interface, e Geist Mono para capítulos, versículos, horários e códigos Pix.No leitor bíblico, a entrelinha sobe para 1.65 e a escala ajusta-se para que as Escrituras recebam foco total sem fadiga visual.
GeistGeist Monotabular-numsline-height-1.65font-scale
Aa
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 · ? ! @ & “ ” —
Família Geist / Geist Mono
Pesos 400 · 500 · 600 · 700
Escala tipográfica completa Régua harmônica de corpos, pesos e entrelinhas calibrada para smartphones e tablets.
text-display 44px / 48px · Bold 700
Comunidade Manifesto
text-h1 32px / 38px · Bold 700
Culto de Celebração
text-h2 26px / 32px · SemiBold 600
Sala de Oração 24/7
text-h3 20px / 26px · SemiBold 600
Estudo de Romanos 8
text-body 16px / 24px · Regular 400
Agora, pois, já não há nenhuma condenação para os que estão em Cristo.
text-body-sm 14px / 20px · Regular 400
Horários de intercessão disponíveis para reserva.
text-caption 12px / 16px · Medium 500
NAA · 2 CORÍNTIOS 2.14 · QUI 20:00
Uso Diretrizes práticas com demonstração visual imediata do que fazer e evitar.
Sala de Oração Turnos contínuos de intercessão QUI · 20:00 ÀS 21:00
check_circle Faça
Mantenha a hierarquia clara com três degraus por bloco: Título forte, Apoio descritivo e Metadado com Geist Mono.
SALA DE ORAÇÃO TURNOS CONTÍNUOS QUI 20:00
cancel Evite
Não coloque tudo em negrito. Quando todos os elementos gritam, nenhum detalhe ganha destaque.
18:00 · 142 membros
19:00 · 108 membros
check_circle Faça
Use números tabulares (tabular-nums) em horários de culto e referências para evitar saltos visuais.
Parágrafo inteiro inclinado dificulta a leitura sustentada da Bíblia no celular.
cancel Evite
Evite parágrafos inteiros em itálico ou tamanhos soltos fora da régua tipográfica oficial.
Tokens Tokens de design conectados aos componentes da Comunidade Manifesto.
Token Papel no tema
--font-sans família principal do app (Geist)
--font-mono código, relógio e referências bíblicas (Geist Mono)
--leading-relaxed entrelinha 1.65 para leitura contínua das Escrituras
--tracking-tight espaçamento compacto para títulos display (-0.02em)
Fundamentos ·
React NativeTypeScriptNativeWindAcessível
Espaço, raio e elevação Escala base 4, regra dos raios concêntricos e alvos de toque calculados para conforto manual. A profundidade da interface nasce do contraste entre as superfícies e das bordas de contorno, sem sombras decorativas arbitrárias.
import { spacing, radius } from '@/tokens/geometry'
No app O checkout da Conferência na Manifesto. Ligue as medidas para ver o ritmo: 20 nas laterais, 16 dentro dos blocos, 12 entre eles.
9:41
signal_cellular_alt wifi battery_full
check_circle {{ spaceToast }}
Checkout
20
16
Sua inscrição
Conferência Manifesto O Espírito da Profecia · Auditório Principal
14 a 16 de Novembro · 19h30 Passaporte Completo · 1 participante
12
16
Pagamento
Pix Aprovação na hora
12
16
Passaporte Conferência (3 dias) R$ 120,00
Cupom MANIFESTO -R$ 12,00
Total R$ {{ spaceTotal }}

Três valores fazem a tela inteira da inscrição na Conferência: 20 de respiro nas laterais, 16 dentro de cada bloco e 12 entre um bloco e outro. A barra de baixo repete os 20 e usa o botão xl de 56.

px-5 · 20 SummaryBlock p-4 · 16 gap 12 Button xl · 56 PriceRow PriceTotal
Régua de espaçamento (Base 4) Todos os paddings, margins e gaps do sistema derivam desta escala.
space-1 4px
Micro respiros entre ícone e texto curto
space-2 8px
Gaps entre botões, tags e listas compactas
space-3 12px
Espaçamento interno de badges e campos compactos
space-4 16px
Padding padrão de cards e inputs
space-6 24px
Padding generoso de modais e telas principais
space-8 32px
Separação de grandes seções de conteúdo
space-12 48px
Alvo de toque confortável para polegar
Uso Diretrizes práticas com demonstração visual imediata do que fazer e evitar.
Raio 18px = 10px + 8px
check_circle Faça
Raios concêntricos: o raio externo precisa ser igual ao interno somado ao padding para manter harmonia.
Padding 17px e raio 11px fora da escala
cancel Evite
Não utilize medidas arbitrárias fora da base 4 (como 13px, 17px, 21px). Quebra o alinhamento da grade.
check_circle Faça
Garanta alvos de toque mínimos de 44×44px em qualquer botão ou controle clicável.
Sombra decorativa exagerada
cancel Evite
Não adicione sombras pesadas ou coloridas nos cards; na Manifesto a profundidade vem da escala de cinzas.
Tokens Tokens de design conectados aos componentes da Comunidade Manifesto.
Token Papel no tema
--space-base unidade fundamental da grade (4px)
--radius-sm / --radius-md / --radius-lg curvaturas estruturais (8px, 14px, 20px)
--radius-pill botões e badges totalmente circulares (9999px)
--touch-target-min tamanho mínimo para toque móvel (44px)
Fundamentos ·
React NativeTypeScriptNativeWindAcessível
Movimento Princípios de física e duração temporal. O movimento no app da Manifesto é discreto, rápido e funcional: responde ao toque imediatamente (120ms), orienta o olhar e respeita automaticamente as preferências de acessibilidade de movimento reduzido.
import { motion } from '@/tokens/motion'
No app O componente inserido nas telas reais do aplicativo da Comunidade Manifesto.
9:41
signal_cellular_alt wifi battery_full
Microinterações ao vivo Toque nos botões para sentir a física de mola e resposta tátil:
Lembrete de intercessão
Movimento com propósito No aplicativo da Comunidade Manifesto, as animações não são decorativas: cada transição comunica o resultado de uma ação e orienta o olho do membro.Respostas de toque duram no máximo 160ms para parecerem instantâneas. Transições de tela utilizam curvas de desaceleração suave (ease-out), e modais surgem com amortecimento de mola física sem balanços exagerados.
duration-fast-120msduration-normal-200msscale-0.97prefers-reduced-motion
Uso Diretrizes práticas com demonstração visual imediata do que fazer e evitar.
check_circle Faça
Feedback tátil curto: compressão suave (scale 0.97) ao pressionar botões ou cards clicáveis.
Transição de 800ms frustra o uso repetido
cancel Evite
Não aplique animações lentas com mais de 400ms em botões simples; passa sensação de lentidão no app.
Tokens Tokens de design conectados aos componentes da Comunidade Manifesto.
Token Papel no tema
--duration-fast microinterações e feedback de toque (120ms)
--duration-normal abertura de dropdowns e expansão de itens (200ms)
--duration-slow transições de tela e entrada de modais (350ms)
--ease-out curva padrão de chegada suave [0.22, 1, 0.36, 1]
Fundamentos ·
React NativeTypeScriptNativeWindAcessível
Marca Símbolo oficial, logotipo, proporções e voz da Comunidade Manifesto. O símbolo é a síntese do nosso propósito: proclamar a glória de Deus e edificar o corpo de Cristo.
import { ManifestoLogo, ManifestoIcon } from '@/components/brand'
Símbolo Manifesto
Símbolo · ícone do app, header
Logotipo Manifesto
Logotipo · splash, login
Selo Manifesto
Selo · comunicação, perfil
Ícone do app iOS e Android
Ícone do app · iOS / Android
DNA da comunidade
Moderna Autêntica Carismática Inovadora

Tom de voz: direto, acolhedor, bíblico. Verbos no imperativo gentil (“Leia”, “Ore”, “Compartilhe”), sem jargão de rede social e sem emoji na interface.

Componentes ·
React NativeTypeScriptNativeWindAcessível
Botões Disparam ações essenciais no app. Todo botão segue o formato pill (radius-full), responde ao toque com compressão tátil sutil e usa o tom creme como acento principal. O creme indica com clareza: 'isto é o próximo passo'.
import { Button, IconButton } from '@/components/ui/button'
No app A barra de inscrição na conferência e a tela de pagamento recusado. Toque em Confirmar inscrição e escolha como o banco responde.
9:41
signal_cellular_alt wifi battery_full
check_circle {{ btnToast }}
Inscrição
Sua inscrição
Conferência Manifesto O Espírito da Profecia · Auditório Principal
14 a 16 de Novembro · 19h30 Passaporte Completo · 1 participante
Pagamento
Cartão de crédito Final 4242
Passaporte Conferência (3 dias) R$ 120,00
Total R$ 120,00
error
Pagamento não aprovado Sua vaga na conferência continua reservada por 15 minutos.
O que aconteceu O banco recusou o cartão. Você pode pagar com Pix agora para garantir seu lugar.

A ação principal ocupa a largura toda, no tamanho xl, e mostra o valor da inscrição. Ao tocar, vira carregando sem mudar de largura e termina em sucesso. Abaixo dela, a opção de cupom.

Quando o banco recusa, a resposta surge no lugar e oferece três saídas em ordem de peso: accent para resolver com Pix agora, secondary para trocar o cartão e texto para falar com a organização.

Resposta do banco
Button accent xl loading → sucesso Button secondary lg Button text AnimatedNumber PaymentResult
{{ btnScreenStatusText }}
Anatomia As cotas são lidas do CSS do próprio componente: se alguém mudar o componente, os números mudam junto.
check_circle Confirmar presença
48
180
22
Altura 48px
Padding x 22px
Gap 8px
Raio pill (9999px)
Fonte 15px
Peso 600
1 Contêiner pill
2 Ícone 18px
3 Rótulo 15px
Matriz de estados Cada célula é o componente real com o estado ligado por CSS e atributos. Nada aqui é imagem ou imitação.
Estado primary accent secondary outline text destructive
Padrão
Hover
Foco
Pressionado
Desabilitado
Carregando
Sucesso
Variantes Seis variantes cobrem toda a hierarquia de ações do aplicativo da Manifesto.
variant="primary | accent | secondary | outline | text | destructive"
Tamanhos sm para densidade em cabeçalhos, md é o padrão, lg e xl para CTA mobile com alvo de toque confortável.
size="sm | md | lg | xl"
Com ícone Ícone à esquerda reforça a ação; à direita indica fluxo ou continuação.
leadingIcon={} | trailingIcon={}
Só ícone Use IconButton: ele exige aria-label obrigatório, então nenhum botão fica sem nome para leitores de tela.
import { IconButton } from "@/components/ui/icon-button"
Do toque à confirmação Loading trava o botão e mantém a largura. Quando a requisição volta, o spinner vira um check que se desenha: a pessoa vê que deu certo sem procurar um toast.
Clique no botão para simular a confirmação
Largura total e composição Em smartphones, a ação principal ocupa a largura toda (fullWidth) e a ação secundária fica logo abaixo.
Uso Diretrizes práticas com demonstração visual imediata do que fazer e evitar.
check_circle Faça
Uma ação principal por tela. As demais descem de peso: secondary, outline, text.
cancel Evite
Duas primárias em creme lado a lado. O usuário não sabe qual é o caminho principal.
check_circle Faça
Verbo no infinitivo ou imperativo acolhedor na voz da marca: “Confirmar”, “Vou no culto!”.
cancel Evite
Ação destrutiva sem confirmação. Confirmar presença sempre abre um modal ou bottom sheet antes.
Tokens Tokens de design conectados aos componentes da Comunidade Manifesto.
Token Papel no tema
--accent / --accent-hover / --accent-pressed primary (creme #D8D5CD)
--surface-white / --surface-white-hover accent (branco puro #FFFFFF)
--surface-dark / --line secondary (#16171A / #1F2024)
--line-strong / --hover outline, text (#2A2B30)
--danger / --danger-fg destructive (coral #D97A66)
--focus anel duplo de foco acessível (WCAG)
--radius-full formato pill (9999px)
--duration-fast / --curve-out compressão de toque tátil (200ms)
API do Botão Tipagem TypeScript estrita e propriedades configuráveis para Button e IconButton.
Propriedade Tipo Padrão Descrição
variant "primary" | "accent" | "secondary" | "outline" | "text" | "destructive" "primary" Hierarquia visual da ação.
size "sm" | "md" | "lg" | "xl" "md" Altura 34, 42, 48 e 56px. Alinha perfeitamente à grade de inputs.
loading boolean false Trava o botão, exibe o spinner e anuncia aria-busy.
loadingText string undefined Texto exibido durante a requisição assíncrona.
success boolean false Confirmação tátil: o ícone vira check animado.
successText string undefined Texto exibido na confirmação de sucesso.
leadingIcon ReactNode undefined Ícone antes do rótulo textual.
trailingIcon ReactNode undefined Ícone posicionado após o rótulo.
fullWidth boolean false Ocupa 100% da largura do contêiner mobile.
iconOnly boolean false Quadrado/circular. Prefira o componente IconButton.
asChild boolean false Delega o elemento raiz preservando tipagem e acessibilidade.
Componentes ·
React NativeTypeScriptNativeWindAcessível
Inputs Campos de texto para digitação confortável no celular. Alvo tátil de 48px, rótulo flutuante opcional, suporte a máscaras brasileiras e área de texto auto-expansível com contador de caracteres.
import { Input, TextField, Textarea } from '@/components/ui/input'
No app O componente inserido nas telas reais do aplicativo da Comunidade Manifesto.
9:41
signal_cellular_alt wifi battery_full
Solicitar intercessão Seu pedido é enviado com discrição para a equipe da Sala de Oração.
person
mail check_circle
42/500
No app: formulários e busca no smartphone Inputs mobile precisam de alvos confortáveis (mínimo de 44px de altura) e teclado virtual correto (e-mail, telefone, numérico).A validação acontece com retorno tátil e sem agressividade: o erro não é apenas uma borda colorida, mas uma mensagem instrucional acompanhada de ícone de apoio (WCAG 1.4.1).
InputTextFieldTextareaMasksuseFormValidation
Anatomia As cotas são lidas do CSS do próprio componente: se alguém mudar o componente, os números mudam junto.
search Romanos 8
cancel
48
180
16
Altura 48px
Padding x 16px
Gap 10px
Raio 14px (radius-md)
Fonte 15px
Peso 400
1 Contêiner com borda #2A2B30
2 Ícone prefixo
3 Texto/Placeholder
4 Ação limpar/validação
Matriz de estados Cada célula é o componente real com o estado ligado por CSS e atributos. Nada aqui é imagem ou imitação.
Estado Padrão Com valor Foco Erro Desabilitado
Texto simples
Placeholder
Texto digitado
foco ativo
dado inválido
bloqueado
Com ícone
mail Placeholder
mail Texto digitado
mail foco ativo
mail dado inválido
mail bloqueado
Busca
search Placeholder
search Texto digitado
search foco ativo
search dado inválido
search bloqueado
Senha
lock Placeholder
lock ••••••••
lock foco ativo
lock dado inválido
lock bloqueado
Área de texto
Placeholder
Texto digitado
foco ativo
dado inválido
bloqueado
Tipos Campo de texto simples, busca instantânea com botão de limpar e senha protegida.
person
search
} clearable />
Máscaras brasileiras Formatação nativa de telefone, CPF, CEP e moeda sem travamento de cursor.
call (21) 98765-4321
payments R$ 150,00
mask="phone | currency | cpf | cep"
Com validação Feedback instantâneo: ícone e mensagem de orientação sem depender de envio de formulário.
mail
{{ fieldHelpIcon }} {{ fieldHelpHelp }}
error="Confira o e-mail: formato inválido"
Textarea Área de texto auto-expansível com contador regressivo de caracteres para publicações da igreja.
Edificação para a igreja
{{ areaCount }}
Uso Diretrizes práticas com demonstração visual imediata do que fazer e evitar.
E-mail institucional
ex: membro@manifesto.com
check_circle Faça
Label sempre visível acima do campo. O placeholder mostra um exemplo, não a instrução.
E-mail institucional (some ao digitar)
cancel Evite
Placeholder no lugar do label. Some quando a pessoa começa a digitar e ela esquece o que era.
errorConfira o e-mail: formato inválido
check_circle Faça
Erro que diz como corrigir, no tom da igreja: “Confira o e-mail: formato inválido”.
errorErro: HTTP 422 Unprocessable
cancel Evite
Erro genérico ou código técnico: “Campo inválido”, “Erro 422”. Não orienta a pessoa.
Tokens Tokens de design conectados aos componentes da Comunidade Manifesto.
Token Papel no tema
--input-bg fundo do campo (#16171A)
--input-border borda padrão de repouso (#2A2B30)
--input-focus anel e contorno no foco ativo (#D8D5CD)
--input-error borda e mensagem de validação (#D97A66)
--input-placeholder texto guia suave (#757575)
--radius-md cantos arredondados (14px)
API do Input & TextField Tipagem TypeScript estrita e propriedades configuráveis para Input e Textarea.
Propriedade Tipo Padrão Descrição
label string undefined Rótulo acessível persistente posicionado acima do campo.
placeholder string undefined Exemplo de preenchimento visível enquanto o campo está vazio.
value string "" Valor controlado do campo.
onChangeText (val: string) => void undefined Callback disparado a cada caractere digitado.
leadingIcon ReactNode undefined Ícone prefixo (ex: lupa, envelope, cadeado).
clearable boolean false Exibe o botão de limpar o campo em 1 toque.
mask "phone" | "cpf" | "cep" | "currency" undefined Aplica formatação automática em tempo de digitação.
error string undefined Mensagem de erro explicativa que altera a borda para coral.
success string undefined Mensagem de confirmação positiva acompanhada de check verde.
autoGrow boolean false Permite que o Textarea cresça conforme o texto aumenta.
Componentes ·
React NativeTypeScriptNativeWindAcessível
Select Seleção de opção única com busca contextual, grupos e suporte a ícones. Ideal para alternar traduções da Bíblia (8 versões disponíveis), escolher livros e selecionar horários.
import { Select, SelectItem, SelectTrigger } from '@/components/ui/select'
No app O componente inserido nas telas reais do aplicativo da Comunidade Manifesto.
9:41
signal_cellular_alt wifi battery_full
Leitor Bíblico Alterne entre as 8 traduções sem sair do capítulo.
NAA Nova Almeida Atualizada
arrow_drop_down
ROMANOS 8.28 “Sabemos que todas as coisas cooperam para o bem daqueles que amam a Deus, daqueles que são chamados segundo o seu propósito.”
Traduções no leitor Acesso rápido às 8 traduções históricas e contemporâneas (NAA, ARC, ACF, ARA, NVI, KJA, KJV, ESV).Ao abrir, o modal ou popover do Select oferece busca instantânea por sigla ou nome da versão sem recarregar o texto bíblico.
SelectSelectTriggerSelectItemSelectGroupCombobox
Anatomia As cotas são lidas do CSS do próprio componente: se alguém mudar o componente, os números mudam junto.
NAA Nova Almeida Atualizada
arrow_drop_down
48
180
16
Altura 48px
Padding x 16px
Gap 8px
Raio 14px (radius-md)
Fonte 14px
Chevron 20px
1 Disparador SelectTrigger
2 Badge de versão
3 Texto da opção
4 Ícone indicador
Matriz de estados Cada célula é o componente real com o estado ligado por CSS e atributos. Nada aqui é imagem ou imitação.
Estado Básico Com valor Foco Erro Desabilitado
Padrão
Tradução arrow_drop_down
NAA arrow_drop_down
NAA arrow_drop_down
NAA arrow_drop_down
NAA arrow_drop_down
Hover
Tradução arrow_drop_down
NAA arrow_drop_down
NAA arrow_drop_down
NAA arrow_drop_down
NAA arrow_drop_down
Foco
Tradução arrow_drop_down
NAA arrow_drop_down
NAA arrow_drop_down
NAA arrow_drop_down
NAA arrow_drop_down
Erro
Tradução arrow_drop_down
NAA arrow_drop_down
NAA arrow_drop_down
NAA arrow_drop_down
NAA arrow_drop_down
Seletor de tradução bíblica Toque para abrir a lista suspensa e alternar a tradução instantaneamente no leitor.
Selecione uma tradução para testar a reatividade
Uso Diretrizes práticas com demonstração visual imediata do que fazer e evitar.
Tradução da Bíblia
Escolha a traduçãoarrow_drop_down
check_circle Faça
Placeholder que convida à escolha (“Escolha a tradução”) e label sempre visível.
Sim / Não (evite)arrow_drop_down
cancel Evite
Select para duas opções simples. Sim/não, claro/escuro pedem switch ou segmented control.
Tokens Tokens de design conectados aos componentes da Comunidade Manifesto.
Token Papel no tema
--select-bg fundo da barra e do popover (#16171A / #121316)
--select-border borda sutil do componente (#2A2B30)
--select-hover destaque do item selecionado (#1F2024)
--select-accent marcação em creme da versão ativa (#D8D5CD)
API do Select Tipagem TypeScript estrita e propriedades configuráveis para o Select.
Propriedade Tipo Padrão Descrição
value string undefined Valor selecionado controlado.
onValueChange (value: string) => void undefined Callback disparado ao escolher uma opção.
placeholder string "Selecione..." Texto padrão quando nada está selecionado.
disabled boolean false Desabilita o disparador.
searchable boolean false Ativa o campo de busca no cabeçalho da lista.
Componentes ·
React NativeTypeScriptNativeWindAcessível
Switch, checkbox e radio Os controles de escolha. Cada um responde ao toque do seu jeito: o switch estica o thumb, o checkbox desenha o check, o radio faz o ponto crescer. Hover sempre por tom.
import { Switch, SwitchField, Checkbox, RadioGroup } from '@/components/ui/switch'
No app O componente inserido nas telas reais do aplicativo da Comunidade Manifesto.
9:41
signal_cellular_alt wifi battery_full
FM
Filipe Manifesto Membro ativo · Comunidade Manifesto
Notificações
Lembretes de culto Avisar 2h antes aos domingos
Leitura diária às 7h Lembrete para o plano bíblico
Aparência
Contribuição de Dízimo
Contribuir anonimamente Ocultar meu nome dos relatórios
Perfil Switch é para o que vale na hora: ligou o lembrete, a confirmação chega num toast instantâneo sem botão salvar.A aparência é um segmented control ligado ao tema de verdade: tocar em Escuro ou Claro atualiza a folha de estilo do app imediatamente.
SwitchSegmentedControluseThemeSummaryBlocktoast
Checkout e Visibilidade Ligar 'Contribuir anonimamente' revela dinamicamente os detalhes do recibo e atualiza o estado do formulário com animação tátil e fluida.
SwitchRadioGroupRadioCardBottomSheetButton accent
Switch Liga ou desliga algo com efeito imediato. Segure o clique: o thumb alonga na horizontal e volta quando você solta, como no iOS nativo.
Tamanhos do switch sm · 22px para tabelas e densidade compacta; md · 28px para telas principais.
sm · 22px
md · 28px
size="sm | md"
Anatomia As cotas são lidas do CSS do próprio componente: se alguém mudar o componente, os números mudam junto.
28
115
2
Altura 28px
Padding x 2px
Gap 0
Raio pill (9999px)
Fonte 16px
Peso 400
1 Trilho pill
2 Thumb branco
3 Spinner (só no loading)
Matriz de estados Cada célula é o componente real com o estado ligado por CSS e atributos. Nada aqui é imagem ou imitação.
Estado Desligado Ligado
Padrão
Hover
Foco
Pressionado
Desabilitado
Carregando
progress_activity
progress_activity
Na prática: notificações SwitchField junta rótulo e descrição. A linha toda é clicável e o hover em qualquer ponto reage no trilho.
Notificações da Igreja SALVO AUTOMÁTICO
Lembrete de culto aos domingos Aviso às 16h com link de caronas
Plano de Leitura Bíblica Lembrete diário às 7h
Checkbox Marca itens que só valem após confirmação ou salvamento. O check se desenha suavemente a cada marcação.
Radio e visibilidade Para opções mutuamente exclusivas com título e descrição auxiliar explicativa.
Uso Diretrizes práticas com demonstração visual imediata do que fazer e evitar.
Notificações push
check_circle Faça
Switch para efeito imediato: ligou, já vale na hora. Sem botão de salvar por perto.
Permitir e-mails
cancel Evite
Switch dentro de formulário longo que só vale depois de “Salvar”. A pessoa acha que já mudou.
checkJeremias 38
checkSalmo 23
check_circle Faça
Checkbox quando a escolha é cumulativa: marcar várias leituras do dia.
Opção A única
Opção B única
cancel Evite
Checkbox para escolha única. Se só pode escolher uma opção, use RadioGroup.
Tokens Tokens de design conectados aos componentes da Comunidade Manifesto.
Token Papel no tema
--switch-track-off fundo do switch inativo (#2A2B30)
--switch-track-on fundo do switch ativo (#D8D5CD)
--switch-thumb thumb tátil deslizante (#0C0D10 / #FFFFFF)
--checkbox-border borda da caixa (#2A2B30)
--checkbox-checked preenchimento ao marcar (#D8D5CD)
--radio-dot ponto interno no radio (#D8D5CD)
API dos Controles Tipagem TypeScript estrita e propriedades configuráveis para Switch e Checkbox.
Propriedade Tipo Padrão Descrição
checked boolean false Estado ativo/ligado do controle.
onChange (checked: boolean) => void undefined Callback disparado na alteração de estado.
label string undefined Rótulo acessível da linha.
description string undefined Texto descritivo de apoio abaixo do rótulo.
disabled boolean false Desabilita o clique e reduz a opacidade.
size "sm" | "md" "md" Tamanho do switch (22px ou 28px).
Componentes ·
React NativeTypeScriptNativeWindAcessível
Dropdown Menu Menu contextual de ações rápidas, disparado pelo toque nos três pontinhos. Usado em posts da comunidade para compartilhar, orar junto, copiar texto ou reportar conteúdo.
import { DropdownMenu, DropdownItem } from '@/components/ui/dropdown-menu'
No app O componente inserido nas telas reais do aplicativo da Comunidade Manifesto.
9:41
signal_cellular_alt wifi battery_full
RL Rafael Lima
“Irmãos, peço oração pela minha mãe que passará por uma cirurgia amanhã. Deus é fiel!”
Ações de publicação Menu contextual suspenso ativado pelo toque nos três pontinhos em publicações do feed, versículos destacados e membros.Ações neutras usam tom creme; ações sensíveis (como reportar conteúdo inadequado à liderança) recebem cor destrutiva.
DropdownMenuDropdownItemDropdownSeparatoruseActionSheet
Anatomia As cotas são lidas do CSS do próprio componente: se alguém mudar o componente, os números mudam junto.
content_copyCopiar citação
bookmarkSalvar devocional
48
240
8
Largura 240px
Padding 8px
Raio 16px
Item h 38px
Ícone 16px
Elevação z-50
1 Superfície #121316
2 Item hover #1F2024
3 Separador #1F2024
4 Ação destrutiva
Ações de post da comunidade Toque no botão de opções para abrir o menu contextual suspenso.
Clique em Opções do post para testar
Uso Diretrizes práticas com demonstração visual imediata do que fazer e evitar.
Compartilhar
Apagar
check_circle Faça
Mantenha ações destrutivas (como denunciar ou apagar) no final do menu separadas por linha.
Item 1
Item 2
Item 3
Item 4
Item 5
Item 6
Item 7
cancel Evite
Não adicione mais de 6 itens num mesmo menu para não sobrecarregar o usuário.
Tokens Tokens de design conectados aos componentes da Comunidade Manifesto.
Token Papel no tema
--dropdown-bg fundo do menu flutuante (#121316)
--dropdown-border linha externa de contorno (#2A2B30)
--dropdown-hover fundo do item com foco (#1F2024)
--dropdown-danger ação destrutiva em coral (#D97A66)
API do DropdownMenu Propriedades configuráveis para o DropdownMenu e itens.
Propriedade Tipo Padrão Descrição
open boolean undefined Controle externo de visibilidade.
onOpenChange (open: boolean) => void undefined Callback disparado ao abrir ou fechar.
align "start" | "center" | "end" "end" Alinhamento horizontal em relação ao botão de disparo.
Componentes ·
React NativeTypeScriptNativeWindAcessível
Chips e filtros Filtros compactos e seletores rápidos. Usados no feed da comunidade, no acervo de estudos bíblicos gravados e na agenda de eventos da igreja.
import { Chip, ChipGroup } from '@/components/ui/chip'
No app O componente inserido nas telas reais do aplicativo da Comunidade Manifesto.
9:41
signal_cellular_alt wifi battery_full
Comunidade Manifesto Filtre o feed pelo tipo de edificação:
Devocional “Graça e paz igreja! Lendo Salmo 23 hoje me veio a certeza de descanso…”
Filtros horizontais no mobile Chips compactos (altura de 32 a 36px) permitem filtrar listas extensas com apenas um toque no topo da tela.Suportam seleção única (ex: ver apenas estudos) e seleção cumulativa (ex: múltiplos tópicos).
ChipChipGroupFilterPillScrollView horizontal
Anatomia As cotas são lidas do CSS do próprio componente: se alguém mudar o componente, os números mudam junto.
check Devocional close
36
115
14
Altura 36px
Padding x 14px
Gap 6px
Raio pill (9999px)
Fonte 13px
Peso 500
1 Contêiner pill
2 Ícone de estado
3 Rótulo conciso
4 Borda/preenchimento
Filtros do feed Toque nos chips para alternar as categorias de postagens da comunidade.
Selecione uma categoria para filtrar
Uso Diretrizes práticas com demonstração visual imediata do que fazer e evitar.
Devocional
Estudos
check_circle Faça
Mantenha o rótulo com no máximo 2 palavras para que o chip caiba lado a lado no celular.
Publicações feitas nos últimos sete dias (evite)
cancel Evite
Evite textos longos ou sentenças completas que quebram linha dentro do chip.
Tokens Tokens de design conectados aos componentes da Comunidade Manifesto.
Token Papel no tema
--chip-active-bg fundo do chip selecionado (#D8D5CD)
--chip-active-fg texto do chip selecionado (#0C0D10)
--chip-inactive-border borda em repouso (#2A2B30)
--radius-full formato pill completo
API do Chip Propriedades configuráveis para o Chip e ChipGroup.
Propriedade Tipo Padrão Descrição
selected boolean false Indica se o chip está marcado.
onSelect () => void undefined Callback disparado ao tocar no chip.
icon ReactNode undefined Ícone opcional à esquerda.
removable boolean false Exibe botão X para remover o filtro aplicado.
Componentes ·
React NativeTypeScriptNativeWindAcessível
Data e horário Seletor horizontal de dias e grade completa de turnos de 1h da Sala de Oração (saladeoracao.comunidademanifesto.com). Exibe horários ocupados por outros irmãos e permite reservar ou liberar turnos.
import { DayPicker, TimeSlots } from '@/components/ui/datetime'
No app O componente inserido nas telas reais do aplicativo da Comunidade Manifesto.
9:41
signal_cellular_alt wifi battery_full
Sala de Oração · Agenda Escolha um turno livre de 1h para interceder:
check_circle {{ slotSummary }}
Agendamento da Sala de Oração A grade de horários da Sala de Oração (saladeoracao.comunidademanifesto.com) permite escolher turnos de intercessão contínua 24/7.Horários já ocupados por outros irmãos aparecem riscados na grade para demonstrar atividade contínua da igreja sem frustrar o clique.
DayPickerTimeSlotsslotGridSlotSummaryconfirmTurn
Anatomia As cotas são lidas do CSS do próprio componente: se alguém mudar o componente, os números mudam junto.
20:00
21:00
22:00
42
72
Altura 42px
Largura 72px
Raio 12px
Fonte 14px Mono
Linha 1px
1 Slot selecionado (#D8D5CD)
2 Slot livre (#16171A)
3 Slot ocupado riscado (#757575)
Matriz de estados Cada célula é o componente real com o estado ligado por CSS e atributos. Nada aqui é imagem ou imitação.
Estado Livre Selecionado Ocupado Seu turno
Padrão
19:00
19:00
19:00
19:00
Hover
19:00
19:00
19:00
19:00
Foco
19:00
19:00
19:00
19:00
Grade interativa da Sala de Oração Escolha um dia e toque num horário livre para agendar seu turno de intercessão.
Clique em um horário vago para reservar
Uso Diretrizes práticas com demonstração visual imediata do que fazer e evitar.
20:00
21:00
check_circle Faça
Mostrar horários ocupados riscados na grade. A pessoa vê que a igreja está em oração e escolhe outro turno.
18:00
22:00
cancel Evite
Esconder horários ocupados da grade. Ela pula de 18h para 22h e parece que a sala fecha à noite.
Tokens Tokens de design conectados aos componentes da Comunidade Manifesto.
Token Papel no tema
--slot-selected-bg fundo do turno escolhido (#D8D5CD)
--slot-selected-fg texto do turno escolhido (#0C0D10)
--slot-occupied-fg texto riscado inativo (#757575)
--radius-md arredondamento do botão de hora (12px)
API de Data e Horário Propriedades configuráveis para DayPicker e TimeSlots.
Propriedade Tipo Padrão Descrição
slots Array<{ time: string, available: boolean }> [] Lista completa de turnos do dia.
selectedTime string | null null Horário atualmente selecionado.
onSelect (time: string) => void undefined Callback disparado ao clicar num turno livre.
duration number 60 Duração do turno em minutos.
Componentes ·
React NativeTypeScriptNativeWindAcessível
Cards Contêineres modulares de superfície para organizar informações e mídias. Seguem cantos arredondados generosos (radius-lg / 20px) e borda sutil (#2A2B30). O fundo creme é reservado exclusivamente a itens em grande destaque.
import { Card, CardHeader, CardBody } from '@/components/ui/card'
No app O componente inserido nas telas reais do aplicativo da Comunidade Manifesto.
9:41
signal_cellular_alt wifi battery_full
Versículo do Dia NAA
“Graças, porém, a Deus, que, em Cristo, sempre nos conduz em triunfo…”
2 Coríntios 2.14
DOM 4
Culto de Celebração 18h · Guadalupe, RJ
142 membros confirmados
Cards do aplicativo Contêineres modulares de superfície para organizar informações e mídias no app.Seguem cantos generosos (radius-lg / 20px) e borda sutil (#2A2B30). O fundo creme é reservado exclusivamente ao item de maior destaque (como o Versículo do Dia).
CardCardHeaderCardBodyCardFooterVerseCardEventCard
Anatomia As cotas são lidas do CSS do próprio componente: se alguém mudar o componente, os números mudam junto.
Título do Card Conteúdo descritivo com tipografia ajustada e respiro generoso.
Ação principal
48
180
22
Raio 20px
Padding 22px
Borda 1px solid #2A2B30
Fundo #16171A
Destaque #D8D5CD
1 Superfície
2 Tipografia em camadas
3 Ação contextual
4 Borda sutil
Cards oficiais do aplicativo Composições reais para versículos, estudos, cultos e postagens da igreja.
VERSÍCULO DO DIA “O Senhor é o meu pastor; nada me faltará.” Salmos 23.1 · NAA
Estudo: Romanos 8 Próxima quarta-feira às 20h pelo Google Meet.
Aula ao vivo
Exemplos de composição de superfícies
Uso Diretrizes práticas com demonstração visual imediata do que fazer e evitar.
Destaque Creme
Card Padrão
check_circle Faça
Use o fundo creme apenas no card de maior prioridade da tela (como o versículo do dia).
Creme 1
Creme 2
cancel Evite
Não empilhe múltiplos cards creme na mesma visão; isso anula o destaque visual.
Tokens Tokens de design conectados aos componentes da Comunidade Manifesto.
Token Papel no tema
--card-bg superfície padrão (#16171A)
--card-accent-bg superfície em destaque creme (#D8D5CD)
--card-border borda estrutural (#2A2B30)
--radius-lg cantos arredondados generosos (20px)
API do Card Propriedades configuráveis para o Card e subcomponentes.
Propriedade Tipo Padrão Descrição
variant "surface" | "accent" | "outline" "surface" Estilo e contraste do contêiner.
padding "sm" | "md" | "lg" "md" Espaçamento interno do card.
interactive boolean false Adiciona feedback de toque e hover.
Componentes ·
React NativeTypeScriptNativeWindAcessível
Badges e tags Indicadores visuais de status, categoria e filtros. Identificam tipos de publicações no feed (devocional, testemunho, oração), transmissões ao vivo e presenças confirmadas.
import { Badge, StatusBadge } from '@/components/ui/badge'
No app O componente inserido nas telas reais do aplicativo da Comunidade Manifesto.
9:41
signal_cellular_alt wifi battery_full
DEVOCIONAL SALMO 23
O descanso no meio da tempestade Publicado por Pr. Marcos hoje às 08:30
check_circleConfirmado fiber_manual_recordAo vivo
Rótulos e status de conteúdo Badges comunicam o tipo de conteúdo (Devocional, Estudo, Oração) e o status atual da atividade (Ao vivo, Gravação, Confirmado).Sempre combinam ícone e texto para garantir clareza visual e acessibilidade para pessoas daltônicas (WCAG).
BadgeStatusBadgeTagTypePill
Anatomia As cotas são lidas do CSS do próprio componente: se alguém mudar o componente, os números mudam junto.
bookmarkDEVOCIONAL
24
115
10
Altura 24px
Padding x 10px
Fonte 11px Mono
Raio 6px / 12px
Ícone 14px
1 Contêiner com borda
2 Tipografia em caixa alta
3 Ícone de reforço semântico
Tons e variantes de status Rótulos com tipografia mono para categorias e badges arredondados para status dinâmicos.
DEVOCIONAL TESTEMUNHO ORAÇÃO check_circleConfirmado fiber_manual_recordAo vivo
Exemplos de badges do app
Uso Diretrizes práticas com demonstração visual imediata do que fazer e evitar.
checkConfirmado
check_circle Faça
Ícone e texto juntos. O status fica claro até em telas monocromáticas ou sem cor.
cancel Evite
Bolinha colorida sozinha para indicar status. Sem texto, ninguém tem certeza do significado.
Tokens Tokens de design conectados aos componentes da Comunidade Manifesto.
Token Papel no tema
--badge-primary-bg fundo de destaque creme (#D8D5CD)
--badge-neutral-border borda discreta de tag (#2A2B30)
--status-success verde suave institucional (#8DB596)
--status-live coral suave para transmissões (#D97A66)
API do Badge Propriedades configuráveis para Badge e StatusBadge.
Propriedade Tipo Padrão Descrição
variant "default" | "outline" | "accent" "default" Estilo visual do badge.
status "confirmed" | "pending" | "live" | "recorded" undefined Semântica de status com ícone correspondente.
icon ReactNode undefined Ícone opcional acoplado ao rótulo.
Componentes ·
React NativeTypeScriptNativeWindAcessível
Modal e bottom sheet Painéis sobrepostos para escolhas contextuais e diálogos de confirmação. No smartphone, o Bottom Sheet sobe suavemente pela parte inferior com suporte a gestos.
import { BottomSheet, Modal, Dialog } from '@/components/ui/sheet'
No app O componente inserido nas telas reais do aplicativo da Comunidade Manifesto.
9:41
signal_cellular_alt wifi battery_full
Tradução e Configurações Ações contextuais e confirmações de ações críticas.
Bottom sheet vs Modal No smartphone, use Bottom Sheet para escolhas contextuais e seleções que partem da parte inferior da tela com arrasto para fechar.Use Diálogo (Modal centralizado) exclusivamente para confirmações de ações irreversíveis (como liberar turno agendado ou sair da conta).
BottomSheetModalResponsiveModalDialoguseSheet
Anatomia As cotas são lidas do CSS do próprio componente: se alguém mudar o componente, os números mudam junto.
Escolha a versão da Bíblia
Nova Almeida Atualizada (NAA)
48
180
20
Raio topo 24px
Puxador 36px x 4px
Padding 20px
Backdrop blur(6px)
Elevação z-50
1 Puxador táctil
2 Cabeçalho com título
3 Conteúdo contextual
4 Backdrop com desfoque
Diálogo e sheet interativos Toque nos botões para abrir a demonstração funcional com animação real de subida.
Clique para testar a sobreposição
Uso Diretrizes práticas com demonstração visual imediata do que fazer e evitar.
Liberar turno de oração?
check_circle Faça
Título em pergunta nas confirmações e verbo claro no botão: “Sim, liberar”, “Manter turno”.
Cancelar turno?
cancel Evite
“OK” e “Cancelar” numa confirmação de cancelamento. Ninguém sabe qual cancela o quê.
Tokens Tokens de design conectados aos componentes da Comunidade Manifesto.
Token Papel no tema
--sheet-bg fundo do painel inferior (#16171A)
--sheet-drag-handle puxador cinza superior (#757575)
--overlay-backdrop escurecimento do fundo com blur (rgba(0,0,0,0.65))
--radius-xl cantos superiores arredondados (24px)
API do BottomSheet & Modal Propriedades configuráveis para controle de abertura e transições.
Propriedade Tipo Padrão Descrição
open boolean false Controla a exibição da folha ou modal.
onOpenChange (open: boolean) => void undefined Callback disparado ao abrir ou fechar.
title string undefined Título de cabeçalho do painel.
snapPoints string[] ["50%", "90%"] Alturas permitidas ao arrastar no celular.
Componentes ·
React NativeTypeScriptNativeWindAcessível
Toast e alerta Notificações temporárias de feedback e alertas inline persistentes. O Toast confirma cópia de chave Pix, envio de devocional e agendamentos.
import { toast, Toaster, Alert } from '@/components/ui/toast'
No app O componente inserido nas telas reais do aplicativo da Comunidade Manifesto.
9:41
signal_cellular_alt wifi battery_full
Disparar Notificações Toasts fornecem confirmação imediata sem bloquear o fluxo.
check_circle {{ demoToast }}
Toast de confirmação Toast é passageiro (dura de 2 a 3 segundos) e indica sucesso imediato: chave Pix copiada, presença confirmada, comentário postado.Em contraste, o Alert inline é permanente e informa condições estruturais da conexão ou da aplicação.
toast()ToasterAlertBanneruseToast
Anatomia As cotas são lidas do CSS do próprio componente: se alguém mudar o componente, os números mudam junto.
check_circle Chave Pix copiada com sucesso
48
180
1418
Altura 48px
Padding 14px 18px
Fundo #FFFFFF
Texto #0C0D10
Duração 2600ms
1 Fundo branco puro
2 Texto de alto contraste
3 Ícone semântico
4 Sombra flutuante
Disparo funcional de Toasts Clique nos botões para disparar toasts reais no rodapé da página.
Clique para disparar a notificação
Uso Diretrizes práticas com demonstração visual imediata do que fazer e evitar.
checkTurno confirmado!
check_circle Faça
Texto curto que diz exatamente o que aconteceu: “Turno confirmado!”. O detalhe vai no corpo.
Erro crítico: sua conta foi desconectada (some em 2s)
cancel Evite
Informação crítica e impeditiva em toast temporário. Se a pessoa piscar, ela perde o aviso.
Tokens Tokens de design conectados aos componentes da Comunidade Manifesto.
Token Papel no tema
--toast-bg fundo de alto contraste (#FFFFFF)
--toast-fg texto escuro legível (#0C0D10)
--toast-shadow sombra suave profunda (0 12px 32px rgba(0,0,0,0.5))
--toast-duration tempo de permanência em tela (2600ms)
API do Toast Métodos e propriedades do gerenciador de notificações.
Propriedade Tipo Padrão Descrição
title string undefined Mensagem principal de confirmação.
description string undefined Texto secundário explicativo.
action { label: string, onClick: () => void } undefined Botão de ação rápida dentro do toast.
duration number 2600 Tempo em milissegundos antes de desaparecer.
Componentes ·
React NativeTypeScriptNativeWindAcessível
Tabs e segmentos Alternância de visões relacionadas na mesma tela. Segmentado tipo pílula com indicador deslizante fluido e abas sublinhadas.
import { Tabs, TabsList, TabsTrigger } from '@/components/ui/tabs'
No app O componente inserido nas telas reais do aplicativo da Comunidade Manifesto.
9:41
signal_cellular_alt wifi battery_full
Declaração Confessional
{{ utabContent }}
Segmentado e abas de conteúdo O Segmented Control divide visões irmãs de alta frequência (ex: Capítulos vs Artigos da fé) com um indicador deslizante fluido.Abas sublinhadas (Underline Tabs) organizam seções de leitura e históricos de pedidos.
TabsTabsListTabsTriggerSegmentedControlAnimatedIndicator
Anatomia As cotas são lidas do CSS do próprio componente: se alguém mudar o componente, os números mudam junto.
Capítulos
Artigos
44
180
Altura 44px
Raio pill (9999px)
Respiro 3px
Animação 250ms cúbica
Borda 1px solid #2A2B30
1 Trilho com fundo escuro
2 Indicador deslizante creme
3 Texto com contraste invertido
Segmentado com indicador animado Toque nas abas para alternar a visão da declaração confessional com animação fluida.
Clique para alternar o segmento
Uso Diretrizes práticas com demonstração visual imediata do que fazer e evitar.
Capítulos Artigos
check_circle Faça
Rótulos curtos (1 a 2 palavras) que descrevem o conteúdo: “Capítulos”, “Artigos”.
Passo 1 → Passo 2 → Passo 3
cancel Evite
Tabs como etapas consecutivas de um fluxo. Passo a passo pede um Stepper com botão de avançar.
Tokens Tokens de design conectados aos componentes da Comunidade Manifesto.
Token Papel no tema
--tabs-track trilho escuro (#16171A)
--tabs-thumb indicador ativo em creme (#D8D5CD)
--tabs-indicator-ease curva cubic-bezier(.2,.8,.2,1)
API de Tabs Propriedades configuráveis para Tabs e SegmentedControl.
Propriedade Tipo Padrão Descrição
value string undefined Identificador da aba atualmente ativa.
onValueChange (value: string) => void undefined Callback disparado ao tocar em outra aba.
variant "segmented" | "underline" "segmented" Estilo visual das abas.
Componentes ·
React NativeTypeScriptNativeWindAcessível
Navegação Três peças levam o membro aonde ele quer ir: Navbar no topo, TabBar no rodapé do app e Sidebar no painel administrativo/web. Todas mudam de layout pela largura do próprio container, funcionando iguais numa página real e dentro de qualquer moldura.
import { Navbar, TabBar, Sidebar, Avatar, AvatarGroup } from '@/components/ui/navigation'
No app O componente inserido nas telas reais do aplicativo da Comunidade Manifesto.
9:41
signal_cellular_alt wifi battery_full
FM
Comunidade Manifesto Quinta-feira · 4 de Out
HOJE NO APP Aba ativa: Início
Versículo do Dia · 2 Co 2.14 A TabBar na base permite alternar instantaneamente entre a Bíblia, o plano de leitura e o feed sem perder o contexto.
Equipe da Sala de Oração 14 intercessores escalados
FM ML AR +11
home Início
menu_book Bíblia
task_alt Plano
forum Comunidade
menu Mais
No app: Navbar e TabBar convivem A navegação no app móvel da Comunidade Manifesto divide papéis claros: a TabBar fixa na base segura os 5 destinos diários (Início, Bíblia, Plano, Comunidade, Mais) ao alcance confortável do polegar.A Navbar no topo ancora a identidade do membro com seu Avatar de perfil, saudações e acesso direto às notificações de culto e intercessão.Em telas de segundo nível (como a leitura de um capítulo ou um estudo específico), a TabBar se recolhe suavemente para dar imersão total ao texto da Palavra.
TabBarNavbarAvatarAvatarGroupSafeAreauseScrollDirection
Qual usar Estrutura de deslocamento e hierarquia conforme a tela e dispositivo.
TabBar App Nativo
Mobile primário Barra inferior fixa com 3 a 5 destinos principais. Sempre visível nas telas raiz do aplicativo para navegação rápida com uma mão.
Navbar Topo
Topo (Mobile & Desktop) Cabeçalho com logo, avatar, busca e ações contextuais. No mobile inclui botão 'Voltar' em subpáginas; no desktop segura o menu horizontal.
Sidebar Web / Tablet
Desktop & Tablet Painel lateral retrátil com seções agrupadas para liderança, gestão da Sala de Oração, secretaria e ministérios da igreja.
Anatomia As cotas são lidas do CSS do próprio componente: se alguém mudar o componente, os números mudam junto.
home Início
menu_book Bíblia
task_alt Plano
forum Comunidade
menu Mais
64
340
Altura 64px
Largura 340px
Abas 5 fixas
Ícone 22px
Rótulo 10px
Safe area pb-safe (20px)
1 Barra inferior
2 Ícone ativo
3 Rótulo persistente
4 Indicador de aba ativa
5 Safe area do iOS
Matriz de estados Cada célula é o componente real com o estado ligado por CSS e atributos. Nada aqui é imagem ou imitação.
Estado Inativo Hover Foco Ativo Com novidade
TabBar Item
home Início
home Início
home Início
home Início
home Início
Navbar Link
Estudos
Estudos
Estudos
Estudos
Estudos
Sidebar Item
volunteer_activism Sala de Oração
volunteer_activism Sala de Oração
volunteer_activism Sala de Oração
volunteer_activism Sala de Oração
volunteer_activism Sala de Oração NOVO
Navbar · desktop e tablet Barra superior institucional com logo Manifesto, busca global com atalho ⌘K, notificações e avatar do membro.
adjust Manifesto
Início Bíblia Estudos Sala de Oração Declaração
search Buscar estudo, tema... ⌘K
FM
Barra de cabeçalho completa para telas amplas
Navbar · mobile (duas variações) Variação raiz (identidade e notificações) versus variação interna de leitura bíblica ou estudo (com botão Voltar e ações).
FM
Comunidade Manifesto
Romanos 8 · NAA
Cabeçalho responsivo adaptado ao contexto do app
Avatar e AvatarGroup Monogramas estilizados, fotos, bolinha de status ativo e sobreposição em grupo com corte para discipulado e oração.
xs · 24px
FM
sm · 32px
FM
md · 40px
FM
lg · 48px
FM
xl · 64px
FM
AvatarGroup · Comunhão e Equipes Sobreposição de membros com borda de corte e contador de excedente.
FM ML AR CS +18
Avatares e grupos de membros da igreja
Uso Diretrizes práticas com demonstração visual imediata do que fazer e evitar.
InícioBíbliaPlanoComunidadeMais
check_circle Faça
No app, mantenha até cinco destinos na TabBar fixa na base. O que sobrar mora na aba Mais ou no Perfil.
menuMenu com 18 opções ocultas
cancel Evite
Não esconda os destinos principais da igreja num menu hambúrguer escondido. O que o membro mais usa precisa estar à vista.
FM
check_circle Faça
Utilize avatares com monograma de fallback e status verde quando o intercessor ou membro estiver ativo na comunidade.
TabBar 1 (Início · Bíblia · Feed)
TabBar 2 (Sub-abas empilhadas)
cancel Evite
Não empilhe duas barras de abas concorrentes na mesma tela; gera confusão cognitiva de hierarquia.
Tokens Tokens de design conectados aos componentes da Comunidade Manifesto.
Token Papel no tema
--tabbar-bg fundo da barra de abas (#0C0D10)
--tabbar-active-fg ícone e rótulo ativo (#D8D5CD)
--tabbar-inactive-fg ícone e rótulo inativo (#757575)
--navbar-bg cabeçalho da aplicação (#121316)
--safe-area-bottom respiro inferior de home indicator (pb-safe)
--avatar-bg superfície padrão de avatar (#D8D5CD)
API da Navegação Propriedades configuráveis para TabBar, Navbar, Avatar e AvatarGroup.
Propriedade Tipo Padrão Descrição
activeTab "home" | "bible" | "plan" | "feed" | "more" "home" Aba selecionada no rodapé.
onChange (tab: string) => void undefined Callback disparado ao tocar em outra aba.
safeArea boolean true Aplica o padding inferior automático de Safe Area.
badgeCount number | boolean undefined Exibe ponto verde ou contagem de novidades na aba.
Componentes ·
React NativeTypeScriptNativeWindAcessível
Loading e esqueletos Estados de carregamento sem pulos de layout. Spinner para ações imediatas no botão e Skeleton com animação Shimmer para listas e cartões.
import { Skeleton, SkeletonCard, Spinner } from '@/components/ui/skeleton'
No app O componente inserido nas telas reais do aplicativo da Comunidade Manifesto.
9:41
signal_cellular_alt wifi battery_full
Carregando Feed
Pr
Pr. Marcos Há 15 minutos
“Bom dia igreja! O culto desta noite será transmitido ao vivo às 19:30.”
Esqueleto com a forma exata Dois jeitos de dizer 'tá chegando'. Spinner para ação curta no botão; Skeleton para quando a geometria do conteúdo já é conhecida.O layout nunca pula ou quebra a rolagem quando o dado chega: a transição cruza o esqueleto e o conteúdo no mesmo lugar.
SkeletonSkeletonGroupSkeletonCardSpinnerShimmer
Anatomia As cotas são lidas do CSS do próprio componente: se alguém mudar o componente, os números mudam junto.
48
180
Linha 12px
Avatar 40px
Shimmer 1400ms
Curva linear infinite
Raio pill / md
1 Forma idêntica ao conteúdo
2 Shimmer animado
3 Sem salto vertical
Transição do esqueleto ao conteúdo Toque no botão para alternar entre o esqueleto animado e o conteúdo real carregado.
progress_activity
Clique para alternar o estado de loading
Uso Diretrizes práticas com demonstração visual imediata do que fazer e evitar.
check_circle Faça
Skeleton com a mesma geometria do conteúdo final. Quando os dados chegam, nada pula de lugar.
progress_activity
cancel Evite
Spinner solto no centro da tela para carregar uma lista inteira. O usuário não sabe o que esperar.
Tokens Tokens de design conectados aos componentes da Comunidade Manifesto.
Token Papel no tema
--skeleton-bg fundo base do esqueleto (#1F2024)
--skeleton-shimmer brilho translúcido em movimento (#2A2B30)
--spinner-track trilho circular a 20% de opacidade
API de Loading Propriedades configuráveis para Skeleton e Spinner.
Propriedade Tipo Padrão Descrição
loading boolean true Indica se deve exibir o esqueleto ou o conteúdo filho.
lines number 3 Quantidade de linhas de texto do esqueleto.
Padrões Manifesto ·
React NativeTypeScriptNativeWindAcessível
Card de Versículo O ápice visual de cada dia no app. Em tom Branco Creme (#D8D5CD), tipografia Geist 500 e botão de compartilhamento com 1 toque.
import { VerseCard } from '@/features/verse'
Destaque do versículo diário Superfície com o maior contraste da tela inicial para colocar a Palavra de Deus em evidência.
VERSÍCULO DO DIA NAA
“Graças, porém, a Deus, que, em Cristo, sempre nos conduz em triunfo e, por meio de nós, manifesta a fragrância do seu conhecimento em todos os lugares.”
2 Coríntios 2.14
Clique em Compartilhar para copiar o versículo
Padrões Manifesto ·
React NativeTypeScriptNativeWindAcessível
Plano de Leitura Anual A Bíblia lida em 1 ano em ordem cronológica (365 dias). Check em cada leitura diária, percentual do ano concluído e registro da sequência ininterrupta de dias.
import { ReadingPlanCard, ReadingCheck } from '@/features/plan'
Painel do dia atual (Dia 275) Marque as três leituras do dia para concluir a meta de hoje e atualizar a barra de progresso.
LEITURA DE HOJE · DIA 275 Quinta, 1 de outubro
{{ readLabel }} leituras feitas
menu_book
Clique nos checks para atualizar o progresso
Padrões Manifesto ·
React NativeTypeScriptNativeWindAcessível
Post da Comunidade Card de publicação com ações táteis de intercessão e comunhão. Substitui o 'like' mundano por 'Estou orando' ou 'Amém'.
import { CommunityPostCard } from '@/features/feed'
Publicação de oração com contagem reativa Toque em 'orando' para testar a contagem reativa da comunidade.
RL
Rafael Lima Membro · Há 2 horas
ORAÇÃO
“Igreja, peço oração pela cirurgia da minha mãe nesta quinta-feira. Cremos no poder de Deus operando restauração!”
Clique em orando para interceder
Padrões Manifesto ·
React NativeTypeScriptNativeWindAcessível
Dízimos e Ofertas Contribuição generosa, transparente e segura. Seleção rápida de valor, geração instantânea de código Pix Copia e Cola e QR Code para contribuir pelo app do banco.
import { GiveCheckout, PixGenerator } from '@/features/give'
Checkout simplificado Pix Escolha a destinação, o valor e copie a chave Pix com um toque.
Finalidade da contribuição
Valor rápido
Chave Pix (CNPJ)
34.123.456/0001-78
Comunidade Manifesto · CNPJ Oficial · Guadalupe, RJ
Clique em Copiar Pix para testar
Produto Protótipo Tudo funciona: login, checks, destaque de versículo, publicar, comentar, pedido de oração, turnos, declaração com busca, Pix. Pule para qualquer tela pela lista.
{{ g.title }}
Tela {{ protoInfo.label }} {{ protoInfo.d }}
Experimente
touch_app{{ t }}
Substitui {{ protoInfo.source }}
Produto Fluxograma do app Todas as telas, sheets e ações, da entrada até cada módulo. Clique num nó com seta para abrir aquela tela no protótipo.
{{ l.label }}
01 · Entrada
arrow_forward
02 · Mapa de telas
Tab bar · 5 abas
{{ sb }}
03 · Jornadas principais
{{ j.n }}{{ j.t }}
{{ st.t }} arrow_forward
04 · O que vem dos sites atuais
{{ i.from }} arrow_forward {{ i.to }} {{ i.note }}
check_circle{{ toast }}