mirror of https://github.com/grafana/grafana
Chore: Create `handleReduceMotion` util function to manage animations (#85785)
parent
02096c4e22
commit
00be24d6b3
@ -0,0 +1,16 @@ |
||||
import { CSSInterpolation } from '@emotion/css'; |
||||
|
||||
/** |
||||
* @param styles - Styles to apply when no `prefers-reduced-motion` preference is set. |
||||
* @param reducedMotionStyles - Styles to apply when `prefers-reduced-motion` is enabled. |
||||
* Applies one of `styles` or `reducedMotionStyles` depending on a users `prefers-reduced-motion` setting. Omitting `reducedMotionStyles` entirely will result in no styles being applied when `prefers-reduced-motion` is enabled. In most cases this is a reasonable default. |
||||
*/ |
||||
export const handleReducedMotion = (styles: CSSInterpolation, reducedMotionStyles?: CSSInterpolation) => { |
||||
const result: Record<string, CSSInterpolation> = { |
||||
'@media (prefers-reduced-motion: no-preference)': styles, |
||||
}; |
||||
if (reducedMotionStyles) { |
||||
result['@media (prefers-reduced-motion: reduce)'] = reducedMotionStyles; |
||||
} |
||||
return result; |
||||
}; |
Loading…
Reference in new issue