Orixá Design System
O guia oficial de estilo e biblioteca de componentes do T. U. Senhora do Rosário. Construído sob a estética do Sacred Modernism, combina tradição ancestral com interfaces digitais limpas e imersivas. Esta página é renderizada com os próprios tokens --color-* do projeto — tudo aqui é fonte da verdade.
Introdução ao Estilo
A identidade do T. U. Senhora do Rosário é fundamentada na união de materiais rústicos e acolhimento ancestral com o minimalismo contemporâneo. No ambiente digital, isso se reflete em:
Sacred Modernism
Uso equilibrado de tipografia de exibição serifada (Cormorant Garamond) para títulos com alto contraste em relação a uma tipografia geométrica sans-serif corporativa (Inter) nos textos de leitura e botões.
Dark Glassmorphism
Painéis escuros translúcidos com bordas ultra finas iluminadas pelo mouse (Efeito Vela) criam um tom intimista de solenidade espiritual e recolhimento de axé.
Famílias de Cor (Foundation Tokens)
Fonte da verdade: design-system/foundation/color.json. O sistema é composto por 4 famílias aprovadas (marca + superfícies) e 4 famílias funcionais provisórias (success / error / warning / info). Cada escala possui 11 tons (050 → 950) com anchor marcado, derivado matematicamente em OKLCH.
Aprovadas
4 famílias · status: approvedTerracotta
Aprovadaanchor · 600Primary · brandFamília principal da marca, derivada do terracota profundo documentado. Usada para CTAs primários, foco dourado ancestral e estados ativos.
Variáveis CSS: --color-terracotta-{grade} · Fonte: Documentação do projeto
Ancestral Gold
Aprovadaanchor · 500Accent · highlightFamília de destaque, derivada do dourado ancestral documentado. Realces, ícones rituais, brilhos, gradientes com parcimônia.
Variáveis CSS: --color-ancestral-gold-{grade} · Fonte: Documentação do projeto
Parchment
Aprovadaanchor · 050Surface · lightFamília de superfícies claras, derivada do creme off-white documentado. Fundos de páginas, cards de conteúdo, papel envelhecido.
Variáveis CSS: --color-parchment-{grade} · Fonte: Documentação do projeto
Warm Neutral
Aprovadaanchor · 900Neutral · inkFamília neutra aquecida; incorpora os tons escuros documentados do projeto. Texto, divisórias, glassmorphism escuro, molduras.
Variáveis CSS: --color-warm-neutral-{grade} · Fonte: Documentação do projeto
Funcionais (provisórias)
4 famílias · status: provisionalEmber
Provisóriaanchor · 600Danger · errorFamília funcional provisória para erro, alerta destrutivo e estados críticos. Substitui o uso pontual de red-500.
Variáveis CSS: --color-ember-{grade} · Fonte: Família funcional proposta
Sun
Provisóriaanchor · 500Warning · pendingFamília funcional provisória para avisos. Atenção, confirmação pendente, mensagens neutras positivas.
Variáveis CSS: --color-sun-{grade} · Fonte: Família funcional proposta
River
Provisóriaanchor · 600Info · contextFamília funcional provisória para informação. Mensagens de contexto, links informativos, badges neutros de status.
Variáveis CSS: --color-river-{grade} · Fonte: Família funcional proposta
Color Roles (Semantic Tokens)
Fonte da verdade: design-system/semantic/color.light.json. Cada token semântico é uma referência a um foundation token (ex.: {color.base.parchment.050}). Componentes consomem apenas estes roles, nunca os foundation tokens diretamente.
Background
4 tokens · Fundos de páginas e seções.color.semantic.background.canvasAprovadaFundo principal das páginas.
color.semantic.background.subtleAprovadaFundo secundário de baixa ênfase.
color.semantic.background.inverseAprovadaFundo de alto contraste ou seção invertida.
color.semantic.background.brandAprovadaFundo institucional de marca.
Surface
5 tokens · Superfícies de cards, painéis e containers.color.semantic.surface.defaultAprovadaSuperfície padrão de cards e painéis.
color.semantic.surface.subtleAprovadaSuperfície discreta.
color.semantic.surface.raisedAprovadaSuperfície elevada.
color.semantic.surface.inverseAprovadaSuperfície invertida.
color.semantic.surface.brand-subtleAprovadaSuperfície suave associada à marca.
Text
7 tokens · Cores de texto conforme hierarquia e contexto.color.semantic.text.primaryAprovadaTexto principal.
color.semantic.text.secondaryAprovadaTexto secundário.
color.semantic.text.tertiaryAprovadaTexto de menor ênfase.
color.semantic.text.inverseAprovadaTexto sobre fundos escuros.
color.semantic.text.brandAprovadaTexto institucional ou de marca.
color.semantic.text.linkAprovadaLinks de texto.
color.semantic.text.disabledAprovadaTexto desabilitado.
Icon
5 tokens · Cores de ícones.color.semantic.icon.primaryAprovadaÍcone principal.
color.semantic.icon.secondaryAprovadaÍcone secundário.
color.semantic.icon.inverseAprovadaÍcone sobre fundo escuro.
color.semantic.icon.brandAprovadaÍcone de destaque institucional.
color.semantic.icon.disabledAprovadaÍcone desabilitado.
Border
5 tokens · Divisórias e contornos.color.semantic.border.subtleAprovadaDivisória ou borda discreta.
color.semantic.border.defaultAprovadaBorda padrão.
color.semantic.border.strongAprovadaBorda de alta ênfase.
color.semantic.border.focusAprovadaBorda de foco.
color.semantic.border.errorProvisóriaBorda de erro.
Action
14 tokens · Estados de elementos interativos (botões, links).color.semantic.action.primary.defaultAprovadaAção primária padrão.
color.semantic.action.primary.hoverAprovadaAção primária em hover.
color.semantic.action.primary.activeAprovadaAção primária ativa.
color.semantic.action.primary.disabledAprovadaAção primária desabilitada.
color.semantic.action.secondary.defaultAprovadaAção secundária padrão.
color.semantic.action.secondary.hoverAprovadaAção secundária em hover.
color.semantic.action.secondary.activeAprovadaAção secundária ativa.
color.semantic.action.secondary.disabledAprovadaAção secundária desabilitada.
color.semantic.action.tertiary.defaultAprovadaAção terciária padrão.
color.semantic.action.tertiary.hoverAprovadaAção terciária em hover.
color.semantic.action.tertiary.activeAprovadaAção terciária ativa.
color.semantic.action.tertiary.disabledAprovadaAção terciária desabilitada.
color.semantic.action.on-primaryAprovadaConteúdo sobre ação primária.
color.semantic.action.on-secondaryAprovadaConteúdo sobre ação secundária.
Feedback
16 tokens · Estados de feedback (sucesso, aviso, erro, informação).color.semantic.feedback.success.subtleProvisóriaFundo suave de sucesso.
color.semantic.feedback.success.defaultProvisóriaCor padrão de sucesso.
color.semantic.feedback.success.strongProvisóriaCor forte de sucesso.
color.semantic.feedback.success.on-strongProvisóriaConteúdo sobre sucesso forte.
color.semantic.feedback.warning.subtleProvisóriaFundo suave de aviso.
color.semantic.feedback.warning.defaultProvisóriaCor padrão de aviso.
color.semantic.feedback.warning.strongProvisóriaCor forte de aviso.
color.semantic.feedback.warning.on-strongProvisóriaConteúdo sobre aviso forte.
color.semantic.feedback.error.subtleProvisóriaFundo suave de erro.
color.semantic.feedback.error.defaultProvisóriaCor padrão de erro.
color.semantic.feedback.error.strongProvisóriaCor forte de erro.
color.semantic.feedback.error.on-strongProvisóriaConteúdo sobre erro forte.
color.semantic.feedback.info.subtleProvisóriaFundo suave de informação.
color.semantic.feedback.info.defaultProvisóriaCor padrão de informação.
color.semantic.feedback.info.strongProvisóriaCor forte de informação.
color.semantic.feedback.info.on-strongProvisóriaConteúdo sobre informação forte.
Focus
2 tokens · Indicadores de foco acessível.color.semantic.focus.ringAprovadaAnel de foco visível.
color.semantic.focus.ring-offsetAprovadaSeparação entre o foco e o componente.
Overlay
2 tokens · Camadas atmosféricas e overlays.color.semantic.overlay.scrimAprovadaBase cromática de scrims e modais.
color.semantic.overlay.highlightAprovadaLuz de destaque e efeitos atmosféricos.
Matriz de Contraste (Texto × Fundo)
Cruzamento entre os principais roles de texto e fundo, com o indicador de aprovação seguindo WCAG 2.1 (AA = ratio ≥ 4.5 para texto normal; AAA = ratio ≥ 7). Todos os pares marcados como AA ou AAA estão aprovados para uso em produção.
| Texto \ Fundo | canvas (parchment.050)#FAF5EC | subtle (parchment.100)#EEEBE4 | inverse (warm-neutral.900)#2A2318 | inverse dark (warm-neutral.950)#0D0B08 | brand (terracotta.600)#8B3A2A |
|---|---|---|---|---|---|
primary (warm-neutral.950) #0D0B08 | AAA18.10:1 | AAA16.51:1 | FAIL1.27:1 | FAIL1.00:1 | FAIL2.56:1 |
secondary (warm-neutral.800) #3F3729 | AAA10.80:1 | AAA9.86:1 | FAIL1.32:1 | FAIL1.68:1 | FAIL1.53:1 |
tertiary (warm-neutral.700) #594E3D | AAA7.49:1 | AA6.83:1 | FAIL1.91:1 | FAIL2.42:1 | FAIL1.06:1 |
brand (terracotta.700) #7F3627 | AAA7.86:1 | AAA7.17:1 | FAIL1.82:1 | FAIL2.30:1 | FAIL1.11:1 |
disabled (warm-neutral.500) #8E816E | FAIL3.51:1 | FAIL3.20:1 | FAIL4.08:1 | AA5.16:1 | FAIL2.02:1 |
inverse (parchment.050) #FAF5EC | FAIL1.00:1 | FAIL1.10:1 | AAA14.30:1 | AAA18.10:1 | AAA7.07:1 |
Nota: os valores de ratio são calculados em espaço sRGB segundo a fórmula WCAG 2.1 relativa (luminance relative). Para os tons não aprovados (★), considere uso restrito a textos grandes (≥ 18px / bold ≥ 14px) ou cenários decorativos.
Tipografia
Fonte da verdade: design-system/foundation/typography.tokens.json. Tokens de font-family, font-weight, font-size, line-height e letter-spacing — além de 7 composições tipográficas prontas. Apenas font-family está aprovada.
Font Family
2 tokens · ambas approvedfont-family.headingAprovada"Cormorant Garamond", Georgia, seriffont-family.bodyAprovadaInter, Arial, sans-serifFont Weight
4 tokens · todas provisóriasfont-weight.regularProvisóriafont-weight.mediumProvisóriafont-weight.semiboldProvisóriafont-weight.boldProvisóriaFont Size
11 tokens · todos provisóriosfont-size.100font-size.200font-size.300font-size.400font-size.500font-size.600font-size.700font-size.800font-size.900font-size.1000font-size.1100Line Height
4 tokens · todos provisóriosline-height.tightProvisóriaA Umbanda é uma religião monoteísta e genuinamente brasileira, fundada sob a caridade espiritual e a luz curadora dos guias de lei.
line-height.snugProvisóriaA Umbanda é uma religião monoteísta e genuinamente brasileira, fundada sob a caridade espiritual e a luz curadora dos guias de lei.
line-height.normalProvisóriaA Umbanda é uma religião monoteísta e genuinamente brasileira, fundada sob a caridade espiritual e a luz curadora dos guias de lei.
line-height.relaxedProvisóriaA Umbanda é uma religião monoteísta e genuinamente brasileira, fundada sob a caridade espiritual e a luz curadora dos guias de lei.
Letter Spacing
4 tokens · todos provisóriosletter-spacing.tightProvisóriaGira de Caboclos
letter-spacing.normalProvisóriaGira de Caboclos
letter-spacing.wideProvisóriaGira de Caboclos
letter-spacing.capsProvisóriaGira de Caboclos
Composições tipográficas
7 estilos compostos · todos provisóriostypography.display-largeProvisóriatypography.display-mediumProvisóriatypography.heading-largeProvisóriatypography.heading-mediumProvisóriatypography.body-largeProvisóriatypography.body-mediumProvisóriatypography.label-mediumProvisóriaEspaçamento
Fonte da verdade: design-system/foundation/space.tokens.json. Escala de espaçamento baseada no grid documentado de 8px, com 14 tokens semânticos que preenchem containers, gaps, paddings e margins com consistência. Apenas os valoresApprovedestão documentados no projeto — os demais são propostos pela escala derivada.
Space Scale
14 tokens · 5 approved · 9 provisionalspace.000Aprovadaspace.025Provisóriaspace.050Provisóriaspace.100Aprovadaspace.150Provisóriaspace.200Aprovadaspace.300Aprovadaspace.400Provisóriaspace.500Provisóriaspace.600Provisóriaspace.800Provisóriaspace.1000Aprovadaspace.1200Provisóriaspace.1600ProvisóriaAplicação em seções
como os tokens aparecem em componentes reaispadding: space.600 (48px)Seção de conteúdo padrãopadding: space.300 (24px)Card de conteúdogap: space.100 (8px) · space.200 (16px)Stack vertical de itensShape (Radius & Border)
Fonte da verdade: design-system/foundation/shape.tokens.json. Tokens de radius (8 níveis) e border-width (4 níveis). Todos estão Provisional — aguardam validação de design.
Radius Scale
8 tokens · todas provisóriasradius.noneProvisória0pxBordas retas, divisórias.
radius.050Provisória2pxBotões, inputs, glassmorphism.
radius.100Provisória4pxBadges pequenos, tags.
radius.200Provisória8pxCards de conteúdo, painéis.
radius.300Provisória12pxModais, drawers, popovers.
radius.400Provisória16pxContainers generosos, hero boxes.
radius.500Provisória24pxSuperfícies orgânicas, ilustrações.
radius.pillProvisória999pxBotões pílula, avatares, categorias.
Border-Width Scale
4 tokens · todas provisóriasborder-width.noneProvisória0pxReset de borda.
border-width.thinProvisória1pxBordas padrão, divisórias.
border-width.mediumProvisória2pxBordas de ênfase, controles.
border-width.thickProvisória4pxIndicadores laterais, destaques.
Aplicação em componentes
exemplos práticos de uso combinadoradius.050 (2px)border-width.thin (1px)radius.200 (8px)border-width.thin (1px)radius.pill (999px)border-width.medium (2px)Motion / Animação
Fonte da verdade: design-system/foundation/motion.tokens.json. Durações e curvas de aceleração que regem todas as transições visuais. Tokens com status Provisional requerem validação de design.
Duration Scale
6 tokens · 2 approved · 4 provisionalduration.instantProvisóriaToken de duração instant.
duration.fastProvisóriaToken de duração fast.
duration.moderateProvisóriaToken de duração moderate.
duration.slowAprovadaUsado no fade inicial/final do hero.
duration.deliberateAprovadaUsado em transições visuais suaves.
duration.ambientProvisóriaToken de duração ambient.
Como ler: a barra dourada executa um ciclo ida-e-volta usando a duração do token (pausada em duration.instant). Quanto mais longa a duração, mais lenta a percepção de movimento.
Easing Curves
4 tokens · todas provisóriascubic-bezier.standardProvisóriacubic-bezier(0.2, 0, 0, 1)cubic-bezier.enterProvisóriacubic-bezier(0, 0, 0, 1)cubic-bezier.exitProvisóriacubic-bezier(0.3, 0, 1, 1)cubic-bezier.emphasizedProvisóriacubic-bezier(0.2, 0.8, 0.2, 1)Como ler: cada gráfico mostra o progresso da animação (eixo Y) ao longo do tempo (eixo X). Curvas que crescem rápido no início são enter; as que desaceleram no fim são exit. Use standard como padrão para a maioria das interações.
Opacity
Fonte da verdade: design-system/foundation/opacity.tokens.json. Escala de opacidade usada em overlays, divisórias e estados hover. Apenas opacity.soft está aprovada — as demais são propostas que requerem validação de design.
Scale
7 tokens · 1 approved · 6 provisional| Token | Valor | Status | Uso recomendado | Amostra |
|---|---|---|---|---|
| opacity.transparent | 0.00 | Provisória | Reset de visibilidade, condicionais. | |
| opacity.subtle | 0.08 | Provisória | Bordas hairlines, divisórias finas. | |
| opacity.muted | 0.16 | Provisória | Bordas visíveis, estados desabilitados. | |
| opacity.soft | 0.35 | Aprovada | Overlay escuro do hero.Overlay escuro documentado no hero. | |
| opacity.medium | 0.50 | Provisória | Estados hover suaves, glassmorphism. | |
| opacity.strong | 0.72 | Provisória | Scrims de modal, bloqueio parcial. | |
| opacity.opaque | 1.00 | Provisória | Estado padrão (visibilidade total). |
Demonstração sobre superfície clara
overlay escuro em cima de uma imagem — legibilidade cai conforme a opacidade sobeA Umbanda é uma religião monoteísta e genuinamente brasileira, fundada sob a caridade espiritual e a luz curadora dos guias de lei.
Texto de leitura padrão do site. Observe como cada camada de overlay escuro abaixo desta superfície atenua a legibilidade progressivamente — até cobrir o conteúdo completamente em opacity.opaque.
opacity.subtle0.08 · 8%opacity.muted0.16 · 16%opacity.soft0.35 · 35%opacity.medium0.50 · 50%opacity.strong0.72 · 72%opacity.opaque1.00 · 100%Padrão de uso
- overlays / scrims: usar
opacity.soft(0.35) ouopacity.strong(0.72) — aprovados para hero e modal. - bordas e divisórias: usar
opacity.subtle(0.08) ouopacity.muted(0.16) — bordas hairlines sobre superfícies. - estados disabled: usar
opacity.medium(0.5) em elementos não interativos. - glassmorphism: combinar
opacity.muted+backdrop-blurpara painéis translúcidos.
Shadows / Elevação
Fonte da verdade: design-system/foundation/shadow.tokens.json. Escala de elevação que comunica profundidade sem usar bordas. Todos os tokens estão Provisional — aguardam validação de design.
Elevation Scale
5 tokens · todas provisórias| Token | Valor | Preview |
|---|---|---|
shadow.noneProvisória | 0px 0px 0px 0px #00000000 | |
shadow.lowProvisória | 0px 2px 8px 0px #0D0B081F | |
shadow.mediumProvisória | 0px 8px 24px -4px #0D0B0829 | |
shadow.highProvisória | 0px 20px 48px -8px #0D0B083D | |
shadow.focusProvisória | 0px 0px 0px 3px #C9A22766 |
Demonstração em cards
mesma superfície, diferentes elevaçõesshadow.noneProvisóriaSem elevação. Estado base, sem profundidade.
0px 0px 0px 0px #00000000shadow.lowProvisóriaElevação discreta. Hover em elementos interativos.
0px 2px 8px 0px #0D0B081Fshadow.mediumProvisóriaElevação média. Cards de conteúdo, dropdowns.
0px 8px 24px -4px #0D0B0829shadow.highProvisóriaElevação alta. Modais, popovers, drawers.
0px 20px 48px -8px #0D0B083Dshadow.focusProvisóriaAnel de foco dourado. Estados de foco acessível.
0px 0px 0px 3px #C9A22766Z-Index / Camadas
Fonte da verdade: design-system/foundation/z-index.tokens.json. Hierarquia de empilhamento que define quem fica por cima de quem na interface. Apenas z-index.header (50) está approved — as demais camadas são propostas que requerem validação de design.
Stacking Order
8 tokens · 1 approved · 7 provisional| Token | Valor | Status | Uso |
|---|---|---|---|
| z-index.base | 0 | Provisória | Camada base. Conteúdo padrão em fluxo normal. |
| z-index.raised | 10 | Provisória | Cards em hover, elementos com sombra elevada. |
| z-index.dropdown | 30 | Provisória | Menus dropdown, popovers, listas suspensas. |
| z-index.sticky | 40 | Provisória | Elementos fixos durante scroll (tabela, sidebar). |
| z-index.header | 50 | Aprovada | Cabeçalho fixo do site (documentado em 50).Header documentado com z-50. |
| z-index.overlay | 60 | Provisória | Backdrop de modais, scrims sobre o conteúdo. |
| z-index.modal | 70 | Provisória | Caixa de diálogo modal centralizada. |
| z-index.toast | 80 | Provisória | Notificações efêmeras, snackbars, alerts globais. |
Visualização em pilha
cards empilhados demonstram a hierarquia visualz-index.baseProvisóriaCamada base. Conteúdo padrão em fluxo normal.
z-index.raisedProvisóriaCards em hover, elementos com sombra elevada.
z-index.dropdownProvisóriaMenus dropdown, popovers, listas suspensas.
z-index.stickyProvisóriaElementos fixos durante scroll (tabela, sidebar).
z-index.headerAprovadaCabeçalho fixo do site (documentado em 50).
z-index.overlayProvisóriaBackdrop de modais, scrims sobre o conteúdo.
z-index.modalProvisóriaCaixa de diálogo modal centralizada.
z-index.toastProvisóriaNotificações efêmeras, snackbars, alerts globais.
Como ler: cada card é renderizado com z-index: {value} aplicado, e deslocado 28px para baixo/direita do anterior. O resultado mostra a ordem real de empilhamento: camadas com valor maior ficam visíveis por cima. A cor também evolui — do creme claro (base) ao dourado (toast) — reforçando a hierarquia.
Component Tokens · Tabs
Fonte da verdade: design-system/component/tabs.tokens.json. Tokens de componente para navegação por abas. Cobre a lista (gap, border), o item (padding, radius, typography, text, indicator) e motion.
Anatomia
list · item (text + indicator) · motion| Token | Referência | Resolvido |
|---|---|---|
| List | ||
| tabs.list.gap | {space.100} | 8px |
| tabs.list.border | {color.semantic.border.subtle} | #DBD5CB |
| Item | ||
| tabs.item.padding-inline | {space.200} | 16px |
| tabs.item.padding-block | {space.150} | 12px |
| tabs.item.radius | {radius.100} | 4px |
| tabs.item.typography | {typography.label-medium} | typography.label-medium |
| tabs.item.text.default | {color.semantic.text.secondary} | #3F3729 |
| tabs.item.text.hover | {color.semantic.text.primary} | #0D0B08 |
| tabs.item.text.active | {color.semantic.text.brand} | #7F3627 |
| tabs.item.text.disabled | {color.semantic.text.disabled} | #8E816E |
| tabs.item.indicator.default | {color.semantic.action.primary.default} | #8B3A2A |
| tabs.item.indicator.height | {border-width.medium} | 2px |
| Motion | ||
| tabs.motion.duration | {duration.fast} | 150ms |
| tabs.motion.easing | {cubic-bezier.standard} | cubic-bezier(0.2, 0, 0, 1) |
Demonstração de tabs
lista · 4 estados de item · indicatorPróximas
Lista de giras agendadas: Caboclos, Pretos Velhos, Crianças.
Como ler: a lista aplica gap: 8px e uma border-bottom sutil. O item ativo usa text.brand (terracotta.700) com um indicator de 2px em action.primary.default posicionado abaixo. Itens desabilitados aplicam text.disabled + cursor not-allowed.
Showcase: Estados de Botões
Renderizações interativas em tempo real de todas as variantes de botões e seus estados funcionais.
Primário Terracota
bg-[#8B3A2A]Secundário Dourado Outlined
border-[#C9A227]Dark Glassmorphism
bg-black/40 backdrop-blurComponent Tokens · Input
Fonte da verdade: design-system/component/input.tokens.json. Tokens de componente para text inputs e form fields. Cobre anatomia (height, padding, gap, radius, border), estados de background/text/border, focus-ring, tipografia e motion.
Anatomia
height · padding · gap · radius · border-width| Token | Referência | Resolvido |
|---|---|---|
| input.height.small | {space.500} | 40px |
| input.height.medium | {space.600} | 48px |
| input.height.large | {space.800} | 64px |
| input.padding-inline | {space.200} | 16px |
| input.gap | {space.100} | 8px |
| input.radius | {radius.200} | 8px |
| input.border-width | {border-width.thin} | 1px |
Estados (background · text · border)
default · hover · focus · error · disabled| Categoria | Estado | Referência | Resolvido |
|---|---|---|---|
| Background | |||
| background | default | {color.semantic.surface.default} | #FAF5EC |
| background | disabled | {color.semantic.surface.subtle} | #EEEBE4 |
| Text | |||
| text | value | {color.semantic.text.primary} | #0D0B08 |
| text | placeholder | {color.semantic.text.tertiary} | #594E3D |
| text | disabled | {color.semantic.text.disabled} | #8E816E |
| text | label | {color.semantic.text.secondary} | #3F3729 |
| text | helper | {color.semantic.text.tertiary} | #594E3D |
| text | error | {color.semantic.feedback.error.default} | #A33A2B |
| Border | |||
| border | default | {color.semantic.border.default} | #C3B9AB |
| border | hover | {color.semantic.border.strong} | #736754 |
| border | focus | {color.semantic.border.focus} | #816500 |
| border | error | {color.semantic.border.error} | #A33A2B |
| border | disabled | {color.semantic.border.subtle} | #DBD5CB |
| Focus-ring · Motion | |||
| focus-ring | input.focus-ring | {color.semantic.focus.ring} | #816500 |
| motion | duration | {duration.fast} | 150ms |
| motion | easing | {cubic-bezier.standard} | cubic-bezier(0.2, 0, 0, 1) |
Demonstração de estados
renderizados consumindo os tokensTamanhos
small · medium · largeinput.height.smallinput.height.mediuminput.height.largeComponent Tokens · Modal
Fonte da verdade: design-system/component/modal.tokens.json. Tokens de componente para modais/diálogos. Cobre overlay, container, header, body, footer, z-index e motion.
Anatomia
overlay · container · header · body · footer · z-index · motion| Token | Referência | Resolvido |
|---|---|---|
| Overlay | ||
| modal.overlay.background | {color.semantic.overlay.scrim} | #0D0B08 |
| modal.overlay.opacity | {opacity.strong} | 0.72 · 72% |
| Container | ||
| modal.container.background | {color.semantic.surface.raised} | #FAF5EC |
| modal.container.text | {color.semantic.text.primary} | #0D0B08 |
| modal.container.radius | {radius.400} | 16px |
| modal.container.padding | {space.400} | 32px |
| modal.container.shadow | {shadow.high} | 0px 20px 48px -8px #0D0B083D |
| modal.container.max-width | 640px | 640px |
| Header · Body · Footer | ||
| modal.header.gap | {space.200} | 16px |
| modal.header.typography | {typography.heading-medium} | typography.heading-medium |
| modal.body.gap | {space.300} | 24px |
| modal.body.typography | {typography.body-medium} | typography.body-medium |
| modal.footer.gap | {space.200} | 16px |
| Z-Index · Motion | ||
| modal.z-index | {z-index.modal} | 70 |
| modal.motion.duration | {duration.moderate} | 250ms |
| modal.motion.easing | {cubic-bezier.enter} | cubic-bezier(0, 0, 0, 1) |
Demonstração de modal
overlay + container + header + body + footerConfirmar inscrição
typography.heading-medium · typography.heading-medium
Você está prestes a confirmar sua inscrição na Gira de Caboclos do dia 27/09/2026. Após a confirmação, você receberá os detalhes por e-mail.
typography.body-medium · typography.body-medium
Como ler: o overlay usa modal.overlay.background com modal.overlay.opacity (72%). O container aplica radius, padding, shadow e z-index dos tokens. Botões do footer reusam os tokens de button já definidos.
Showcase: Campos de Formulário (Inputs)
Demonstração viva e interativa dos campos de texto com todos os estados funcionais mapeados.
Component Tokens · Card
Fonte da verdade: design-system/component/card.tokens.json. Tokens de componente para cards e content containers — todos derivados de tokens semânticos/foundation. Cobre backgrounds, text, border, radius, padding, gap, shadow e motion.
Anatomia
8 categorias · todas provisórias| Token | Referência | Resolvido |
|---|---|---|
| Background | ||
| card.background.default | {color.semantic.surface.default} | #FAF5EC |
| card.background.subtle | {color.semantic.surface.subtle} | #EEEBE4 |
| card.background.inverse | {color.semantic.surface.inverse} | #2A2318 |
| card.background.glass | {color.semantic.overlay.scrim} | #0D0B08 |
| Text | ||
| card.text.title | {color.semantic.text.primary} | #0D0B08 |
| card.text.body | {color.semantic.text.secondary} | #3F3729 |
| card.text.inverse | {color.semantic.text.inverse} | #FAF5EC |
| Border | ||
| card.border.default | {color.semantic.border.subtle} | #DBD5CB |
| card.border.hover | {color.semantic.border.focus} | #816500 |
| Radius | ||
| card.radius.default | {radius.300} | 12px |
| card.radius.large | {radius.400} | 16px |
| Padding | ||
| card.padding.small | {space.200} | 16px |
| card.padding.medium | {space.300} | 24px |
| card.padding.large | {space.400} | 32px |
| Gap | ||
| card.gap | {space.200} | 16px |
| Shadow | ||
| card.shadow.default | {shadow.low} | 0px 2px 8px 0px #0D0B081F |
| card.shadow.hover | {shadow.medium} | 0px 8px 24px -4px #0D0B0829 |
| Motion | ||
| card.motion.duration | {duration.deliberate} | 700ms |
| card.motion.easing | {cubic-bezier.emphasized} | cubic-bezier(0.2, 0.8, 0.2, 1) |
Demonstração de variantes
background · text · radius aplicadosCard padrão
Superfície surface.default com padding médio, radius padrão e shadow shadow.low.
bg: #FAF5ECradius: 12pxp: 24pxCard discreto
Superfície surface.subtle para aninhamento e hierarquia visual suave.
Card invertido
Superfície surface.inverse para destaques em fundo claro (warm-neutral.900).
Card glassmorphism
Base overlay.scrim com backdrop-blur para painéis translúcidos sobre fundos complexos.
Demonstração de estados
padding · radius · shadow · motion em açãoPadding
Radius
Shadow (default → hover)
passe o cursor
em hover
Showcase: Cards & FAQ
Biblioteca de componentes estruturais e organizacionais do site.
Flyer EventCard (Agenda/Eventos)
Card com FlyerGira de Pretos Velhos
Acolhimento, passes e aconselhamento amoroso com a sabedoria ancestral das almas.
Acordeão Sanfona (FAQ)
Accordion ColapsávelEste é um exemplo de resposta contida dentro de um componente de acordeão expansível. Ele utiliza transições suaves de altura máxima (`max-h`) e opacidade para revelar informações ocultas.
Próximos Componentes
Roadmap de componentes que consumirão os Color Roles semânticos definidos acima. Status atual: aprovados (foundation + semantic) e provisórios (famílias funcionais).
StatusBadge
Badge semântico para status de eventos e processos.
feedback.success.subtlefeedback.warning.subtlefeedback.error.subtlefeedback.info.subtleToast / Alert
Notificações efêmeras com hierarquia de severidade.
feedback.success.strongfeedback.warning.strongfeedback.error.strongfeedback.info.strongForm Field
Wrapper de campo com label, helper e mensagens de erro.
border.defaultborder.focusborder.errortext.disabledModal
Diálogo com scrim e trap de foco acessível.
overlay.scrimsurface.raisedfocus.ringTabs
Navegação por abas com indicador ativo dourado.
border.subtleaction.secondary.defaulttext.tertiaryTooltip
Dica flutuante sobre superfícies escuras.
surface.inversetext.inverse