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

motion-and-interaction-system

Meaning-first animation with 3-tier hierarchy. CSS scroll-driven (animation-timeline: scroll()), View Transitions API, @starting-style DOM-insert, container scroll-state queries, prefers-reduced-motion mandatory on all animations.

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

설치 방법 보기

포함된 파일(2)

  • SKILL.md5.4 KB
  • build-breaking-rules.md18.0 KB

SKILL.md(원문)

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

11 — Motion and Interaction System

Apply meaning-first CSS animations (scroll-driven, View Transitions, @starting-style) with mandatory prefers-reduced-motion on every animated surface.

Motion serves one of three purposes

  1. Feedback — confirm user action (button press, form submit, save)
  2. Continuity — preserve spatial context across state changes (page transition, modal open)
  3. Delight — express brand personality (hero parallax, signature reveal)

Anything else = AI slop; cut it.

3-Tier Hierarchy

  • Tier 1 — Functional — feedback on every interaction (hover, focus, active, tap). Duration 100–200ms. Transform/opacity only.
  • Tier 2 — Choreographic — page transitions, modal entrance, section reveal. Duration 300–500ms. View Transitions or @starting-style.
  • Tier 3 — Cinematic — hero parallax, signature reveal, scroll-driven storytelling. Duration ≥600ms. Scroll-timeline.

Never stack 3 tiers on same surface. One cinematic per page.

Mandatory prefers-reduced-motion

EVERY animation MUST honor prefers-reduced-motion: reduce — snap to final state, never hide content.

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

View Transitions API

  • Same-document SPA: document.startViewTransition(() => updateDOM())
  • Cross-document MPA: @view-transition { navigation: auto; } in CSS
  • Per-element: view-transition-name: hero-image; on persistent elements
  • Chrome 126+, Safari 18+, Firefox 144 (Oct 2025)
::view-transition-old(root), ::view-transition-new(root) {
  animation-duration: 0.3s;
  animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

Scroll-Driven Animations

  • animation-timeline: scroll() (root scroller) or view() (element-in-viewport)
  • Off-main-thread on Chrome stable + Safari 26 (2025)
  • Firefox unsupported — pair with prefers-reduced-motion AND duration:1ms fallback
@keyframes fade-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
.reveal { animation: fade-up linear; animation-timeline: view(); animation-range: entry 0% cover 30%; }

@starting-style (DOM-insert animation)

Baseline 2026 — animates from explicit starting state to default state when element enters DOM.

.toast { opacity: 1; transform: translateY(0); transition: opacity 0.3s, transform 0.3s; }
@starting-style { .toast { opacity: 0; transform: translateY(-10px); } }

Container Scroll-State Queries (Baseline 2026)

@container scroll-state(stuck: top) — replaces JS scroll-listener-based sticky styling.

.nav { container-type: scroll-state; }
@container scroll-state(stuck: top) { .nav { box-shadow: 0 4px 12px rgba(0,0,0,0.4); } }

Micro-Interactions (Tier 1 patterns)

  • Button press — transform: scale(0.98) on :active, 100ms
  • Hover — transform: translateY(-1px) + color shift, 200ms
  • Focus-visible — 3px brand-accent ring, 2px offset, 0ms (instant)
  • Tap — haptic feedback via navigator.vibrate(10) if supported
  • Toggle — animated check/cross morph via <svg> path interpolation
  • Loading — pulse 1.2s ease-in-out infinite

Stagger sequences (no JS needed)

.list-item { animation: fade-up 0.4s ease-out backwards; }
/* OR use sibling-index() (Baseline 2026) */
.list-item { transition-delay: calc((sibling-index() - 1) * 80ms); }

Performance constraints

  • Animate transform + opacity ONLY on hot paths
  • will-change sparingly (transform, opacity only when actually animated)
  • Drop GPU layers after animation completes
  • INP target ≤100ms per _kernel/standards.md#cwv — animations must not block input

Interaction polish (every interactive element)

Per 10-experience-and-design-system § 4-state distinction:

  • Default → neutral
  • Hover → underline-sweep + color shift + translateY(-1px)
  • Focus-visible → 3px brand-accent ring 2px offset (distinct from hover)
  • Active → scale(0.98) + immediate color confirm

Audit gate: Playwright cycles each interactive through 4 states → diff ≥3px pixel-difference or fail.

Banned motion

  • ❌ Uniform fade-in on every element (AI slop tell)
  • ❌ Parallax on every section (one cinematic per page)
  • ❌ Spinning loaders that don't progress
  • ❌ Auto-playing video with sound
  • ❌ Carousel auto-rotate (manual swipe only — accessibility)
  • ❌ Scroll-jacking that breaks browser back button
  • ❌ Animations that block input (INP >100ms)
  • ❌ Easter eggs on critical conversion paths

See submodules: view-transitions.md, scroll-driven.md, micro-interactions.md, reduced-motion.md, build-breaking-rules.md.

리뷰

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

댓글

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

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

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

0 / 1,000자

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

같은 저장소의 스킬

Every delivered app — the non-inferable business requirements + exact stack/brand choices every build must satisfy. Loads on every app/site build.

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

heymegabyte/agent-skills242026년 10월 11일 업데이트

Cloudflare-first platform selection. Decision trees for Workers, D1, R2, KV, DO, Queues, Vectorize, Containers, Sandboxes, Flagship, Agent Memory, Workflows v2. Default stack, override conditions, auth, data patterns, reliability.

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

heymegabyte/agent-skills242026년 10월 11일 업데이트

Extract real brands (Wayback for rebuilds). Copy system, headline/CTA rules, trust surfaces, legal pages, SEO+structured data, anti-AI-slop, microcopy, DESIGN.md, W3C DTCG tokens, pSEO 5 types, GEO/AI search.

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

heymegabyte/agent-skills242026년 10월 11일 업데이트

Implements features in vertical slices, always starting with homepage. Enforces anti-placeholder rules — no lorem ipsum, no TODO stubs, no gray boxes. Real content, real images, real interactions. TypeScript strict mode, Zod validation, and structured file organization.

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

heymegabyte/agent-skills242026년 10월 11일 업데이트

The consolidated, world-class Cloudflare + integrations reference — CF platform/data/AI-edge patterns, media pipeline, observability/growth, payments, and the site-generation pipeline. The non-inferable choices that build the greatest web apps.

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

heymegabyte/agent-skills242026년 10월 11일 업데이트

One-line-prompt → cinematic, gorgeous, functional, well-tested, deployed website. Pre-hydrated SPA + full PWA kit + JSON-LD rich snippets + third-party integrations. React 19+Vite default (Angular optional). 100 concrete improvements grouped into 10 categories that EVERY single-prompt site build must satisfy before being marked done. Trigger whenever the user says 'make a website for X', 'build a site for X', 'rebuild X.com', or any equivalent one-liner.

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

heymegabyte/agent-skills242026년 10월 11일 업데이트

heymegabyte의 스킬 모두 보기

이 스킬의 문제 신고