useTransitionsAnimation.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import useVars from './useVars.js'
  2. import { getClasses } from '../utils/classes.js'
  3. import useColor from './useColor.js'
  4. function useHook() { // useTransitionsAnimation
  5. const { colors, color } = useColor()
  6. const { pxs, percents } = useVars()
  7. const TransitionProperty = {
  8. title: 'Transition Property',
  9. classes: getClasses([
  10. { name: 'none', value: 'none' },
  11. { name: 'all', value: 'all' },
  12. { name: '', value: 'color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter' },
  13. { name: 'colors', value: 'color, background-color, border-color, text-decoration-color, fill, stroke' },
  14. {name: 'opacity', value: 'opacity'},
  15. {name: 'shadow', value: 'box-shadow'},
  16. {name: 'transform', value: 'transform'},
  17. ], { name: 'transition-', value: ({name, value}) => {
  18. if(name == 'none') {
  19. return [ `transition-property: ${name};` ]
  20. }
  21. const custom = [
  22. 'transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);',
  23. 'transition-duration: 150ms;'
  24. ]
  25. return [ `transition-property: ${value};`, ...custom ]
  26. }, scss: 0 })
  27. }
  28. const TransitionDuration = {
  29. title: 'Transition Duration',
  30. classes: getClasses([0, 75, 100, 150, 200, 300, 500, 700, 1000].map(d => {
  31. return {
  32. name: d,
  33. value: `${d}${d > 0 ? 'ms' : 's'}`
  34. }
  35. }), { name: 'duration-', value: 'transition-duration', scss: 0 })
  36. }
  37. const TransitionTimingFunction = {
  38. title: 'Transition Timing Function',
  39. classes: getClasses([
  40. { name: 'linear', value: 'linear' },
  41. { name: 'in', value: 'cubic-bezier(0.4, 0, 1, 1)' },
  42. { name: 'out', value: 'cubic-bezier(0, 0, 0.2, 1)' },
  43. { name: 'in-out', value: 'cubic-bezier(0.4, 0, 0.2, 1)' },
  44. ], { name: 'ease-', value: 'transition-timing-function', scss: 0 })
  45. }
  46. const TransitionDelay = {
  47. title: 'Transition Delay',
  48. classes: getClasses([0, 75, 100, 150, 200, 300, 500, 700, 1000].map(d => {
  49. return {
  50. name: d,
  51. value: `${d}${d > 0 ? 'ms' : 's'}`
  52. }
  53. }), { name: 'delay-', value: 'transition-delay', scss: 0 })
  54. }
  55. const Animation = { title: 'Animation', classes: [] }
  56. return {
  57. TransitionProperty,
  58. TransitionDuration,
  59. TransitionTimingFunction,
  60. TransitionDelay,
  61. Animation
  62. }
  63. }
  64. export default useHook