agentsclimarketplace

Responsive adaptive

Skill t4sh/dotfiles/agents/skills/responsive-adaptive

Use when building context-dependent animations - duration that changes based on device, distance, user preference, or interaction contextFrom its SKILL.md

Install
npx -y skills add t4sh/dotfiles --skill responsive-adaptive

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

3.8 KB, 857 tokens by cl100k_base, as published. Nobody here has run it

Responsive & Adaptive Timing

Responsive timing adapts duration to context: device capability, travel distance, user preferences, and interaction type. One duration doesn't fit all situations.

Disney Principles for Adaptive Motion

Context-Aware Application

Squash & Stretch: Scale with device - more subtle on mobile (less screen real estate for deformation).

Anticipation: Shorter on touch devices - touch users expect faster response than mouse users.

Staging: Adapt to viewport - smaller screens need more focused staging, less simultaneous motion.

Straight Ahead/Pose to Pose: Same approach, scaled duration - poses stay, timing adjusts.

Follow Through: Proportional to distance - longer travel = more follow-through time.

Slow In/Slow Out: Adjust curve intensity - faster animations need sharper easing.

Arcs: Same paths, different speeds - arc shape remains, traversal time changes.

Secondary Action: Reduce on mobile - fewer simultaneous animations for performance.

Timing: THE adaptive variable - timing changes, principles stay.

Exaggeration: Less on smaller screens - proportional to viewport/element size.

Solid Drawing: Performance-aware - reduce 3D transforms on weaker devices.

Appeal: Context-appropriate - what feels right on desktop may feel slow on mobile.

Adaptive Strategies

Distance-Based Duration

/* Base duration for reference distance */
--base-duration: 300ms;
--base-distance: 100px;

/* Duration scales with distance */
/* 50px travel = 200ms, 200px travel = 450ms */
function getDuration(distance) {
  const baseDuration = 300;
  const baseDistance = 100;
  return Math.min(600, baseDuration * Math.sqrt(distance / baseDistance));
}

Device-Based Duration

/* Desktop - full duration */
.transition { transition-duration: 400ms; }

/* Tablet - slightly faster */
@media (max-width: 1024px) {
  .transition { transition-duration: 350ms; }
}

/* Mobile - faster for perceived responsiveness */
@media (max-width: 768px) {
  .transition { transition-duration: 250ms; }
}

Preference-Based Duration

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  .transition {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

/* Reduce motion, don't eliminate */
@media (prefers-reduced-motion: reduce) {
  .transition {
    transition-duration: 100ms;
    transform: none; /* Only opacity fades */
  }
}

Context Rules

ContextDuration Adjustment
Touch device-25% from desktop
Small viewport-20% from desktop
Large travel distance+50% base
Small travel distance-30% base
User prefers reducedInstant or minimal
Low power mode-50% or disabled
High-frequency actionUse minimum duration
First-time viewFull duration
Repeat interactionReduced duration

Implementation Pattern

:root {
  --duration-instant: 50ms;
  --duration-fast: 150ms;
  --duration-normal: 300ms;
  --duration-slow: 500ms;
}

@media (max-width: 768px) {
  :root {
    --duration-fast: 100ms;
    --duration-normal: 200ms;
    --duration-slow: 350ms;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-instant: 0ms;
    --duration-fast: 0ms;
    --duration-normal: 100ms;
    --duration-slow: 150ms;
  }
}

Key Insight

Great animation adapts like typography adapts - what works at one size/context may not work at another. Build systems, not fixed values. Test across contexts. Duration is a variable, not a constant.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,499. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.