Analysis complete

Revelatio Studio

revelatio.studio

Revelatio Studio builds a Navigation-heavy structure and Minimal decorative depth visual language around a mixed foundation and Neue Haas Grotesk Text Pro 55 Roman typography. Its studio experience puts spatial organization and navigation orientation 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

Neutral family 1

rgba(255, 255, 255, 0.16)

Observed palette family

Neutral family 2

rgba(0, 0, 0, 0.64)

Observed palette family

Neutral family 3

rgba(255, 255, 255, 0.6)

Observed palette family

/ 02 . Typography

Type system

button

Aa Design language

Family
Neue Haas Grotesk Text Pro 55 Roman
Size
11.9952px
Weight
400
Line
17.9928px

caption

Aa Design language

Family
Neue Haas Grotesk Text Pro 55 Roman
Size
11.9952px
Weight
400
Line
13.1947px

body

Aa Design language

Family
Neue Haas Grotesk Text Pro 55 Roman
Size
20.9916px
Weight
400
Line
27.2891px

headingLarge

Aa Design language

Family
Neue Haas Grotesk Text Pro 55 Roman
Size
35.9856px
Weight
400
Line
39.5842px

headingMedium

Aa Design language

Family
Neue Haas Grotesk Text Pro 55 Roman
Size
14.994px
Weight
500
Line
19.4922px

/ 03 . System

Spacing and shape

Spacing rhythm

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

Corner radius

smallRadius

2.624px

mediumRadius

2.999px

largeRadius

3.994px

Border language

defaultBorder

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

/ 04 . Components

Interface patterns

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
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 | `#ffffff` | Primary canvas |
| surface | `#ffffff` | Raised surfaces |
| text-primary | `#111111` | Primary text |
| text-secondary | `#111111` | Secondary text |
| text-muted | `#111111` | Supporting text |
| text-on-brand | `#ffffff` | Text on brand |
| border | `#d1d5db` | 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 | `'Neue Haas Grotesk Text Pro 55 Roman', sans-serif` | Body and interface text |

### Type scale

| Token | Family | Size | Weight | Line height |
|---|---|---:|---:|---:|
| 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 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.62395px` | Layout scale |
| space-sm | `5.9976px` | Layout scale |
| space-md | `8.9964px` | Layout scale |
| space-lg | `11.9952px` | Layout scale |
| space-xl | `13.1198px` | 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)`

### Navigation Link — Variant A

- **Component:** Primary navigation between major destinations.
- **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)`

### Display Heading

- **Component:** Primary page statement.
- **Typography:** `var(--ds-type-heading-medium)`
- **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

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

### CTA Link — Variant A

- **Component:** High-emphasis conversion or navigation 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: #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;
}
```