← ClaudeAtlas

motion-recipeslisted

常见动效的「开箱即用」实现——button press / dropdown / tooltip / modal / drawer / toast / accordion / stagger / hold-to-confirm / tab indicator / scroll reveal / drag-to-dismiss。每个给齐 CSS/JS 配料(属性·缓动·时长·transform-origin)。由 ae-factory 在 EXECUTE 阶段经 overlay 调用,从本技能取落好地的实现而非从零写。
yang20040317-svg/design-workflow · ★ 0 · Web & Frontend · score 75
Install: claude install-skill yang20040317-svg/design-workflow
# Motion Recipes(动效配方) > 来源:Emil Kowalski `animate/RECIPES.md`。常见组件直接从此取实现,别从空白重建。曲线用 `motion-foundations` 里的 `--ease-out` / `--ease-in-out` / `--ease-drawer` token。 ## Button press ```css .button { transition: transform 160ms var(--ease-out); } .button:active { transform: scale(0.97); } ``` `scale()` 也会缩放子元素(文字、图标一起动),正是「物理按下」的阅读感。`:active` 是触摸上的真实按下,无需 hover 闸门;`:hover` 样式单独闸。 ## Dropdown / popover / menu / select 从触发源「长」出来,不是凭空。 ```css .popover { transform-origin: var(--transform-origin); /* Base UI 提供 */ transition: opacity 200ms var(--ease-out), transform 200ms var(--ease-out); } .popover[data-starting-style], .popover[data-ending-style] { opacity: 0; transform: scale(0.95); } ``` `transform-origin` 是灵魂——面板应看起来像从你点的那个东西里冒出来。 ## Tooltip 同 popover 形状,更快,且带多数实现会漏的细节: ```css .tooltip { transform-origin: var(--transform-origin); transition: transform 125ms var(--ease-out), opacity 125ms var(--ease-out); } .tooltip[data-starting-style], .tooltip[data-ending-style] { opacity: 0; transform: scale(0.97); } .tooltip[data-instant] { transition-duration: 0ms; } /* 一个开后,邻居即时开 */ ``` 首次延迟防误触;之后跳过延迟和动画让整条工具栏更跟手。 ## Modal(唯一居中的 popover) ```css .modal { transform-origin: center; /* 例外:不锚定触发源 */ transition: opacity 250ms var(--ease-out), transform 250ms var(--ease-out); } .modal[data-starting-style], .modal[data-ending-style] { opacity: 0; transform: scale(0.96); } .backdrop { transition: opacity 250ms var(--ease-out); } ``