Analysis complete

Abacate Pay

www.abacatepay.com

Abacate Pay builds a Large display typography and Control-dense composition visual language around a dark foundation and __fustat_6a44ab typography. Its fintech experience puts control clarity and action hierarchy 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.

Border

#e5e6e6

Borders and separators · Observed

Background

#244c4e

Page canvas · Observed

TextPrimary

#ffffff

Primary text · Observed

Neutral family 1

#7c7c8a

Observed palette family

Neutral family 2

#e2e7f1

Observed palette family

Neutral family 3

#121217

Observed palette family

Cyan family 1

#204749

Observed palette family

Cyan family 2

#00cfbd

Observed palette family

Cyan family 3

#249a97

Observed palette family

Blue family 1

#4c5267

Observed palette family

Blue family 2

rgba(59, 130, 246, 0.5)

Observed palette family

Blue family 3

#1f2937

Observed palette family

/ 02 . Typography

Type system

navigation

Aa Design language

Family
__fustat_6a44ab
Size
16px
Weight
400
Line
24px

bodyStrong

Aa Design language

Family
__fustat_6a44ab
Size
20px
Weight
600
Line
24px

button

Aa Design language

Family
__fustat_6a44ab
Size
16px
Weight
600
Line
24px

headingMedium

Aa Design language

Family
__fustat_6a44ab
Size
20px
Weight
600
Line
28px

smallHeading

Aa Design language

Family
__fustat_6a44ab
Size
18px
Weight
600
Line
28px

display

Aa Design language

Family
__fustat_6a44ab
Size
44px
Weight
600
Line
46.2px

/ 03 . System

Spacing and shape

Spacing rhythm

controlGap

40px

microSpacing

1px

contentGap1

36px

contentGap2

64px

sectionGap

120px

pageGutter

120px

space-xs

4px

space-sm

8px

Corner radius

smallRadius

8px

mediumRadius

12px

largeRadius

16px

fullRadius

9999px

Border language

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

Interface patterns

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
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 | `#244c4e` | Primary canvas |
| surface | `#244c4e` | 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 | `#e5e6e6` | 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 | `'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 |

### Type scale

| Token | Family | Size | Weight | Line height |
|---|---|---:|---:|---:|
| 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 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 | `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

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

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

### Navigation Control

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

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

### Section Heading — Variant A

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

## 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: #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;
}
```