Understanding -sd-animation: sd-fadeIn; –sd-duration: 250ms; –sd-easing: ease-in;
This article explains the meaning, use cases, and implementation patterns for the custom CSS properties and shorthand shown: -sd-animation: sd-fadeIn; –sd-duration: 250ms; –sd-easing: ease-in;. It covers how these variables can be defined and consumed, accessibility considerations, and practical examples for web components and utility classes.
What these declarations mean
- -sd-animation: sd-fadeIn;
A custom property (likely vendor- or framework-prefixed) that names a predefined animation variant calledsd-fadeIn. The prefix-sd-suggests a scoped or design-system-specific variable. - –sd-duration: 250ms;
A CSS custom property that defines the duration of the animation as 250 milliseconds. - –sd-easing: ease-in;
A CSS custom property that defines the timing function (easing) for the animation.
Together they configure an element to run the sd-fadeIn animation for 250ms with an ease-in timing curve.
Typical implementation patterns
- Define the keyframes and default variables at a global or component level:
:root {–sd-duration: 300ms; /* default / –sd-easing: ease; -sd-animation: none;}
@keyframes sd-fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); }}
/ Utility to apply a named animation using the variables */.sd-animated { animation-name: var(-sd-animation); animation-duration: var(–sd-duration); animation-timing-function: var(–sd-easing); animation-fill-mode: both;}
- Use scoped or component styles to override defaults:
.my-component { -sd-animation: sd-fadeIn; –sd-duration: 250ms; –sd-easing: ease-in;}
- Apply in HTML:
<div class=“sd-animated my-component”> Content that fades in</div>
Practical variations
- Faster fade:
- –sd-duration: 150ms;
- Slower, bouncy entrance:
- –sd-duration: 450ms; –sd-easing: cubic-bezier(.2,.9,.3,1);
- Slide + fade:
- Adjust keyframes to include translateX or translateY.
Accessibility considerations
- Respect prefers-reduced-motion: disable or shorten animations when users request reduced motion.
@media (prefers-reduced-motion: reduce) { .sd-animated { animation: none; transition: none; }}
- Ensure animations don’t cause focus or reading disruptions; avoid excessive movement.
Integration tips
- Use meaningful variable names and document them in your design system.
- Allow component authors to override duration and easing via CSS variables for flexibility.
- For JavaScript-driven components, toggle the class that applies animation variables to trigger transitions predictably.
Example: Toggle-triggered animation with JS
<button id=“show”>Show</button><div id=“panel” class=“sd-animated” aria-hidden=“true”>Hello</div>
document.getElementById(‘show’).addEventListener(‘click’, () => { const p = document.getElementById(‘panel’); p.style.setProperty(’-sd-animation’, ‘sd-fadeIn’); p.style.setProperty(’–sd-duration’, ‘250ms’); p.style.setProperty(’–sd-easing’, ‘ease-in’); p.removeAttribute(‘aria-hidden’);});
Conclusion
The trio -sd-animation: sd-fadeIn; –sd-duration: 250ms; –sd-easing: ease-in; is a compact, flexible way to configure component animations using CSS custom properties. Define clear keyframes, respect user preferences, and expose sensible defaults and overrides to make animations consistent across your UI.
Leave a Reply