hamburgers 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. checksums.yaml +7 -0
  2. data/.csscomb.dist.json +302 -0
  3. data/.editorconfig +12 -0
  4. data/.gitignore +5 -0
  5. data/.npmignore +11 -0
  6. data/CHANGELOG.md +63 -0
  7. data/Gemfile +3 -0
  8. data/LICENSE +9 -0
  9. data/README.md +246 -0
  10. data/_sass/hamburgers/_base.scss +69 -0
  11. data/_sass/hamburgers/hamburgers.scss +107 -0
  12. data/_sass/hamburgers/types/_3dx-r.scss +35 -0
  13. data/_sass/hamburgers/types/_3dx.scss +35 -0
  14. data/_sass/hamburgers/types/_3dy-r.scss +35 -0
  15. data/_sass/hamburgers/types/_3dy.scss +35 -0
  16. data/_sass/hamburgers/types/_arrow-r.scss +16 -0
  17. data/_sass/hamburgers/types/_arrow.scss +16 -0
  18. data/_sass/hamburgers/types/_arrowalt-r.scss +36 -0
  19. data/_sass/hamburgers/types/_arrowalt.scss +36 -0
  20. data/_sass/hamburgers/types/_boring.scss +30 -0
  21. data/_sass/hamburgers/types/_collapse-r.scss +47 -0
  22. data/_sass/hamburgers/types/_collapse.scss +47 -0
  23. data/_sass/hamburgers/types/_elastic-r.scss +41 -0
  24. data/_sass/hamburgers/types/_elastic.scss +41 -0
  25. data/_sass/hamburgers/types/_emphatic-r.scss +53 -0
  26. data/_sass/hamburgers/types/_emphatic.scss +53 -0
  27. data/_sass/hamburgers/types/_slider-r.scss +38 -0
  28. data/_sass/hamburgers/types/_slider.scss +38 -0
  29. data/_sass/hamburgers/types/_spin-r.scss +43 -0
  30. data/_sass/hamburgers/types/_spin.scss +43 -0
  31. data/_sass/hamburgers/types/_spring-r.scss +47 -0
  32. data/_sass/hamburgers/types/_spring.scss +44 -0
  33. data/_sass/hamburgers/types/_squeeze.scss +43 -0
  34. data/_sass/hamburgers/types/_stand-r.scss +45 -0
  35. data/_sass/hamburgers/types/_stand.scss +45 -0
  36. data/_sass/hamburgers/types/_vortex-r.scss +48 -0
  37. data/_sass/hamburgers/types/_vortex.scss +48 -0
  38. data/bower.json +40 -0
  39. data/bs-config.js +16 -0
  40. data/config.postcss.json +6 -0
  41. data/dist/example.html +203 -0
  42. data/dist/hamburgers.css +626 -0
  43. data/dist/hamburgers.min.css +7 -0
  44. data/gulpfile.js +60 -0
  45. data/hamburgers.gemspec +17 -0
  46. data/lib/hamburgers.rb +17 -0
  47. data/lib/hamburgers/version.rb +3 -0
  48. data/package.json +53 -0
  49. data/yarn.lock +3653 -0
  50. metadata +94 -0
@@ -0,0 +1,69 @@
1
+ // Hamburger
2
+ // ==================================================
3
+ .hamburger {
4
+ padding: $hamburger-padding-y $hamburger-padding-x;
5
+ display: inline-block;
6
+ cursor: pointer;
7
+
8
+ transition-property: opacity, filter;
9
+ transition-duration: $hamburger-hover-transition-duration;
10
+ transition-timing-function: $hamburger-hover-transition-timing-function;
11
+
12
+ // Normalize (<button>)
13
+ font: inherit;
14
+ color: inherit;
15
+ text-transform: none;
16
+ background-color: transparent;
17
+ border: 0;
18
+ margin: 0;
19
+ overflow: visible;
20
+
21
+ &:hover {
22
+ @if $hamburger-hover-use-filter == true {
23
+ filter: $hamburger-hover-filter;
24
+ }
25
+ @else {
26
+ opacity: $hamburger-hover-opacity;
27
+ }
28
+ }
29
+ }
30
+
31
+ .hamburger-box {
32
+ width: $hamburger-layer-width;
33
+ height: $hamburger-layer-height * 3 + $hamburger-layer-spacing * 2;
34
+ display: inline-block;
35
+ position: relative;
36
+ }
37
+
38
+ .hamburger-inner {
39
+ display: block;
40
+ top: 50%;
41
+ margin-top: $hamburger-layer-height / -2;
42
+
43
+ &,
44
+ &::before,
45
+ &::after {
46
+ width: $hamburger-layer-width;
47
+ height: $hamburger-layer-height;
48
+ background-color: $hamburger-layer-color;
49
+ border-radius: $hamburger-layer-border-radius;
50
+ position: absolute;
51
+ transition-property: transform;
52
+ transition-duration: 0.15s;
53
+ transition-timing-function: ease;
54
+ }
55
+
56
+ &::before,
57
+ &::after {
58
+ content: "";
59
+ display: block;
60
+ }
61
+
62
+ &::before {
63
+ top: ($hamburger-layer-spacing + $hamburger-layer-height) * -1;
64
+ }
65
+
66
+ &::after {
67
+ bottom: ($hamburger-layer-spacing + $hamburger-layer-height) * -1;
68
+ }
69
+ }
@@ -0,0 +1,107 @@
1
+ @charset "UTF-8";
2
+ /*!
3
+ * Hamburgers
4
+ * @description Tasty CSS-animated hamburgers
5
+ * @author Jonathan Suh @jonsuh
6
+ * @site https://jonsuh.com/hamburgers
7
+ * @link https://github.com/jonsuh/hamburgers
8
+ */
9
+
10
+ // Settings
11
+ // ==================================================
12
+ $hamburger-padding-x : 15px !default;
13
+ $hamburger-padding-y : 15px !default;
14
+ $hamburger-layer-width : 40px !default;
15
+ $hamburger-layer-height : 4px !default;
16
+ $hamburger-layer-spacing : 6px !default;
17
+ $hamburger-layer-color : #000 !default;
18
+ $hamburger-layer-border-radius : 4px !default;
19
+ $hamburger-hover-opacity : 0.7 !default;
20
+ $hamburger-hover-transition-duration : 0.15s !default;
21
+ $hamburger-hover-transition-timing-function: linear !default;
22
+
23
+ // To use CSS filters as the hover effect instead of opacity,
24
+ // set $hamburger-hover-use-filter as true and
25
+ // change the value of $hamburger-hover-filter accordingly.
26
+ $hamburger-hover-use-filter: false !default;
27
+ $hamburger-hover-filter : opacity(50%) !default;
28
+
29
+ // Types (Remove or comment out what you don’t need)
30
+ // ==================================================
31
+ $hamburger-types: (
32
+ 3dx,
33
+ 3dx-r,
34
+ 3dy,
35
+ 3dy-r,
36
+ arrow,
37
+ arrow-r,
38
+ arrowalt,
39
+ arrowalt-r,
40
+ boring,
41
+ collapse,
42
+ collapse-r,
43
+ elastic,
44
+ elastic-r,
45
+ emphatic,
46
+ emphatic-r,
47
+ slider,
48
+ slider-r,
49
+ spring,
50
+ spring-r,
51
+ stand,
52
+ stand-r,
53
+ spin,
54
+ spin-r,
55
+ squeeze,
56
+ vortex,
57
+ vortex-r
58
+ ) !default;
59
+
60
+ // Base Hamburger (We need this)
61
+ // ==================================================
62
+ @import "base";
63
+
64
+ // Hamburger types
65
+ // ==================================================
66
+ @import "types/3dx";
67
+ @import "types/3dx-r";
68
+ @import "types/3dy";
69
+ @import "types/3dy-r";
70
+ @import "types/arrow";
71
+ @import "types/arrow-r";
72
+ @import "types/arrowalt";
73
+ @import "types/arrowalt-r";
74
+ @import "types/boring";
75
+ @import "types/collapse";
76
+ @import "types/collapse-r";
77
+ @import "types/elastic";
78
+ @import "types/elastic-r";
79
+ @import "types/emphatic";
80
+ @import "types/emphatic-r";
81
+ @import "types/slider";
82
+ @import "types/slider-r";
83
+ @import "types/spring";
84
+ @import "types/spring-r";
85
+ @import "types/stand";
86
+ @import "types/stand-r";
87
+ @import "types/spin";
88
+ @import "types/spin-r";
89
+ @import "types/squeeze";
90
+ @import "types/vortex";
91
+ @import "types/vortex-r";
92
+
93
+ // ==================================================
94
+ // Cooking up additional types:
95
+ //
96
+ // The Sass for each hamburger type should be nested
97
+ // inside an @if directive to check whether or not
98
+ // it exists in $hamburger-types so only the CSS for
99
+ // included types are generated.
100
+ //
101
+ // e.g. hamburgers/types/_new-type.scss
102
+ //
103
+ // @if index($hamburger-types, new-type) {
104
+ // .hamburger--new-type {
105
+ // ...
106
+ // }
107
+ // }
@@ -0,0 +1,35 @@
1
+ @if index($hamburger-types, 3dx-r) {
2
+ /*
3
+ * 3DX Reverse
4
+ */
5
+ .hamburger--3dx-r {
6
+ .hamburger-box {
7
+ perspective: $hamburger-layer-width * 2;
8
+ }
9
+
10
+ .hamburger-inner {
11
+ transition: transform 0.2s cubic-bezier(0.645, 0.045, 0.355, 1),
12
+ background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
13
+
14
+ &::before,
15
+ &::after {
16
+ transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
17
+ }
18
+ }
19
+
20
+ &.is-active {
21
+ .hamburger-inner {
22
+ background-color: transparent;
23
+ transform: rotateY(-180deg);
24
+
25
+ &::before {
26
+ transform: translate3d(0, $hamburger-layer-height + $hamburger-layer-spacing, 0) rotate(45deg);
27
+ }
28
+
29
+ &::after {
30
+ transform: translate3d(0, ($hamburger-layer-height + $hamburger-layer-spacing) * -1, 0) rotate(-45deg);
31
+ }
32
+ }
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,35 @@
1
+ @if index($hamburger-types, 3dx) {
2
+ /*
3
+ * 3DX
4
+ */
5
+ .hamburger--3dx {
6
+ .hamburger-box {
7
+ perspective: $hamburger-layer-width * 2;
8
+ }
9
+
10
+ .hamburger-inner {
11
+ transition: transform 0.2s cubic-bezier(0.645, 0.045, 0.355, 1),
12
+ background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
13
+
14
+ &::before,
15
+ &::after {
16
+ transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
17
+ }
18
+ }
19
+
20
+ &.is-active {
21
+ .hamburger-inner {
22
+ background-color: transparent;
23
+ transform: rotateY(180deg);
24
+
25
+ &::before {
26
+ transform: translate3d(0, $hamburger-layer-height + $hamburger-layer-spacing, 0) rotate(45deg);
27
+ }
28
+
29
+ &::after {
30
+ transform: translate3d(0, ($hamburger-layer-height + $hamburger-layer-spacing) * -1, 0) rotate(-45deg);
31
+ }
32
+ }
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,35 @@
1
+ @if index($hamburger-types, 3dy-r) {
2
+ /*
3
+ * 3DY Reverse
4
+ */
5
+ .hamburger--3dy-r {
6
+ .hamburger-box {
7
+ perspective: $hamburger-layer-width * 2;
8
+ }
9
+
10
+ .hamburger-inner {
11
+ transition: transform 0.2s cubic-bezier(0.645, 0.045, 0.355, 1),
12
+ background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
13
+
14
+ &::before,
15
+ &::after {
16
+ transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
17
+ }
18
+ }
19
+
20
+ &.is-active {
21
+ .hamburger-inner {
22
+ background-color: transparent;
23
+ transform: rotateX(180deg);
24
+
25
+ &::before {
26
+ transform: translate3d(0, $hamburger-layer-height + $hamburger-layer-spacing, 0) rotate(45deg);
27
+ }
28
+
29
+ &::after {
30
+ transform: translate3d(0, ($hamburger-layer-height + $hamburger-layer-spacing) * -1, 0) rotate(-45deg);
31
+ }
32
+ }
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,35 @@
1
+ @if index($hamburger-types, 3dy) {
2
+ /*
3
+ * 3DY
4
+ */
5
+ .hamburger--3dy {
6
+ .hamburger-box {
7
+ perspective: $hamburger-layer-width * 2;
8
+ }
9
+
10
+ .hamburger-inner {
11
+ transition: transform 0.2s cubic-bezier(0.645, 0.045, 0.355, 1),
12
+ background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
13
+
14
+ &::before,
15
+ &::after {
16
+ transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
17
+ }
18
+ }
19
+
20
+ &.is-active {
21
+ .hamburger-inner {
22
+ background-color: transparent;
23
+ transform: rotateX(-180deg);
24
+
25
+ &::before {
26
+ transform: translate3d(0, $hamburger-layer-height + $hamburger-layer-spacing, 0) rotate(45deg);
27
+ }
28
+
29
+ &::after {
30
+ transform: translate3d(0, ($hamburger-layer-height + $hamburger-layer-spacing) * -1, 0) rotate(-45deg);
31
+ }
32
+ }
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,16 @@
1
+ @if index($hamburger-types, arrow-r) {
2
+ /*
3
+ * Arrow Right
4
+ */
5
+ .hamburger--arrow-r.is-active {
6
+ .hamburger-inner {
7
+ &::before {
8
+ transform: translate3d($hamburger-layer-width * 0.2, 0, 0) rotate(45deg) scale(0.7, 1);
9
+ }
10
+
11
+ &::after {
12
+ transform: translate3d($hamburger-layer-width * 0.2, 0, 0) rotate(-45deg) scale(0.7, 1);
13
+ }
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ @if index($hamburger-types, arrow) {
2
+ /*
3
+ * Arrow
4
+ */
5
+ .hamburger--arrow.is-active {
6
+ .hamburger-inner {
7
+ &::before {
8
+ transform: translate3d($hamburger-layer-width * -0.2, 0, 0) rotate(-45deg) scale(0.7, 1);
9
+ }
10
+
11
+ &::after {
12
+ transform: translate3d($hamburger-layer-width * -0.2, 0, 0) rotate(45deg) scale(0.7, 1);
13
+ }
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,36 @@
1
+ @if index($hamburger-types, arrowalt-r) {
2
+ /*
3
+ * Arrow Alt Right
4
+ */
5
+ .hamburger--arrowalt-r {
6
+ .hamburger-inner {
7
+ &::before {
8
+ transition: top 0.1s 0.15s ease,
9
+ transform 0.15s cubic-bezier(0.165, 0.84, 0.44, 1);
10
+ }
11
+
12
+ &::after {
13
+ transition: bottom 0.1s 0.15s ease,
14
+ transform 0.15s cubic-bezier(0.165, 0.84, 0.44, 1);
15
+ }
16
+ }
17
+
18
+ &.is-active {
19
+ .hamburger-inner {
20
+ &::before {
21
+ top: 0;
22
+ transform: translate3d($hamburger-layer-width * 0.2, $hamburger-layer-width * -0.25, 0) rotate(45deg) scale(0.7, 1);
23
+ transition: top 0.1s ease,
24
+ transform 0.15s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
25
+ }
26
+
27
+ &::after {
28
+ bottom: 0;
29
+ transform: translate3d($hamburger-layer-width * 0.2, $hamburger-layer-width * 0.25, 0) rotate(-45deg) scale(0.7, 1);
30
+ transition: bottom 0.1s ease,
31
+ transform 0.15s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
32
+ }
33
+ }
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,36 @@
1
+ @if index($hamburger-types, arrowalt) {
2
+ /*
3
+ * Arrow Alt
4
+ */
5
+ .hamburger--arrowalt {
6
+ .hamburger-inner {
7
+ &::before {
8
+ transition: top 0.1s 0.15s ease,
9
+ transform 0.15s cubic-bezier(0.165, 0.84, 0.44, 1);
10
+ }
11
+
12
+ &::after {
13
+ transition: bottom 0.1s 0.15s ease,
14
+ transform 0.15s cubic-bezier(0.165, 0.84, 0.44, 1);
15
+ }
16
+ }
17
+
18
+ &.is-active {
19
+ .hamburger-inner {
20
+ &::before {
21
+ top: 0;
22
+ transform: translate3d($hamburger-layer-width * -0.2, $hamburger-layer-width * -0.25, 0) rotate(-45deg) scale(0.7, 1);
23
+ transition: top 0.1s ease,
24
+ transform 0.15s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
25
+ }
26
+
27
+ &::after {
28
+ bottom: 0;
29
+ transform: translate3d($hamburger-layer-width * -0.2, $hamburger-layer-width * 0.25, 0) rotate(45deg) scale(0.7, 1);
30
+ transition: bottom 0.1s ease,
31
+ transform 0.15s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
32
+ }
33
+ }
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,30 @@
1
+ @if index($hamburger-types, boring) {
2
+ /*
3
+ * Boring
4
+ */
5
+ .hamburger--boring {
6
+ .hamburger-inner {
7
+ &,
8
+ &::before,
9
+ &::after {
10
+ transition-property: none;
11
+ }
12
+ }
13
+
14
+ &.is-active {
15
+ .hamburger-inner {
16
+ transform: rotate(45deg);
17
+
18
+ &::before {
19
+ top: 0;
20
+ opacity: 0;
21
+ }
22
+
23
+ &::after {
24
+ bottom: 0;
25
+ transform: rotate(-90deg);
26
+ }
27
+ }
28
+ }
29
+ }
30
+ }