Analysis complete

Mailchimp

mailchimp.com/pt-br

Mailchimp builds a Large display typography and Control-dense composition visual language around a dark foundation and Graphik Web typography. Its marketing experience puts editorial rhythm and content narrative at the center of the composition.

/ 01 . Color

Color palette

Visual system extracted from computed styles, CSS variables and repeated foreground/background usage across the analyzed page.

TextPrimary

#ffffff

Primary text · Observed

Background

#231e15

Page canvas · Observed

Border

rgba(35, 30, 21, 0.3)

Borders and separators · Observed

Neutral family 1

#000000

Observed palette family

Neutral family 2

#f0f4f6

Observed palette family

Neutral family 3

rgba(35, 30, 21, 0.65)

Observed palette family

Yellow family 1

#ffe01b

Observed palette family

Yellow family 2

rgba(255, 224, 27, 0.65)

Observed palette family

Yellow family 3

rgba(255, 224, 27, 0.15)

Observed palette family

/ 02 . Typography

Type system

navigation

Aa Design language

Family
Graphik Web
Size
16px
Weight
400
Line
21.6px

button

Aa Design language

Family
Graphik Web
Size
13px
Weight
500
Line
14.3px

caption

Aa Design language

Family
Graphik Web
Size
13px
Weight
400
Line
17.55px

smallHeading

Aa Design language

Family
Graphik Web
Size
16px
Weight
400
Line
24px

body

Aa Design language

Family
Graphik Web
Size
16px
Weight
400
Line
normal

headingLarge

Aa Design language

Family
Means Web
Size
40px
Weight
400
Line
40px

/ 03 . System

Spacing and shape

Spacing rhythm

controlGap1

30px

controlGap2

40px

contentGap1

30px

contentGap2

44px

sectionGap1

68px

sectionGap2

80px

space-xs

2.4px

space-sm

8px

Corner radius

smallRadius

3px

mediumRadius

10px

largeRadius

24px

fullRadius

9999px

Border language

defaultBorder

1px solid rgb(188, 186, 182)

/ 04 . Components

Interface patterns

Nav

inferred

Reusable nav pattern.

12px 16px

Variant A Content Section

inferred

Major page content boundary.

80px 0px32px 0px

Variant B Content Section

inferred

Major page content boundary.

80px 0px64px 0px

Content Card

observed

Repeated grouped content surface.

24px corner radius

Large Inline Text Link

observed

Text navigation embedded in compact content flow.

"Graphik Web", "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif | 16px | 400 | 21.6px | normal"Graphik Web", "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif | 15px | 500 | 32px | normal0px 40px 0px 0pxPill

Small Inline Text Link

observed

Text navigation embedded in compact content flow.

"Graphik Web", "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif | 13px | 500 | 14.3px | normal8px3px corner radius
View the complete DESIGN.md content
# DESIGN.md

## 1. Overview

Interface guided by clear visual hierarchy, consistent surfaces, and a controlled semantic palette.
Use the tokens and contracts below as the normative source for accessible, responsive implementation.

> Normative implementation contract: preserve semantic token names, responsive rules, and interaction states when extending the interface.

## 2. Colors and accessibility

### Semantic color tokens

| Token | Hex value | Purpose |
|---|---|---|
| background | `#231e15` | Primary canvas |
| surface | `#231e15` | Raised surfaces |
| text-primary | `#ffffff` | Primary text |
| text-secondary | `#ffffff` | Secondary text |
| text-muted | `#ffffff` | Supporting text |
| text-on-brand | `#ffffff` | Text on brand |
| border | `#231e15` | Borders and dividers |
| brand | `#2563eb` | Primary brand action |
| success | `#166534` | Positive state |
| danger | `#b91c1c` | Destructive state |
| warning | `#92400e` | Warning state |
| info | `#075985` | Informational state |
| focus | `#1d4ed8` | Focus ring |

### WCAG AA rules

- Normal text must reach a minimum contrast ratio of 4.5:1.
- Large text and interface elements must reach a minimum contrast ratio of 3:1.
- Visible focus must maintain a minimum contrast ratio of 3:1 and must not rely on color alone.
- Use only semantic token combinations that meet these ratios.

## 3. Typography

### Family

| Token | Family | Usage |
|---|---|---|
| font-primaryfont | `'Graphik Web', sans-serif` | Body and interface text |
| font-displayfont | `'Means Web', sans-serif` | Display hierarchy |

### Type scale

| Token | Family | Size | Weight | Line height |
|---|---|---:|---:|---:|
| type-navigation | `'Graphik Web', sans-serif` | `16px` | `400` | `21.6px` |
| type-button | `'Graphik Web', sans-serif` | `13px` | `500` | `14.3px` |
| type-caption | `'Graphik Web', sans-serif` | `13px` | `400` | `17.55px` |
| type-smallheading | `'Graphik Web', sans-serif` | `16px` | `400` | `24px` |
| type-body | `'Graphik Web', sans-serif` | `16px` | `400` | `normal` |
| type-headinglarge | `'Means Web', sans-serif` | `40px` | `400` | `40px` |
| type-headingmedium | `'Graphik Web', sans-serif` | `23px` | `400` | `30px` |
| type-display | `'Means Web', sans-serif` | `64px` | `400` | `76.8px` |

## 4. Layout and spacing

### Breakpoints

- **Mobile:** `< 768px` — one-column grid, 16px/24px gutters, and stacked navigation.
- **Tablet:** `768px–1023px` — adaptive grid and 32px/48px gutters.
- **Desktop:** `>= 1024px` — 120px gutters and a container max-width defined by the layout.

### Responsive rules

- **Header:** stack navigation and actions on mobile; keep primary navigation inline from tablet upward.
- **Hero:** use one column on mobile, a balanced two-column composition on tablet, and the full container on desktop.
- **Cards:** stretch to the grid width on mobile, use two columns on tablet, and the defined card grid on desktop.
- **Navigation grid: use one column on mobile, adaptive columns on tablet, and the complete navigation grid on desktop.

### Spacing scale

| Token | Value | Usage |
|---|---:|---|
| space-xs | `2.4px` | Layout scale |
| space-sm | `8px` | Layout scale |
| space-md | `12px` | Layout scale |
| space-lg | `16px` | Layout scale |
| space-xl | `20px` | Layout scale |

## 5. Shapes, borders and depth

### Radii

| Token | Value | Usage |
|---|---:|---|
| radius-sm | `4px` | Compact controls |
| radius-md | `12px` | Cards and surfaces |
| radius-full | `9999px` | Pills and circular controls |

### Borders and depth

- Border width: `var(--ds-border-width)`.
- Border style: `solid`.
- Border color: `var(--ds-color-border)`.
- Use `var(--ds-shadow-sm)` for low elevation and `var(--ds-shadow-inner)` for inner separation.

## 6. Component specification

### Nav

- **Component:** Reusable nav pattern.
- **Typography:** `var(--ds-type-body)`
- **Colors:** `var(--ds-color-text-primary)` and `var(--ds-color-text-on-brand)` on brand surfaces
- **Geometry:** `var(--ds-radius-md)` and `var(--ds-space-sm)` for internal spacing
- **Border:** `var(--ds-border-width) solid var(--ds-color-border)`

### Content Section — Variant A

- **Component:** Major page content boundary.
- **Typography:** `var(--ds-type-body)`
- **Colors:** `var(--ds-color-text-primary)` and `var(--ds-color-text-on-brand)` on brand surfaces
- **Geometry:** `var(--ds-radius-md)` and `var(--ds-space-sm)` for internal spacing
- **Border:** `var(--ds-border-width) solid var(--ds-color-border)`

### Content Card

- **Component:** Repeated grouped content surface.
- **Typography:** `var(--ds-type-body)`
- **Colors:** `var(--ds-color-text-primary)` and `var(--ds-color-text-on-brand)` on brand surfaces
- **Geometry:** `var(--ds-radius-md)` and `var(--ds-space-sm)` for internal spacing
- **Border:** `var(--ds-border-width) solid var(--ds-color-border)`

### Inline Text Link — Large

- **Component:** Text navigation embedded in compact content flow.
- **Typography:** `var(--ds-type-body)`
- **Colors:** `var(--ds-color-brand)` and `var(--ds-color-text-on-brand)` on brand surfaces
- **Geometry:** `var(--ds-radius-md)` and `var(--ds-space-sm)` for internal spacing
- **Border:** `var(--ds-border-width) solid var(--ds-color-border)`

### Button — Variant A

- **Component:** Direct interface action.
- **Typography:** `var(--ds-type-body)`
- **Colors:** `var(--ds-color-brand)` and `var(--ds-color-text-on-brand)` on brand surfaces
- **Geometry:** `var(--ds-radius-full)` and `var(--ds-space-sm)` for internal spacing
- **Border:** `var(--ds-border-width) solid var(--ds-color-border)`

## 7. Interaction contract

### Universal state rules

| State | Visual behavior |
|---|---|
| Initial state | Use `var(--ds-color-surface)`, `var(--ds-color-text-primary)`, `var(--ds-color-border)`, `var(--ds-type-body)` and `var(--ds-radius-md)`. |
| `:hover` | Increase emphasis with `var(--ds-color-brand-hover)` or `var(--ds-color-surface-hover)`; preserve geometry and layout. |
| `:active` | Apply `var(--ds-color-brand-active)` or `var(--ds-color-surface-active)`; preserve dimensions. |
| `:focus-visible` | Show a ring of `var(--ds-focus-ring-width)` using `var(--ds-color-focus)`, with offset `var(--ds-focus-ring-offset)`. |
| `:disabled` | Use `var(--ds-state-disabled-opacity)`, `cursor: not-allowed` and `pointer-events: none`; remove pointer events. |

## 8. Design tokens

```css
:root {
  --ds-color-background: #231e15;
  --ds-color-surface: #231e15;
  --ds-color-text-primary: #ffffff;
  --ds-color-text-secondary: #ffffff;
  --ds-color-text-muted: #ffffff;
  --ds-color-text-on-brand: #ffffff;
  --ds-color-border: #231e15;
  --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: 'Graphik Web', sans-serif;
  --ds-type-body: 'Graphik Web', sans-serif 16px 400 / 24px;
  --ds-type-heading-large: 'Means Web', sans-serif 48px 700 / 1.1;
  --ds-type-heading-medium: 'Means Web', sans-serif 32px 600 / 1.2;
  --ds-type-heading-small: 'Means Web', sans-serif 24px 600 / 1.25;
  --ds-type-caption: 'Graphik Web', 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;
}
```