_hamburger.scss 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. .hamburger {
  2. font-size: 0;
  3. display: inline-block;
  4. overflow: visible;
  5. margin: 0;
  6. cursor: pointer;
  7. transition-timing-function: linear;
  8. transition-duration: .15s;
  9. transition-property: opacity,filter;
  10. text-transform: none;
  11. color: inherit;
  12. border: 2px solid transparent;
  13. border-radius: 50%;
  14. background-color: transparent;
  15. transition: border-color .22s ease;
  16. .hamburger-box {
  17. position: relative;
  18. display: inline-block;
  19. padding-top: 4px;
  20. padding-bottom: 4px;
  21. padding-left: 2px;
  22. padding-right: 2px;
  23. width: 24px;
  24. height: 22px;
  25. }
  26. .hamburger-inner {
  27. top: 50%;
  28. display: block;
  29. margin-top: -1px;
  30. &:after,
  31. &:before {
  32. display: block;
  33. content: "";
  34. }
  35. &:after {
  36. bottom: -6px;
  37. }
  38. &:before {
  39. top: -6px;
  40. }
  41. }
  42. .hamburger-inner,
  43. .hamburger-inner:after,
  44. .hamburger-inner:before {
  45. position: absolute;
  46. width: 20px;
  47. height: 2px;
  48. transition-timing-function: ease;
  49. transition-duration: .15s;
  50. transition-property: transform;
  51. border-radius: 4px;
  52. background-color: $header-color;
  53. }
  54. &.is-active {
  55. border-color: $header-color;
  56. .hamburger-inner {
  57. background-color: $header-color;
  58. &:before,
  59. &:after {
  60. background-color: $header-color;
  61. }
  62. }
  63. }
  64. &--spin {
  65. .hamburger-inner {
  66. transition-timing-function: cubic-bezier(.55,.055,.675,.19);
  67. transition-duration: .22s;
  68. &:before {
  69. transition: top .1s ease-in .25s,
  70. opacity .1s ease-in;
  71. }
  72. &:after {
  73. transition: bottom .1s ease-in .25s,
  74. transform .22s cubic-bezier(.55,.055,.675,.19);
  75. }
  76. }
  77. &.is-active {
  78. .hamburger-inner {
  79. transition-delay: .12s;
  80. transition-timing-function: cubic-bezier(.215,.61,.355,1);
  81. transform: rotate(225deg);
  82. &:before {
  83. top: 0;
  84. transition: top .1s ease-out,
  85. opacity .1s ease-out .12s;
  86. opacity: 0;
  87. }
  88. &:after {
  89. bottom: 0;
  90. transition: bottom .1s ease-out,
  91. transform .22s cubic-bezier(.215,.61,.355,1) .12s;
  92. transform: rotate(-90deg);
  93. }
  94. }
  95. }
  96. }
  97. }