hamburgers.css 26KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701
  1. /*!
  2. * Hamburgers
  3. * @description Tasty CSS-animated hamburgers
  4. * @author Jonathan Suh @jonsuh
  5. * @site https://jonsuh.com/hamburgers
  6. * @link https://github.com/jonsuh/hamburgers
  7. */
  8. .hamburger {
  9. padding: 15px 15px;
  10. display: inline-block;
  11. cursor: pointer;
  12. transition-property: opacity, filter;
  13. transition-duration: 0.15s;
  14. transition-timing-function: linear;
  15. font: inherit;
  16. color: inherit;
  17. text-transform: none;
  18. background-color: transparent;
  19. border: 0;
  20. margin: 0;
  21. overflow: visible; }
  22. .hamburger:hover {
  23. opacity: 0.7; }
  24. .hamburger-box {
  25. width: 40px;
  26. height: 24px;
  27. display: inline-block;
  28. position: relative; }
  29. .hamburger-inner {
  30. display: block;
  31. top: 50%;
  32. margin-top: -2px; }
  33. .hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {
  34. width: 40px;
  35. height: 4px;
  36. background-color: #000;
  37. border-radius: 4px;
  38. position: absolute;
  39. transition-property: transform;
  40. transition-duration: 0.15s;
  41. transition-timing-function: ease; }
  42. .hamburger-inner::before, .hamburger-inner::after {
  43. content: "";
  44. display: block; }
  45. .hamburger-inner::before {
  46. top: -10px; }
  47. .hamburger-inner::after {
  48. bottom: -10px; }
  49. /*
  50. * 3DX
  51. */
  52. .hamburger--3dx .hamburger-box {
  53. perspective: 80px; }
  54. .hamburger--3dx .hamburger-inner {
  55. transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }
  56. .hamburger--3dx .hamburger-inner::before, .hamburger--3dx .hamburger-inner::after {
  57. transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }
  58. .hamburger--3dx.is-active .hamburger-inner {
  59. background-color: transparent;
  60. transform: rotateY(180deg); }
  61. .hamburger--3dx.is-active .hamburger-inner::before {
  62. transform: translate3d(0, 10px, 0) rotate(45deg); }
  63. .hamburger--3dx.is-active .hamburger-inner::after {
  64. transform: translate3d(0, -10px, 0) rotate(-45deg); }
  65. /*
  66. * 3DX Reverse
  67. */
  68. .hamburger--3dx-r .hamburger-box {
  69. perspective: 80px; }
  70. .hamburger--3dx-r .hamburger-inner {
  71. transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }
  72. .hamburger--3dx-r .hamburger-inner::before, .hamburger--3dx-r .hamburger-inner::after {
  73. transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }
  74. .hamburger--3dx-r.is-active .hamburger-inner {
  75. background-color: transparent;
  76. transform: rotateY(-180deg); }
  77. .hamburger--3dx-r.is-active .hamburger-inner::before {
  78. transform: translate3d(0, 10px, 0) rotate(45deg); }
  79. .hamburger--3dx-r.is-active .hamburger-inner::after {
  80. transform: translate3d(0, -10px, 0) rotate(-45deg); }
  81. /*
  82. * 3DY
  83. */
  84. .hamburger--3dy .hamburger-box {
  85. perspective: 80px; }
  86. .hamburger--3dy .hamburger-inner {
  87. transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }
  88. .hamburger--3dy .hamburger-inner::before, .hamburger--3dy .hamburger-inner::after {
  89. transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }
  90. .hamburger--3dy.is-active .hamburger-inner {
  91. background-color: transparent;
  92. transform: rotateX(-180deg); }
  93. .hamburger--3dy.is-active .hamburger-inner::before {
  94. transform: translate3d(0, 10px, 0) rotate(45deg); }
  95. .hamburger--3dy.is-active .hamburger-inner::after {
  96. transform: translate3d(0, -10px, 0) rotate(-45deg); }
  97. /*
  98. * 3DY Reverse
  99. */
  100. .hamburger--3dy-r .hamburger-box {
  101. perspective: 80px; }
  102. .hamburger--3dy-r .hamburger-inner {
  103. transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }
  104. .hamburger--3dy-r .hamburger-inner::before, .hamburger--3dy-r .hamburger-inner::after {
  105. transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }
  106. .hamburger--3dy-r.is-active .hamburger-inner {
  107. background-color: transparent;
  108. transform: rotateX(180deg); }
  109. .hamburger--3dy-r.is-active .hamburger-inner::before {
  110. transform: translate3d(0, 10px, 0) rotate(45deg); }
  111. .hamburger--3dy-r.is-active .hamburger-inner::after {
  112. transform: translate3d(0, -10px, 0) rotate(-45deg); }
  113. /*
  114. * 3DXY
  115. */
  116. .hamburger--3dxy .hamburger-box {
  117. perspective: 80px; }
  118. .hamburger--3dxy .hamburger-inner {
  119. transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }
  120. .hamburger--3dxy .hamburger-inner::before, .hamburger--3dxy .hamburger-inner::after {
  121. transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }
  122. .hamburger--3dxy.is-active .hamburger-inner {
  123. background-color: transparent;
  124. transform: rotateX(180deg) rotateY(180deg); }
  125. .hamburger--3dxy.is-active .hamburger-inner::before {
  126. transform: translate3d(0, 10px, 0) rotate(45deg); }
  127. .hamburger--3dxy.is-active .hamburger-inner::after {
  128. transform: translate3d(0, -10px, 0) rotate(-45deg); }
  129. /*
  130. * 3DXY Reverse
  131. */
  132. .hamburger--3dxy-r .hamburger-box {
  133. perspective: 80px; }
  134. .hamburger--3dxy-r .hamburger-inner {
  135. transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }
  136. .hamburger--3dxy-r .hamburger-inner::before, .hamburger--3dxy-r .hamburger-inner::after {
  137. transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }
  138. .hamburger--3dxy-r.is-active .hamburger-inner {
  139. background-color: transparent;
  140. transform: rotateX(180deg) rotateY(180deg) rotateZ(-180deg); }
  141. .hamburger--3dxy-r.is-active .hamburger-inner::before {
  142. transform: translate3d(0, 10px, 0) rotate(45deg); }
  143. .hamburger--3dxy-r.is-active .hamburger-inner::after {
  144. transform: translate3d(0, -10px, 0) rotate(-45deg); }
  145. /*
  146. * Arrow
  147. */
  148. .hamburger--arrow.is-active .hamburger-inner::before {
  149. transform: translate3d(-8px, 0, 0) rotate(-45deg) scale(0.7, 1); }
  150. .hamburger--arrow.is-active .hamburger-inner::after {
  151. transform: translate3d(-8px, 0, 0) rotate(45deg) scale(0.7, 1); }
  152. /*
  153. * Arrow Right
  154. */
  155. .hamburger--arrow-r.is-active .hamburger-inner::before {
  156. transform: translate3d(8px, 0, 0) rotate(45deg) scale(0.7, 1); }
  157. .hamburger--arrow-r.is-active .hamburger-inner::after {
  158. transform: translate3d(8px, 0, 0) rotate(-45deg) scale(0.7, 1); }
  159. /*
  160. * Arrow Alt
  161. */
  162. .hamburger--arrowalt .hamburger-inner::before {
  163. transition: top 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1); }
  164. .hamburger--arrowalt .hamburger-inner::after {
  165. transition: bottom 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1); }
  166. .hamburger--arrowalt.is-active .hamburger-inner::before {
  167. top: 0;
  168. transform: translate3d(-8px, -10px, 0) rotate(-45deg) scale(0.7, 1);
  169. transition: top 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); }
  170. .hamburger--arrowalt.is-active .hamburger-inner::after {
  171. bottom: 0;
  172. transform: translate3d(-8px, 10px, 0) rotate(45deg) scale(0.7, 1);
  173. transition: bottom 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); }
  174. /*
  175. * Arrow Alt Right
  176. */
  177. .hamburger--arrowalt-r .hamburger-inner::before {
  178. transition: top 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1); }
  179. .hamburger--arrowalt-r .hamburger-inner::after {
  180. transition: bottom 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1); }
  181. .hamburger--arrowalt-r.is-active .hamburger-inner::before {
  182. top: 0;
  183. transform: translate3d(8px, -10px, 0) rotate(45deg) scale(0.7, 1);
  184. transition: top 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); }
  185. .hamburger--arrowalt-r.is-active .hamburger-inner::after {
  186. bottom: 0;
  187. transform: translate3d(8px, 10px, 0) rotate(-45deg) scale(0.7, 1);
  188. transition: bottom 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); }
  189. /*
  190. * Arrow Turn
  191. */
  192. .hamburger--arrowturn.is-active .hamburger-inner {
  193. transform: rotate(-180deg); }
  194. .hamburger--arrowturn.is-active .hamburger-inner::before {
  195. transform: translate3d(8px, 0, 0) rotate(45deg) scale(0.7, 1); }
  196. .hamburger--arrowturn.is-active .hamburger-inner::after {
  197. transform: translate3d(8px, 0, 0) rotate(-45deg) scale(0.7, 1); }
  198. /*
  199. * Arrow Turn Right
  200. */
  201. .hamburger--arrowturn-r.is-active .hamburger-inner {
  202. transform: rotate(-180deg); }
  203. .hamburger--arrowturn-r.is-active .hamburger-inner::before {
  204. transform: translate3d(-8px, 0, 0) rotate(-45deg) scale(0.7, 1); }
  205. .hamburger--arrowturn-r.is-active .hamburger-inner::after {
  206. transform: translate3d(-8px, 0, 0) rotate(45deg) scale(0.7, 1); }
  207. /*
  208. * Boring
  209. */
  210. .hamburger--boring .hamburger-inner, .hamburger--boring .hamburger-inner::before, .hamburger--boring .hamburger-inner::after {
  211. transition-property: none; }
  212. .hamburger--boring.is-active .hamburger-inner {
  213. transform: rotate(45deg); }
  214. .hamburger--boring.is-active .hamburger-inner::before {
  215. top: 0;
  216. opacity: 0; }
  217. .hamburger--boring.is-active .hamburger-inner::after {
  218. bottom: 0;
  219. transform: rotate(-90deg); }
  220. /*
  221. * Collapse
  222. */
  223. .hamburger--collapse .hamburger-inner {
  224. top: auto;
  225. bottom: 0;
  226. transition-duration: 0.13s;
  227. transition-delay: 0.13s;
  228. transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  229. .hamburger--collapse .hamburger-inner::after {
  230. top: -20px;
  231. transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear; }
  232. .hamburger--collapse .hamburger-inner::before {
  233. transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  234. .hamburger--collapse.is-active .hamburger-inner {
  235. transform: translate3d(0, -10px, 0) rotate(-45deg);
  236. transition-delay: 0.22s;
  237. transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  238. .hamburger--collapse.is-active .hamburger-inner::after {
  239. top: 0;
  240. opacity: 0;
  241. transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear; }
  242. .hamburger--collapse.is-active .hamburger-inner::before {
  243. top: 0;
  244. transform: rotate(-90deg);
  245. transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1); }
  246. /*
  247. * Collapse Reverse
  248. */
  249. .hamburger--collapse-r .hamburger-inner {
  250. top: auto;
  251. bottom: 0;
  252. transition-duration: 0.13s;
  253. transition-delay: 0.13s;
  254. transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  255. .hamburger--collapse-r .hamburger-inner::after {
  256. top: -20px;
  257. transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear; }
  258. .hamburger--collapse-r .hamburger-inner::before {
  259. transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  260. .hamburger--collapse-r.is-active .hamburger-inner {
  261. transform: translate3d(0, -10px, 0) rotate(45deg);
  262. transition-delay: 0.22s;
  263. transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  264. .hamburger--collapse-r.is-active .hamburger-inner::after {
  265. top: 0;
  266. opacity: 0;
  267. transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear; }
  268. .hamburger--collapse-r.is-active .hamburger-inner::before {
  269. top: 0;
  270. transform: rotate(90deg);
  271. transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1); }
  272. /*
  273. * Elastic
  274. */
  275. .hamburger--elastic .hamburger-inner {
  276. top: 2px;
  277. transition-duration: 0.275s;
  278. transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); }
  279. .hamburger--elastic .hamburger-inner::before {
  280. top: 10px;
  281. transition: opacity 0.125s 0.275s ease; }
  282. .hamburger--elastic .hamburger-inner::after {
  283. top: 20px;
  284. transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55); }
  285. .hamburger--elastic.is-active .hamburger-inner {
  286. transform: translate3d(0, 10px, 0) rotate(135deg);
  287. transition-delay: 0.075s; }
  288. .hamburger--elastic.is-active .hamburger-inner::before {
  289. transition-delay: 0s;
  290. opacity: 0; }
  291. .hamburger--elastic.is-active .hamburger-inner::after {
  292. transform: translate3d(0, -20px, 0) rotate(-270deg);
  293. transition-delay: 0.075s; }
  294. /*
  295. * Elastic Reverse
  296. */
  297. .hamburger--elastic-r .hamburger-inner {
  298. top: 2px;
  299. transition-duration: 0.275s;
  300. transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); }
  301. .hamburger--elastic-r .hamburger-inner::before {
  302. top: 10px;
  303. transition: opacity 0.125s 0.275s ease; }
  304. .hamburger--elastic-r .hamburger-inner::after {
  305. top: 20px;
  306. transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55); }
  307. .hamburger--elastic-r.is-active .hamburger-inner {
  308. transform: translate3d(0, 10px, 0) rotate(-135deg);
  309. transition-delay: 0.075s; }
  310. .hamburger--elastic-r.is-active .hamburger-inner::before {
  311. transition-delay: 0s;
  312. opacity: 0; }
  313. .hamburger--elastic-r.is-active .hamburger-inner::after {
  314. transform: translate3d(0, -20px, 0) rotate(270deg);
  315. transition-delay: 0.075s; }
  316. /*
  317. * Emphatic
  318. */
  319. .hamburger--emphatic {
  320. overflow: hidden; }
  321. .hamburger--emphatic .hamburger-inner {
  322. transition: background-color 0.125s 0.175s ease-in; }
  323. .hamburger--emphatic .hamburger-inner::before {
  324. left: 0;
  325. transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, left 0.125s 0.175s ease-in; }
  326. .hamburger--emphatic .hamburger-inner::after {
  327. top: 10px;
  328. right: 0;
  329. transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, right 0.125s 0.175s ease-in; }
  330. .hamburger--emphatic.is-active .hamburger-inner {
  331. transition-delay: 0s;
  332. transition-timing-function: ease-out;
  333. background-color: transparent; }
  334. .hamburger--emphatic.is-active .hamburger-inner::before {
  335. left: -80px;
  336. top: -80px;
  337. transform: translate3d(80px, 80px, 0) rotate(45deg);
  338. transition: left 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1); }
  339. .hamburger--emphatic.is-active .hamburger-inner::after {
  340. right: -80px;
  341. top: -80px;
  342. transform: translate3d(-80px, 80px, 0) rotate(-45deg);
  343. transition: right 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1); }
  344. /*
  345. * Emphatic Reverse
  346. */
  347. .hamburger--emphatic-r {
  348. overflow: hidden; }
  349. .hamburger--emphatic-r .hamburger-inner {
  350. transition: background-color 0.125s 0.175s ease-in; }
  351. .hamburger--emphatic-r .hamburger-inner::before {
  352. left: 0;
  353. transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, left 0.125s 0.175s ease-in; }
  354. .hamburger--emphatic-r .hamburger-inner::after {
  355. top: 10px;
  356. right: 0;
  357. transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, right 0.125s 0.175s ease-in; }
  358. .hamburger--emphatic-r.is-active .hamburger-inner {
  359. transition-delay: 0s;
  360. transition-timing-function: ease-out;
  361. background-color: transparent; }
  362. .hamburger--emphatic-r.is-active .hamburger-inner::before {
  363. left: -80px;
  364. top: 80px;
  365. transform: translate3d(80px, -80px, 0) rotate(-45deg);
  366. transition: left 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1); }
  367. .hamburger--emphatic-r.is-active .hamburger-inner::after {
  368. right: -80px;
  369. top: 80px;
  370. transform: translate3d(-80px, -80px, 0) rotate(45deg);
  371. transition: right 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1); }
  372. /*
  373. * Minus
  374. */
  375. .hamburger--minus .hamburger-inner::before, .hamburger--minus .hamburger-inner::after {
  376. transition: bottom 0.08s 0s ease-out, top 0.08s 0s ease-out, opacity 0s linear; }
  377. .hamburger--minus.is-active .hamburger-inner::before, .hamburger--minus.is-active .hamburger-inner::after {
  378. opacity: 0;
  379. transition: bottom 0.08s ease-out, top 0.08s ease-out, opacity 0s 0.08s linear; }
  380. .hamburger--minus.is-active .hamburger-inner::before {
  381. top: 0; }
  382. .hamburger--minus.is-active .hamburger-inner::after {
  383. bottom: 0; }
  384. /*
  385. * Slider
  386. */
  387. .hamburger--slider .hamburger-inner {
  388. top: 2px; }
  389. .hamburger--slider .hamburger-inner::before {
  390. top: 10px;
  391. transition-property: transform, opacity;
  392. transition-timing-function: ease;
  393. transition-duration: 0.15s; }
  394. .hamburger--slider .hamburger-inner::after {
  395. top: 20px; }
  396. .hamburger--slider.is-active .hamburger-inner {
  397. transform: translate3d(0, 10px, 0) rotate(45deg); }
  398. .hamburger--slider.is-active .hamburger-inner::before {
  399. transform: rotate(-45deg) translate3d(-5.71429px, -6px, 0);
  400. opacity: 0; }
  401. .hamburger--slider.is-active .hamburger-inner::after {
  402. transform: translate3d(0, -20px, 0) rotate(-90deg); }
  403. /*
  404. * Slider Reverse
  405. */
  406. .hamburger--slider-r .hamburger-inner {
  407. top: 2px; }
  408. .hamburger--slider-r .hamburger-inner::before {
  409. top: 10px;
  410. transition-property: transform, opacity;
  411. transition-timing-function: ease;
  412. transition-duration: 0.15s; }
  413. .hamburger--slider-r .hamburger-inner::after {
  414. top: 20px; }
  415. .hamburger--slider-r.is-active .hamburger-inner {
  416. transform: translate3d(0, 10px, 0) rotate(-45deg); }
  417. .hamburger--slider-r.is-active .hamburger-inner::before {
  418. transform: rotate(45deg) translate3d(5.71429px, -6px, 0);
  419. opacity: 0; }
  420. .hamburger--slider-r.is-active .hamburger-inner::after {
  421. transform: translate3d(0, -20px, 0) rotate(90deg); }
  422. /*
  423. * Spin
  424. */
  425. .hamburger--spin .hamburger-inner {
  426. transition-duration: 0.22s;
  427. transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  428. .hamburger--spin .hamburger-inner::before {
  429. transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in; }
  430. .hamburger--spin .hamburger-inner::after {
  431. transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  432. .hamburger--spin.is-active .hamburger-inner {
  433. transform: rotate(225deg);
  434. transition-delay: 0.12s;
  435. transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  436. .hamburger--spin.is-active .hamburger-inner::before {
  437. top: 0;
  438. opacity: 0;
  439. transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out; }
  440. .hamburger--spin.is-active .hamburger-inner::after {
  441. bottom: 0;
  442. transform: rotate(-90deg);
  443. transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1); }
  444. /*
  445. * Spin Reverse
  446. */
  447. .hamburger--spin-r .hamburger-inner {
  448. transition-duration: 0.22s;
  449. transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  450. .hamburger--spin-r .hamburger-inner::before {
  451. transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in; }
  452. .hamburger--spin-r .hamburger-inner::after {
  453. transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  454. .hamburger--spin-r.is-active .hamburger-inner {
  455. transform: rotate(-225deg);
  456. transition-delay: 0.12s;
  457. transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  458. .hamburger--spin-r.is-active .hamburger-inner::before {
  459. top: 0;
  460. opacity: 0;
  461. transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out; }
  462. .hamburger--spin-r.is-active .hamburger-inner::after {
  463. bottom: 0;
  464. transform: rotate(90deg);
  465. transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1); }
  466. /*
  467. * Spring
  468. */
  469. .hamburger--spring .hamburger-inner {
  470. top: 2px;
  471. transition: background-color 0s 0.13s linear; }
  472. .hamburger--spring .hamburger-inner::before {
  473. top: 10px;
  474. transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  475. .hamburger--spring .hamburger-inner::after {
  476. top: 20px;
  477. transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  478. .hamburger--spring.is-active .hamburger-inner {
  479. transition-delay: 0.22s;
  480. background-color: transparent; }
  481. .hamburger--spring.is-active .hamburger-inner::before {
  482. top: 0;
  483. transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
  484. transform: translate3d(0, 10px, 0) rotate(45deg); }
  485. .hamburger--spring.is-active .hamburger-inner::after {
  486. top: 0;
  487. transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
  488. transform: translate3d(0, 10px, 0) rotate(-45deg); }
  489. /*
  490. * Spring Reverse
  491. */
  492. .hamburger--spring-r .hamburger-inner {
  493. top: auto;
  494. bottom: 0;
  495. transition-duration: 0.13s;
  496. transition-delay: 0s;
  497. transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  498. .hamburger--spring-r .hamburger-inner::after {
  499. top: -20px;
  500. transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0s linear; }
  501. .hamburger--spring-r .hamburger-inner::before {
  502. transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  503. .hamburger--spring-r.is-active .hamburger-inner {
  504. transform: translate3d(0, -10px, 0) rotate(-45deg);
  505. transition-delay: 0.22s;
  506. transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  507. .hamburger--spring-r.is-active .hamburger-inner::after {
  508. top: 0;
  509. opacity: 0;
  510. transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0s 0.22s linear; }
  511. .hamburger--spring-r.is-active .hamburger-inner::before {
  512. top: 0;
  513. transform: rotate(90deg);
  514. transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1); }
  515. /*
  516. * Stand
  517. */
  518. .hamburger--stand .hamburger-inner {
  519. transition: transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.075s linear; }
  520. .hamburger--stand .hamburger-inner::before {
  521. transition: top 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  522. .hamburger--stand .hamburger-inner::after {
  523. transition: bottom 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  524. .hamburger--stand.is-active .hamburger-inner {
  525. transform: rotate(90deg);
  526. background-color: transparent;
  527. transition: transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.15s linear; }
  528. .hamburger--stand.is-active .hamburger-inner::before {
  529. top: 0;
  530. transform: rotate(-45deg);
  531. transition: top 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1); }
  532. .hamburger--stand.is-active .hamburger-inner::after {
  533. bottom: 0;
  534. transform: rotate(45deg);
  535. transition: bottom 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1); }
  536. /*
  537. * Stand Reverse
  538. */
  539. .hamburger--stand-r .hamburger-inner {
  540. transition: transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.075s linear; }
  541. .hamburger--stand-r .hamburger-inner::before {
  542. transition: top 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  543. .hamburger--stand-r .hamburger-inner::after {
  544. transition: bottom 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  545. .hamburger--stand-r.is-active .hamburger-inner {
  546. transform: rotate(-90deg);
  547. background-color: transparent;
  548. transition: transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.15s linear; }
  549. .hamburger--stand-r.is-active .hamburger-inner::before {
  550. top: 0;
  551. transform: rotate(-45deg);
  552. transition: top 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1); }
  553. .hamburger--stand-r.is-active .hamburger-inner::after {
  554. bottom: 0;
  555. transform: rotate(45deg);
  556. transition: bottom 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1); }
  557. /*
  558. * Squeeze
  559. */
  560. .hamburger--squeeze .hamburger-inner {
  561. transition-duration: 0.075s;
  562. transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  563. .hamburger--squeeze .hamburger-inner::before {
  564. transition: top 0.075s 0.12s ease, opacity 0.075s ease; }
  565. .hamburger--squeeze .hamburger-inner::after {
  566. transition: bottom 0.075s 0.12s ease, transform 0.075s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  567. .hamburger--squeeze.is-active .hamburger-inner {
  568. transform: rotate(45deg);
  569. transition-delay: 0.12s;
  570. transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  571. .hamburger--squeeze.is-active .hamburger-inner::before {
  572. top: 0;
  573. opacity: 0;
  574. transition: top 0.075s ease, opacity 0.075s 0.12s ease; }
  575. .hamburger--squeeze.is-active .hamburger-inner::after {
  576. bottom: 0;
  577. transform: rotate(-90deg);
  578. transition: bottom 0.075s ease, transform 0.075s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1); }
  579. /*
  580. * Vortex
  581. */
  582. .hamburger--vortex .hamburger-inner {
  583. transition-duration: 0.2s;
  584. transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }
  585. .hamburger--vortex .hamburger-inner::before, .hamburger--vortex .hamburger-inner::after {
  586. transition-duration: 0s;
  587. transition-delay: 0.1s;
  588. transition-timing-function: linear; }
  589. .hamburger--vortex .hamburger-inner::before {
  590. transition-property: top, opacity; }
  591. .hamburger--vortex .hamburger-inner::after {
  592. transition-property: bottom, transform; }
  593. .hamburger--vortex.is-active .hamburger-inner {
  594. transform: rotate(765deg);
  595. transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }
  596. .hamburger--vortex.is-active .hamburger-inner::before, .hamburger--vortex.is-active .hamburger-inner::after {
  597. transition-delay: 0s; }
  598. .hamburger--vortex.is-active .hamburger-inner::before {
  599. top: 0;
  600. opacity: 0; }
  601. .hamburger--vortex.is-active .hamburger-inner::after {
  602. bottom: 0;
  603. transform: rotate(90deg); }
  604. /*
  605. * Vortex Reverse
  606. */
  607. .hamburger--vortex-r .hamburger-inner {
  608. transition-duration: 0.2s;
  609. transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }
  610. .hamburger--vortex-r .hamburger-inner::before, .hamburger--vortex-r .hamburger-inner::after {
  611. transition-duration: 0s;
  612. transition-delay: 0.1s;
  613. transition-timing-function: linear; }
  614. .hamburger--vortex-r .hamburger-inner::before {
  615. transition-property: top, opacity; }
  616. .hamburger--vortex-r .hamburger-inner::after {
  617. transition-property: bottom, transform; }
  618. .hamburger--vortex-r.is-active .hamburger-inner {
  619. transform: rotate(-765deg);
  620. transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }
  621. .hamburger--vortex-r.is-active .hamburger-inner::before, .hamburger--vortex-r.is-active .hamburger-inner::after {
  622. transition-delay: 0s; }
  623. .hamburger--vortex-r.is-active .hamburger-inner::before {
  624. top: 0;
  625. opacity: 0; }
  626. .hamburger--vortex-r.is-active .hamburger-inner::after {
  627. bottom: 0;
  628. transform: rotate(-90deg); }