useTransforms.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import useVars from './useVars.js'
  2. import { getClasses } from '../utils/classes.js'
  3. function useHook() { // useTypography
  4. const { pxs, percents } = useVars()
  5. const Scale = {
  6. title: 'Scale',
  7. classes: getClasses('0, 50, 75, 90, 95, 100, 105, 110, 125, 150', {
  8. name: ['scale-', 'scale-x-', 'scale-y-'],
  9. value: [
  10. d => [`transform: scale(${d.value / 100})`],
  11. d => [`transform: scaleX(${d.value / 100})`],
  12. d => [`transform: scaleY(${d.value / 100})`]
  13. ],
  14. })
  15. }
  16. const Rotate = {
  17. title: 'Rotate',
  18. classes: getClasses('0, 1, 2, 3, 6, 12, 45, 90, 180', {
  19. name: ['rotate-', '-rotate-'],
  20. value: [
  21. d => [`transform: rotate(${d.value}deg)`],
  22. d => [`transform: rotate(${-d.value}deg)`]
  23. ],
  24. })
  25. }
  26. const Translate = {
  27. title: 'Translate',
  28. classes: [
  29. ...getClasses(pxs, {
  30. name: ['translate-x-', 'translate-y-'],
  31. value: [
  32. d => [`transform: translateX(${d.value})`],
  33. d => [`transform: translateY(${d.value})`],
  34. ],
  35. }),
  36. ...getClasses(percents, {
  37. name: ['translate-x-', 'translate-y-'],
  38. value: [
  39. d => [`transform: translateX(${d.value})`],
  40. d => [`transform: translateY(${d.value})`],
  41. ],
  42. })
  43. ]
  44. }
  45. const Skew = {
  46. title: 'Skew',
  47. classes: getClasses('0, 1, 2, 3, 6, 12', {
  48. name: ['skew-x-', 'skew-y-'],
  49. value: [
  50. d => [`transform: skewX(${d.value}deg)`],
  51. d => [`transform: skewy(${-d.value}deg)`]
  52. ],
  53. })
  54. }
  55. const TransformOrigin = {
  56. title: 'Transform Origin',
  57. classes: getClasses('center, top, top-right: top right, right, bottom-right: bottom right, bottom, bottom-left: bottom left, left, top-left: top left', {
  58. name: ['origin-'],
  59. value: ['transform-origin'],
  60. })
  61. }
  62. return {
  63. Scale,
  64. Rotate,
  65. Translate,
  66. Skew,
  67. TransformOrigin
  68. }
  69. }
  70. export default useHook