Skip to main content
AC
Design & Motion7.1 KBMIT licensed

awwwards-2026

Original, written for TechTide client work

Build editorial, award-tier public pages: opinionated type, asymmetric layout, one motion moment per viewport, ruthless copy reduction on a web-standards floor. Use when creating or restyling landing, marketing, portfolio, pricing, about, or blog index pages, or when asked for premium, editorial, studio-quality design. Not for internal app UI (admin, dashboard, settings, console, API routes). Not for measuring decay in an existing UI: use design-system-drift.

  • awwwards
  • 2026

SKILL.md

awwwards-2026

If it's normal, basic, or standard, we don't want it. And if an element carries no information, delete it: better absent than present without purpose. This skill replaces the default landing-page reflex (framework-default components, Inter, centered hero, three-card grid) with how elite studios compose.

Scope

Apply automatically to any new public-facing route (landing, marketing, portfolio, brand, product, pricing, about, contact, blog index) and to any request containing "beautiful", "modern", "awwwards", "premium", "editorial", "polished", "design-led". Skip authenticated areas, admin, dashboard, settings, console, and API routes: clarity beats opinion there. In doubt: in scope.

Step 0: Gate. Ask before writing any code

You choose no font, palette, or hero archetype yourself. Ask the user three questions in one round, each offering 3 curated options plus a free-text "other":

  1. Type pairing. Propose 3 pairings that fit the product, drawn from independent or variable-font foundries (Velvetyne, open-source display faces), never from the banned list in references/typography-and-color.md. Each option states the font names, a one-line mood, and the source.
  2. Palette direction. Propose 3 OKLCH palettes: off-black plus paper-white plus one saturated accent each.
  3. Hero archetype. Propose 3 archetypes that fit the product and the proposed type/palette (examples: oversized display type over asymmetric media, split-screen editorial, kinetic text hero).

Do not proceed until all three are answered. If you wrote code first, stop and restart from Step 0.

Step 1: Tokens

Replace the default :root with opinionated tokens in the project stylesheet: off-black and paper-white in OKLCH (never pure #000/#fff), border-radius 0 by default, base duration ~480ms with an expo-out ease, a 1.333 modular scale with fluid clamp() steps up to a display step, fluid spacing tokens (--gutter, --space-block, --space-section), container width tokens (--w-outer, --w-content, --w-prose), and a styled ::selection. Set the accent and neutrals to the palette the user picked.

Step 2: Typography

Wire the chosen pairing: @font-face or hosted stylesheet link, then --font-display / --font-body / --font-mono. The banned-fonts list in references/typography-and-color.md is zero tolerance. If a banned font appears anywhere in head, @font-face, or computed styles, rip it out.

Step 3-4: Hero, then composition

Build the chosen hero archetype. If you find yourself writing a centered container hero, you skipped Step 0. Then compose with hard rules:

  • 3-5 sections max, one job per section
  • Left-align by default; centered is a deliberate choice
  • Asymmetric 12-col grids: 5/7 or 4/8 splits, never 6/6 or 4/4/4
  • No default-styled Card or Button components on marketing surfaces; verb-led CTA copy ("Start a project"), never "Get Started"
  • No icon-pack icons as feature decoration: numerals, custom SVG, or nothing
  • Aspect ratios 4/5, 3/4, or 21/9, never 16/9 on hero or portfolio media
  • Radius 0 or full-round, nothing between
  • No "Trusted by" logo strip, no 3-col testimonial cards, no 4-column footer

Step 4.5: Web standards floor (non-negotiable)

  • Landmarks on every page: header, nav, main, footer. Sections carry aria-labelledby. One h1 per route, no skipped levels. Mono kickers (01 / WORK) are <p>, not headings.
  • Body min 16px, line-height 1.5-1.7, line length 60-75ch. Icon-only buttons get aria-label. Interactive targets at least 44x44px. h-dvh, never h-screen.
  • All layout spacing via the fluid tokens. Zero arbitrary px values.
  • Accent hits WCAG AA against both neutrals (4.5:1 body, 3:1 large/UI). If it fails, adjust lightness or swap it before shipping.

Step 4.6: Reduction pass (before motion, on purpose)

Motion applied to filler amplifies the filler. For every element ask: what does the user learn or do because this exists? "It balances the layout" is not an answer, whitespace is. Delete decorative pseudo-information and strip AI-tell copy per references/copy-rules.md. If two elements say the same thing, keep the stronger one.

Step 5-6: Motion, then required moves

One motion moment per viewport, two max: magnetic link, split-text reveal, marquee, scramble, clip-path image reveal, sticky scroll, or custom cursor. Always honor prefers-reduced-motion with a static fallback. Then confirm the page includes at least two signature moves: oversized display type, grid-escaping asymmetry, one kinetic element, custom hover states, scroll-linked reveal, an unexpected accent moment, editorial section spacing, or numerals/mono labels as ornament.

Good vs bad

Bad hero: centered container, Inter, headline plus subhead that paraphrases it, two buttons ("Get Started", "Learn More") pointing at the same signup.

Good hero: display face at 12-16vw, left-aligned on a 5/7 split, one verb-led CTA, media at 4/5, one motion moment.

Verification

Do the full self-audit in references/audit-checklist.md against the rendered page. Count violations in each of the three groups (visual, standards, copy). Expect every count to be 0. If any count is above 0, fix and re-audit before declaring done.

Completion checklist

  • [ ] User answered all three Step 0 questions before any code
  • [ ] Tokens, chosen fonts, and chosen palette wired; no banned font anywhere
  • [ ] 3-5 sections, asymmetric grids, no banned components or copy
  • [ ] Landmarks, heading order, tap targets, fluid spacing, AA contrast all pass
  • [ ] Reduction pass run before motion; every surviving element informs
  • [ ] Max 2 motion moments per viewport, reduced-motion fallback present
  • [ ] At least 2 required moves shipped
  • [ ] Self-audit counts all zero

Any box unchecked: not done. Fix or say so.

Footguns

  • Choosing the fonts yourself to save a round-trip. The gate exists because taste is the user's call. Fix: restart from Step 0.
  • Motion before reduction. You will animate filler. Fix: run Step 4.6 first, always.
  • Accent chosen for vibe, failing AA. Fix: check contrast against both neutrals, adjust OKLCH lightness.
  • `h-screen` on mobile. Browser chrome eats the viewport. Fix: h-dvh.

Red flags

Stop if you catch yourself saying any of these:

  • "I'll pick a tasteful default font for now"
  • "A centered hero is cleaner here"
  • "The em dash reads fine in this one line"
  • "This section fills out the page nicely"
  • "I'll run the audit after publishing"

Any variant of these excuses is the same excuse. The gate and the audit have no exceptions.

Reference files

More in Design & Motion

All skills