feat(theme): motion presets (timing, easing, stagger)
This commit is contained in:
1 parent
423ca930d7
commit
fc38498a5b
3 files changed
+55
No files matched your search
@@ -0,0 +1,24 @@
|
||||
import { motion } from '../theme/motion';
|
||||
|
||||
describe('motion', () => {
|
||||
it('exports bezier strings for easing presets', () => {
|
||||
expect(motion.easeOutQuart).toBe('cubic-bezier(0.25, 1, 0.5, 1)');
|
||||
expect(motion.easeOutExpo).toBe('cubic-bezier(0.16, 1, 0.3, 1)');
|
||||
expect(motion.easeOutBack).toBe('cubic-bezier(0.34, 1.56, 0.64, 1)');
|
||||
expect(motion.easeInOutQuart).toBe('cubic-bezier(0.76, 0, 0.24, 1)');
|
||||
});
|
||||
|
||||
it('exports duration presets in ms', () => {
|
||||
expect(motion.duration.instant).toBe(80);
|
||||
expect(motion.duration.fast).toBe(160);
|
||||
expect(motion.duration.normal).toBe(240);
|
||||
expect(motion.duration.slow).toBe(380);
|
||||
expect(motion.duration.pulse).toBe(800);
|
||||
expect(motion.duration.pulseSlow).toBe(1600);
|
||||
});
|
||||
|
||||
it('exports stagger offsets', () => {
|
||||
expect(motion.stagger.row).toBe(50);
|
||||
expect(motion.stagger.item).toBe(80);
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,5 @@
|
||||
export { colors } from './colors';
|
||||
export { radius } from './radius';
|
||||
export { spacing } from './spacing';
|
||||
export { typography } from './typography';
|
||||
export { motion } from './motion';
|
||||
@@ -0,0 +1,26 @@
|
||||
export const motion = {
|
||||
easeOutQuart: 'cubic-bezier(0.25, 1, 0.5, 1)',
|
||||
easeOutExpo: 'cubic-bezier(0.16, 1, 0.3, 1)',
|
||||
easeOutBack: 'cubic-bezier(0.34, 1.56, 0.64, 1)',
|
||||
easeInOutQuart: 'cubic-bezier(0.76, 0, 0.24, 1)',
|
||||
|
||||
duration: {
|
||||
instant: 80,
|
||||
fast: 160,
|
||||
normal: 240,
|
||||
slow: 380,
|
||||
pulse: 800,
|
||||
pulseSlow: 1600,
|
||||
},
|
||||
|
||||
stagger: {
|
||||
row: 50,
|
||||
item: 80,
|
||||
},
|
||||
} as const;
|
||||
|
||||
export type MotionDuration = keyof typeof motion.duration;
|
||||
export type MotionEasing = keyof Pick<
|
||||
typeof motion,
|
||||
'easeOutQuart' | 'easeOutExpo' | 'easeOutBack' | 'easeInOutQuart'
|
||||
>;
|
||||
Reference in new issue
Block a user