Pencil.dev 프로페셔널 프론트엔드 디자인 프롬프트 100선 사용법: 각 프롬프트를 Pencil.dev 캔버스에서 스케치한 후, Cursor AI에 해당 프롬프트를 입력하여 production-ready 코드를 생성합니다. 섹션 1: UI/UX 기본 컴포넌트 (1-20) 1. 랜딩 페이지 히어로 섹션 Design a hero section with the following specifications: **Layout**: Full-viewport height (100vh), centered content with asymmetric grid (60/40 split) **Typography**: - Headline: 56px/64px line-height, font-weight 700, letter-spacing -0.02em - Subheadline: 20px/32px, font-weight 400, max-width 540px **Visual Elements**: - Gradient mesh background (subtle purple to blue, 15% opacity) - Floating 3D illustration on right (preserve space: 480x480px) - Animated gradient orb behind CTA (blur: 120px) **CTA Buttons**: - Primary: 16px padding-y, 32px padding-x, 8px border-radius, filled - Secondary: Ghost style with 2px border, same dimensions **Responsive**: Stack vertically at 768px breakpoint, reduce headline to 40px **Animation**: Fade-up on scroll (stagger: 100ms between elements) Tech: React + Tailwind CSS + Framer Motion 2. 반응형 네비게이션 바 Create a responsive navigation bar component: **Desktop (>1024px)**: - Height: 72px, max-width: 1280px centered - Logo: Left-aligned, 32px height, clickable to home - Nav links: Center-aligned, 16px font, 600 weight, 32px gap - Hover state: Underline animation (expand from center, 2px height, 200ms ease) - CTA button: Right-aligned, primary style **Scroll Behavior**: - Sticky positioning with backdrop-blur(12px) on scroll - Background: rgba(255,255,255,0.8) when scrolled - Subtle box-shadow: 0 1px 3px rgba(0,0,0,0.1) **Mobile (<1024px)**: - Hamburger icon: 24px, 3 lines with 6px gap - Full-screen overlay menu on toggle - Menu animation: Slide from right (300ms cubic-bezier) - Nav links: 24px font, stacked, 24px gap **Accessibility**: - aria-expanded on hamburger - Focus-visible outlines (2px offset) - Escape key closes mobile menu Tech: React + Tailwind + Headless UI cubic-bezier 이란, 커브 비어셔 함수를 말합니다. 커브 비어셔 함수는 애니메이션의 속도를 조절하는 함수를 말합니다. 3. 푸터 컴포넌트 Design a comprehensive footer component: **Structure** (4-column grid on desktop): - Column 1: Logo + company description (max 280px) + social icons - Column 2-3: Link groups (Product, Company, Resources, Legal) - Column 4: Newsletter signup form **Styling**: - Background: slate-900 (#0f172a) - Text: slate-400 for body, white for headings - Link hover: white with 150ms transition - Social icons: 20px, 16px gap, hover scale(1.1) **Newsletter Form**: - Input + button inline on desktop - Input: dark background, subtle border, white text - Button: Primary accent color, "Subscribe" text - Success/error states with icon feedback **Bottom Bar**: - Border-top: 1px slate-800 - Copyright left, legal links right - Responsive: stack at 640px **Responsive Grid**: - Desktop: 4 columns - Tablet: 2x2 grid - Mobile: single column, accordion for link groups Tech: React + Tailwind CSS 4. 모바일 햄버거 메뉴 Create an animated hamburger menu with full-screen navigation: **Hamburger Icon**: - Size: 24x18px tap target: 44x44px (accessibility) - 3 horizontal lines: 2px height, 24px width, 6px gap - Animation to X: top/bottom rotate ±45deg, middle fade out - Transition: 300ms cubic-bezier(0.4, 0, 0.2, 1) **Overlay Menu**: - Full viewport coverage with backdrop - Background: white or brand dark color - Entry animation: clipPath circle expand from hamburger position - Exit: reverse animation **Menu Content**: - Nav links: 32px font, bold, stacked center - Stagger animation: 50ms delay between items - Each link slides up + fades in - Active state: accent color underline **Interaction**: - Body scroll lock when open - Click outside or X to close - Escape key support - Focus trap within menu Tech: React + Framer Motion + @headlessui/react 5. 카드 컴포넌트 그리드 Design a responsive card grid system: **Card Component**: - Aspect ratio: 4:3 image container (object-fit: cover) - Padding: 24px content area - Border-radius: 12px - Background: white - Shadow: 0 1px 3px rgba(0,0,0,0.1) - Hover: translateY(-4px) + shadow elevation increase **Card Content Structure**: - Category tag: 12px, uppercase, tracking-wide, accent color - Title: 18px/24px, font-weight 600, 2-line clamp - Description: 14px/20px, slate-600, 3-line clamp - Meta footer: Author avatar (32px) + name + date **Grid Layout**: - Desktop: 3 columns, 32px gap - Tablet: 2 columns, 24px gap - Mobile: 1 column, 16px gap - Max-width container: 1200px **Loading State**: - Skeleton with shimmer animation - Preserve exact dimensions Tech: React + Tailwind CSS + CSS Grid - Skeleton with shimmer animation 이란, 카드가 로딩되는 동안 화면에 흐릿한 카드 이미지를 보여주는 것을 말합니다. shimmer animation 은 카드가 로딩되는 동안 화면에 흐릿한 카드 이미지를 보여주는 애니메이션을 말합니다. 6. 버튼 시스템 Create a comprehensive button component system: **Size Variants**: - xs: 28px height, 12px padding-x, 12px font - sm: 32px height, 14px padding-x, 13px font - md: 40px height, 20px padding-x, 14px font - lg: 48px height, 28px padding-x, 16px font - xl: 56px height, 36px padding-x, 18px font **Style Variants**: - Primary: Brand color fill, white text - Secondary: Gray-100 fill, gray-900 text - Outline: 2px border, transparent fill - Ghost: No border, hover background - Destructive: Red-600 fill for dangerous actions - Link: Underline style, inline display **States** (for each variant): - Default, Hover (+10% darker), Active (+15% darker) - Focus: 2px ring offset-2 brand color - Disabled: 50% opacity, cursor-not-allowed - Loading: Spinner icon replacing text, maintain width **Icon Support**: - Leading icon: 8px gap before text - Trailing icon: 8px gap after text - Icon-only: Square aspect ratio Tech: React + CVA (class-variance-authority) + Tailwind 7. 폼 입력 필드 세트 Design a form input system with all states: **Text Input**: - Height: 44px (touch-friendly) - Padding: 12px horizontal - Border: 1px gray-300, radius 8px - Font: 16px (prevents iOS zoom) - Placeholder: gray-400 **States**: - Focus: border-brand-500, ring-2 ring-brand-500/20 - Error: border-red-500, ring-red-500/20, red helper text - Success: border-green-500, green checkmark icon - Disabled: gray-100 background, gray-400 text **Label**: - Position: Above input, 8px margin-bottom - Font: 14px, font-weight 500, gray-700 - Required indicator: red asterisk **Helper/Error Text**: - Position: Below input, 4px margin-top - Font: 13px, gray-500 (helper) or red-600 (error) - Error icon: 16px, inline before text **Variants**: - With leading icon (search, email, etc.) - With trailing action (password toggle, clear) - Textarea: min-height 120px, resize-y - Select dropdown with custom chevron **Accessibility**: - Proper label association (htmlFor) - aria-describedby for helper text - aria-invalid for error state Tech: React + React Hook Form + Tailwind 8. 모달/다이얼로그 컴포넌트 Create an accessible modal dialog system: **Overlay**: - Background: rgba(0,0,0,0.5) with backdrop-blur(4px) - Click to close (configurable) - Fade in: 150ms ease-out **Modal Container**: - Max-width variants: sm(400px), md(500px), lg(640px), xl(800px), full - Max-height: calc(100vh - 48px) - Background: white, border-radius 16px - Shadow: 0 25px 50px -12px rgba(0,0,0,0.25) - Animation: scale(0.95) + opacity → scale(1) + opacity(1) **Structure**: - Header: Title (18px semibold) + optional close X button - Body: Scrollable content area, 24px padding - Footer: Action buttons right-aligned, 16px gap **Close Button (X)**: - Position: absolute top-16px right-16px - Size: 36x36px, hover background gray-100 - Icon: 20px **Accessibility**: - Focus trap (tab cycles within modal) - Escape key closes - aria-modal="true" - Return focus to trigger on close - Body scroll lock **Animation Variants**: - Fade + scale (default) - Slide up from bottom (mobile sheets) - Slide from right (side panels) Tech: React + @headlessui/react Dialog + Framer Motion 9. 탭 네비게이션 Design a tab navigation component: **Tab List Container**: - Display: flex, gap: 0 - Border-bottom: 2px gray-200 - Overflow-x: auto on mobile (hide scrollbar) **Individual Tab**: - Padding: 12px 24px - Font: 14px, font-weight 500 - Color: gray-600 default, gray-900 active - Position: relative (for indicator) **Active Indicator**: - Position: absolute bottom -2px - Height: 2px, background: brand color - Animation: width + left transition (300ms spring) - Use layoutId for Framer Motion shared layout **Tab Variants**: - Underline (default): indicator below - Pills: rounded background on active, 8px radius - Boxed: border around active tab, connected **Content Panel**: - Padding-top: 24px - Animation: fade + slight slide (150ms) - Preserve height during transition (optional) **Keyboard Navigation**: - Arrow keys move between tabs - Home/End for first/last - Enter/Space activates tab **Responsive**: - Horizontal scroll with gradient fade edges on mobile - Or convert to dropdown at breakpoint Tech: React + @headlessui/react Tab + Framer Motion 10. 브레드크럼 네비게이션 Create a breadcrumb navigation component: **Structure**: - Horizontal list with separator icons - Semantic: