Skill web design
Visual and aesthetic design direction for web and UI. LIBERA Studio synthesis of impeccable design laws + high-end-visual-design pattern catalog. Self-contained for first-pass direction; optional deep-dive references if skill-web-design repository is available. Covers brand and product registers, OKLCH color strategy, typography, motion choreography, layout, and AI slop prevention at two levels. Modes: Build (default), Audit, Redesign, Study.From its SKILL.md
npx -y skills add liberastudio-mx/skill-web-designAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
33.0 KB, ~7.9k tokens by cl100k_base, as published. Nobody here has run it
Design Libera — Visual Design Direction
Aesthetic design intelligence for web and UI. Covers visual direction, color strategy, typography, motion, and layout for both brand and product surfaces.
Use alongside /ui-ux-libera for technical UX (accessibility, touch targets, performance, launch completeness). When the two conflict, /ui-ux-libera wins — see Conflict Resolution below.
Mode Selection
Identify your mode before proceeding. Default is Build.
| Mode | Trigger phrases | What it does |
|---|---|---|
| Build | (default) | Creates new UI with selected register, theme, and macrostructure. Runs all gate checks. |
| Audit | "audit questo design", "valuta questo UI", "audita este diseño", "cosa non va", "score questo" | Scores existing code or screenshot against design patterns. No edits made. |
| Redesign | "ridisegna", "rediseña", "rediseña", "cambia stile", "stessa struttura diverso look", "preserva il contenuto" | Preserves copy and information architecture. Rebuilds visual fingerprint from scratch. |
| Study | "analizza questo sito", "analiza este sitio", "estrai il DNA", "voglio replicare questo stile", "cosa usa questo design" | Extracts design DNA from a URL or screenshot. Produces a portable design brief. |
Step 0 — Choose Your Register
Identify before doing anything else. Everything downstream depends on this.
Brand — design IS the product: landing pages, marketing surfaces, campaign pages, portfolios, about pages. Goal: communicate, impress, convert. The visitor's impression is the deliverable.
Product — design SERVES the product: app UIs, dashboards, settings, authenticated surfaces, tools. Goal: earn familiarity, disappear into the task.
If unclear: use the dominant verb of the surface. A landing page sells → brand. A dashboard works → product.
If asking is not appropriate, classify by dominant user intent:
- sell, persuade, announce, recruit, impress → Brand
- create, manage, monitor, edit, configure, analyze → Product
- both present → apply Hybrid Surfaces below; do not force one register on the whole page.
Conflict Resolution with /ui-ux-libera
When this skill conflicts with /ui-ux-libera, resolve in this order:
- Accessibility — always wins. Contrast, reduced motion, focus visibility, target sizes.
- Task completion — user must be able to complete the action without friction.
- Performance and responsiveness — no motion or layout that degrades interaction on mobile or slow networks.
- Existing product design systems — respect what's already built.
- Design Libera direction — applies only after all the above are satisfied.
Examples where /ui-ux-libera wins: py-24 section padding reduced on mobile for density; ambitious Brand motion blocked by prefers-reduced-motion; Drenched color blocked by contrast requirements; Button-in-Button modified for accessible target size and focus ring.
Hybrid Surfaces
Do not force a single register on a page that has mixed jobs.
Assign register by zone:
| Zone type | Register |
|---|---|
| Hero, story, proof, pricing, about, campaign | Brand |
| Editor, dashboard, form, settings, table, workflow, authenticated tool | Product |
| Shared chrome (nav, footer) | Product behavior; may receive Brand styling if it does not harm task clarity |
Brand may frame Product (wrapper, hero, onboarding), but Product interaction patterns must remain familiar and predictable. Never apply Brand expression to repetitive task surfaces.
Shared Design Laws
Apply to every design, both registers.
Color
Use OKLCH. Reduce chroma as lightness approaches 0 or 100 — high chroma at extremes looks garish.
Never use #000 or #fff. Tint every neutral toward the brand hue (chroma 0.005–0.01 is enough to feel natural; not enough to read as "tinted").
Pick a color strategy before picking colors:
| Strategy | Surface coverage | Default for |
|---|---|---|
| Restrained | Tinted neutrals + one accent ≤10% | Product UI, minimal brand |
| Committed | One saturated color 30–60% | Brand identity-driven pages |
| Full palette | 3–4 named roles, each used deliberately | Brand campaigns, data viz |
| Drenched | The surface IS the color | Brand heroes, campaign pages |
The "one accent ≤10%" rule is Restrained only. Committed / Full palette / Drenched exceed it on purpose. Don't collapse every design to Restrained by reflex.
Theme
Dark vs. light is never a default. Before choosing, write one sentence of physical scene: who uses this, where, under what ambient light, in what mood. The sentence must force the answer — if it doesn't, add detail until it does.
"Dashboard for SaaS" does not force an answer. "SRE checking incident severity on a 27-inch monitor at 2am in a dim room" does.
Typography
- Cap body line length at 65–75ch
- Hierarchy through scale + weight contrast — minimum 1.25 ratio between steps
- Flat scales (1.1× apart) read as uncommitted
Layout
- Vary spacing for rhythm. Same padding everywhere is monotony.
- Cards are the lazy answer. Use them only when they're the best affordance for the content.
- Nested cards are wrong when they create redundant grouping or card-inside-card clutter. Double-Bezel (see Pattern Catalog) is allowed when the outer layer acts as a material frame, not a second content container.
- Don't wrap everything in a container. Most things don't need one.
Motion
- Don't animate CSS layout properties (
width,height,top,left, margins) - Ease out with exponential curves. No bounce, no elastic.
cubic-bezier(0.25, 1, 0.5, 1)— quart out, smooth and refinedcubic-bezier(0.16, 1, 0.3, 1)— expo out, snappy and confident
- Exit animations at ~70% of enter duration
- All motion must respect
prefers-reduced-motion. In reduced-motion mode, preserve state clarity with opacity, instant state changes, or shorter transitions — never remove state feedback entirely.
Default-Refuse Patterns
Match-and-refuse by default. Allow only if you can state: (1) why this pattern is structurally needed, (2) why a simpler alternative is worse, (3) how it avoids the cliché form.
- Side-stripe borders —
border-leftorborder-right>1px as a colored accent on cards, alerts, or list items. Default refuse; exceptions: changelog entries, code diff markers, severity alerts with documented rationale. - Gradient text —
background-clip: text+ gradient background. Default refuse; exceptions: deliberate campaign typography with a clear brand reason. - Glassmorphism as default — blur and glass cards used decoratively. Default refuse; see Ethereal Glass archetype for when glass is structurally justified.
- Hero-metric template — big number, small label, supporting stats, gradient accent. SaaS cliché; default refuse.
- Identical card grids — same-sized cards with icon + heading + text, repeated endlessly. Default refuse; exceptions: pricing comparison, directory listings, marketplace items with documented rationale.
- Modal as first thought — exhaust inline / progressive / slide-over alternatives first. Modals for high-stakes confirmation, quick-create, command palette, or media preview only.
- Staggered card offsets —
md:mt-Non alternating grid cards to simulate a cascade or bento offset. Default refuse; the grid collapses to a single column on mobile and the offsets become misaligned rows with no visual logic. Use the Z-Axis Cascade archetype if vertical offset is structurally required. - CSS-class gradient text — custom utility classes or keyframe animations applying
background-clip: textwith a gradient background. Same rule as inline gradient text. Default refuse.
Copy
- Every word earns its place. No restated headings, no intros that repeat the title.
- Avoid em dashes as a default AI-copy rhythm. Use commas, colons, semicolons, or periods. Use em dashes only if the brand voice explicitly requires them.
AI Slop Test
Run at two levels before finalizing any design. Both must pass.
First-order — if someone could guess the theme + palette from the category alone ("observability → dark blue", "healthcare → white + teal", "fintech → navy + gold", "crypto → neon on black"), it's the first training-data reflex. Rework the scene sentence and color strategy until the answer isn't obvious from the domain.
Second-order — if someone could guess the aesthetic family from category + anti-references ("AI tool that's not SaaS-cream → editorial-typographic", "fintech not navy → terminal-dark mode"), it's the trap one tier deeper. The first reflex was avoided; the second wasn't. Rework until both levels are non-obvious.
If someone can look at the result and say "AI made that" without hesitation, it has failed.
Brand Register
Font selection procedure
Every project. Never skip.
- Write three concrete brand-voice words. Not "modern" or "elegant" — physical-object words: "warm and mechanical and opinionated", "calm and clinical and careful"
- List the three fonts you'd reach for by reflex. If any appear on the reflex-reject list, they are blocked as first-choice defaults — discard them.
- Browse a real catalog (Google Fonts, Pangram Pangram, Future Fonts, ABC Dinamo, Klim, Velvetyne) with the three words. Find the font for the brand as a physical object: a museum caption, a 1970s terminal manual, a fabric label, a concert poster, a receipt from a mid-century diner. Reject the first option that "looks designy."
- Cross-check: "elegant" is not necessarily serif. "Technical" is not necessarily sans. "Warm" is not Fraunces. If the final pick aligns with your original reflex, start over.
Reflex-reject font list
Training-data defaults that create monoculture — blocked as first-choice defaults, not universally banned. Use one only if required by an existing brand system, or if used in a way that demonstrably avoids the common template fingerprint.
Fraunces · Newsreader · Lora · Crimson · Crimson Pro · Crimson Text · Playfair Display · Cormorant · Cormorant Garamond · Syne · IBM Plex Mono · IBM Plex Sans · IBM Plex Serif · Space Mono · Space Grotesk · Inter · DM Sans · DM Serif Display · DM Serif Text · Outfit · Plus Jakarta Sans · Instrument Sans · Instrument Serif
Reflex-reject aesthetic lanes
Currently saturated aesthetic families. Default refuse unless the brief structurally requires it:
- Editorial-typographic — display serif (often italic) + small mono labels + ruled separators + monochromatic restraint. By 2026, every Stripe-adjacent and Notion-adjacent brand has landed here. Fingerprint: three rule-separated columns, italic Newsreader/Fraunces headline, lowercase tracked metadata, no imagery.
Brand permissions
Brand can afford things product cannot:
- Ambitious first-load motion and scroll-triggered transitions
- Single-purpose viewports — one dominant idea per fold, long scroll, deliberate pacing
- Typographic risk: enormous display type, unexpected italic cuts, mixed cases, a single oversize word as hero
- Drenched or committed color strategies — palette IS voice
- Art direction per section — different visual worlds per section if the narrative demands it
Brand bans
- Monospace as lazy shorthand for "technical" when the brand isn't technical
- Large rounded-corner icons above every heading — screams template
- All-caps body copy — reserve for short labels and headings
- Timid palettes and average layouts — safe = invisible
- Defaulting to editorial-magazine aesthetics (display serif + italic + broadsheet grid) on briefs that aren't magazine-shaped
Product Register
Typography
- System fonts are legitimate:
-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif— native feel on every platform, loads instantly - One family is often right — product UIs don't need a display/body pairing
- Fixed rem scale, not fluid —
clamp()headings in product UI degrade spatial predictability - Tighter scale ratio: 1.125–1.2 between steps
Color
Product defaults to Restrained. Accent color for: primary actions, current selection, state indicators. Not decoration.
Density
Choose one before designing:
| Mode | Use when | Controls |
|---|---|---|
| Compact | Admin panels, data tables, power users, desktop-first tools | Tight spacing, smaller type, high information density |
| Comfortable | SaaS dashboards, CRM, collaboration tools | Standard 4/8pt rhythm, readable data |
| Spacious | Onboarding, mobile apps, consumer productivity | Generous padding, breathing room, lower cognitive load |
Density governs spacing scale, type scale, table row height, card usage, and navigation weight. Do not mix modes within a surface unless zones have clearly different jobs.
Layout
- Predictable grids. Consistency IS an affordance — users navigate faster when structure is expected.
- Familiar patterns are features: top bar, side nav, breadcrumbs, tabs, form layouts have earned trust. Don't reinvent for flavor.
- Responsive behavior is structural (collapse sidebar, responsive table), not fluid typography.
Brand Moments in Product
Product may use Brand-level expression only in isolated surfaces:
- Onboarding and first-run welcome screens
- Empty states (first use)
- Upgrade / paywall surfaces
- Success milestones and celebration moments
- Report covers and public share pages
Never apply Brand expression to repetitive task surfaces: data tables, settings, forms, nav, dashboards in daily use.
Product bans
- Decorative motion that doesn't convey state
- Inconsistent component vocabulary across screens — if "save" looks different in two places, one is wrong
- Display fonts in UI labels, buttons, or data
- Reinventing standard affordances for flavor: custom scrollbars, non-standard modals, weird form controls
Pattern Catalog — Brand Register
Before writing code, silently pick one archetype from each group. The combination determines the visual world.
A. Vibe Archetypes (pick 1)
Each archetype includes default scene, color strategy, font direction, and when to refuse it.
-
Ethereal Glass (SaaS / AI / Tech) OLED black (
oklch(8% 0.01 260)), radial mesh gradients with subtle glowing orbs,backdrop-blur-2xl,border border-white/10hairlines, wide geometric Grotesk. Glass is valid here because depth and translucency are structural — not decorative. Requirements: blur only on fixed/sticky elements; contrast remains AA; no-blur fallback for@supports not (backdrop-filter: blur())and reduced-motion environments. Refuse when: the brief isn't AI/tech/cloud-native — this is the most overused SaaS aesthetic by 2026. -
Editorial Luxury (Lifestyle / Real Estate / Agency) Warm creams (
oklch(97% 0.008 80)), muted sage, or deep espresso tones. Variable Serif for massive headings. CSS noise overlay (opacity-[0.03]) for physical paper feel. Refuse when: the brand is digital-first with no physical analog. -
Soft Structuralism (Consumer / Health / Portfolio) Silver-grey or white backgrounds. Massive bold Grotesk. Floating components with highly diffused ambient shadows. Refuse when: the brand needs strong color identity or dark mode.
-
Terminal Noir (Dev tools / CLI / Security / Infrastructure) Near-black canvas (
oklch(10% 0.008 200)), monospace primary font, phosphor green / amber / cyan accent at max 10%, dense information layout, no decorative elements. The aesthetic is the tool — it should feel like something that works, not something that looks good. Refuse when: the audience is non-technical or the brief explicitly asks for approachability. -
Warm Craft (Food / Artisan / Indie / Sustainable / Local) Earthy ochres, terracotta, forest green. Irregular grid, slight imperfection tolerated. Handwritten or humanist serif. Grain texture overlay. The page feels made by a person, not assembled by a system. Refuse when: the brand needs to signal scale, precision, or enterprise credibility.
-
Clinical Precision (Health / Medical / SaaS data / Research / Pharma) Pure white or near-white background, extreme whitespace, geometric sans at regular weight, one blue or teal accent at max 8%, precise 8pt grid, no decorative elements. Every element earns its place by conveying information. Refuse when: the brief calls for warmth, personality, or emotional engagement.
-
Vivid Commerce (E-commerce / Retail / Consumer brand / FMCG) High-contrast, product-forward. Strong hero with product photography. Bold color block headers. Price and CTA always visible. Conversion architecture over aesthetic expression. Color Committed or Drenched strategy. Refuse when: the brand is premium/luxury — switch to Editorial Luxury instead.
-
Motion Studio (Creative agency / Portfolio / Film / Music / Event) Dark canvas, oversized display type, scroll-driven animation is structural (not decorative), cinematic section transitions. The motion IS the product — it demonstrates the studio's craft. Frame every section as a scene. Refuse when: the client needs to communicate information quickly or the audience is impatient.
-
Analog Revival (Music / Print / Publishing / Zine / Indie label) Grain, muted desaturated palette, editorial grid from print tradition (columns, rules, folios). Mixes grotesque and slab. Physical media references: LP sleeve, magazine spread, concert poster, receipt. Intentional rawness. Refuse when: the brand is digital-native with no physical heritage or the audience skews corporate.
-
Civic Structure (NGO / Government / Education / Documentation / Open source) High accessibility, predictable hierarchy, generous whitespace, system sans, conservative color (one civic blue or green), no decorative motion. Clarity over expression — the content is the point. Refuse when: the brief requires personality or differentiation over trustworthiness.
B. Layout Archetypes (pick 1)
- Asymmetrical Bento — masonry CSS Grid of varying card sizes (
col-span-8 row-span-2next to stackedcol-span-4). Mobile: single column, allcol-spanreset to 1, generousgap-6. - Z-Axis Cascade — elements stacked like physical cards, slightly overlapping with
−2degor3degrotation. Mobile: remove all rotations and negative-margin overlaps below 768px — they cause touch-target conflicts. - Editorial Split — massive typography on left (
w-1/2), interactive content on right. Mobile: full-width vertical stack (w-full), typography block on top.
Universal mobile override: Any asymmetric layout above md: MUST collapse to w-full, px-4, py-8 below 768px. Never h-screen — always min-h-[100dvh] (iOS Safari viewport jump fix).
C. Double-Bezel Architecture
Use for premium cards, images, and feature containers. The outer layer is a material frame, not a second content container — this is not a nested card.
- Outer shell —
bg-black/5 ring-1 ring-black/5 p-1.5 rounded-[2rem] - Inner core — distinct background,
shadow-[inset_0_1px_1px_rgba(255,255,255,0.15)], radiusrounded-[calc(2rem-0.375rem)]for mathematically concentric curves
D. Button-in-Button Pattern
Trailing icons (arrows ↗) must nest inside their own circular wrapper flush with the button's right inner padding — never sitting naked next to the text.
<button class="flex items-center gap-2 rounded-full px-6 py-3 bg-neutral-950 text-neutral-50">
Get started
<span class="w-8 h-8 rounded-full bg-neutral-50/10 flex items-center justify-center">↗</span>
</button>
E. Spatial Rhythm
- Section padding varies — minimum
py-20, rangepy-20topy-40. Use at least 3 different values across a landing page. Samepy-Non every section is monotony, not rhythm. - Eyebrow tags before major H1/H2:
rounded-full px-3 py-1 text-[10px] uppercase tracking-[0.2em] font-medium. Maximum 3 per page. Reserve for hero, primary feature section, and social proof. An eyebrow above every heading destroys the emphasis of each one. - Double standard padding everywhere — whitespace is a design material
F. Motion Choreography
- All transitions:
cubic-bezier(0.32, 0.72, 0, 1)— premium, confident - Scroll entry:
translate-y-16 blur-md opacity-0→translate-y-0 blur-0 opacity-100over 800ms+ - Hamburger → X morph:
rotate-45and-rotate-45with absolute positioning, not disappear/reappear - Staggered nav link reveal:
delay-100,delay-150,delay-200per item - Button hover:
active:scale-[0.98], inner icongroup-hover:translate-x-1 group-hover:-translate-y-[1px] scale-105 - In reduced-motion mode: remove
blurand translate transforms; keep opacity transitions ≤200ms.
G. Performance Guardrails
- Animate only
transformandopacity— never layout-triggering properties backdrop-bluronly on fixed/sticky elements — never on scrolling containers (continuous GPU repaints on mobile)will-change: transformonly on elements actively animating, never preemptively- Scroll-triggered animations:
IntersectionObserveronly — neverwindow.addEventListener('scroll')
LIBERA Fingerprint Test
Before finalizing any Brand design, check whether it overuses this skill's own defaults:
- double-bezel on every card and container
- pill eyebrow tag above every heading
- button-in-button arrow on every CTA
- Asymmetrical Bento as the default layout without content reason
- OLED black + glass + radial glow for any tech brief
py-32+ section padding without content that needs that space- scroll blur reveal (
blur-md → blur-0) on every section entry
If 3 or more are present, remove or replace at least one. Anti-slop includes avoiding this skill's own fingerprint when it becomes recognizable.
Study Mode
Trigger: "analizza questo sito", "analiza este sitio", "estrai il DNA di design", "voglio replicare questo stile", "cosa usa questo design", "study this"
Analyze an admired design (URL or screenshot) and extract a portable design brief. Output is a structured summary ready to pass to the next Build session as a reference.
Study Protocol
- Observe the physical scene — who uses this, where, when, in what mood. Write one sentence.
- Identify the register — Brand / Product / Hybrid? Which zones?
- Name the vibe archetype — which of the A archetypes does this most closely match, or is it a hybrid/unnamed direction?
- Identify the color strategy — Restrained / Committed / Full palette / Drenched? Dominant hue in OKLCH terms if determinable.
- Identify the layout archetype — Asymmetrical Bento / Z-Axis Cascade / Editorial Split / other (describe)?
- Extract typography — heading font, body font, scale impression (tight/loose/dramatic), weight contrast used.
- Read the motion register — fast/slow, which easing family, scroll-driven or triggered, micro-interactions present?
- Spot default-refuse patterns — list any from the refuse list that appear. Note whether they're used structurally or decoratively.
- Run slop tests — is this first-order predictable? Second-order? What makes it escape prediction?
- List 3 elements to replicate — specific and implementable: a spacing decision, a color relationship, a motion choice.
- List 2 elements to avoid — things specific to this brand/budget/context that shouldn't be copied verbatim.
Study Output Format
## Design DNA — [site name or URL]
**Scene:** [one sentence]
**Register:** [Brand / Product / Hybrid]
**Vibe Archetype:** [name or closest match]
**Layout Archetype:** [name or closest match]
**Color Strategy:** [Restrained / Committed / Full palette / Drenched]
**Dominant palette:** [approximate OKLCH description]
**Heading font:** [name + weight + style]
**Body font:** [name + size / line-height impression]
**Motion register:** [duration family, easing impression, key animations]
**Refuse patterns present:** [list or "none"]
**Slop test:** [first-order escape / second-order escape / fails at level N]
**Replicate:**
1. [specific element]
2. [specific element]
3. [specific element]
**Avoid:**
1. [specific element]
2. [specific element]
Audit Mode
Trigger: "audit questo design", "valuta questo UI", "audita este diseño", "cosa non va", "score questo", "review this code design-wise"
Score existing code or a screenshot against design patterns. No edits made in Audit mode — output is analysis only. For UX/accessibility audit use /ui-ux-libera instead; this mode covers visual design only.
Audit Protocol
- Identify register — Brand / Product / Hybrid? Does the implementation match the content's actual register?
- Color audit — strategy used (stated or implied)? OKLCH or raw hex? Pure black/white present? Neutral tinting?
- Typography audit — reflex-reject fonts present? Scale ratio? Line length controlled? Heading/body contrast adequate?
- Layout audit — archetype identifiable? Cards overused? Spacing monotonous (same
py-Neverywhere)? Container overuse? - Motion audit — CSS layout properties animated? Custom cubic-bezier or default
ease/linear?prefers-reduced-motionhandled? - Default-refuse check — which patterns from the refuse list are present? Structural justification documented?
- Slop test — first-order predictable? Second-order? What level fails?
- LIBERA Fingerprint Test — count stacked defaults.
- Overall verdict — one sentence.
Audit Output Format
## Design Audit — [component / page name]
**Register identified:** [Brand / Product / Hybrid] — [correct match or mismatch]
**Color** [PASS / WARN / FAIL]
[finding]
**Typography** [PASS / WARN / FAIL]
[finding]
**Layout** [PASS / WARN / FAIL]
[finding]
**Motion** [PASS / WARN / FAIL]
[finding]
**Default-refuse violations:** [list or "none"]
**Slop test:**
- First-order: [PASS / FAIL — reason]
- Second-order: [PASS / FAIL — reason]
**LIBERA Fingerprint:** [N/7 defaults stacked — list them]
**Verdict:** [one sentence]
**Top 3 fixes (priority order):**
1. [fix]
2. [fix]
3. [fix]
Execution Protocol
-
[MODE] Build / Audit / Redesign / Study? If Audit → jump to Audit Mode. If Study → jump to Study Mode. If Redesign → note existing copy/IA before step 2, then proceed.
-
[REGISTER] Brand or product? Use the dominant verb. If unclear, use the fallback classification. If hybrid, split by zone.
-
[CONFLICT CHECK] If used alongside
/ui-ux-libera, confirm no conflicts on accessibility, performance, or responsiveness before proceeding. -
[SCENE] Write the physical scene sentence. It must force the dark/light answer.
-
[STRATEGY] Choose color strategy explicitly: Restrained / Committed / Full palette / Drenched. Brand rarely defaults to Restrained.
-
[VARIANCE] Brand only: pick one Vibe Archetype + one Layout Archetype from the Pattern Catalog.
-
[FINGERPRINT — pre-build] Count how many LIBERA defaults the planned design will use. If 3+ are stacked in the plan, redesign the approach before writing any code — return to step 6.
-
[SLOP TEST] Run both levels. If predictable at either level, return to step 5.
-
[COMPOSE] Brand landing pages only: map every section before writing code. For each section list: name | layout type (card grid / split / bento / list / image+text / full-bleed) | eyebrow? (yes/no). Verify: (a) no two adjacent sections use identical layout; (b) eyebrow count ≤ 3 total; (c) section padding uses at least 3 different
py-Nvalues across the page. Advance to BUILD only when this map passes. -
[BUILD] Implement. Brand: Double-Bezel, Spatial Rhythm, Motion Choreography. Product: system fonts, predictable grids, Restrained color, familiar patterns, density mode.
-
[DOCUMENT] Add a macrostructure comment at the top of the root component documenting the design decisions made.
{/* Design: [Register] | Vibe: [Archetype] | Layout: [Archetype] | Color: [Strategy] */}CSS-only projects:
/* Design: [Register] | Vibe: [Archetype] | Layout: [Archetype] | Color: [Strategy] */ -
[CHECKLIST] Final pass before delivering. All applicable gates below must pass.
Pre-Output Checklist
Gate IDs allow citing specific failures in reviews (e.g. "failed G-04 and B-02").
Both registers
[G-01]Register identified and confirmed (brand / product / hybrid zones)[G-02]Physical scene sentence written — it forced the dark/light answer[G-03]Color strategy chosen explicitly — not defaulted[G-04]First-order slop check: palette not predictable from category alone[G-05]Second-order slop check: aesthetic lane not predictable from category + anti-references[G-06]No default-refuse patterns used without documented structural rationale[G-07]All transitions use custom cubic-bezier — nolinearor defaultease[G-08]backdrop-bluronly on fixed/sticky elements[G-09]Full-height sections:min-h-[100dvh], noth-screen[G-10]Scroll animations use IntersectionObserver, not scroll event listener[G-11]Motion respectsprefers-reduced-motion[G-12]Copy: no em dashes unless brand voice requires them, no restated headings[G-13]Macrostructure comment added to root component
Brand only
[B-01]Font procedure followed — no fonts from reflex-reject list as first choice[B-02]No aesthetic lanes from reflex-reject lanes[B-03]Double-Bezel used selectively: primary feature container or hero media only, never on every card (outer = frame, not second content container; see Fingerprint Test)[B-04]Section padding minimumpy-20(per Spatial Rhythm), at least 3 different values across the page[B-05]Motion usescubic-bezier(0.32, 0.72, 0, 1)— noease-in-out[B-06]LIBERA Fingerprint Test passed — fewer than 3 defaults stacked[B-07]Overall impression reads as designed with intent, not assembled from templates[B-08]Eyebrow tags ≤ 3 total across the page[B-09]No two adjacent sections use identical layout type
Product only
[P-01]Density mode chosen (Compact / Comfortable / Spacious) — consistent throughout[P-02]Component vocabulary consistent across all screens[P-03]No decorative motion — all motion conveys state[P-04]Standard navigation patterns used, not reinvented[P-05]Accent color only on primary actions, selection, state indicators[P-06]Brand Moments limited to appropriate surfaces (onboarding, empty state, success)
Hybrid surfaces
[H-01]Zones explicitly identified (Brand zone / Product zone)[H-02]Product zones use familiar patterns regardless of Brand framing[H-03]No Brand expression on repetitive task surfaces
External References
This skill is self-contained for first-pass visual direction. The reference/ files in skill-web-design are optional deep-dives.
If the repository is not available: do not claim to have read these files. Continue with this document only.
| Need | File |
|---|---|
| Brand design direction | brand.md |
| Product UI principles | product.md |
| OKLCH, palettes, dark mode theory | color-and-contrast.md |
| Font scale, fluid type, OpenType | typography.md |
| Duration rules, easing, stagger | motion-design.md |
| Spacing systems, squint test | spatial-design.md |
| Grid vs Flex, card grid anti-patterns | layout.md |
| Mobile-first, safe areas, srcset | responsive-design.md |
| 8 interactive states, focus rings | interaction-design.md |
| Working memory, cognitive load | cognitive-load.md |
| Button labels, error messages, i18n | ux-writing.md |
| Amplify a bland design | bolder.md |
| Tone down an aggressive design | quieter.md |
| Final quality pass | polish.md |
| Make a design bolder/louder | overdrive.md |
| Simplify without losing meaning | distill.md |
| Micro-interactions, delight | delight.md |
| Animation direction | animate.md |
| Adding strategic color | colorize.md |
| Typography improvement pass | typeset.md |
| Heuristic UX scoring | heuristics-scoring.md |
| Design critique methodology | critique.md |
| First-run flows, activation | onboard.md |
| Device/screen adaptation | adapt.md |
| Copy clarity | clarify.md |
| Errors, i18n, edge cases | harden.md |
| A11y/perf/responsive audit | audit.md |
| UI performance fixes | optimize.md |
| Persona frameworks | personas.md |
LIBERA Studio synthesis — maggio 2026 Fonti: impeccable (Apache 2.0) + high-end-visual-design Repository: https://github.com/liberastudio-mx/skill-web-design
What ships with it: 34 files
222.6 KB alongside SKILL.md
reference/
- adapt.md6.3 KB
- animate.md7.6 KB
- audit.md6.4 KB
- bolder.md6.2 KB
- brand.md11.2 KB
- clarify.md6.0 KB
- cognitive-load.md4.7 KB
- color-and-contrast.md5.6 KB
- colorize.md7.8 KB
- critique.md15.8 KB
- delight.md9.5 KB
- distill.md5.5 KB
- harden.md8.4 KB
- heuristics-scoring.md8.6 KB
- interaction-design.md6.9 KB
- layout.md7.8 KB
- motion-design.md5.6 KB
- onboard.md7.6 KB
- optimize.md7.4 KB
- overdrive.md8.8 KB
- personas.md6.9 KB
- polish.md12.7 KB
- product.md4.0 KB
- quieter.md4.7 KB
- responsive-design.md3.4 KB
- spatial-design.md3.5 KB
- typeset.md6.2 KB
- typography.md8.1 KB
- ux-writing.md4.2 KB
- CHANGELOG.md1.4 KB
- CONTRIBUTING.md1.6 KB
- LICENSE850 B
- NOTICE.md2.9 KB
- README.md8.4 KB