All docs

Updated 2026-09-28

Design

The visual language, YuTheme tokens, and Ella's identity.

The site belongs to the YuTheme ecosystem: the same AMOLED true-black ground and warm near-black surfaces, Geist type, hairline borders, restrained motion, and editorial clarity used across Yuri's products, while keeping an identity of its own.

Identity

Ella's mark is a square gold "E" (used in the header and favicon) plus a gold diamond used as a recurring accent before eyebrows. There is no avatar, no face, no mascot. Identity lives in typography, composition, color, and small graphic details.

Tokens

Canonical YuTheme values, defined in apps/web/src/app/[locale]/globals.css:

  • canvas #000000, window/surface #0b0b0a, raised #151514
  • text primary #f4f1e8, secondary #b3ad9f, tertiary #8e887c
  • accent gold #d6a84f, hover #e0b760
  • neutral alpha borders: faint 0.08, subtle 0.13, default 0.2, strong 0.32
  • radii 4/8/12px, window 14px, transition 160ms cubic-bezier(0.2, 0, 0, 1)

Do not add approximate colors when a canonical token exists.

Typography

  • Geist Variable for everything; Geist Mono Variable for labels and metadata.
  • Hero h1: clamp(2.25rem, 5vw, 3.25rem), weight 400, letter spacing -0.03em, with the italic gold "Ella".
  • Section titles: clamp(1.5rem, 3vw, 2.25rem), weight 500.
  • Eyebrows: mono, 11px, uppercase, letterspaced, with a gold diamond and section number (01, 02...).

Composition

  • Header fixed at 64px, scrollspy marks the active section in gold.
  • Hero is a two column grid on desktop: copy on the left, a terminal card on the right. On mobile it stacks.
  • Editorial sections use a 1fr / 1.4fr grid with faint top borders and generous padding; they collapse to one column below 900px.
  • The terminal card presents Ella's status lines with a blinking gold cursor. It is a design element, not a live terminal.

Motion

Quiet and functional:

  • shimmer on the hero name and footer signature;
  • blur-in entrance (yu-rise) on the hero columns;
  • a quiet focal glow behind the terminal;
  • scroll reveals with a small stagger, driven by IntersectionObserver;
  • everything gated behind prefers-reduced-motion: no-preference. Under reduced motion all effects are disabled and content must remain visible.

Do not add decorative motion without a reduced-motion path.

Anti-patterns

Avoid SaaS chrome, neon purple, cliche anime styling, excessive gradients, free glassmorphism, dashboards, card walls, and decoration without function.