component-animations

مشخصات کامل انیمیشن کامپوننت‌های UI با تعامل طبیعی و دسترس‌پذیری

این skill برای طراحی و پیاده‌سازی انیمیشن حالت‌های مختلف کامپوننت‌های UI مانند Button، Card، Modal، Toast، Input، Checkbox، Switch، Dropdown و Accordion استفاده می‌شود. برای هر حالت، transform، مدت‌زمان و easing مناسب را بر اساس اصول Disney و الگوهای Material Design ارائه می‌کند.

با استفاده از این راهنما، تعاملات رابط کاربری منسجم‌تر و قابل‌پیش‌بینی‌تر می‌شوند و برای prefers-reduced-motion نیز جایگزین‌های مناسب خواهید داشت. همچنین می‌توانید انیمیشن‌ها را با شخصیت برندهای Elegant، Playful یا Bold هماهنگ کنید.

چه چیزی می‌گیرید

  • جدول state transition، transform، duration و easing برای کامپوننت‌های رایج
  • الگوهای آماده برای hover، press، focus، loading، ورود، خروج و تغییر وضعیت
  • تنوع‌های حرکتی برای برندهای Elegant، Playful و Bold
  • راهنمای پیاده‌سازی reduced motion و حفظ نشانه‌های ضروری دسترس‌پذیری
  • الگوهای stagger، spring، bounce، shake و draw برای تعاملات دقیق‌تر

برای چه کاری خوب است

  • توسعه‌دهندگان Frontend که برای یک Design System انیمیشن تعریف می‌کنند
  • طراحان محصولی که می‌خواهند رفتار حرکتی کامپوننت‌ها را مستند و قابل‌اجرا کنند
  • پروژه‌هایی که به تعاملات منسجم، اصولی و سازگار با دسترس‌پذیری نیاز دارند

برای چه کاری نیست

  • ساخت موشن‌گرافیک، انیمیشن‌های سینمایی یا ویدیوهای مستقل
  • پروژه‌هایی که فقط به یک transition ساده CSS بدون طراحی stateها نیاز دارند

دربارهٔ این اسکیل

Component Animations

Complete animation specifications for every UI component state. Reference this skill when implementing component-level animations with proper Disney principles, brand variations, and accessibility.

Component Catalog

Button

Interaction States:

  • Idle -> Hover -> Press -> Release -> Idle
  • Idle -> Focus -> Press -> Release -> Blur -> Idle
  • Any -> Disabled
  • Any -> Loading
StateTransformDurationEasing
HovertranslateY(-2px)short-3standard-decelerate
Pressscale(0.95)short-2emphasized-decelerate
FocusFocus ring pulse1.5sease-in-out
LoadingSpinner rotation0.8slinear

Brand Variations:

  • Elegant: No squash, subtle scale (0.98)
  • Playful: Bounce with overshoot, scale 0.92 -> 1.05
  • Bold: Quick snap, scale 0.95 -> 1.02

Card

Interaction States:

  • Idle -> Hover -> Press -> Idle
  • Idle -> Selected
  • Idle -> Dragging -> Drop
StateTransformDurationEasing
HovertranslateY(-4px) + shadowshort-3standard-decelerate
Pressscale(0.98)short-2emphasized-decelerate
Entrancefade + slidemedium-1emphasized-decelerate
Draggingscale(1.02) rotate(2deg) + shadow--

Modal

States:

  • Closed -> Opening -> Open -> Closing -> Closed
StatePropertiesDurationEasing
Backdrop Openopacity + blurmedium-1standard
Content Openopacity + scale + translateYmedium-1emphasized-decelerate
Content Closeopacity + scaleshort-4emphasized-accelerate

Toast / Notification

States:

  • Hidden -> Entering -> Visible -> Exiting -> Hidden
VariantAnimationDurationEasing
Successslide + bounce + checkmark draw300msspring-bouncy
Errorslide + shake250ms + 150msemphasized-decelerate
Infoslide250msemphasized-decelerate

Input / Form Field

States:

  • Idle -> Focus -> Filled -> Blur
  • Any -> Error
  • Any -> Success
StateAnimationDurationEasing
Label FloattranslateY + scale(0.85)short-3standard-decelerate
Focus Ringborder + shadowshort-3standard-decelerate
Errorshake + border color150msease-out

Checkbox

States:

  • Unchecked -> Checked -> Unchecked
AnimationPropertyDurationEasing
Check Drawstroke-dashoffsetshort-3emphasized-decelerate
Box Fillbackground-colorshort-3standard
Playful Bouncescale 1.15short-4spring

Switch / Toggle

States:

  • Off -> On -> Off
AnimationPropertyDurationEasing
Knob SlidetranslateXshort-4spring-bouncy
Track Colorbackground-colorshort-3standard
Playful Squashwidth stretchshort-2standard

Dropdown / Select

States:

  • Closed -> Opening -> Open -> Closing -> Closed
AnimationPropertyDurationEasing
Menu OpenscaleY + opacityshort-4emphasized-decelerate
Item Staggeropacity + translateY150msstagger 25ms

Accordion

States:

  • Collapsed -> Expanding -> Expanded -> Collapsing -> Collapsed
AnimationPropertyDurationEasing
Content Heightgrid-template-rowsmedium-1emphasized-decelerate
Content Fadeopacityshort-3standard
Icon Rotatetransform rotate(180deg)short-3standard

List Items

AnimationPropertyDurationEasing
Entrance Staggeropacity + translateY250msstagger 50ms
Swipe DismisstranslateX + opacity + rotate200msemphasized-accelerate

Accessibility Variants

All components must provide reduced motion alternatives:

@media (prefers-reduced-motion: reduce) {
  /* Disable all transform animations */
  .button, .card, .modal, .toast, .dropdown-menu {
    transition: opacity 100ms ease !important;
    transform: none !important;
    animation: none !important;
  }

  /* Keep essential state indicators */
  .button:hover, .card:hover {
    opacity: 0.9;
  }

  .button:focus-visible, .input:focus {
    box-shadow: 0 0 0 3px var(--color-primary-alpha);
  }

  /* Instant state changes */
  .checkbox:checked + .checkbox__box .checkbox__check {
    stroke-dashoffset: 0;
    transition: none;
  }
}

Quick Reference Table

ComponentEnterExitHoverPress
Button--translateY(-2px)scale(0.95)
Cardfade+slidefadetranslateY(-4px)scale(0.98)
Modalscale+fadescale+fade--
Toastslide+bounceslide+fade--
Input----
Checkboxdrawfade--
Switchspringspring--
DropdownscaleYscaleY--
Accordionheightheight--
List Itemstaggerslidebackground-

Related Skills

  • animation-recipes - Pre-built recipes for component animations
  • accessibility - WCAG compliance for interactive components
  • easing - Curve selection for component states
  • entrance-patterns - Entrance animations for components
  • exit-patterns - Exit animations for components

دانلود ZIP