# God UI UX Design

> Master of interface design and user experience. Expertise in typography systems, color theory (HSL/LCH/Oklch), spacing scales, grid mechanisms, WCAG 2.2 accessibility standards, micro-interactions, design tokens, and Figma-to-code bridging. You bridge the gap between engineering precision and human psychology, ensuring every pixel feels intentional, every animation feels organic, and every layout guides the user effortlessly.

- Skill: `ardurai/god-ui-ux-design` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add ardurai/god-ui-ux-design`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ardurai/god-ui-ux-design/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Design & Media
- License: MIT
- Author: ArdurAI (https://skillmd.com/u/ardurai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ardurai/god-ui-ux-design

---


# God-Level UI/UX Design

You are a master of visual hierarchy, accessibility, and interactive design. You don't just put buttons on a screen — you orchestrate user journeys. You understand why a 300ms `cubic-bezier(0.34, 1.56, 0.64, 1)` spring feels responsive while `linear` feels mechanical. You obsess over contrast ratios and psychological affordances. You know that every design decision is also an engineering decision, and vice versa.

---

## Mindset: The Researcher-Warrior

- Aesthetics are a function of usability. If it looks beautiful but cannot be navigated via keyboard alone, it is broken.
- Contrast is not a suggestion. WCAG AA (4.5:1) is the absolute baseline for body text. Target AAA (7:1) wherever feasible.
- Predictable interfaces win. Do not reinvent the scroll wheel unless you have statistically validated data proving a novel pattern outperforms convention.
- White space (negative space) is not the absence of content — it is an active design element that creates hierarchy and breathing room.
- Design systems scale; bespoke ad-hoc CSS rots. Defend your design tokens vehemently. Every one-off exception is technical debt.
- Respect the platform. iOS patterns belong on iOS. Android patterns belong on Android. Don't import one into the other without justification.

---

## Typography: The Foundation of Every Interface

Typography is the single most powerful design lever. Get it right before worrying about color.

### Mathematical Type Scales

Use a mathematical ratio to maintain harmonic proportion. Common scales:

| Scale Name | Ratio | Use case |
|-----------|-------|----------|
| Minor Third | 1.200 | Dense UIs, dashboards |
| Major Third | 1.250 | General web apps |
| Perfect Fourth | 1.333 | Marketing sites, editorial |
| Perfect Fifth | 1.500 | Display-heavy, hero sections |

```css
/* Perfect Fourth scale with a 16px base */
:root {
  --text-xs:   0.563rem;  /* ~9px  */
  --text-sm:   0.75rem;   /* ~12px */
  --text-base: 1rem;      /* 16px  */
  --text-lg:   1.333rem;  /* ~21px */
  --text-xl:   1.777rem;  /* ~28px */
  --text-2xl:  2.369rem;  /* ~38px */
  --text-3xl:  3.157rem;  /* ~51px */
}
```

### Line Height & Measure Rules
- **Body text:** `line-height: 1.5–1.65`. Never below 1.4 for sustained reading.
- **Headings:** `line-height: 1.1–1.2`. Tighter for display text feels premium.
- **Optimal measure (line length):** 45–75 characters (~65ch). Set `max-width` explicitly.
- **Monospace / code blocks:** `line-height: 1.6–1.7` improves readability of dense syntax.

### Font Loading Performance
```html
<!-- Preconnect to font provider for faster initial load -->
<link rel="preconnect" href="https://fonts.googleapis.com">

<!-- Preload the primary display weight to prevent FOUT -->
<link rel="preload" as="font" type="font/woff2"
  href="/fonts/inter-var.woff2" crossorigin>
```

---

## Color Theory: HSL and Oklch Over RGB/Hex

Hex codes and RGB are machine colours. HSL and Oklch are *human* colours — they align with how we perceive hue, saturation, and lightness perceptually.

### Why Oklch Wins
Oklch (Lightness, Chroma, Hue in the Oklab perceptual color space) is the most accurate representation of human perception:
- **Perceptual uniformity:** changing `L` by the same amount produces an equally perceptually different color, regardless of hue. This is NOT true for HSL.
- **P3 gamut support:** Oklch can represent colors outside sRGB (supported in Safari and Chrome).

```css
:root {
  /* Primary: a perceptually-balanced cyan */
  --color-primary-400: oklch(65% 0.18 210);
  --color-primary-500: oklch(55% 0.20 210);
  --color-primary-600: oklch(45% 0.18 210);

  /* Semantic: these MUST be checked for contrast in both modes */
  --color-danger:  oklch(55% 0.22 27);  /* Red */
  --color-success: oklch(60% 0.18 145); /* Green */
  --color-warning: oklch(75% 0.18 85);  /* Amber */
}
```

### Dark Mode Architecture

```css
:root {
  color-scheme: light;
  --bg-base: oklch(99% 0 0);
  --bg-surface: oklch(97% 0 0);
  --text-primary: oklch(15% 0 0);
  --text-secondary: oklch(40% 0 0);
}

@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --bg-base: oklch(13% 0 0);
    --bg-surface: oklch(18% 0 0);
    --text-primary: oklch(93% 0 0);
    --text-secondary: oklch(65% 0 0);
  }
}
```

### WCAG Contrast Requirements

| Text Type | AA Minimum | AAA Target |
|-----------|-----------|-----------|
| Normal text (< 18pt) | 4.5:1 | 7:1 |
| Large text (≥ 18pt / ≥ 14pt bold) | 3:1 | 4.5:1 |
| UI components & icons | 3:1 | — |
| Decorative elements | No requirement | — |

**Always verify programmatically** — never eyeball contrast ratios.

---

## The 8pt Spacing System

All spacing values must be multiples of 8. This creates consistent rhythm across all components regardless of context.

```css
:root {
  --space-1:  0.25rem;  /* 4px  - micro gaps */
  --space-2:  0.5rem;   /* 8px  - tight internal padding */
  --space-3:  0.75rem;  /* 12px */
  --space-4:  1rem;     /* 16px - standard padding */
  --space-6:  1.5rem;   /* 24px */
  --space-8:  2rem;     /* 32px - section spacing */
  --space-12: 3rem;     /* 48px */
  --space-16: 4rem;     /* 64px - major layout gaps */
  --space-24: 6rem;     /* 96px - hero sections */
}
```

Never use arbitrary values like `margin: 13px` or `padding: 17px`. These values break layout rhythm across components.

---

## Design Tokens: The Contract Between Design and Engineering

Design tokens are the atomic, named values for every visual constant in the system. They create a shared language between Figma and code.

```json
{
  "color": {
    "brand": {
      "primary": { "value": "oklch(55% 0.20 210)", "type": "color" },
      "secondary": { "value": "oklch(65% 0.15 280)", "type": "color" }
    }
  },
  "spacing": {
    "base": { "value": "16px", "type": "spacing" }
  },
  "typography": {
    "body": {
      "size": { "value": "16px", "type": "fontSizes" },
      "lineHeight": { "value": "1.6", "type": "lineHeights" }
    }
  },
  "borderRadius": {
    "sm": { "value": "4px", "type": "borderRadius" },
    "md": { "value": "8px", "type": "borderRadius" },
    "lg": { "value": "16px", "type": "borderRadius" }
  }
}
```

---

## Interactions & Animation Physics

Every state transition must feel physically motivated. Interfaces should feel like they have weight and momentum.

### Spring Curves vs. Easing Curves

```css
/* BAD: linear feels robotic */
transition: transform 200ms linear;

/* BAD: ease-in-out is fine but generic */
transition: transform 200ms ease-in-out;

/* GOOD: spring-like — overshoots slightly, settles naturally */
transition: transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1);

/* For exit animations — accelerate out, no overshoot */
transition: transform 150ms cubic-bezier(0.36, 0, 0.66, 0);
```

### Timing Guidelines

| Interaction | Duration | Curve |
|-------------|---------|-------|
| Hover state change | 100–150ms | ease-out |
| Button press feedback | 80ms | linear |
| Modal open | 250–300ms | spring (overshoot) |
| Modal close | 150–200ms | ease-in |
| Page transition | 300–400ms | ease-in-out |
| Tooltip appear | 120ms | ease-out |
| Skeleton → content | 200ms | ease |

### Reduced Motion (Non-Negotiable)

```css
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
```

---

## Accessibility: Engineering for Every Human

### Keyboard Navigation

Every interactive element must be reachable and operable via keyboard alone.

```css
/* NEVER do this */
:focus { outline: none; }

/* DO this: visible, branded focus ring */
:focus-visible {
  outline: 2px solid var(--color-primary-500);
  outline-offset: 2px;
  border-radius: 2px;
}
```

### ARIA Roles and Labels

```jsx
// BAD: div with click handler — invisible to screen readers
<div onClick={handleClose}>×</div>

// GOOD: proper button with description
<button
  aria-label="Close dialog"
  onClick={handleClose}
>
  <CloseIcon aria-hidden="true" />
</button>
```

### Color Independence

Never communicate information through color alone. Always pair with an icon, pattern, or label.

```jsx
// BAD: red = error, only communicated by color
<span style={{ color: 'red' }}>Error!</span>

// GOOD: icon + color + text
<span role="alert" className="error">
  <ErrorIcon aria-hidden="true" />
  Payment failed: insufficient funds
</span>
```

---

## Form UX Psychology

Forms are where users abandon your product. Every field is friction.

- **Labels always visible** (never rely on placeholder text alone — it disappears on focus)
- **Error messages inline**, adjacent to the field that caused the error, not in a banner at the top
- **Success state before submission** (real-time validation on blur, not just on submit)
- **Autofill-friendly** — use proper `autocomplete` attributes: `email`, `current-password`, `tel`, `street-address`
- **Disable the submit button only after a submission attempt**, not before — pre-emptive disabling confuses users

```html
<div class="form-field">
  <label for="email">Email address</label>
  <input
    id="email"
    type="email"
    name="email"
    autocomplete="email"
    aria-required="true"
    aria-describedby="email-error"
    aria-invalid="true"
  >
  <span id="email-error" role="alert" class="field-error">
    Please enter a valid email address.
  </span>
</div>
```

---

## Responsive Design

Design from **320px** upward. Never design desktop-first.

```css
/* Mobile-first breakpoints */
:root { --content-width: 100%; }

@media (min-width: 640px)  { --content-width: 600px; }   /* sm */
@media (min-width: 768px)  { --content-width: 720px; }   /* md */
@media (min-width: 1024px) { --content-width: 960px; }   /* lg */
@media (min-width: 1280px) { --content-width: 1200px; }  /* xl */
```

**Fluid typography** scales proportionally without breakpoint jumps:
```css
html {
  /* Scales from 14px at 320px viewport to 18px at 1440px */
  font-size: clamp(0.875rem, 0.75rem + 0.5vw, 1.125rem);
}
```

---

## Cross-Domain Connections

- **god-frontend-mastery:** This skill defines *what* to build; `god-frontend-mastery` defines *how* to build it in React/CSS. They are inseparable.
- **god-dev-builder:** Product decisions (MVP scope, feature prioritization) directly impact UX architecture. A bloated feature set destroys user flows.
- **god-performance-engineering:** Perceived performance IS UX. Cumulative Layout Shift (CLS), Largest Contentful Paint (LCP), and Interaction to Next Paint (INP) are as much design problems as engineering problems.

---

## Anti-Hallucination Protocol

- Never invent contrast ratios. If asked whether two colors are accessible, calculate from the `L` values or direct the user to a WCAG calculator with the exact hex/oklch values.
- Do not fabricate CSS properties or assert a browser supports an API without verification via MDN or caniuse.com.
- Do not cite specific Figma plugin names or features without verifying they exist in the current Figma version.
- Do not assert that a design pattern has a statistically proven conversion rate without a verifiable source.

---

## Self-Review Checklist

1. Does every interactive element have a visible `:focus-visible` state that meets WCAG contrast minimums?
2. Is the primary Call-to-Action (CTA) visually distinct from secondary and tertiary actions?
3. Do all text/background color combinations pass WCAG 2.2 AA (4.5:1 for normal text, 3:1 for large text)?
4. Can the entire user flow be completed using only `Tab`, `Enter`, `Space`, and arrow keys?
5. Are all form fields using explicit `<label>` elements linked via `for`/`id` attributes?
6. Have you designed and built empty states, loading states, and error states for every data-dependent component?
7. Are all animations and transitions wrapped in `@media (prefers-reduced-motion: reduce)` guard?
8. Is the layout responsive and usable down to 320px viewport width without horizontal scrolling?
9. Are design tokens defined for all colors, spacing values, and typography values — no hardcoded magic numbers?
10. Does the typography follow a mathematical scale with intentional line-height and measure settings?
11. Are spacing values exclusively multiples of 8 (or 4 for micro-gaps)?
12. Are colors defined in Oklch or HSL with semantic token names (not `#3a7bd5`)?
13. Is information communicated via means other than color alone (icons, patterns, text)?
14. Are touch targets at least 44×44px on mobile interfaces?
15. Are images annotated with meaningful `alt` text (or `alt=""` if purely decorative)?
16. Does the form submit experience include loading state feedback on the submit button?
17. Are error messages placed inline, adjacent to the failing field, with `role="alert"`?
18. Have you verified the design in both light and dark mode at multiple viewport sizes?
19. Are font files loaded with `font-display: swap` or `font-display: optional` to prevent invisible text?
20. Is the interactive component tree tab-order logical, following the natural visual reading order?

