button.css 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. .button {
  2. @apply inline-flex;
  3. @apply place-center;
  4. @apply px-4;
  5. @apply min-h-10;
  6. @apply border-0;
  7. @apply bg-purple-500;
  8. @apply overflow-hidden;
  9. @apply rounded-sm;
  10. @apply text-white;
  11. @apply leading-none;
  12. @apply no-underline;
  13. }
  14. .button:after {
  15. content: '';
  16. @apply block;
  17. @apply absolute;
  18. @apply left-full;
  19. @apply bottom-0;
  20. width: 200%;
  21. height: 100vh;
  22. @apply bg-tint-500;
  23. transform: translateX(-1rem) skewX(-65deg);
  24. transform-origin: 0% 100%;
  25. transition: transform 0.75s ease-out;
  26. }
  27. .button:hover:after {
  28. transform: translateX(-1.5rem) skewX(-65deg);
  29. transition-duration: 0.3s;
  30. }
  31. .button:not(:disabled):active:after,
  32. .button.button-submitting:after {
  33. transition-delay: 0.2s;
  34. transition-duration: 0.3s;
  35. transform: translateX(-100%) skewX(-65deg);
  36. }
  37. .button-secondary {
  38. @apply button;
  39. @apply bg-tint-200;
  40. @apply text-tint-700;
  41. }
  42. .button-secondary:hover {
  43. @apply bg-tint-300;
  44. }
  45. .button-secondary:not(:disabled):active,
  46. .button-secondary.button-submitting:after {
  47. @apply bg-tint-500;
  48. @apply opacity-50;
  49. }
  50. .button:focus,
  51. .button-secondary:focus {
  52. @apply outline-none;
  53. }
  54. .button:disabled,
  55. .button-secondary:disabled {
  56. @apply cursor-not-allowed;
  57. @apply opacity-25;
  58. }
  59. .button-sm {
  60. @apply text-sm;
  61. }
  62. .button.button-sm,
  63. .button-secondary.button-sm {
  64. @apply px-2;
  65. @apply min-h-6;
  66. @apply rounded-sm;
  67. }
  68. .button-lg {
  69. @apply text-lg;
  70. }
  71. .button.button-lg,
  72. .button-secondary.button-lg {
  73. @apply px-6;
  74. @apply min-h-12;
  75. }
  76. .button-lg.button:after {
  77. transform: translateX(-2rem) skewX(-65deg);
  78. }
  79. .button-lg.button:hover:after {
  80. transform: translateX(-3rem) skewX(-65deg);
  81. }