Analysis complete

Eleken

www.eleken.co

Eleken builds a Typography-led hierarchy and Navigation-heavy structure visual language around a mixed foundation and Inter Variable Local typography. Its saas 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

#717171

Primary text · Observed

Border

rgba(0, 0, 0, 0.1)

Borders and separators · Observed

Neutral family 1

#747474

Observed palette family

Neutral family 2

#1d1e22

Observed palette family

Neutral family 3

#888686

Observed palette family

Coral family 1

#f59958

Observed palette family

Coral family 2

#ff8e5e

Observed palette family

Coral family 3

#ebb29a

Observed palette family

/ 02 . Typography

Type system

navigation

Aa Design language

Family
Inter Variable Local
Size
15px
Weight
400
Line
25.0001px

body

Aa Design language

Family
Inter Variable Local
Size
15px
Weight
400
Line
24.99px

headingLarge

Aa Design language

Family
Regolapro
Size
32px
Weight
500
Line
40px

caption

Aa Design language

Family
Inter Variable Local
Size
13px
Weight
500
Line
20px

label

Aa Design language

Family
Inter Variable Local
Size
13px
Weight
500
Line
15.6px

headingMedium

Aa Design language

Family
Regolapro
Size
18px
Weight
500
Line
23.94px

/ 03 . System

Spacing and shape

Spacing rhythm

controlGap1

36px

controlGap2

46px

microSpacing

1px

contentGap1

113px

contentGap2

120px

sectionGap1

80px

sectionGap2

300px

space-xs

6px

Corner radius

smallRadius

6px

mediumRadius

10px

fullRadius

9999px

Border language

defaultBorder

1px solid rgba(0, 0, 0, 0.1)

supportingBorder1

1px solid rgb(249, 247, 243)

supportingBorder2

1px solid rgb(228, 228, 228)

/ 04 . Components

Interface patterns

Variant A Navigation Link

inferred

Primary navigation between major destinations.

"Inter Variable Local", Arial, sans-serif | 15px | 400 | 25.0001px | normal

Variant B Navigation Link

inferred

Primary navigation between major destinations.

"Inter Variable Local", Arial, sans-serif | 13px | 500 | 15.6px | normal12px 16px10px10px corner radius

Variant C Navigation Link

observed

Primary navigation between major destinations.

"Inter Variable Local", Arial, sans-serif | 13px | 500 | 16.9px | normal8px 12px10px corner radius

Display Heading

inferred

Primary page statement.

Regolapro, sans-serif | 52px | 500 | 57.98px | -1.5px

Variant A CTA Link

inferred

High-emphasis conversion or navigation action.

"Inter Variable Local", Arial, sans-serif | 15px | 400 | 25.0001px | normal"Inter Variable Local", Arial, sans-serif | 13px | 500 | 15.6px | normal20px9px 16px10px

Variant B CTA Link

inferred

High-emphasis conversion or navigation action.

Regolapro, sans-serif | 13px | 500 | 18px | normal9px 16px10px 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 | `#ffffff` | Primary canvas |
| surface | `#ffffff` | Raised surfaces |
| text-primary | `#717171` | Primary text |
| text-secondary | `#717171` | Secondary text |
| text-muted | `#717171` | Supporting text |
| text-on-brand | `#ffffff` | Text on brand |
| border | `#000000` | 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-navigationfont | `'Inter Variable Local', sans-serif` | Body and interface text |
| font-primaryfont | `'Regolapro', sans-serif` | Body and interface text |
| font-supportingfont | `'Inter', sans-serif` | Body and interface text |

### Type scale

| Token | Family | Size | Weight | Line height |
|---|---|---:|---:|---:|
| type-navigation | `'Inter Variable Local', sans-serif` | `15px` | `400` | `25.0001px` |
| type-body | `'Inter Variable Local', sans-serif` | `15px` | `400` | `24.99px` |
| type-headinglarge | `'Regolapro', sans-serif` | `32px` | `500` | `40px` |
| type-caption | `'Inter Variable Local', sans-serif` | `13px` | `500` | `20px` |
| type-label | `'Inter Variable Local', sans-serif` | `13px` | `500` | `15.6px` |
| type-headingmedium | `'Regolapro', sans-serif` | `18px` | `500` | `23.94px` |
| type-bodystrong | `'Regolapro', sans-serif` | `18px` | `700` | `24px` |

## 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 | `6px` | 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

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

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

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

### Card Link — Variant A

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

## 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: #717171;
  --ds-color-text-secondary: #717171;
  --ds-color-text-muted: #717171;
  --ds-color-text-on-brand: #ffffff;
  --ds-color-border: #000000;
  --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: 'Inter Variable Local', sans-serif;
  --ds-type-body: 'Inter Variable Local', sans-serif 16px 400 / 24px;
  --ds-type-heading-large: 'Regolapro', sans-serif 48px 700 / 1.1;
  --ds-type-heading-medium: 'Regolapro', sans-serif 32px 600 / 1.2;
  --ds-type-heading-small: 'Regolapro', sans-serif 24px 600 / 1.25;
  --ds-type-caption: 'Inter Variable Local', 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;
}
```