Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 

180 righe
3.9 KiB

  1. @import '../../_global/styles/mixins';
  2. @import '../../_global/styles/vars';
  3. .btn {
  4. --button-bg-color: var(--theme-color-primary);
  5. --button-text-color: var(--theme-color-white);
  6. --button-padding: 16px 24px;
  7. --button-min-size: 60px;
  8. --button-icon-padding: 58px;
  9. --button-icon-offset: 18px;
  10. --button-hover-shadow-opacity: 0.3;
  11. --button-hover-shadow-size: 6px;
  12. position: relative;
  13. display: inline-flex;
  14. align-items: center;
  15. justify-content: center;
  16. font-family: 'Korb', sans-serif;
  17. border-radius: var(--border-radius-lg);
  18. font-size: var(--font-size-copy);
  19. line-height: 1;
  20. padding: var(--button-padding);
  21. text-decoration: none;
  22. border: 0;
  23. min-height: var(--button-min-size);
  24. min-width: var(--button-min-size);
  25. cursor: pointer;
  26. font-weight: 400;
  27. text-align: left;
  28. transition: 0.2s ease;
  29. @include focus-visible;
  30. @media(max-width: 999px) {
  31. --button-icon-padding: 52px;
  32. --button-icon-offset: 16px;
  33. --button-padding: 14px 20px;
  34. --button-min-size: 52px;
  35. }
  36. @media(max-width: 767px) {
  37. --button-icon-padding: 44px;
  38. --button-icon-offset: 12px;
  39. --button-padding: 12px 16px;
  40. --button-min-size: 44px;
  41. --button-hover-shadow-size: 4px;
  42. }
  43. }
  44. .btn, .btn:hover {
  45. background-color: var(--button-bg-color);
  46. color: var(--button-text-color);
  47. }
  48. .btn.secondary {
  49. --button-bg-color: var(--theme-color-secondary);
  50. --button-text-color: var(--theme-color-primary);
  51. --button-hover-shadow-opacity: 0.4;
  52. }
  53. .btn.white {
  54. --button-bg-color: var(--theme-color-white);
  55. --button-text-color: var(--theme-color-primary);
  56. --button-hover-shadow-opacity: 0.35;
  57. }
  58. .btn.primary-light {
  59. --button-bg-color: var(--theme-color-primary-dimmed-03);
  60. --button-text-color: var(--theme-color-primary);
  61. --button-hover-shadow-opacity: 0.45;
  62. }
  63. .btn.primary-extra-light {
  64. --button-bg-color: var(--theme-color-primary-dimmed-04);
  65. --button-text-color: var(--theme-color-primary);
  66. --button-hover-shadow-opacity: 0.5;
  67. }
  68. .btn.secondary-light {
  69. --button-bg-color: #9AD7A3;
  70. --button-text-color: var(--theme-color-primary);
  71. --button-hover-shadow-opacity: 0.45;
  72. }
  73. .btn::after {
  74. content: '';
  75. position: absolute;
  76. display: block;
  77. top: 0;
  78. left: 0;
  79. right: 0;
  80. bottom: 0;
  81. border-radius: var(--border-radius-lg);
  82. box-shadow: 0 0 0 2px var(--button-bg-color);
  83. opacity: 0;
  84. transition: 0.3s ease;
  85. }
  86. .btn:hover::after {
  87. opacity: var(--button-hover-shadow-opacity);
  88. box-shadow: 0 0 0 var(--button-hover-shadow-size) var(--button-bg-color);
  89. }
  90. .btn-small {
  91. --button-icon-padding: 48px;
  92. --button-icon-offset: 12px;
  93. --button-min-size: 42px;
  94. --button-padding: 10px 18px;
  95. --button-hover-shadow-size: 4px;
  96. border-radius: var(--border-radius-md);
  97. &::after {
  98. border-radius: var(--border-radius-md);
  99. }
  100. @media(max-width: 999px) {
  101. --button-icon-padding: 46px;
  102. --button-min-size: 38px;
  103. }
  104. }
  105. .btn-medium {
  106. --button-min-size: 48px;
  107. --button-padding: 10px 18px;
  108. --button-hover-shadow-size: 5px;
  109. border-radius: var(--border-radius-md);
  110. &::after {
  111. border-radius: var(--border-radius-md);
  112. }
  113. @media(max-width: 999px) {
  114. --button-min-size: 44px;
  115. --button-icon-padding: 46px;
  116. --button-hover-shadow-size: 4px;
  117. }
  118. }
  119. button::-moz-focus-inner {
  120. border: 0;
  121. }
  122. .btn::before {
  123. display: none;
  124. }
  125. .btn.icon-left {
  126. padding-left: var(--button-icon-padding);
  127. }
  128. .btn.icon-right {
  129. padding-right: var(--button-icon-padding);
  130. }
  131. .btn.icon-left::before, .btn.icon-right::before {
  132. font-family: 'Icons', sans-serif;
  133. position: absolute;
  134. display: block;
  135. font-size: var(--icon-size);
  136. left: var(--button-icon-offset);
  137. top: 50%;
  138. margin-top: calc(var(--icon-size) * -0.5);
  139. }
  140. .btn.icon-right::before {
  141. left: auto;
  142. right: var(--button-icon-offset);
  143. }
  144. .btn.icon-inline {
  145. padding: 0;
  146. display: flex;
  147. align-items: center;
  148. justify-content: center;
  149. &::before {
  150. position: relative;
  151. display: block;
  152. font-family: 'Icons', sans-serif;
  153. font-size: var(--icon-size);
  154. }
  155. }