Design Tokens
Uma fonte de verdade. Os mesmos significados em todos os produtos, temas e densidades.
02 · Arquitetura
Três camadas. Uma direção.
Primitivos
Valor puro, sem intenção.
color.brand.teal = #345B63space.4 = 16 pxradius.xl = 20 pxduration.fast = 140 ms
Semânticos
Significado de interface, com par Light/Dark.
action.primary.bg → azure | jadefocus → teal | chartreuseborder.field → slate | #86A0A5data.primary → teal | jade
Contratos
Mapeamento por componente (construído no 10).
button.primary.bg → action.primary.bginput.border → border.fieldnav.item.selected → selected.bgchart.line → data.primary
Um componente só lê contratos — nunca primitivos.
Um semântico só lê primitivos — nunca outro semântico (sem dependência circular).
Cor de domínio, estado funcional, série de dados e cor institucional são famílias separadas.
03 · Cores e superfícies
Cinco cores oficiais. Superfícies com função.
Deep Azure
#112031
color.brand.azure
Deep Petrol
#152D35
color.brand.petrol
Rich Teal
#345B63
color.brand.teal
Pale Jade
#D4ECDD
color.brand.jade
Pale Chartreuse
#E8FF9C
color.brand.chartreuse
Neutros · color.neutral.*
HERDADOExpressão · color.expr.*
HERDADORose (tracejado) = PROPOSTA, não promovida a oficial.
Light
Dark
04 · Light × Dark
A mesma composição. Outros valores.
Light
Bom dia,
Ana
Próxima consulta
Qui, 14h · Dra. Lima
Dark
Bom dia,
Ana
Próxima consulta
Qui, 14h · Dra. Lima
| Semântico | Light | Dark | Status |
|---|---|---|---|
action.primary.bg | #112031 | #D4ECDD | PROPOSTA |
action.primary.fg | #FAFCFB | #112031 | PROPOSTA |
focus | #345B63 | #E8FF9C | PROPOSTA |
notification | #345B63 | #E8FF9C | PROPOSTA |
selected.bg | #D4ECDD | #D4ECDD | PROPOSTA |
data.primary | #345B63 | #D4ECDD | PROPOSTA |
surface.tint | #F0F8F3 | #344C50 | PROPOSTA |
decor.disc | #FFFFFF | #30464D | PROPOSTA |
border.field | #74817F | #86A0A5 | PROPOSTA |
Disco Snow 12% no Dark (1,45:1) é somente decorativo — nunca limite de botão nem indicador de estado.
Seis funções de cor — a mesma cor não troca de papel
Cor institucional
color.brand.*
Identidade; não comunica estado
Superfície
canvas · surface · surface.tint
Neutros + tinta Jade; expressão só como tinta suave de domínio
Ação
action.primary · action.contextual · action.accent
Azure, Jade contextual, Chartreuse pontual
Domínio de saúde
domain.*
Ícone/tinta do tema; nunca estado clínico
Série de dados
chart.series.*
Escura no Light, pastel no Dark, sempre com forma
Estado funcional
status.* (--av-sem-*)
Sistema apenas; nunca valor de saúde
Jade contextual e Chartreuse pontual — sem monocromia de Azure
Light
Card institucional
Consulta de retorno
Primário contextual Jade
Card de domínio · tinta
Rotina
Novo: convite para conectar seu médico
Chartreuse: um destaque por tela, nunca em fluxo clínico. Exemplo ilustrativo.
Dark
Card institucional
Consulta de retorno
Primário contextual Jade
Card de domínio · tinta
Rotina
Novo: convite para conectar seu médico
Chartreuse: um destaque por tela, nunca em fluxo clínico. Exemplo ilustrativo.
05 · Tipografia e densidades
Satoshi. Três densidades. O mesmo componente.
Editorial
PROPOSTAComunicação e aplicações institucionais
Próxima consulta
- Controle
- 52 px
- Ícone
- 24 px
- Card
- 32 px
- Linha
- 64 px
- Corpo
- 17 px
Confortável
PROPOSTAApp do Paciente e Vita
Próxima consulta
- Controle
- 48 px
- Ícone
- 24 px
- Card
- 20 px
- Linha
- 56 px
- Corpo
- 17 px
Operacional
PROPOSTAPortais Médico, Clínica, Gestão e Marca
Próxima consulta
- Controle
- 36 px · 32 compacto
- Ícone
- 20 px · 16
- Card
- 16 px
- Linha
- 44 px · 36
- Corpo
- 15 px
Pesos carregados no livro: 300/400/500/700/900 (decisão 07C preservada). font.weight.semibold = 600 fica reservado aos produtos, com arquivo licenciado.
06 · Espaçamentos
Base 4. Ritmo previsível.
space.*), com papéis semânticos propostos.Papéis semânticos PROPOSTA
space.inline.iconÍcone ↔ rótulo8space.stack.fieldEntre campos16space.card.confortavelPadding de card20space.card.editorialPadding editorial32space.section.appEntre blocos de tela32space.gutter.portalCalha do grid de portal2407 · Raios e formas
Raio acompanha a escala do objeto.
radius.xs 6 px
Etiquetas, chips internos
radius.sm 8 px
Campos compactos (Operacional)
radius.md 12 px
Campos, botões Operacional
radius.lg 16 px
Cards Operacional, menus
radius.xl 20 px
Cards Confortável
radius.2xl 24 px
Sheet, modal
radius.3xl 32 px
Cards Editorial, mockups
radius.full pílula
Botões pílula, avatar, FAB
08 · Sombras e elevação
Elevação diz camada, não decoração.
surface.raised).Light
shadow.1
Card
shadow.2
Menu, nav
shadow.3
Sheet, modal
Dark
shadow.1
Card
shadow.2
Menu, nav
shadow.3
Sheet, modal
Z-index
z.base0z.raised10z.sticky100z.nav200z.overlay300z.sheet400z.modal500z.toast600Opacidade
opacity.disabledNão usar opacidade para desativado: usar cor própria—opacity.scrimFundo atrás de modal/sheet (Azure)48%opacity.tint.lightCard com tinta de domínio · Light36%opacity.tint.darkCard com tinta de domínio · Dark16%opacity.disc.darkDisco Snow decorativo · Dark12%Blur
blur.ambient12 pxblur.surface20 pxblur.focus32 pxBlur só em vidro ambiente; nunca atrás de texto clínico.
09 · Bordas e separadores
Decorativa não é limite.
Light
border.decorative
Dark
border.decorative
10 · Estados de interface
Cinco estados. Nunca só pela cor.
Light
Sucesso
Consulta confirmada para quinta, 14h.
Informação
Nova versão do resumo disponível.
Atenção
Sincronização pendente há 2 dias.
Erro
Não foi possível enviar o documento.
Neutro
Sem novos registros nesta semana.
Dark
Sucesso
Consulta confirmada para quinta, 14h.
Informação
Nova versão do resumo disponível.
Atenção
Sincronização pendente há 2 dias.
Erro
Não foi possível enviar o documento.
Neutro
Sem novos registros nesta semana.
Light
Primário Azure · foco Teal
Dark
Primário Jade · foco Chartreuse
Dez variantes de ação — base do Capítulo 10, não componentes oficiais
Light
Dark
Regras: uma ação primária por área; Azure não é universal — sobre card escuro, card Azure ou tinta de domínio, a primária passa a Jade (também no Light). Chartreuse só como destaque pontual. Tokens de cor (action.*) ficam no 09; o componente final é do 10.
11 · Acessibilidade e contraste
Medido, não presumido.
| Par | Amostra | Superfície | Tamanho | Razão | Veredito | Limitação / substituição |
|---|---|---|---|---|---|---|
| Texto · Light | Aa | surface | todos | 17,52:1 | APROVÁVEL | — |
| Texto secundário · Light | Aa | surface | todos | 8,04:1 | APROVÁVEL | — |
| Texto muted (Slate) · Light | Aa | surface | ≥ 18,66 px negrito / 24 px | 4,05:1 | CONDICIONAL | Texto normal → usar Graphite |
| Borda de campo (Slate) · Light | Aa | canvas | não textual | 3,93:1 | APROVÁVEL | Limite funcional ≥ 3:1 |
| Borda decorativa (Cloud) | Aa | surface | não textual | 1,23:1 | CONDICIONAL | Só decorativa; nunca único limite |
| Botão primário · Light | Aa | action | 17 px | 15,99:1 | APROVÁVEL | — |
| Botão primário Jade · Dark | Aa | action | 17 px | 13,21:1 | APROVÁVEL | — |
| Foco Teal · Light | Aa | surface | anel 2 px | 7,44:1 | APROVÁVEL | — |
| Foco Chartreuse · Dark | Aa | surface | anel 2 px | 13,17:1 | APROVÁVEL | — |
| Borda de campo · Dark | Aa | raised | não textual | 4,50:1 | APROVÁVEL | Nova proposta |
| Texto muted (Stone) · Dark | Aa | surface | todos | 6,66:1 | APROVÁVEL | — |
| Sucesso · Light (novo) | Aa | success.bg | 15 px | 5,61:1 | APROVÁVEL | Substitui #2F7D5B como texto |
| Atenção · Light (novo) | Aa | warning.bg | 15 px | 5,71:1 | APROVÁVEL | Substitui #9A6A12 como texto |
| Informação · Light | Aa | info.bg | 15 px | 5,04:1 | APROVÁVEL | — |
| Erro · Light | Aa | critical.bg | 15 px | 5,13:1 | APROVÁVEL | — |
| Sucesso · Dark (novo) | Aa | success.bg | 15 px | 6,06:1 | APROVÁVEL | — |
| Atenção · Dark (novo) | Aa | warning.bg | 15 px | 6,48:1 | APROVÁVEL | — |
| Informação · Dark (novo) | Aa | info.bg | 15 px | 5,94:1 | APROVÁVEL | Substitui #2C6A99 no Dark (2,4) |
| Erro · Dark (novo) | Aa | critical.bg | 15 px | 5,48:1 | APROVÁVEL | Substitui #B13A2E no Dark (2,5) |
| Série principal Teal · Light | Aa | surface | linha 2,5 px | 7,44:1 | APROVÁVEL | — |
| Série principal Jade · Dark | Aa | surface | linha 2,5 px | 11,55:1 | APROVÁVEL | — |
| Card tint 36% · Light | Aa | surface.tint | todos | 15,24:1 | APROVÁVEL | — |
| Card tint 16% · Dark | Aa | surface.tint | todos | 8,88:1 | APROVÁVEL | — |
| Disco Snow 12% · Dark | Aa | surface | não textual | 1,45:1 | CONDICIONAL | Somente decorativo |
| Desativado · Dark | Aa | surface | texto | 3,56:1 | CONDICIONAL | Isento (inativo); manter rótulo |
| Teal sobre Petrol | Aa | surface | qualquer | 1,94:1 | ✕ REJEITADOUso proibido · substituir | Usar Jade no Dark |
| Aqua como linha · Light | Aa | surface | linha | 1,39:1 | ✕ REJEITADOUso proibido · substituir | Usar série escura do domínio |
Contagem reconciliada e novos contratos medidos
Matriz 09A
27 pares únicos
21 aprováveis + 4 condicionais + 2 rejeitados. Erro anterior: 09A: 22 + 4 + 2 = 28 (contagem errada de aprováveis).
Contratos 09C
120 de 120 passam
Linhas, eixos, marcadores, legendas e foco sobre surface e canvas, Light e Dark.
Ações
11 de 11 passam
Primário Azure · Light15,99
Primário contextual Jade · Light/Dark13,21
Secundário (tint) · Light15,24
Secundário (tint) · Dark8,88
Destaque Chartreuse15,07
Contorno Azure · Light16,47
Contorno Jade · Dark11,55
Texto Teal · Light7,44
Texto Jade · Dark11,55
Jade em card Azure13,21
Chartreuse sobre Azure (acento)15,07
Valores calculados em sRGB e conferidos no navegador (1440/820/390). Não é declaração de conformidade WCAG geral: faltam testes funcionais com tecnologia assistiva.
12 · Sense e Vita
Quatro famílias que nunca se confundem.
A · Institucional
color.brand.*
Logotipo, navegação, ação
B · Domínio
domain.*
Ícone e tinta de card do tema
C · Estado
status.*
Sincronizado, pendente, erro
D · Série
data.series.*
Linhas e barras de gráfico
AMOSTRAS CROMÁTICAS DE SÉRIES — NÃO REPRESENTAM O GRÁFICO DE CADA INDICADOR.
Light
Dark
Sense · estados funcionais
Vita · tokens candidatos
A Orb oficial não é recolorida por token. Os tokens vestem apenas o entorno da Vita.
vita.surface- surface
vita.msg.user- selected.bg
vita.msg.assistant- surface.raised
vita.mic- action.primary
vita.recording- critical (operacional)
vita.attention- notification
Seis naturezas de dado — seis contratos diferentes
Light
Série contínua
FC ao longo do dia · Linha; lacuna interrompe; eixo temporal real
Medição pontual
Duração do sono, SpO₂ · Ponto ou barra por evento; sem interpolar
Registro manual
Sintoma, ciclo · Marcador em timeline/calendário; autoria visível
Resultado laboratorial
Analito do laudo · Valor + unidade + referência do laudo; um ponto por coleta
Dado categórico
Estágios do sono · Faixas nominais com forma/rótulo
Estimativa derivada
HRV, energia · Tracejado + “≈” + método na origem
Dark
Série contínua
FC ao longo do dia · Linha; lacuna interrompe; eixo temporal real
Medição pontual
Duração do sono, SpO₂ · Ponto ou barra por evento; sem interpolar
Registro manual
Sintoma, ciclo · Marcador em timeline/calendário; autoria visível
Resultado laboratorial
Analito do laudo · Valor + unidade + referência do laudo; um ponto por coleta
Dado categórico
Estágios do sono · Faixas nominais com forma/rótulo
Estimativa derivada
HRV, energia · Tracejado + “≈” + método na origem
Sense — conferido com a Especificação Técnica v1.1 · tudo APP-P2 conceitual
| Dado | Categoria | Natureza | Visualização | Escala | Tokens | Nota |
|---|---|---|---|---|---|---|
| Frequência cardíaca | Obrigatório do hardware | Série contínua | Linha + faixa mín–máx diária | Definida pelo widget conforme dados | chart.series.primary · chart.band.personal-baseline | §2 núcleo; valores com horário |
| FC de repouso | Derivado | Estimativa derivada | Ponto diário + linha de base | Pelo widget | chart.point · chart.line.baseline | Derivado do dispositivo |
| HRV | Obrigatório do hardware | Estimativa derivada | Ponto noturno + média móvel + linha de base | Pelo widget; indicador (RMSSD/SDNN) sempre exibido | chart.series.estimated · chart.band.personal-baseline | §6 exige método informado |
| Sono — duração/horários | Obrigatório do hardware | Medição pontual | Barra por noite | A partir de zero | chart.series.primary | Início/fim, duração |
| Sono — estágios | Opcional | Dado categórico | Hipnograma | Categórica × tempo | chart.series.categorical · chart.uncertainty | Só se o algoritmo suportar |
| Temperatura de pele | Obrigatório do hardware | Série contínua | Desvio da linha de base (divergente) | Zero central neutro | chart.line.baseline · domain.amber | Nunca temperatura corporal clínica |
| Atividade / passos | Obrigatório do hardware | Série contínua | Barras diárias; anel só com meta do usuário | A partir de zero | chart.series.primary · domain.mint | Minutos ativos, inatividade |
| Energia / calorias | Derivado | Estimativa derivada | Valor com “≈” | Pelo widget | chart.series.estimated | Sempre identificado como estimativa |
| IBI/RR · PPG bruto | Preferencial | Série contínua | Não exibido ao paciente | — | — | Validação técnica |
| Frequência respiratória | Opcional | Medição pontual | A definir no 11 | Pelo widget | chart.point | Somente se suportada |
| SpO₂ | Opcional | Medição pontual | Ponto; sem faixa de alarme | Sem escala fixa imposta | chart.point | Não é critério de compra |
| Bateria · conexão · firmware | Obrigatório do hardware | Estado funcional | Chip de estado | — | device.* · status.* | Sem expor dado pessoal |
| HealthKit · Health Connect | Integração autorizada | Conforme a fonte | Mesma do dado + origem visível | — | lab.source/chart.legend (origem) | Integrado pelo app AllVita |
| Sintomas, humor, ciclo | Registro manual | Registro manual | Timeline / calendário | Tempo | domain.rose (PROPOSTA) · neutral | Não depende do Sense |
| Recuperação / estresse (índices) | Conceitual | Estimativa derivada | Texto qualitativo; sem escala 0–100 | Nenhuma oficializada | chart.series.estimated | Sem algoritmo homologado |
| Pressão arterial · glicemia não invasiva · ECG | Não validado | — | Não representar | — | — | §2: não requeridos; sem alegação clínica |
Pressão arterial, glicemia não invasiva e ECG não são capacidades do Sense. Nenhuma pontuação 0–100 de recuperação e nenhuma escala fixa de SpO₂ é oficializada: escalas são decididas pelo widget (cap. 11) conforme tipo, unidade e distribuição.
Vita central · PROPOSTA DE UX PRIORIZADA para prototipagem (arquitetura final no Capítulo 13)
Light
Orb oficial · anel de foco visível · rótulo sempre presente. Módulos da POC não são removidos: excedentes vão para “Mais” no Cap. 13.
Dark
Orb oficial · anel de foco visível · rótulo sempre presente. Módulos da POC não são removidos: excedentes vão para “Mais” no Cap. 13.
Ficha de consulta · 8 contratosAbrir fichaFechar ficha
vita.nav.sizeOrb 60 px (área de toque 64 px); demais itens 24 px + rótulo
- Camada
- Contrato
- Light
- 60 px
- Dark
- 60 px
- Consumidor
- Barra do App (cap. 13)
- Status
- PROPOSTA DE UX PRIORIZADA
- Fonte
- Vita · App
vita.nav.elevationEleva 12 px acima da barra; shadow.2
- Camada
- Contrato
- Light
- shadow.2
- Dark
- shadow.2 (Dark)
- Consumidor
- Barra do App
- Status
- PROPOSTA DE UX PRIORIZADA
- Fonte
- Vita
vita.nav.haloAnel neutro ao redor da Orb — a Orb nunca é recolorida
- Camada
- Contrato
- Light
- #F0F8F3
- Dark
- #344C50
- Consumidor
- Barra do App
- Status
- PROPOSTA DE UX PRIORIZADA
- Fonte
- Vita
vita.nav.focusAnel de foco 2 px afastado 3 px
- Camada
- Contrato
- Light
- #345B63
- Dark
- #E8FF9C
- Consumidor
- Barra do App
- Status
- PROPOSTA DE UX PRIORIZADA
- Fonte
- Vita
vita.nav.labelRótulo “Vita” sempre visível + nome acessível “Vita, assistente”
- Camada
- Contrato
- Light
- #111B1D
- Dark
- #FAFCFB
- Consumidor
- Barra do App
- Status
- PROPOSTA DE UX PRIORIZADA
- Fonte
- Vita
vita.nav.stateEstado vem do data-state da Orb oficial (repouso, escuta, processando, fala, erro) + texto
- Camada
- Contrato
- Light
- MasterOrb data-state
- Dark
- MasterOrb data-state
- Consumidor
- Orb oficial
- Status
- PROPOSTA DE UX PRIORIZADA
- Fonte
- Vita
vita.nav.motionVídeo oficial do estado (só Repouso disponível)
- Camada
- Contrato
- Light
- motion.slow
- Dark
- motion.slow
- Consumidor
- VitaOrbVideo
- Status
- PROPOSTA DE UX PRIORIZADA
- Fonte
- Vita
vita.nav.reduced-motionPoster estático oficial; estado só por texto
- Camada
- Contrato
- Light
- poster
- Dark
- poster
- Consumidor
- VitaOrbVideo
- Status
- PROPOSTA DE UX PRIORIZADA
- Fonte
- Vita
13 · Contratos de componente
O que cada componente vai ler.
Light
3 registros · 1 consulta confirmada
Dark
3 registros · 1 consulta confirmada
| Componente | Contrato | → Semântico |
|---|---|---|
| Button | button.primary.{bg,fg,focus} | action.primary.* · focus |
| Input | input.{border,border-hover,border-focus,border-error} | border.field* · focus · critical.border |
| Card | card.{bg,tint,shadow,radius} | surface · surface.tint · shadow.1 · radius por densidade |
| Navigation | nav.{bg,item,item-selected,badge} | surface.raised · text.secondary · selected.* · notification |
| Tabs | tabs.{item,item-selected,divider} | text.secondary · selected.* · border.decorative |
| Table | table.{row-h,header,divider,zebra} | densidade · text.secondary · border.decorative · surface.sunken |
| Modal | modal.{bg,scrim,shadow,z} | surface.raised · scrim · shadow.3 · z.modal |
| Sheet | sheet.{bg,handle,z} | surface.raised · border.field · z.sheet |
| Calendar | calendar.{day,selected,today,estimated} | text · selected.* · focus · data.primary (tracejado) |
| Indicators | indicator.{value,unit,line,missing} | text · text.secondary · data.primary · neutral.fg |
| Sense | sense.{connected,syncing,pending,offline} | success · info · warning · neutral |
| Vita | vita.{surface,msg-user,msg-assistant,mic,recording} | surface · selected.bg · surface.raised · action.primary · critical |
Charting · 25 contratos (13 reaproveitados do 09C, nenhum equivalente duplicado)
Ficha de charting · 25 contratosAbrir fichaFechar ficha
chart.axis.xLinha de eixo horizontal, 1 px
- Camada
- Semântico
- Light
- #74817F
- Dark
- #86A0A5
- Consumidor
- Todos os gráficos cartesianos
- Status
- PROPOSTA
- Fonte
- App · Médico · Gestão · reaproveita chart.axis
chart.axis.yLinha de eixo vertical; omitível quando a grade basta
- Camada
- Semântico
- Light
- #74817F
- Dark
- #86A0A5
- Consumidor
- Gráficos cartesianos
- Status
- PROPOSTA
- Fonte
- App · Médico · Gestão · reaproveita chart.axis
chart.tickMarca de escala 4 px; rótulo usa chart.label
- Camada
- Semântico
- Light
- #74817F
- Dark
- #86A0A5
- Consumidor
- Eixos
- Status
- PROPOSTA
- Fonte
- App · Médico · reaproveita chart.axis
chart.grid.majorGrade principal — decorativa, nunca carrega significado
- Camada
- Semântico
- Light
- #E2E9E7
- Dark
- rgb(255 255 255 / 0.08)
- Consumidor
- Gráficos
- Status
- REAPROVEITADO
- Fonte
- App · Médico · Gestão · reaproveita chart.grid
chart.grid.minorGrade secundária — só em zoom/detalhe
- Camada
- Semântico
- Light
- #EDF2F1
- Dark
- rgb(255 255 255 / 0.04)
- Consumidor
- Detalhe intradiário
- Status
- PROPOSTA
- Fonte
- Médico · Sense
chart.series.primarySérie principal (contínua · ●)
- Camada
- Semântico
- Light
- #345B63
- Dark
- #D4ECDD
- Consumidor
- Linha, barra, ponto
- Status
- REAPROVEITADO
- Fonte
- App · Médico · Sense · reaproveita series.primary
chart.series.secondarySegunda série (contínua · ■)
- Camada
- Semântico
- Light
- #2C6A99
- Dark
- #B8DCF5
- Consumidor
- Comparação de dois sinais
- Status
- REAPROVEITADO
- Fonte
- App · Médico · reaproveita series.secondary
chart.series.comparisonPeríodo anterior / outra fonte — neutro, traço 6·3
- Camada
- Semântico
- Light
- #465350
- Dark
- #CAD4D1
- Consumidor
- Comparação temporal
- Status
- PROPOSTA
- Fonte
- Médico · Gestão · Laboratório
chart.series.categoricalCategorias nominais: séries de domínio + forma; máx. 4 por gráfico
- Camada
- Semântico
- Light
- domain.*.series.light
- Dark
- domain.*.series.dark
- Consumidor
- Hipnograma, barras empilhadas, Gestão
- Status
- PROPOSTA
- Fonte
- Sense · Gestão · Clínica
chart.series.estimatedEstimado: traço 4·4 + marcador vazado + “≈”
- Camada
- Semântico
- Light
- #345B63
- Dark
- #D4ECDD
- Consumidor
- Métricas derivadas
- Status
- REAPROVEITADO
- Fonte
- Sense · App · reaproveita chart.estimated
chart.band.referenceFaixa neutra copiada do laudo; nunca vermelha
- Camada
- Semântico
- Light
- #EDF2F1
- Dark
- #1F3D45
- Consumidor
- Exames
- Status
- REAPROVEITADO
- Fonte
- Laboratório · reaproveita chart.reference
chart.band.personal-baselineFaixa da própria linha de base do usuário (Sense v1.1 §2)
- Camada
- Semântico
- Light
- #F0F8F3
- Dark
- #344C50
- Consumidor
- HR, HRV, temperatura
- Status
- PROPOSTA
- Fonte
- Sense
chart.line.baselinePontilhada 1·3 + rótulo “Sua linha de base”
- Camada
- Semântico
- Light
- #465350
- Dark
- #CAD4D1
- Consumidor
- Séries Sense
- Status
- REAPROVEITADO
- Fonte
- Sense · reaproveita chart.baseline
chart.line.threshold-illustrativeLimiar demonstrativo, traço 2·4, rótulo obrigatório “ilustrativo”; nunca faixa clínica
- Camada
- Semântico
- Light
- #465350
- Dark
- #CAD4D1
- Consumidor
- Somente exemplos do livro
- Status
- PROPOSTA
- Fonte
- App
chart.pointMarcador 8 px com forma por série
- Camada
- Semântico
- Light
- #345B63
- Dark
- #D4ECDD
- Consumidor
- Ponto, linha
- Status
- REAPROVEITADO
- Fonte
- App · Laboratório · reaproveita chart.marker
chart.point.selectedMarcador 12 px vazado + anel de foco 2 px
- Camada
- Semântico
- Light
- #345B63
- Dark
- #E8FF9C
- Consumidor
- Seleção por toque/teclado
- Status
- PROPOSTA
- Fonte
- App · Médico
chart.tooltipValor · unidade · horário · origem
- Camada
- Semântico
- Light
- #111B1D
- Dark
- #FAFCFB
- Consumidor
- Tooltip
- Status
- REAPROVEITADO
- Fonte
- App · Médico · Gestão · reaproveita chart.tooltip.bg / .fg
chart.crosshairLinha vertical 1 px na seleção
- Camada
- Semântico
- Light
- #465350
- Dark
- #CAD4D1
- Consumidor
- Gráficos temporais
- Status
- PROPOSTA
- Fonte
- Médico · Sense
chart.legendLegenda: forma + traço + texto (nunca só cor)
- Camada
- Semântico
- Light
- #465350
- Dark
- #CAD4D1
- Consumidor
- Todos
- Status
- PROPOSTA
- Fonte
- App · Médico · Gestão
chart.labelRótulos de eixo e valor
- Camada
- Semântico
- Light
- #465350
- Dark
- #CAD4D1
- Consumidor
- Todos
- Status
- REAPROVEITADO
- Fonte
- App · Médico · Gestão · reaproveita chart.label
chart.annotationPino + texto curto (ex.: troca de método)
- Camada
- Semântico
- Light
- #24312F
- Dark
- #FAFCFB
- Consumidor
- Linha do tempo, exames
- Status
- REAPROVEITADO
- Fonte
- Médico · Laboratório · reaproveita chart.annotation
chart.gapIntervalo sem coleta: linha interrompida + hachura
- Camada
- Semântico
- Light
- #CAD4D1
- Dark
- #465350
- Consumidor
- Séries contínuas
- Status
- REAPROVEITADO
- Fonte
- Sense · App · reaproveita chart.gap
chart.missingValor ausente: “—” textual no lugar do número
- Camada
- Semântico
- Light
- #74817F
- Dark
- #A7B3B0
- Consumidor
- Métrica, tabela, tooltip
- Status
- PROPOSTA
- Fonte
- App · Médico · Laboratório
chart.uncertaintyFaixa de incerteza do estimado: série a 16 % (Light) / 24 % (Dark)
- Camada
- Semântico
- Light
- color-mix(#345B63 16%)
- Dark
- color-mix(#D4ECDD 24%)
- Consumidor
- Derivados (sono, energia)
- Status
- PROPOSTA
- Fonte
- Sense
chart.selectionFaixa de seleção + crosshair + rótulo
- Camada
- Semântico
- Light
- #D4ECDD
- Dark
- #D4ECDD
- Consumidor
- Brush, intervalo
- Status
- REAPROVEITADO
- Fonte
- Médico · Gestão · reaproveita chart.selection
Laboratório · linguagem visual, não schema · sem semáforo clínico
Light
Analito ilustrativo · série por coleta
Dark
Analito ilustrativo · série por coleta
Ficha laboratorial · 14 contratosAbrir fichaFechar ficha
lab.valueValor com algarismos tabulares
- Camada
- Contrato
- Light
- #111B1D
- Dark
- #FAFCFB
- Consumidor
- Card/tabela de exame
- Status
- REAPROVEITADO
- Fonte
- Laboratório · reaproveita lab.value
lab.unitUnidade do laudo; se ausente: “unidade não informada”
- Camada
- Contrato
- Light
- #465350
- Dark
- #CAD4D1
- Consumidor
- Card/tabela
- Status
- REAPROVEITADO
- Fonte
- Laboratório · reaproveita lab.unit
lab.referenceFaixa e limites copiados do laudo
- Camada
- Contrato
- Light
- #EDF2F1
- Dark
- #1F3D45
- Consumidor
- Barra de referência
- Status
- REAPROVEITADO
- Fonte
- Laboratório · reaproveita lab.reference.band + .edge
lab.reference.missingLaudo sem faixa: barra omitida + texto “Laudo sem referência”
- Camada
- Contrato
- Light
- #74817F
- Dark
- #A7B3B0
- Consumidor
- Card de exame
- Status
- PROPOSTA
- Fonte
- Laboratório
lab.methodMétodo analítico, quando informado
- Camada
- Contrato
- Light
- #465350
- Dark
- #CAD4D1
- Consumidor
- Proveniência
- Status
- PROPOSTA
- Fonte
- Laboratório
lab.method.changedLinha vertical + pino “Método alterado”; série não é ligada através dela
- Camada
- Contrato
- Light
- #24312F
- Dark
- #FAFCFB
- Consumidor
- Série histórica
- Status
- PROPOSTA
- Fonte
- Laboratório · reaproveita chart.annotation
lab.sourceLaboratório + forma de marcador por fonte
- Camada
- Contrato
- Light
- #74817F
- Dark
- #A7B3B0
- Consumidor
- Proveniência, legenda
- Status
- REAPROVEITADO
- Fonte
- Laboratório · reaproveita lab.provenance
lab.collected-atData da coleta — eixo temporal usa esta data
- Camada
- Contrato
- Light
- #465350
- Dark
- #CAD4D1
- Consumidor
- Série, card
- Status
- PROPOSTA
- Fonte
- Laboratório
lab.reported-atData do resultado — só informativa
- Camada
- Contrato
- Light
- #74817F
- Dark
- #A7B3B0
- Consumidor
- Card
- Status
- PROPOSTA
- Fonte
- Laboratório
lab.pointUm ponto por coleta; vazado quando fora da referência do laudo
- Camada
- Contrato
- Light
- #345B63
- Dark
- #D4ECDD
- Consumidor
- Série histórica
- Status
- PROPOSTA
- Fonte
- Laboratório · reaproveita chart.point
lab.seriesPontos em tempo real; sem ligar coletas distantes nem unidades diferentes
- Camada
- Contrato
- Light
- #345B63
- Dark
- #D4ECDD
- Consumidor
- Evolução temporal
- Status
- PROPOSTA
- Fonte
- Laboratório · Médico · reaproveita chart.series.primary
lab.panelPainel = lista agrupada, sem semáforo
- Camada
- Contrato
- Light
- #FFFFFF
- Dark
- #152D35
- Consumidor
- Painel de exames
- Status
- PROPOSTA
- Fonte
- Laboratório · Médico
lab.estimatedValor calculado (ex.: razão) com “≈” e fórmula na proveniência
- Camada
- Contrato
- Light
- #345B63
- Dark
- #D4ECDD
- Consumidor
- Valores derivados
- Status
- PROPOSTA
- Fonte
- Laboratório · reaproveita chart.series.estimated
lab.missingAnalito não medido nesta coleta: “—”
- Camada
- Contrato
- Light
- #74817F
- Dark
- #A7B3B0
- Consumidor
- Painel, série
- Status
- PROPOSTA
- Fonte
- Laboratório · reaproveita chart.missing
Cobertura nos quatro portais — prova de tokens, não dashboards
Light · densidade Operacional
Portal Médico
- AgendaCÓDIGO
- PacientesCÓDIGO
- AtendimentoCÓDIGO
- MensagensDEMO
- Acompanhamento SenseFUTURO
Dado do paciente só com vínculo clínico (D3)
Portal Clínica
- AgendaCÓDIGO
- ProfissionaisCÓDIGO
- UnidadesCÓDIGO
- Operação · salas/recursosFUTURO
Tenant-scoped
Portal Gestão
- CRMCÓDIGO
- TenantsCÓDIGO
- Financeiro / GrowthSTUB
- FunilFUTURO
Indicadores administrativos, sem cor de saúde
Portal Marca
- Acesso / tenantCÓDIGO
- CampanhasFUTURO
- PedidosFUTURO
- TransaçõesFUTURO
Nunca dado clínico ou fisiológico, nem agregado ou anonimizado
Dark · densidade Operacional
Portal Médico
- AgendaCÓDIGO
- PacientesCÓDIGO
- AtendimentoCÓDIGO
- MensagensDEMO
- Acompanhamento SenseFUTURO
Dado do paciente só com vínculo clínico (D3)
Portal Clínica
- AgendaCÓDIGO
- ProfissionaisCÓDIGO
- UnidadesCÓDIGO
- Operação · salas/recursosFUTURO
Tenant-scoped
Portal Gestão
- CRMCÓDIGO
- TenantsCÓDIGO
- Financeiro / GrowthSTUB
- FunilFUTURO
Indicadores administrativos, sem cor de saúde
Portal Marca
- Acesso / tenantCÓDIGO
- CampanhasFUTURO
- PedidosFUTURO
- TransaçõesFUTURO
Nunca dado clínico ou fisiológico, nem agregado ou anonimizado
Componentes representativos — tokens, hierarquia de ações e densidade Operacional
Recortes isolados, não telas. O selo de cada recorte repete o status do snapshot: CÓDIGO existe no portal; STUB está vazio; FUTURO não existe e aparece só como estado vazio previsto. Nomes e horários fictícios.
Médico · Confortável/Operacional · Light
Agenda do dia
CÓDIGOAtendimento
CÓDIGOPaciente fictício · retorno
Indicador longitudinal autorizado
FUTUROSomente com consentimento do paciente · origem visível · ≈ estimado · dados ilustrativos
Médico · Confortável/Operacional · Dark
Agenda do dia
CÓDIGOAtendimento
CÓDIGOPaciente fictício · retorno
Indicador longitudinal autorizado
FUTUROSomente com consentimento do paciente · origem visível · ≈ estimado · dados ilustrativos
Clínica · Operacional · Light
Profissionais · tabela operacional
CÓDIGOAgenda da unidade
CÓDIGO14 horários
18 horários
11 horários
Clínica · Operacional · Dark
Profissionais · tabela operacional
CÓDIGOAgenda da unidade
CÓDIGO14 horários
18 horários
11 horários
Gestão · Operacional · Light
KPI gerencial
STUB—
Financeiro ainda não conectado. O KPI mostra “—”, nunca um número inventado.
CRM institucional
CÓDIGOGestão · Operacional · Dark
KPI gerencial
STUB—
Financeiro ainda não conectado. O KPI mostra “—”, nunca um número inventado.
CRM institucional
CÓDIGOMarca · Operacional · Light
Pedidos
FUTUROAinda não implementado. Estado vazio previsto, sem dado clínico, fisiológico ou de aderência — nem agregado.
Campanhas
FUTUROAinda não implementado. Estado vazio previsto, sem dado clínico, fisiológico ou de aderência — nem agregado.
Transações autorizadas
FUTUROAinda não implementado. Estado vazio previsto, sem dado clínico, fisiológico ou de aderência — nem agregado.
Marca · Operacional · Dark
Pedidos
FUTUROAinda não implementado. Estado vazio previsto, sem dado clínico, fisiológico ou de aderência — nem agregado.
Campanhas
FUTUROAinda não implementado. Estado vazio previsto, sem dado clínico, fisiológico ou de aderência — nem agregado.
Transações autorizadas
FUTUROAinda não implementado. Estado vazio previsto, sem dado clínico, fisiológico ou de aderência — nem agregado.
Status do snapshot 7a8cb912 do projeto de portais. Portal Marca: nenhum dado clínico ou fisiológico, nem agregado ou anonimizado. Densidade: Médico — Confortável (atendimento) · Operacional (listas) · Clínica — Operacional · Gestão — Operacional · Marca — Operacional.
14 · Governança
Nenhum valor novo nasce oficial.
Nomenclatura
camada.categoria.papel.variante — ex.: color.brand.teal, action.primary.bg, button.primary.fg. Sem nomes de cor em semânticos.
Aprovação
Proposta → revisão de contraste medida → homologação do owner → OFICIAL. Nada pula etapas.
Versionamento
SemVer: major remove/renomeia, minor adiciona, patch ajusta valor sem mudar significado.
Depreciação
DEPRECIADO por uma versão minor com substituto indicado; removido no major seguinte.
Histórico
Cada decisão registra data, autor, motivo e medições (ex.: 07C · peso 600).
Light/Dark
Todo semântico tem os dois valores. Sem par = não aprovado.
Densidades
Densidade troca dimensões, nunca cores ou significados.
Duplicidade
Antes de criar, procurar semântico equivalente. Dois tokens com o mesmo valor e papel → fundir.
Exportação
Fonte única em JSON (formato W3C Design Tokens) → CSS, iOS e Android. Futuro, não implementado.
Rastreabilidade
Todo token documentado percorre a mesma cadeia. Se um elo falta, o token não é aprovado.
- TOKEN
- FUNÇÃO
- TEMA
- DENSIDADE
- COMPONENTE
- STATUS
- FONTE
Ex.: chart.estimated → valor estimado → Light Teal / Dark Jade → todas → gráfico (cap. 11) → PROPOSTA aprovada como base de engenharia → 09C + Sense v1.1. Rose e Sky para estresse seguem PROPOSTA; a Vita central segue PROPOSTA DE UX PRIORIZADA.
Status das fontes
- Os contratos visuais (25 de charting, 14 laboratoriais, matriz Sense v1.1, tokens da Vita central, 10 variantes de ação) estão aprovados como base de engenharia.
- O PRD e o ADR canônicos não foram consultados nesta rodada. Regras de produto continuam subordinadas a eles.
- Qualquer divergência encontrada depois exigirá reconciliação.
- Nenhuma regra deste capítulo autoriza mudanças em permissões, dados, backend ou canais.
Conflito registrado, não corrigido
Os estilos genéricos da biblioteca de interface (variáveis globais do site) coexistem com os tokens AllVita. Nesta etapa nada foi fundido; a integração será decidida pelo owner antes do capítulo 10.
Motion herdado
duration.instantReduced motion · troca de estado0 msduration.fastHover, pressionado, foco140 msduration.normalAbrir menu, trocar aba240 msduration.slowSheet, modal, revelar seção520 msduration.ambientRespiração da Orb (decorativo)2400 mseasing.standardTodas as transições funcionaiscubic-bezier(.22,1,.36,1)Motion funcional responde a uma ação; o decorativo (Orb, ambiente) pausa com reduced motion.
Breakpoints
bp.smCelular de referência390 pxbp.mdTablet retrato768 pxbp.lgTablet paisagem / portal compacto1024 pxbp.xlPortal e desktop1440 px15 · Reconciliação · 09C
De onde o produto está para onde a marca vai.
CURRENT
V3.1 em produção
Deep #012E40 · Petrol #0A3D4A · Vita #3FAE68 · Menta #9BF2A8 · Satoshi
TARGET
AllVita Brand & Product System
Azure #112031 · Petrol #152D35 · Teal #345B63 · Jade #D4ECDD · Chartreuse #E8FF9C · Satoshi
MIGRATION MAP
324 de 324 tokens mapeados
155 canônicos da fundação + 108 de componentes + 61 aliases do Portal Médico. Leitura do snapshot 7a8cb912.
| V3.1 | Atual | Target | Ação | Nota |
|---|---|---|---|---|
--av31-brand-deep | #012E40 | color.brand.azure | MIGRATE | Deep vira Deep Azure; papel de identidade e fundo escuro. |
--av31-brand-petrol | #0A3D4A | color.brand.petrol | MIGRATE | Mesmo papel, hex novo. |
--av31-muted | #345B63 | color.brand.teal | MIGRATE | Hex idêntico; deixa de ser texto secundário e passa a ser cor de marca/ação. |
--av31-ink | #112031 | color.text (light) | ALIAS | Hex idêntico ao Azure; texto principal no Light. |
--av31-brand-vita | #3FAE68 | color.brand.teal · Vita = Orb oficial | DEPRECATE | Verde Vita sai da identidade; Vita passa a ser a Orb (cap. 14). |
--av31-brand-mint | #9BF2A8 | color.brand.jade | DEPRECATE | Menta substituída por Jade (superfície/seleção). |
--av31-brand-green-teal | #1F6253 | color.brand.teal | DEPRECATE | Atmosfera C-GREEN encerrada. |
(ausente) | — | color.brand.chartreuse | MIGRATE | Novo: foco e notificação no Dark; acento pontual. |
--av31-font-sans | Satoshi | font.family.sans | KEEP | Único ponto 100% convergente. |
16 · chart.* · series.*
Lacuna é lacuna. Estimado se vê.
Light
series.primary · contínua
series.secondary · contínua
series.tertiary · 6·3
series.quaternary · 2·3
Dark
series.primary · contínua
series.secondary · contínua
series.tertiary · 6·3
series.quaternary · 2·3
chart.axisLinha 1 px (≥3:1); rótulos usam chart.labelchart.gridDecorativa; nunca carrega significadochart.labelValor + unidade sempre escritoschart.tooltip.bgValor · unidade · horário · origemchart.tooltip.fg—chart.markerForma por série (●■▲◆)chart.selectionFaixa + linha vertical + rótulochart.gapLinha interrompida + hachura + “—”; nunca interpolarchart.estimatedTraço 4·4 + marcador vazado + “≈”chart.referenceFaixa neutra da referência do laudo; nunca vermelhachart.baselinePontilhada 1·3 + rótulo “Sua linha de base”chart.annotationPino + texto curtochart.timestampHorário e fuso explícitos17 · data-state.*
“Disponível” nunca quer dizer “médico revisou”.
Light
Disponibilidade
Caminho clínico (POC §13.1)
- 1RegistradoEntrada criada · Paciente ou sistema
- 2CapturadoColetado na origem · Sensor / app
- 3RecebidoChegou à AllVita · Sistema
- 4SincronizadoConsistente entre dispositivos · Sistema
- 5ProcessadoTratado pela AllVita · Sistema
- 6NormalizadoUnidade e formato padronizados · Sistema
- 7DisponívelVisível — ainda NÃO revisado · Sistema
- 8VistoAberto por alguém (nome + hora) · Pessoa identificada
- 9RevisadoMédico nomeado + data · Médico
- 10Ação clínicaDecisão registrada com autor · Médico
Dark
Disponibilidade
Caminho clínico (POC §13.1)
- 1RegistradoEntrada criada · Paciente ou sistema
- 2CapturadoColetado na origem · Sensor / app
- 3RecebidoChegou à AllVita · Sistema
- 4SincronizadoConsistente entre dispositivos · Sistema
- 5ProcessadoTratado pela AllVita · Sistema
- 6NormalizadoUnidade e formato padronizados · Sistema
- 7DisponívelVisível — ainda NÃO revisado · Sistema
- 8VistoAberto por alguém (nome + hora) · Pessoa identificada
- 9RevisadoMédico nomeado + data · Médico
- 10Ação clínicaDecisão registrada com autor · Médico
18 · lab.* · fundação futura
A referência é do laudo, não um alarme.
Light
Analito ilustrativo
112mg/dL
◯ Fora da referência do laudo (70–99 mg/dL)
Laboratório fictício · método enzimático · coleta 02/10 · resultado 03/10 · Disponível — não revisado
Dark
Analito ilustrativo
112mg/dL
◯ Fora da referência do laudo (70–99 mg/dL)
Laboratório fictício · método enzimático · coleta 02/10 · resultado 03/10 · Disponível — não revisado
Contrato mínimo
analitovalorunidadelaboratóriométodo (quando houver)data da coletadata do resultadoreferência copiada do laudoproveniênciaestadoevoluçãolab.valueAlgarismos tabulares, unidade ≤ metade do valorlab.unitSempre escritalab.reference.bandFaixa neutralab.reference.edgeLimites do laudolab.outside-referenceMarcador vazado + texto “fora da referência do laudo” — sem vermelho, sem diagnósticolab.provenanceLaboratório · método · datas19 · device.* · crm.* · commerce.*
Linguagem de estado, sem prometer produto.
Light
Dispositivo · APP-P2 conceitual
CRM
Comércio · futuro
Dark
Dispositivo · APP-P2 conceitual
CRM
Comércio · futuro
20 · Matriz · contraste · exportação
324 de 324 tokens V3.1 mapeados.
| Token V3.1 | Papel atual | Target | Ação |
|---|---|---|---|
--av31-font-sans | Família tipográfica | font.family.sans | KEEP |
--av31-weight-regular | Peso 420 | font.weight.regular (400) | MIGRATE |
--av31-weight-body | Peso intermediário | font.weight.medium (500) | MIGRATE |
--av31-weight-medium | Peso intermediário | font.weight.medium (500) | MIGRATE |
--av31-weight-strong | Peso 560/600 | font.weight.semibold (600) | MIGRATE |
--av31-weight-semibold | Peso 560/600 | font.weight.semibold (600) | MIGRATE |
--av31-weight-emphasis | Peso 660/700 | font.weight.bold (700) | MIGRATE |
--av31-weight-bold | Peso 660/700 | font.weight.bold (700) | MIGRATE |
--av31-brand-deep | Marca núcleo | color.brand.azure | MIGRATE |
--av31-brand-petrol | Marca núcleo | color.brand.petrol | MIGRATE |
--av31-brand-vita | Marca núcleo (verde) | color.brand.teal | DEPRECATE |
--av31-brand-mint | Marca núcleo (menta) | color.brand.jade | DEPRECATE |
--av31-brand-green-teal | Marca núcleo (verde) | color.brand.teal | DEPRECATE |
--av31-canvas | Fundo de página | canvas | MIGRATE |
--av31-surface | Superfície | surface / surface.raised | ALIAS |
--av31-surface-soft | Superfície suave | surface.sunken | MIGRATE |
--av31-border | Borda decorativa | border.decorative | MIGRATE |
--av31-border-strong | Borda forte | border.field | MIGRATE |
--av31-ink | Texto principal | text | ALIAS |
--av31-ink-soft | Texto secundário | text.secondary | MIGRATE |
--av31-muted | Texto secundário (Teal) | text.secondary · Teal → color.brand.teal | MIGRATE |
--av31-subtle | Texto terciário | text.muted | MIGRATE |
--av31-field-border | Borda de campo | border.field / border.field.hover | MIGRATE |
--av31-field-border-hover | Borda de campo | border.field / border.field.hover | MIGRATE |
--av31-field-border-focus | Foco de campo | focus | MIGRATE |
--av31-field-focus-glow | Foco de campo | focus | MIGRATE |
--av31-field-border-error | Erro de campo | critical.border | ALIAS |
--av31-action-primary | Ação primária | action.primary.bg (+ state.hover/pressed) | MIGRATE |
--av31-action-primary-hover | Ação primária | action.primary.bg (+ state.hover/pressed) | MIGRATE |
--av31-action-primary-pressed | Ação primária | action.primary.bg (+ state.hover/pressed) | MIGRATE |
--av31-action-primary-ink | Texto da ação primária | action.primary.fg | ALIAS |
--av31-action-secondary-surface | Ação secundária | action.secondary.* | MIGRATE |
--av31-action-secondary-surface-hover | Ação secundária | action.secondary.* | MIGRATE |
--av31-action-secondary-border | Ação secundária | action.secondary.* | MIGRATE |
--av31-action-secondary-ink | Ação secundária | action.secondary.* | MIGRATE |
--av31-action-ghost-ink | Ação terciária | action.ghost.* | MIGRATE |
--av31-action-ghost-surface-hover | Ação terciária | action.ghost.* | MIGRATE |
--av31-selected-surface | Selecionado | selected.bg / selected.fg | MIGRATE |
--av31-selected-border | Selecionado | selected.bg / selected.fg | MIGRATE |
--av31-selected-ink | Selecionado | selected.bg / selected.fg | MIGRATE |
--av31-selected-icon | Selecionado | selected.bg / selected.fg | MIGRATE |
--av31-care | Estado positivo | success.* | MIGRATE |
--av31-care-ink | Estado positivo | success.* | MIGRATE |
--av31-care-surface | Estado positivo | success.* | MIGRATE |
--av31-care-border | Estado positivo | success.* | MIGRATE |
--av31-time | Estado de tempo/pendência | warning.* | MIGRATE |
--av31-time-ink | Estado de tempo/pendência | warning.* | MIGRATE |
--av31-time-surface | Estado de tempo/pendência | warning.* | MIGRATE |
--av31-time-border | Estado de tempo/pendência | warning.* | MIGRATE |
--av31-attention | Estado de atenção | warning.* (funde com time — ver nota) | MIGRATE |
--av31-attention-ink | Estado de atenção | warning.* (funde com time — ver nota) | MIGRATE |
--av31-attention-surface | Estado de atenção | warning.* (funde com time — ver nota) | MIGRATE |
--av31-attention-border | Estado de atenção | warning.* (funde com time — ver nota) | MIGRATE |
--av31-danger | Estado crítico | critical.* | MIGRATE |
--av31-danger-ink | Estado crítico | critical.* | MIGRATE |
--av31-danger-surface | Estado crítico | critical.* | MIGRATE |
--av31-danger-border | Estado crítico | critical.* | MIGRATE |
--av31-aqua-soft-surface | Módulo / domínio aqua | color.expr.aqua (+ tint) | MIGRATE |
--av31-aqua-soft-surface-strong | Módulo / domínio aqua | color.expr.aqua (+ tint) | MIGRATE |
--av31-aqua-soft-border | Módulo / domínio aqua | color.expr.aqua (+ tint) | MIGRATE |
--av31-aqua-soft-ink | Módulo / domínio aqua | color.expr.aqua (+ tint) | MIGRATE |
--av31-amber-soft-surface | Tinta de domínio | color.expr.amber / color.expr.coral | MIGRATE |
--av31-amber-soft-surface-strong | Tinta de domínio | color.expr.amber / color.expr.coral | MIGRATE |
--av31-amber-soft-border | Tinta de domínio | color.expr.amber / color.expr.coral | MIGRATE |
--av31-amber-soft-accent | Tinta de domínio | color.expr.amber / color.expr.coral | MIGRATE |
--av31-amber-soft-ink | Tinta de domínio | color.expr.amber / color.expr.coral | MIGRATE |
--av31-module-aqua | Módulo / domínio aqua | color.expr.aqua (+ tint) | MIGRATE |
--av31-module-sky | Módulo / domínio sky | color.expr.sky (+ tint) | MIGRATE |
--av31-module-teal | Módulo teal | color.brand.teal | MIGRATE |
--av31-module-lavender | Módulo lavanda | color.expr.lavender | MIGRATE |
--av31-vita-deep | Vita / inteligência | vita.surround.* · Orb oficial | DEPRECATE |
--av31-vita-core | Vita / inteligência | vita.surround.* · Orb oficial | DEPRECATE |
--av31-vita-highlight | Vita / inteligência | vita.surround.* · Orb oficial | DEPRECATE |
--av31-vita-ink | Vita / inteligência | vita.surround.* · Orb oficial | DEPRECATE |
--av31-vita-gradient | Vita / inteligência | vita.surround.* · Orb oficial | DEPRECATE |
--av31-vita-glow | Vita / inteligência | vita.surround.* · Orb oficial | DEPRECATE |
--av31-atmosphere | Gradiente atmosférico | geometria da marca (cap. 05) | REMOVE LATER |
--av31-atmosphere-strong | Gradiente atmosférico | geometria da marca (cap. 05) | REMOVE LATER |
--av31-hero-cg | Gradiente atmosférico | geometria da marca (cap. 05) | REMOVE LATER |
--av31-ease | Curva de movimento | easing.standard | ALIAS |
--av31-motion-fast | Duração | duration.fast/normal/slow | MIGRATE |
--av31-motion-standard | Duração | duration.fast/normal/slow | MIGRATE |
--av31-motion-slow | Duração | duration.fast/normal/slow | MIGRATE |
--av31-motion-breathe | Respiração decorativa | duration.ambient | MIGRATE |
--av31-focus | Foco | focus (Teal light · Chartreuse dark) | MIGRATE |
--av31-focus-ring | Foco | focus (Teal light · Chartreuse dark) | MIGRATE |
--av31-shadow-soft | Sombra | shadow.1 / shadow.2 / shadow.3 | MIGRATE |
--av31-shadow-lift | Sombra | shadow.1 / shadow.2 / shadow.3 | MIGRATE |
--av31-radius-control | Raio | radius.* | MIGRATE |
--av31-radius-surface | Raio | radius.* | MIGRATE |
--av31-radius-canvas | Raio | radius.* | MIGRATE |
--av31-clinical-canvas | Fundo de página | canvas | MIGRATE |
--av31-clinical-surface | Superfície | surface / surface.raised | ALIAS |
--av31-clinical-border | Borda decorativa | border.decorative | MIGRATE |
--av31-clinical-accent-height | Filete clínico | border.width.accent | KEEP |
--av31-icon-stroke | Traço de ícone | icon.stroke (decisão aberta no 08) | KEEP |
--av31-text-2xs | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-text-xs | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-text-sm | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-text-md | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-text-base | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-text-lg | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-text-xl | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-text-2xl | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-text-3xl | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-text-4xl | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-leading-tight | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-leading-snug | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-leading-body | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-body | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-body-compact | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-nav | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-topbar | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-account-name | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-account-secondary | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-button | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-label | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-section-title | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-panel-title | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-page-title | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-table-header | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-table-body | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-hover-care-soft | Estado positivo | success.* | MIGRATE |
--av31-hover-care-soft-strong | Estado positivo | success.* | MIGRATE |
--av31-hover-care-ink | Estado positivo | success.* | MIGRATE |
--av31-sidebar-w | Layout do shell | layout.* (produto) | KEEP |
--av31-sidebar-w-collapsed | Layout do shell | layout.* (produto) | KEEP |
--av31-topbar-h | Layout do shell | layout.* (produto) | KEEP |
--av31-nav-item-height | Layout do shell | layout.* (produto) | KEEP |
--av31-iconbtn-size | Layout do shell | layout.* (produto) | KEEP |
--av31-iconbtn-size-lg | Layout do shell | layout.* (produto) | KEEP |
--av31-nav-font-size | Layout do shell | layout.* (produto) | KEEP |
--av31-nav-font-weight | Layout do shell | layout.* (produto) | KEEP |
--av31-nav-selected-weight | Layout do shell | layout.* (produto) | KEEP |
--av31-nav-line-height | Layout do shell | layout.* (produto) | KEEP |
--av31-nav-group-size | Layout do shell | layout.* (produto) | KEEP |
--av31-nav-group-weight | Layout do shell | layout.* (produto) | KEEP |
--av31-nav-secondary-size | Layout do shell | layout.* (produto) | KEEP |
--av31-nav-secondary-weight | Layout do shell | layout.* (produto) | KEEP |
--av31-topbar-font-size | Layout do shell | layout.* (produto) | KEEP |
--av31-topbar-font-weight | Layout do shell | layout.* (produto) | KEEP |
--av31-topbar-surface-size | Layout do shell | layout.* (produto) | KEEP |
--av31-topbar-surface-weight | Layout do shell | layout.* (produto) | KEEP |
--av31-account-font-size | Layout do shell | layout.* (produto) | KEEP |
--av31-account-font-weight | Layout do shell | layout.* (produto) | KEEP |
--av31-account-secondary-size | Layout do shell | layout.* (produto) | KEEP |
--av31-account-secondary-weight | Layout do shell | layout.* (produto) | KEEP |
--av31-shell-tooltip-size | Layout do shell | layout.* (produto) | KEEP |
--av31-shell-tooltip-weight | Layout do shell | layout.* (produto) | KEEP |
--av31-shell-button-size | Layout do shell | layout.* (produto) | KEEP |
--av31-shell-button-weight | Layout do shell | layout.* (produto) | KEEP |
--av31-surface-elevated | Superfície | surface / surface.raised | ALIAS |
--av31-text | Texto principal | text | ALIAS |
--av31-text-secondary | Texto secundário | text.secondary | MIGRATE |
--av31-text-muted | Texto secundário (Teal) | text.secondary · Teal → color.brand.teal | MIGRATE |
--av31-text-subtle | Texto terciário | text.muted | MIGRATE |
--av31-primary | Ação primária | action.primary.bg (+ state.hover/pressed) | MIGRATE |
--av31-primary-hover | Ação primária | action.primary.bg (+ state.hover/pressed) | MIGRATE |
--av31-primary-active | Ação primária | action.primary.bg (+ state.hover/pressed) | MIGRATE |
--av31-primary-soft | Ação primária suave | action.secondary.bg | MIGRATE |
--av31-action-strong | Ação primária | action.primary.bg (+ state.hover/pressed) | MIGRATE |
--av31-vita | Vita / inteligência | vita.surround.* · Orb oficial | DEPRECATE |
--av31-sky | Módulo / domínio sky | color.expr.sky (+ tint) | MIGRATE |
--av31-aqua | Módulo / domínio aqua | color.expr.aqua (+ tint) | MIGRATE |
--av31-intelligence | Vita / inteligência | vita.surround.* · Orb oficial | DEPRECATE |
--av31-amber | Tinta de domínio | color.expr.amber / color.expr.coral | MIGRATE |
--av31-coral | Tinta de domínio | color.expr.amber / color.expr.coral | MIGRATE |
--av31-gradient-atmosphere | Gradiente atmosférico | geometria da marca (cap. 05) | REMOVE LATER |
--av31-gradient-intelligence | Vita / inteligência | vita.surround.* · Orb oficial | DEPRECATE |
--av31-vita-orb-gradient | Vita / inteligência | vita.surround.* · Orb oficial | DEPRECATE |
--av31-primary-text | Texto da ação primária | action.primary.fg | ALIAS |
--av31-action-strong-hover | Ação primária | action.primary.bg (+ state.hover/pressed) | MIGRATE |
--av31-control-soft | Controle suave | action.ghost.hover | MIGRATE |
--av31-control-soft-hover | Controle suave | action.ghost.hover | MIGRATE |
--av31-intelligence-soft | Vita / inteligência | vita.surround.* · Orb oficial | DEPRECATE |
--av31-intelligence-ink | Vita / inteligência | vita.surround.* · Orb oficial | DEPRECATE |
--av31-sky-soft | Módulo / domínio sky | color.expr.sky (+ tint) | MIGRATE |
--av31-sky-ink | Módulo / domínio sky | color.expr.sky (+ tint) | MIGRATE |
--av31-aqua-soft | Módulo / domínio aqua | color.expr.aqua (+ tint) | MIGRATE |
--av31-aqua-ink | Módulo / domínio aqua | color.expr.aqua (+ tint) | MIGRATE |
--av31-vita-hover | Vita / inteligência | vita.surround.* · Orb oficial | DEPRECATE |
--av31-vita-soft | Vita / inteligência | vita.surround.* · Orb oficial | DEPRECATE |
--av31-care-bg | Estado positivo | success.* | MIGRATE |
--av31-care-bg-hover | Estado positivo | success.* | MIGRATE |
--av31-care-text | Estado positivo | success.* | MIGRATE |
--av31-amber-soft | Tinta de domínio | color.expr.amber / color.expr.coral | MIGRATE |
--av31-coral-soft | Tinta de domínio | color.expr.amber / color.expr.coral | MIGRATE |
--av31-gradient-longitudinal | Gradiente atmosférico | geometria da marca (cap. 05) | REMOVE LATER |
--av31-glow-intelligence | Vita / inteligência | vita.surround.* · Orb oficial | DEPRECATE |
--av31-amber-ink | Tinta de domínio | color.expr.amber / color.expr.coral | MIGRATE |
--av31-coral-ink | Tinta de domínio | color.expr.amber / color.expr.coral | MIGRATE |
--av31-danger-soft | Estado crítico | critical.* | MIGRATE |
--av-physician-brand-deep | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-brand-petrol | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-brand-vita | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-brand-mint | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-brand-green-teal | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-canvas | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-surface | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-surface-soft | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-border | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-border-strong | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-ink | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-ink-soft | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-muted | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-subtle | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-action-primary | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-action-primary-hover | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-action-primary-pressed | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-action-primary-ink | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-action-secondary-surface | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-action-secondary-surface-hover | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-action-secondary-border | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-action-secondary-ink | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-action-ghost-ink | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-action-ghost-surface-hover | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-selected-surface | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-selected-border | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-selected-ink | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-selected-icon | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-care | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-care-ink | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-care-surface | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-care-border | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-time | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-time-ink | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-time-surface | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-time-border | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-attention | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-attention-ink | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-attention-surface | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-attention-border | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-danger | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-danger-ink | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-danger-surface | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-danger-border | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-module-aqua | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-module-sky | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-module-teal | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-module-lavender | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-appointment-ink | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-atmosphere | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-atmosphere-strong | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-hero-cg | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-ease | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-motion-fast | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-motion-standard | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-motion-slow | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-motion-breathe | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-focus | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-focus-ring | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-shadow-soft | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-shadow-lift | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-radius-control | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-radius-surface | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av-physician-radius-canvas | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av31-action-strong-text | Texto da ação primária | action.primary.fg | ALIAS |
--av-physician-font-sans | Alias de escopo do Portal Médico | (herda o mapeamento do token --av31 de origem) | ALIAS |
--av31-type-display-size | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-display-weight | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-page-title-size | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-page-title-weight | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-page-title-tracking | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-prompt-size | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-prompt-weight | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-context-title-size | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-context-title-weight | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-context-title-tracking | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-section-title-size | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-section-title-weight | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-block-title-size | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-block-title-weight | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-body-size | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-body-weight | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-body-strong-weight | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-clinical-size | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-clinical-weight | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-table-size | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-table-weight | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-label-size | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-label-weight | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-meta-size | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-meta-weight | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-button-size | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-button-weight | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-metric-size | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-type-metric-weight | Tipografia de produto | type.operacional.* (cap. 07) | MIGRATE |
--av31-space-2 | Espaçamento | space.* | ALIAS |
--av31-space-4 | Espaçamento | space.* | ALIAS |
--av31-space-6 | Espaçamento | space.* | ALIAS |
--av31-space-8 | Espaçamento | space.* | ALIAS |
--av31-space-12 | Espaçamento | space.* | ALIAS |
--av31-space-16 | Espaçamento | space.* | ALIAS |
--av31-space-20 | Espaçamento | space.* | ALIAS |
--av31-space-24 | Espaçamento | space.* | ALIAS |
--av31-space-32 | Espaçamento | space.* | ALIAS |
--av31-space-40 | Espaçamento | space.* | ALIAS |
--av31-space-48 | Espaçamento | space.* | ALIAS |
--av31-space-64 | Espaçamento | space.* | ALIAS |
--av31-gap-micro | Espaçamento | space.* | ALIAS |
--av31-gap-control | Espaçamento | space.* | ALIAS |
--av31-gap-inline | Espaçamento | space.* | ALIAS |
--av31-pad-card | Espaçamento | space.* | ALIAS |
--av31-pad-panel | Espaçamento | space.* | ALIAS |
--av31-gap-section | Espaçamento | space.* | ALIAS |
--av31-pad-page | Espaçamento | space.* | ALIAS |
--av31-radius-control-sm | Raio | radius.* | MIGRATE |
--av31-radius-card | Raio | radius.* | MIGRATE |
--av31-radius-panel | Raio | radius.* | MIGRATE |
--av31-radius-dialog | Raio | radius.* | MIGRATE |
--av31-radius-pill | Raio | radius.* | MIGRATE |
--av31-button-radius | Raio | radius.* | MIGRATE |
--av31-segment-radius | Raio | radius.* | MIGRATE |
--av31-radius-field | Raio | radius.* | MIGRATE |
--av31-shadow-none | Sombra | shadow.1 / shadow.2 / shadow.3 | MIGRATE |
--av31-shadow-subtle | Sombra | shadow.1 / shadow.2 / shadow.3 | MIGRATE |
--av31-shadow-floating | Sombra | shadow.1 / shadow.2 / shadow.3 | MIGRATE |
--av31-shadow-selected | Selecionado | selected.bg / selected.fg | MIGRATE |
--av31-ease-standard | Curva de movimento | easing.standard | ALIAS |
--av31-ease-enter | Curva de movimento | easing.standard | ALIAS |
--av31-ease-exit | Curva de movimento | easing.standard | ALIAS |
--av31-row-height | Linha de tabela | density.operacional.row | MIGRATE |
--av31-row-pad-y | Linha de tabela | density.operacional.row | MIGRATE |
--av31-stack | Espaçamento | space.* | ALIAS |
Contraste recontado
Matriz do 09A: 27 pares = 21 aprováveis + 4 condicionais + 2 rejeitados. Rejeitados corrigidos:
Teal #345B63 sobre Petrol #152D35: 1,94:1 → No Dark, papel Teal passa a Jade #D4ECDD: 11,55:1
Aqua #A9E6E3 como linha sobre branco: 1,39:1 → Aqua só como tinta; linha usa series.primary #345B63: 7,44:1
Grupos novos: 24 de 24 pares passam (cálculo sRGB nos dois temas).
Exportação neutra
JSON no formato do W3C Design Tokens Community Group, compatível com Style Dictionary → web (variáveis CSS / Tailwind), mobile (stack ainda não escolhida) e este livro.
{
"color": { "brand": { "azure": { "$type": "color", "$value": "#112031" } } },
"chart": { "chart.estimated": { "$type": "color", "$value": "#345B63",
"$extensions": { "com.allvita.theme": { "dark": "#D4ECDD" } } } }
}Continuam abertas (POC §28)
Perfil AllVita público: a identidade digital permanente do médico dentro da infraestrutura de Saúde Relacional — superfície web externa (allvita.com.br/medicos/:slug), não auditada neste snapshot. Nenhuma rota nova criada.
