premium-website-design
Design distinctive, production-grade personal websites, portfolios, and landing pages end-to-end. Use when the user asks to build, redesign, or review a personal site, portfolio, landing page, or any
SKILL.mdSKILL.md
GitHubPremium Website Design
Fused from taste-skill, high-end-visual-design, frontend-design, frontend-skill, hallmark, algorithmic-art, and webapp-testing. Ships personal sites that do not look templated.
Workflow
Run these in order. Do not skip the design read or the verification gate.
- Design Read - brief inference and dials
- Direction - one committed aesthetic
- Tokens & skeleton - palette, type, layout
- Interactions - tactile motion layer
- Artwork - imagery and privacy
- Verification & deploy - evidence gate
1. Design Read
Declare one line before coding: "Reading this as: <page kind> for <audience>, with a <vibe> language, leaning toward <aesthetic family>."
Set three dials explicitly:
DESIGN_VARIANCE: 8(1 = symmetry, 10 = artsy chaos)MOTION_INTENSITY: 6(1 = static, 10 = cinematic)VISUAL_DENSITY: 4(1 = gallery, 10 = cockpit)
Defaults for portfolios: 8 / 6 / 4. Calm editorial briefs: 5-6 / 3-4 / 2-3. Wild agency briefs: 9-10 / 8-10 / 3-4.
Redesign rules:
- Preserve IA, anchor slugs, nav labels, and analytics events.
- Audit brand tokens before touching them.
- Modernisation order: type refresh, spacing, color, motion, hero recomposition.
If the brief is ambiguous on one axis only, ask exactly one question; otherwise proceed with the read.
2. Direction
Pick ONE vibe and ONE layout archetype. Examples that work:
- Editorial ink (dark-first portfolio): deep blue-black surfaces, one electric accent, variable sans + mono labels, bento grid, generous whitespace.
- Premium consumer: cool paper neutrals with a single saturated pop; never default to beige + brass + espresso.
- Kinetic poster (launch/manifesto): centered manifesto type, one dominant visual, scroll-linked depth.
Rules:
- Max one primary accent. A second "signal" color is allowed only for semantic status, used sparingly.
- Shape system lock: cards 20px, pills 999px, inputs 12px (or one documented alternative).
- Theme lock: dark-first with
[data-theme="light"]overrides; respectprefers-reduced-motion. - Type: avoid Inter by default. Prefer a variable sans (e.g., Plus Jakarta Sans) paired with a mono for labels. Chinese text needs positive letter-spacing (0.01-0.06em); Latin display can go tighter.
- No AI tells: no purple gradients, no neon glows, no em-dash, no centered-hero-over-mesh default, no three equal feature cards, no decorative dots, no version labels.
3. Tokens & skeleton
Start from assets/tokens.css (dark-first OKLCH system with light overrides). Keep CSS variables for every color, shadow, radius, and type token.
Default page skeleton for a personal site:
hero (split: copy + layered portrait)
skills marquee (one marquee max)
bento grid (about, stats, capabilities, flagship)
work rows (period + title + KPIs)
timeline rail
education
contact (email + socials)
footer
Content hygiene:
- No phone numbers or private identifiers on public pages unless explicitly requested.
- Use year-only date ranges, not months.
- Put deployable files in a
public/directory; keep README, logs, and private originals out of it. - Real photo should be a generated avatar when privacy matters; keep the original locally, never in the public repo.
4. Interactions
Ship 2-3 intentional motions minimum: one entrance, one scroll-linked effect, one hover/feedback state. Implement the recipes in references/interactions.md.
Hard rules:
- Animate only
transformandopacity. - No
window.addEventListener("scroll"). Use IntersectionObserver, CSS scroll-driven animations, or pointer events with rAF. - Gate pointer-driven effects behind
(pointer: fine)andprefers-reduced-motion. - Every animation must justify itself: hierarchy, storytelling, feedback, or state transition.
- Buttons keep press feedback (
:activedown + edge shadow); magnetic pull must not break clickability (small offsets or a fixed wrapper).
5. Artwork
Prefer real imagery with a job: hero anchor, flagship proof, contact atmosphere.
- Free API pipeline (recommended): SiliconFlow Kolors for watermark-free image generation + Zhipu GLM-4V-Flash for free visual review; keys come from environment variables only, never hardcoded. Details in
references/art-pipeline.md. - No API key: use the algorithmic-art pipeline (flow field / particles) in
references/art-pipeline.md; export transparent WebP and blend withscreenon dark,multiplyon light. - Paid quota available: generate a stylized avatar (e.g., Seedream image-to-image) from a reference photo; keep the likeness, then remove the real photo from the public repo.
- Icons: use
references/icons.md. Prefer Iconify API or Simple Icons (official brand glyphs) over scraping; inline SVG withfill: currentColor, never external CSS masks. - Optimize: crop to rendered aspect, resize to 2x display size, WebP q80+, lazy-load below-fold art,
fetchpriority="high"only for LCP. - Add
_headers: long cache only for images/fonts; keep CSS/JS revalidating; version CSS/JS URLs on change.
6. Verification & deploy
Run the preflight checklist in references/preflight.md, then the QA script:
python scripts/qa_site.py --url http://localhost:8080
QA must cover: overflow at 1440/390/320, console errors, failed requests, font/image loading, both themes, reduced motion, mobile menu, counters, anchor navigation, and contrast (WCAG AA) on both themes.
Deploy readiness (static site on Cloudflare Pages):
- Framework preset: None
- Build command:
exit 0 - Build output directory:
public - Production branch: main
- Result URL:
<project>.pages.dev; verify the live site after deploy.
References
references/preflight.md- release gate checklistreferences/interactions.md- motion recipes with codereferences/art-pipeline.md- generative art + avatar + privacyreferences/icons.md- icon sourcing (Iconify / Simple Icons / iconfont) + verificationassets/tokens.css- starter token system (dark-first + light)scripts/qa_site.py- generic Playwright verification