Análise concluída

Abacate Pay

www.abacatepay.com

Abacate Pay constrói uma linguagem visual Tipografia de destaque ampla e Composição densa em controles, apoiada por uma base escuro e pela tipografia __fustat_6a44ab. Sua experiência de fintech coloca a clareza dos controles e das ações 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.

Border

#e5e6e6

Borders and separators · Observado

Background

#244c4e

Page canvas · Observado

TextPrimary

#ffffff

Primary text · Observado

Neutral family 1

#7c7c8a

Observado família da paleta

Neutral family 2

#e2e7f1

Observado família da paleta

Neutral family 3

#121217

Observado família da paleta

Cyan family 1

#204749

Observado família da paleta

Cyan family 2

#00cfbd

Observado família da paleta

Cyan family 3

#249a97

Observado família da paleta

Blue family 1

#4c5267

Observado família da paleta

Blue family 2

rgba(59, 130, 246, 0.5)

Observado família da paleta

Blue family 3

#1f2937

Observado família da paleta

/ 02 . Typography

Sistema tipográfico

navigation

Aa Linguagem visual

Família
__fustat_6a44ab
Tamanho
16px
Peso
400
Linha
24px

bodyStrong

Aa Linguagem visual

Família
__fustat_6a44ab
Tamanho
20px
Peso
600
Linha
24px

button

Aa Linguagem visual

Família
__fustat_6a44ab
Tamanho
16px
Peso
600
Linha
24px

headingMedium

Aa Linguagem visual

Família
__fustat_6a44ab
Tamanho
20px
Peso
600
Linha
28px

smallHeading

Aa Linguagem visual

Família
__fustat_6a44ab
Tamanho
18px
Peso
600
Linha
28px

display

Aa Linguagem visual

Família
__fustat_6a44ab
Tamanho
44px
Peso
600
Linha
46.2px

/ 03 . System

Espaçamento e forma

Ritmo de espaçamento

controlGap

40px

microSpacing

1px

contentGap1

36px

contentGap2

64px

sectionGap

120px

pageGutter

120px

space-xs

4px

space-sm

8px

Raios de canto

smallRadius

8px

mediumRadius

12px

largeRadius

16px

fullRadius

9999px

Linguagem de bordas

defaultBorder

1px solid rgb(226, 231, 241)

supportingBorder1

2px solid rgb(255, 255, 255)

supportingBorder2

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

/ 04 . Components

Padrões de interface

Display Heading

inferred

Primary page statement.

__fustat_6a44ab, __fustat_Fallback_6a44ab, sans-serif | 44px | 600 | 46.2px | -2.2px

Variant A Navigation Link

inferred

Primary navigation between major destinations.

__fustat_6a44ab, __fustat_Fallback_6a44ab, sans-serif | 16px | 400 | 24px | normal

Variant B Navigation Link

inferred

Primary navigation between major destinations.

__fustat_6a44ab, __fustat_Fallback_6a44ab, sans-serif | 16px | 600 | 11px | normal12px 16px8pxPill

Navigation Control

observed

Compact control within site navigation.

__fustat_6a44ab, __fustat_Fallback_6a44ab, sans-serif | 16px | 600 | 11px | normal12px 16px6pxPill120x38px

Variant A Card Link

inferred

A linked editorial or product card whose full surface is interactive.

__fustat_6a44ab, __fustat_Fallback_6a44ab, sans-serif | 16px | 400 | 24px | normal8px corner radius

Variant B Card Link

observed

A linked editorial or product card whose full surface is interactive.

__fustat_6a44ab, __fustat_Fallback_6a44ab, sans-serif | 16px | 400 | 24px | normal24px 32px 40px 24px560x227px
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 | `#244c4e` | Canvas principal |
| surface | `#244c4e` | Superfícies elevadas |
| text-primary | `#ffffff` | Texto principal |
| text-secondary | `#ffffff` | Texto secundário |
| text-muted | `#ffffff` | Texto auxiliar |
| text-on-brand | `#ffffff` | Texto sobre a marca |
| border | `#e5e6e6` | 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 | `'fustat', sans-serif` | Body and interface text |
| font-bodyfont | `'Inter_Tight', sans-serif` | Body and interface text |
| font-monofont | `'ui-monospace', sans-serif` | Metadata and code |

### Escala tipográfica

| Token | Família | Tamanho | Peso | Altura de linha |
|---|---|---:|---:|---:|
| type-navigation | `'fustat', sans-serif` | `16px` | `400` | `24px` |
| type-bodystrong | `'fustat', sans-serif` | `20px` | `600` | `24px` |
| type-button | `'fustat', sans-serif` | `16px` | `600` | `24px` |
| type-headingmedium | `'fustat', sans-serif` | `20px` | `600` | `28px` |
| type-smallheading | `'fustat', sans-serif` | `18px` | `600` | `28px` |
| type-display | `'fustat', sans-serif` | `44px` | `600` | `46.2px` |
| type-body | `'Inter_Tight', sans-serif` | `14px` | `500` | `25.2px` |
| type-headinglarge | `'fustat', sans-serif` | `48px` | `600` | `48px` |

## 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 | `4px` | Escala de layout |
| space-sm | `8px` | Escala de layout |
| space-md | `12px` | Escala de layout |
| space-lg | `16px` | Escala de layout |
| space-xl | `20px` | 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

### 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)`

### 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)`

### Navigation Control

- **Componente:** Compact control within site navigation.
- **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)`

### Card Link — Variant A

- **Componente:** A linked editorial or product card whose full surface is interactive.
- **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)`

### Section Heading — Variant A

- **Componente:** Introduces a content section.
- **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)`

## 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: #244c4e;
  --ds-color-surface: #244c4e;
  --ds-color-text-primary: #ffffff;
  --ds-color-text-secondary: #ffffff;
  --ds-color-text-muted: #ffffff;
  --ds-color-text-on-brand: #ffffff;
  --ds-color-border: #e5e6e6;
  --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: 'fustat', sans-serif;
  --ds-type-body: 'fustat', sans-serif 16px 400 / 24px;
  --ds-type-heading-large: 'fustat', sans-serif 48px 700 / 1.1;
  --ds-type-heading-medium: 'fustat', sans-serif 32px 600 / 1.2;
  --ds-type-heading-small: 'fustat', sans-serif 24px 600 / 1.25;
  --ds-type-caption: 'fustat', 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;
}
```