-sd-animation: sd-fadeIn; –sd-duration: 0ms; –sd-easing: ease-in;
This article explains the CSS custom properties shown in the title, what they do, when to use them, and how to avoid common pitfalls.
What these properties mean
- –sd-animation: A custom property naming an animation variant (here
sd-fadeIn). It likely maps to a keyframe animation or a set of styles consumed by component code. - –sd-duration: The animation duration in milliseconds (
0msmeans instant/no visible transition). - –sd-easing: The timing function (
ease-inspeeds up at the end).
These are not standard CSS animation properties but CSS variables (custom properties) that a UI library or component uses to configure actual animations.
How they’re typically used
A component’s stylesheet or script reads those variables to apply animations. Example pattern:
css
:root {–sd-animation: sd-fadeIn; –sd-duration: 300ms; –sd-easing: ease-in-out;}
.my-element { animation-name: var(–sd-animation); animation-duration: var(–sd-duration); animation-timing-function: var(–sd-easing); animation-fill-mode: both;}
And keyframes:
css
@keyframes sd-fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); }}
Practical notes and recommendations
- Setting
–sd-duration: 0msdisables the visible transition; use a positive duration (e.g.,200ms–500ms) for perceptible motion. - Use meaningful variable names when creating your own design system (e.g.,
–motion-fade-duration). - Prefer
prefers-reduced-motionmedia query to respect accessibility:
css
@media (prefers-reduced-motion: reduce) { :root { –sd-duration: 0ms; }}
- Keep easing consistent across similar interactions;
ease-in-outor cubic-bezier values give smooth results. - If the library expects specific variable names (
–sd-*), override them at component scope to avoid global side effects.
Troubleshooting
- No animation? Ensure keyframes are defined and names match the variable value.
- Instant jump despite nonzero duration: check for
animation-play-state, or conflicting transitions overriding animation. - Performance issues: prefer opacity and transform; avoid animating layout-triggering properties like width/height/top/left when possible.
Conclusion
The snippet represents a convenient way for components to expose animation settings through CSS variables. Use nonzero durations for visible effects, respect reduced-motion preferences, and prefer transform/opacity for performance.
Leave a Reply