Análise concluída

Revelatio Studio

revelatio.studio

Revelatio Studio constrói uma linguagem visual Estrutura orientada por navegação e Profundidade decorativa mínima, apoiada por uma base misto e pela tipografia Neue Haas Grotesk Text Pro 55 Roman. Sua experiência de studio coloca a organização espacial e a orientação da navegação no centro da composição.

/ 01 . Color

Paleta de cores

Sistema visual extraído de estilos computados, variáveis CSS e usos recorrentes de foreground/background na página analisada.

TextPrimary

#ffffff

Primary text · Observado

Neutral family 1

rgba(255, 255, 255, 0.16)

Observado família da paleta

Neutral family 2

rgba(0, 0, 0, 0.64)

Observado família da paleta

Neutral family 3

rgba(255, 255, 255, 0.6)

Observado família da paleta

/ 02 . Typography

Sistema tipográfico

button

Aa Linguagem visual

Família
Neue Haas Grotesk Text Pro 55 Roman
Tamanho
11.9952px
Peso
400
Linha
17.9928px

caption

Aa Linguagem visual

Família
Neue Haas Grotesk Text Pro 55 Roman
Tamanho
11.9952px
Peso
400
Linha
13.1947px

body

Aa Linguagem visual

Família
Neue Haas Grotesk Text Pro 55 Roman
Tamanho
20.9916px
Peso
400
Linha
27.2891px

headingLarge

Aa Linguagem visual

Família
Neue Haas Grotesk Text Pro 55 Roman
Tamanho
35.9856px
Peso
400
Linha
39.5842px

headingMedium

Aa Linguagem visual

Família
Neue Haas Grotesk Text Pro 55 Roman
Tamanho
14.994px
Peso
500
Linha
19.4922px

/ 03 . System

Espaçamento e forma

Ritmo de espaçamento

controlGap1

15.9896px

controlGap2

23.9904px

microSpacing

0.421875px

contentGap1

82.467px

contentGap2

127.449px

space-xs

2.62395px

space-sm

5.9976px

space-md

8.9964px

Raios de canto

smallRadius

2.624px

mediumRadius

2.999px

largeRadius

3.994px

Linguagem de bordas

defaultBorder

1px solid rgba(255, 255, 255, 0.16)

/ 04 . Components

Padrões de interface

Nav

inferred

Reusable nav pattern.

11.9952px 0px

Variant A Navigation Link

inferred

Primary navigation between major destinations.

"Neue Haas Grotesk Text Pro 55 Roman", Arial, sans-serif | 11.9952px | 400 | 17.9928px | normal0px 6.9992px 0px 0px

Variant B Navigation Link

inferred

Primary navigation between major destinations.

"Neue Haas Grotesk Text Pro 55 Roman", Arial, sans-serif | 11.9952px | 400 | 17.9928px | normal10.4958px3.994px corner radius

Variant C Navigation Link

observed

Primary navigation between major destinations.

"Neue Haas Grotesk Text Pro 55 Roman", Arial, sans-serif | 10.4958px | 400 | 10.4958px | -0.314874px"Neue Haas Grotesk Text Pro 55 Roman", Arial, sans-serif | 10.4958px | 400 | 10.4958px | normal0px 6.1243px0px 0px 0px 6.1243px

Display Heading

inferred

Primary page statement.

"Neue Haas Grotesk Text Pro 55 Roman", Arial, sans-serif | 35.9856px | 400 | 39.5842px | -1.07957px

Inline Text Link

observed

Text navigation embedded in compact content flow.

"Neue Haas Grotesk Text Pro 55 Roman", Arial, sans-serif | 11.9952px | 400 | 17.9928px | normal"Neue Haas Grotesk Text Pro 55 Roman", Arial, sans-serif | 11.9952px | 400 | 17.9928px | -0.359856px
Ver conteúdo completo do DESIGN.md
# DESIGN.md

## 1. Visão geral

Interface orientada por hierarquia visual clara, superfícies consistentes e uma paleta semântica controlada.
Use os tokens e contratos abaixo como fonte normativa para implementação responsiva e acessível.

> Contrato normativo de implementação: preserve os nomes semânticos dos tokens, regras de responsividade e estados de interação ao estender a interface.

## 2. Cores e acessibilidade

### Tokens semânticos de cor

| Token | Valor Hex | Finalidade |
|---|---|---|
| background | `#ffffff` | Canvas principal |
| surface | `#ffffff` | Superfícies elevadas |
| text-primary | `#111111` | Texto principal |
| text-secondary | `#111111` | Texto secundário |
| text-muted | `#111111` | Texto auxiliar |
| text-on-brand | `#ffffff` | Texto sobre a marca |
| border | `#d1d5db` | Bordas e divisores |
| brand | `#2563eb` | Ação principal da marca |
| success | `#166534` | Estado positivo |
| danger | `#b91c1c` | Estado destrutivo |
| warning | `#92400e` | Estado de alerta |
| info | `#075985` | Estado informativo |
| focus | `#1d4ed8` | Anel de foco |

### Regras WCAG AA

- Texto normal deve atingir contraste mínimo de 4,5:1.
- Texto grande e elementos de interface devem atingir contraste mínimo de 3:1.
- O foco visível deve manter contraste mínimo de 3:1 e nunca depender apenas de cor.
- Use somente combinações entre tokens semânticos que cumpram essas taxas.

## 3. Tipografia

### Família

| Token | Família | Uso |
|---|---|---|
| font-primaryfont | `'Neue Haas Grotesk Text Pro 55 Roman', sans-serif` | Body and interface text |

### Escala tipográfica

| Token | Família | Tamanho | Peso | Altura de linha |
|---|---|---:|---:|---:|
| type-button | `'Neue Haas Grotesk Text Pro 55 Roman', sans-serif` | `11.9952px` | `400` | `17.9928px` |
| type-caption | `'Neue Haas Grotesk Text Pro 55 Roman', sans-serif` | `11.9952px` | `400` | `13.1947px` |
| type-body | `'Neue Haas Grotesk Text Pro 55 Roman', sans-serif` | `20.9916px` | `400` | `27.2891px` |
| type-headinglarge | `'Neue Haas Grotesk Text Pro 55 Roman', sans-serif` | `35.9856px` | `400` | `39.5842px` |
| type-headingmedium | `'Neue Haas Grotesk Text Pro 55 Roman', sans-serif` | `14.994px` | `500` | `19.4922px` |

## 4. Layout e espaçamento

### Breakpoints

- **Mobile:** `< 768px` — grid de 1 coluna, gutters de 16px/24px e navegação empilhada.
- **Tablet:** `768px–1023px` — grid adaptativo e gutters de 32px/48px.
- **Desktop:** `>= 1024px` — gutters de 120px e container com largura máxima definida pelo layout.

### Regras responsivas

- **Header:** empilhe navegação e ações no mobile; mantenha a navegação principal em linha a partir do tablet.
- **Hero:** use uma coluna no mobile, composição equilibrada em duas colunas no tablet e o container completo no desktop.
- **Cards:** ocupe a largura do grid no mobile, use duas colunas no tablet e o grid definido no desktop.
- **Grid de navegação: use uma coluna no mobile, colunas adaptativas no tablet e a composição completa no desktop.

### Escala de espaçamento

| Token | Valor | Uso |
|---|---:|---|
| space-xs | `2.62395px` | Escala de layout |
| space-sm | `5.9976px` | Escala de layout |
| space-md | `8.9964px` | Escala de layout |
| space-lg | `11.9952px` | Escala de layout |
| space-xl | `13.1198px` | Escala de layout |

## 5. Formas, bordas e profundidade

### Raios

| Token | Valor | Uso |
|---|---:|---|
| radius-sm | `4px` | Controles compactos |
| radius-md | `12px` | Cards e superfícies |
| radius-full | `9999px` | Pills e controles circulares |

### Bordas e profundidade

- Largura da borda: `var(--ds-border-width)`.
- Estilo da borda: `solid`.
- Cor da borda: `var(--ds-color-border)`.
- Use `var(--ds-shadow-sm)` para elevação baixa e `var(--ds-shadow-inner)` para separação interna.

## 6. Especificação de componentes

### Nav

- **Componente:** Reusable nav pattern.
- **Tipografia:** `var(--ds-type-body)`
- **Cores:** `var(--ds-color-text-primary)` e `var(--ds-color-text-on-brand)` sobre a marca
- **Geometria:** `var(--ds-radius-md)` e `var(--ds-space-sm)` de espaçamento interno
- **Borda:** `var(--ds-border-width) solid var(--ds-color-border)`

### Navigation Link — Variant A

- **Componente:** Primary navigation between major destinations.
- **Tipografia:** `var(--ds-type-body)`
- **Cores:** `var(--ds-color-brand)` e `var(--ds-color-text-on-brand)` sobre a marca
- **Geometria:** `var(--ds-radius-md)` e `var(--ds-space-sm)` de espaçamento interno
- **Borda:** `var(--ds-border-width) solid var(--ds-color-border)`

### Display Heading

- **Componente:** Primary page statement.
- **Tipografia:** `var(--ds-type-heading-medium)`
- **Cores:** `var(--ds-color-text-primary)` e `var(--ds-color-text-on-brand)` sobre a marca
- **Geometria:** `var(--ds-radius-md)` e `var(--ds-space-sm)` de espaçamento interno
- **Borda:** `var(--ds-border-width) solid var(--ds-color-border)`

### Inline Text Link

- **Componente:** Text navigation embedded in compact content flow.
- **Tipografia:** `var(--ds-type-body)`
- **Cores:** `var(--ds-color-brand)` e `var(--ds-color-text-on-brand)` sobre a marca
- **Geometria:** `var(--ds-radius-md)` e `var(--ds-space-sm)` de espaçamento interno
- **Borda:** `var(--ds-border-width) solid var(--ds-color-border)`

### CTA Link — Variant A

- **Componente:** High-emphasis conversion or navigation action.
- **Tipografia:** `var(--ds-type-body)`
- **Cores:** `var(--ds-color-brand)` e `var(--ds-color-text-on-brand)` sobre a marca
- **Geometria:** `var(--ds-radius-full)` e `var(--ds-space-sm)` de espaçamento interno
- **Borda:** `var(--ds-border-width) solid var(--ds-color-border)`

## 7. Contrato de interação

### Regras universais de estado

| Estado | Comportamento visual |
|---|---|
| Estado inicial | Use `var(--ds-color-surface)`, `var(--ds-color-text-primary)`, `var(--ds-color-border)`, `var(--ds-type-body)` e `var(--ds-radius-md)`. |
| `:hover` | Aumente a ênfase com `var(--ds-color-brand-hover)` ou `var(--ds-color-surface-hover)`; preserve geometria e layout. |
| `:active` | Aplique `var(--ds-color-brand-active)` ou `var(--ds-color-surface-active)`; preserve dimensões. |
| `:focus-visible` | Exiba anel de `var(--ds-focus-ring-width)` usando `var(--ds-color-focus)`, com afastamento `var(--ds-focus-ring-offset)`. |
| `:disabled` | Use `var(--ds-state-disabled-opacity)`, `cursor: not-allowed` e `pointer-events: none`; remova eventos de ponteiro. |

## 8. Design tokens

```css
:root {
  --ds-color-background: #ffffff;
  --ds-color-surface: #ffffff;
  --ds-color-text-primary: #111111;
  --ds-color-text-secondary: #111111;
  --ds-color-text-muted: #111111;
  --ds-color-text-on-brand: #ffffff;
  --ds-color-border: #d1d5db;
  --ds-color-brand: #2563eb;
  --ds-color-brand-hover: color-mix(in srgb, var(--ds-color-brand) 86%, var(--ds-color-text-primary));
  --ds-color-brand-active: color-mix(in srgb, var(--ds-color-brand) 72%, var(--ds-color-text-primary));
  --ds-color-surface-hover: color-mix(in srgb, var(--ds-color-surface) 92%, var(--ds-color-text-primary));
  --ds-color-surface-active: color-mix(in srgb, var(--ds-color-surface) 84%, var(--ds-color-text-primary));
  --ds-color-success: #166534;
  --ds-color-danger: #b91c1c;
  --ds-color-warning: #92400e;
  --ds-color-info: #075985;
  --ds-color-focus: #1d4ed8;
  --ds-font-body: 'Neue Haas Grotesk Text Pro 55 Roman', sans-serif;
  --ds-type-body: 'Neue Haas Grotesk Text Pro 55 Roman', sans-serif 16px 400 / 24px;
  --ds-type-heading-large: 'Neue Haas Grotesk Text Pro 55 Roman', sans-serif 48px 700 / 1.1;
  --ds-type-heading-medium: 'Neue Haas Grotesk Text Pro 55 Roman', sans-serif 32px 600 / 1.2;
  --ds-type-heading-small: 'Neue Haas Grotesk Text Pro 55 Roman', sans-serif 24px 600 / 1.25;
  --ds-type-caption: 'Neue Haas Grotesk Text Pro 55 Roman', sans-serif 12px 500 / 16px;
  --ds-space-xs: 4px;
  --ds-space-sm: 8px;
  --ds-space-md: 16px;
  --ds-space-lg: 24px;
  --ds-space-xl: 40px;
  --ds-border-width: 1px;
  --ds-radius-sm: 4px;
  --ds-radius-md: 12px;
  --ds-radius-full: 9999px;
  --ds-shadow-sm: 0 2px 8px rgb(0 0 0 / 0.12);
  --ds-shadow-inner: inset 0 1px 2px rgb(0 0 0 / 0.12);
  --ds-breakpoint-tablet: 768px;
  --ds-breakpoint-desktop: 1024px;
  --ds-gutter-mobile: 16px;
  --ds-gutter-mobile-large: 24px;
  --ds-gutter-tablet: 32px;
  --ds-gutter-tablet-large: 48px;
  --ds-gutter-desktop: 120px;
  --ds-focus-ring-width: 2px;
  --ds-focus-ring-offset: 2px;
  --ds-state-disabled-opacity: 0.5;
  --ds-transition-fast: 150ms ease-out;
}
```