Hover Interactions

dylantarre/animation-principles/skills/05-by-animation-type/hover-interactions

作者 dylantarre83597134ba8f无许可证99 个星标收录于 2026年10月8日更新于 2026年10月8日仓库9个月前更新

Use when creating mouse hover effects - button highlights, card lifts, link underlines, image zooms, or any pointer-triggered animation.

仅含说明Design & Creative
AI 生成的概览

依据迪士尼 12 项动画原则讲解鼠标悬停动画设计,包含时间参数表与 CSS 实现模式。

功能
说明如何将迪士尼 12 项动画原则应用于鼠标悬停状态,涵盖挤压与拉伸、预备动作、舞台调度、跟随动作、缓动与次要动作。它给出颜色变化、缩放、阴影、下划线绘制、图片缩放和图标位移等效果的时间建议,并提供卡片抬升、由中心向外绘制下划线以及图标运动的 CSS 实现模式。此外还列出响应速度、避免误点击以及将悬停效果限定于指针设备等规则。
适用场景
适用于创建或优化由指针触发的悬停效果,例如按钮高亮、卡片抬升、链接下划线或图片缩放。也适合在选择悬停进入与退出的时长和缓动曲线,或确保悬停行为在触屏设备上正确降级时使用。
运行要求
无需脚本或工具,仅为说明性内容。代理不需要安装包、凭据或网络访问。

Hover Interaction Animations

Apply Disney's 12 principles to mouse hover states.

Principle Application

Squash & Stretch: Cards can subtly scale (1.02-1.05) on hover, creating "lift" effect.

Anticipation: Hover IS anticipation for click. The hover state previews the interaction.

Staging: Hover effects should highlight the interactive element, not distract from it.

Straight Ahead vs Pose-to-Pose: Define rest and hover poses precisely. Transition smoothly between them.

Follow Through & Overlapping: Child elements animate after parent. Card lifts, then shadow expands.

Slow In/Slow Out: Hover-in: ease-out (fast response). Hover-out: ease-in-out (graceful return).

Arcs: Underlines can draw from center outward. Highlights sweep in curved paths.

Secondary Action: Combine multiple subtle effects. Scale + shadow + color shift together.

Timing:

  • Hover response: 150-200ms (must feel responsive)
  • Hover exit: 200-300ms (can be slightly slower)
  • Never exceed 300ms for hover-in

Exaggeration: Subtle - hover is preview, not performance. Scale max 1.05, shadow max +8px.

Solid Drawing: Hover states must feel like the same element elevated, not a replacement.

Appeal: Hover should invite clicking. Create anticipation without demanding action.

Timing Recommendations

Hover EffectHover-InHover-OutEasing
Color Change150ms200msease-out / ease-in-out
Scale/Lift200ms250msease-out / ease-in-out
Shadow200ms250msease-out / ease-in-out
Underline Draw200ms200msease-out
Image Zoom300ms400msease-out
Icon Shift150ms200msease-out

Implementation Patterns

css
/* Card lift with shadow */.card {  transition: transform 200ms ease-out, box-shadow 200ms ease-out;}
.card:hover {  transform: translateY(-4px) scale(1.02);  box-shadow: 0 12px 24px rgba(0,0,0,0.15);}
/* Slower return */.card:not(:hover) {  transition: transform 250ms ease-in-out, box-shadow 250ms ease-in-out;}
/* Underline draw from center */.link {  position: relative;}
.link::after {  content: '';  position: absolute;  bottom: 0;  left: 50%;  width: 0;  height: 2px;  background: currentColor;  transition: width 200ms ease-out, left 200ms ease-out;}
.link:hover::after {  width: 100%;  left: 0;}

Icon Animation Pattern

css
.button-icon {  transition: transform 150ms ease-out;}
.button:hover .button-icon {  transform: translateX(4px);}
/* Arrow grows */.arrow-icon {  transition: transform 150ms ease-out;}
.link:hover .arrow-icon {  transform: translateX(4px) scale(1.1);}

Key Rules

  1. Touch devices don't have hover - ensure functionality without it
  2. Hover-in must be under 200ms to feel responsive
  3. Don't move elements enough to cause mis-clicks
  4. Test with @media (hover: hover) to scope to pointer devices
  5. Combine max 3 properties to avoid overwhelming
css
@media (hover: hover) {  .card:hover { /* hover effects */ }}

来源与署名

来源:dylantarre/animation-principles位于skills/05-by-animation-type/hover-interactions提交8359713

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架