본문으로 건너뛰기
cccskills
무료GitHub에 공개

frontend-design

Create distinctive, production-ready frontend interfaces with high visual quality. Use this skill whenever the user asks to build, design, or improve any web UI — including landing pages, dashboards, components, app screens, forms, or interactive widgets. Also trigger when the user says "make this look better", "redesign this", "add polish", "build a UI", "create a page", "style this", or references HTML/CSS/JS, React, Vue, Svelte, or any frontend framework. If the request involves any visible output rendered in a browser, use this skill — even if the user hasn't explicitly said "design." This skill produces intentional, memorable interfaces that avoid generic AI patterns.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(2)

  • SKILL.md9.2 KB
  • examples/example-landing-page.md11.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Frontend Design Skill

Build distinctive, production-grade frontend interfaces. Avoid generic "AI slop" aesthetics. Deliver code that is functional, accessible, responsive, and visually intentional.


Step 0 — Gather Context Before Writing Code

Infer or confirm before starting:

InputWhat to look for
Product purposeWhat it does, who uses it
ToneSerious / playful / premium / technical / warm
FrameworkHTML+CSS+JS, React, Vue, Svelte, etc.
Device priorityMobile-first, desktop-first, or both
Existing brandColors, fonts, tokens to preserve
Required contentSections, forms, tables, media

If the user wants speed, make reasonable assumptions and state them in one line. If the user has provided a brief, start immediately — do not re-ask what they gave you.


Step 1 — Choose a Visual Direction

Pick one clear concept and commit to it. Write a 2-line concept statement:

  • Who it is for
  • What it should feel like and what makes it stand out

Example concepts:

  • Editorial minimal — quiet grid, strong typographic hierarchy, intentional white space
  • Neo-brutalist — thick borders, raw contrast, uneven layouts, deliberate tension
  • Soft organic — rounded shapes, warm tones, friendly motion, natural metaphors
  • Industrial technical — monospaced type, data-dense, muted palette with precise accents
  • Retro-futurist — bold geometry, gradient depth, vintage + modern collision

Do not default to "clean modern SaaS." That is not a direction — it is the absence of one.


Step 2 — Define a Design System

Set all tokens before writing component code. Use CSS custom properties or framework equivalents.

Typography

/* Pair a display/heading font with a body font — contrast in personality */
--font-display: 'Your Display Font', serif;
--font-body: 'Your Body Font', sans-serif;
--font-mono: 'Your Mono Font', monospace;

/* Scale — use a consistent ratio (1.25, 1.333, or 1.5) */
--text-xs: 0.75rem;
--text-sm: 0.875rem;
--text-base: 1rem;
--text-lg: 1.125rem;
--text-xl: 1.25rem;
--text-2xl: 1.5rem;
--text-3xl: 2rem;
--text-4xl: 2.75rem;

Color

/* Dominant neutral + intentional accent + semantic states */
--color-bg: #...;
--color-surface: #...;
--color-border: #...;
--color-text-primary: #...;
--color-text-secondary: #...;
--color-accent: #...;
--color-accent-hover: #...;
--color-success: #...;
--color-error: #...;

Spacing, Radius, Shadow

/* Spacing on a consistent scale */
--space-1: 0.25rem;  --space-2: 0.5rem;
--space-3: 0.75rem;  --space-4: 1rem;
--space-6: 1.5rem;   --space-8: 2rem;
--space-12: 3rem;    --space-16: 4rem;

/* Radius — pick a personality and hold it */
--radius-sm: 4px;  --radius-md: 8px;  --radius-lg: 16px;  --radius-full: 9999px;

/* Shadows — use sparingly for real depth */
--shadow-sm: 0 1px 2px rgba(0,0,0,0.06);
--shadow-md: 0 4px 12px rgba(0,0,0,0.10);
--shadow-lg: 0 8px 24px rgba(0,0,0,0.14);

Motion

--duration-fast: 120ms;
--duration-base: 200ms;
--duration-slow: 350ms;
--ease-default: cubic-bezier(0.4, 0, 0.2, 1);
--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

Step 3 — Plan Layout and Hierarchy

Before writing markup, sketch the content flow:

  • Primary action — most visual weight, highest contrast
  • Supporting content — clear grouping, breathing room
  • Secondary / contextual — subdued, accessible but not competing

Layout principles to apply:

  • Use asymmetry and rhythm shifts to avoid monotony
  • Vary column widths, not just row heights
  • Overlap elements deliberately when it creates depth
  • Keep visual weight balanced — do not crowd all interest into one corner

Avoid:

  • "Three equal cards, centered" as the default structure for everything
  • Navigation that looks like every other site's navigation
  • Full-width hero with centered H1 + paragraph + two buttons (unless brief demands it)

Step 4 — Write Implementation-Quality Code

HTML / Vanilla

  • Use semantic elements: <main>, <nav>, <section>, <article>, <aside>, <header>, <footer>
  • Add aria-label to interactive regions and icon-only buttons
  • Use <button> for actions, <a> for navigation
  • Keep CSS in <style> block or a dedicated file — no inline styles except dynamic values

React

  • One component per responsibility
  • No hardcoded colors or sizes — use token variables
  • Handle states: loading, empty, error, hover, active, disabled
  • Accept className prop for composability when relevant

Vue / Svelte / Other

  • Same principles — tokens, semantic markup, state handling, accessibility
  • Use scoped styles unless sharing tokens across components

Responsive pattern

/* Mobile-first baseline */
.container { padding: var(--space-4); }

@media (min-width: 768px) {
  .container { padding: var(--space-8); }
}

@media (min-width: 1024px) {
  .container { max-width: 1200px; margin: 0 auto; padding: var(--space-12); }
}

Step 5 — Add Meaningful Motion

Apply motion at these moments only — do not animate everything:

MomentPattern
Page / section entranceFade + subtle translate-up, staggered by 60–80ms
Button / link hoverColor shift + slight scale or underline
Modal / drawer openSlide in from edge or scale from trigger
Loading stateSkeleton shimmer or subtle pulse
Success / errorBrief color flash + icon entrance

Keep total animation budget low. Three well-placed transitions feel premium. Twenty micro-animations feel cheap.


Step 6 — Accessibility Checklist

Run through before finalizing:

  • All interactive elements reachable by keyboard (Tab order logical)
  • Visible :focus-visible styles on all focusable elements
  • Color contrast ≥ 4.5:1 for body text, ≥ 3:1 for large text and UI components
  • Images have meaningful alt text (or alt="" if decorative)
  • Form inputs have associated <label> elements
  • ARIA roles only where native semantics are insufficient
  • Reduced-motion preference respected

Step 7 — Quality Validation

Before delivering:

  • Renders correctly at 375px (iPhone SE), 768px (tablet), 1280px (desktop)
  • No content overflow or broken layout at any width
  • Tokens used consistently — no one-off hardcoded values
  • All interactive states exist (hover, active, focus, disabled)
  • Visual concept is cohesive — nothing looks out of place
  • Performance: no unnecessary large images, no blocking animations on scroll

Output Format

Return work in this order:

  1. Concept direction — 2–4 lines: target user, aesthetic intent, what makes it memorable
  2. Design system summary — typography, color palette, spacing choices
  3. Implementation notes — what was built, key decisions made
  4. Complete runnable code — full file(s), no placeholders or "add your content here"
  5. Validation summary — brief confirmation of responsiveness, accessibility, performance

Common Mistakes to Avoid

Anti-patternBetter approach
Generic sans-serif + blue CTAChoose a font pairing with personality; pick an accent that earns its place
Equal three-column card gridVary layout rhythm; use feature cards, split layouts, or asymmetric grids
Centered hero with H1 + two buttonsGive the hero a structural idea — image offset, text overlap, editorial crop
Shadow on every elementUse shadow only for elevation; most elements are flat
Animation on every hoverReserve motion for meaningful transitions
Inline style overridesAll values in CSS tokens; no style="color: red"
Missing empty/error statesEvery data-driven component needs these states

Framework-Specific Notes

React: Use useState/useEffect for interaction state. Tokens live in a shared theme.js or :root CSS vars imported globally.

Vue 3: Use <script setup> + CSS variables in :root. Composables for reusable interaction logic.

Svelte: Use CSS custom properties in :root via <svelte:head>. Stores for cross-component state.

HTML/CSS/JS (no framework): Single file or clearly separated style.css + main.js. Use data-* attributes for JS hooks, never style-coupled class names.

Tailwind: Define design tokens in tailwind.config.js. Use @apply sparingly — prefer utility classes inline. Extend the theme rather than overriding with arbitrary values.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Automate 21risk tasks via Rube MCP (Composio). Always search tools first for current schemas.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

manu14357/zskills162026년 7월 24일 업데이트

Automate 2chat tasks via Rube MCP (Composio). Always search tools first for current schemas.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

manu14357/zskills162026년 7월 24일 업데이트

Automate Ably tasks via Rube MCP (Composio). Always search tools first for current schemas.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

manu14357/zskills162026년 7월 24일 업데이트

Automate Abstract tasks via Rube MCP (Composio). Always search tools first for current schemas.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

manu14357/zskills162026년 7월 24일 업데이트

Automate Abuselpdb tasks via Rube MCP (Composio). Always search tools first for current schemas.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

manu14357/zskills162026년 7월 24일 업데이트

Automate Abyssale tasks via Rube MCP (Composio). Always search tools first for current schemas.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

manu14357/zskills162026년 7월 24일 업데이트

manu14357의 스킬 모두 보기

이 스킬의 문제 신고