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,47 @@
1
+ @if index($hamburger-types, spring-r) {
2
+ /*
3
+ * Spring Reverse
4
+ */
5
+ .hamburger--spring-r {
6
+ .hamburger-inner {
7
+ top: auto;
8
+ bottom: 0;
9
+ transition-duration: 0.15s;
10
+ transition-delay: 0s;
11
+ transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
12
+
13
+ &::after {
14
+ top: ($hamburger-layer-spacing * 2 + $hamburger-layer-height * 2) * -1;
15
+ transition: top 0.3s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1),
16
+ opacity 0s linear;
17
+ }
18
+
19
+ &::before {
20
+ transition: top 0.12s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1),
21
+ transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
22
+ }
23
+ }
24
+
25
+ &.is-active {
26
+ .hamburger-inner {
27
+ transform: translate3d(0, ($hamburger-layer-spacing + $hamburger-layer-height) * -1, 0) rotate(-45deg);
28
+ transition-delay: 0.32s;
29
+ transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
30
+
31
+ &::after {
32
+ top: 0;
33
+ opacity: 0;
34
+ transition: top 0.3s cubic-bezier(0.33333, 0, 0.66667, 0.33333),
35
+ opacity 0s 0.32s linear;
36
+ }
37
+
38
+ &::before {
39
+ top: 0;
40
+ transform: rotate(90deg);
41
+ transition: top 0.12s 0.18s cubic-bezier(0.33333, 0, 0.66667, 0.33333),
42
+ transform 0.15s 0.32s cubic-bezier(0.215, 0.61, 0.355, 1);
43
+ }
44
+ }
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,44 @@
1
+ @if index($hamburger-types, spring) {
2
+ /*
3
+ * Spring
4
+ */
5
+ .hamburger--spring {
6
+ .hamburger-inner {
7
+ top: $hamburger-layer-height / 2;
8
+ transition: background-color 0s 0.15s linear;
9
+
10
+ &::before {
11
+ top: $hamburger-layer-height + $hamburger-layer-spacing;
12
+ transition: top 0.12s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1),
13
+ transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
14
+ }
15
+
16
+ &::after {
17
+ top: ($hamburger-layer-height * 2) + ($hamburger-layer-spacing * 2);
18
+ transition: top 0.3s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1),
19
+ transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
20
+ }
21
+ }
22
+
23
+ &.is-active {
24
+ .hamburger-inner {
25
+ transition-delay: 0.32s;
26
+ background-color: transparent;
27
+
28
+ &::before {
29
+ top: 0;
30
+ transition: top 0.12s 0.18s cubic-bezier(0.33333, 0, 0.66667, 0.33333),
31
+ transform 0.15s 0.32s cubic-bezier(0.215, 0.61, 0.355, 1);
32
+ transform: translate3d(0, $hamburger-layer-spacing + $hamburger-layer-height, 0) rotate(45deg);
33
+ }
34
+
35
+ &::after {
36
+ top: 0;
37
+ transition: top 0.3s cubic-bezier(0.33333, 0, 0.66667, 0.33333),
38
+ transform 0.15s 0.32s cubic-bezier(0.215, 0.61, 0.355, 1);
39
+ transform: translate3d(0, $hamburger-layer-spacing + $hamburger-layer-height, 0) rotate(-45deg);
40
+ }
41
+ }
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,43 @@
1
+ @if index($hamburger-types, squeeze) {
2
+ /*
3
+ * Squeeze
4
+ */
5
+ .hamburger--squeeze {
6
+ .hamburger-inner {
7
+ transition-duration: 0.1s;
8
+ transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
9
+
10
+ &::before {
11
+ transition: top 0.1s 0.14s ease,
12
+ opacity 0.1s ease;
13
+ }
14
+
15
+ &::after {
16
+ transition: bottom 0.1s 0.14s ease,
17
+ transform 0.1s cubic-bezier(0.55, 0.055, 0.675, 0.19);
18
+ }
19
+ }
20
+
21
+ &.is-active {
22
+ .hamburger-inner {
23
+ transform: rotate(45deg);
24
+ transition-delay: 0.14s;
25
+ transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
26
+
27
+ &::before {
28
+ top: 0;
29
+ opacity: 0;
30
+ transition: top 0.1s ease,
31
+ opacity 0.1s 0.14s ease;
32
+ }
33
+
34
+ &::after {
35
+ bottom: 0;
36
+ transform: rotate(-90deg);
37
+ transition: bottom 0.1s ease,
38
+ transform 0.1s 0.14s cubic-bezier(0.215, 0.61, 0.355, 1);
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,45 @@
1
+ @if index($hamburger-types, stand-r) {
2
+ /*
3
+ * Stand Reverse
4
+ */
5
+ .hamburger--stand-r {
6
+ .hamburger-inner {
7
+ transition: transform 0.1s 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19),
8
+ background-color 0s 0.1s linear;
9
+
10
+ &::before {
11
+ transition: top 0.1s 0.1s ease-in,
12
+ transform 0.1s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
13
+ }
14
+
15
+ &::after {
16
+ transition: bottom 0.1s 0.1s ease-in,
17
+ transform 0.1s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
18
+ }
19
+ }
20
+
21
+ &.is-active {
22
+ .hamburger-inner {
23
+ transform: rotate(-90deg);
24
+ background-color: transparent;
25
+
26
+ transition: transform 0.1s 0s cubic-bezier(0.215, 0.61, 0.355, 1),
27
+ background-color 0s 0.22s linear;
28
+
29
+ &::before {
30
+ top: 0;
31
+ transform: rotate(-45deg);
32
+ transition: top 0.1s 0.12s ease-out,
33
+ transform 0.1s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
34
+ }
35
+
36
+ &::after {
37
+ bottom: 0;
38
+ transform: rotate(45deg);
39
+ transition: bottom 0.1s 0.12s ease-out,
40
+ transform 0.1s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
41
+ }
42
+ }
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,45 @@
1
+ @if index($hamburger-types, stand) {
2
+ /*
3
+ * Stand
4
+ */
5
+ .hamburger--stand {
6
+ .hamburger-inner {
7
+ transition: transform 0.1s 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19),
8
+ background-color 0s 0.1s linear;
9
+
10
+ &::before {
11
+ transition: top 0.1s 0.1s ease-in,
12
+ transform 0.1s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
13
+ }
14
+
15
+ &::after {
16
+ transition: bottom 0.1s 0.1s ease-in,
17
+ transform 0.1s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
18
+ }
19
+ }
20
+
21
+ &.is-active {
22
+ .hamburger-inner {
23
+ transform: rotate(90deg);
24
+ background-color: transparent;
25
+
26
+ transition: transform 0.1s 0s cubic-bezier(0.215, 0.61, 0.355, 1),
27
+ background-color 0s 0.22s linear;
28
+
29
+ &::before {
30
+ top: 0;
31
+ transform: rotate(-45deg);
32
+ transition: top 0.1s 0.12s ease-out,
33
+ transform 0.1s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
34
+ }
35
+
36
+ &::after {
37
+ bottom: 0;
38
+ transform: rotate(45deg);
39
+ transition: bottom 0.1s 0.12s ease-out,
40
+ transform 0.1s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
41
+ }
42
+ }
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,48 @@
1
+ @if index($hamburger-types, vortex-r) {
2
+ /*
3
+ * Vortex Reverse
4
+ */
5
+ .hamburger--vortex-r {
6
+ .hamburger-inner {
7
+ transition-duration: 0.3s;
8
+ transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
9
+
10
+ &::before,
11
+ &::after {
12
+ transition-duration: 0s;
13
+ transition-delay: 0.1s;
14
+ transition-timing-function: linear;
15
+ }
16
+
17
+ &::before {
18
+ transition-property: top, opacity;
19
+ }
20
+
21
+ &::after {
22
+ transition-property: bottom, transform;
23
+ }
24
+ }
25
+
26
+ &.is-active {
27
+ .hamburger-inner {
28
+ transform: rotate(-765deg);
29
+ transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
30
+
31
+ &::before,
32
+ &::after {
33
+ transition-delay: 0s;
34
+ }
35
+
36
+ &::before {
37
+ top: 0;
38
+ opacity: 0;
39
+ }
40
+
41
+ &::after {
42
+ bottom: 0;
43
+ transform: rotate(-90deg);
44
+ }
45
+ }
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,48 @@
1
+ @if index($hamburger-types, vortex) {
2
+ /*
3
+ * Vortex
4
+ */
5
+ .hamburger--vortex {
6
+ .hamburger-inner {
7
+ transition-duration: 0.3s;
8
+ transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
9
+
10
+ &::before,
11
+ &::after {
12
+ transition-duration: 0s;
13
+ transition-delay: 0.1s;
14
+ transition-timing-function: linear;
15
+ }
16
+
17
+ &::before {
18
+ transition-property: top, opacity;
19
+ }
20
+
21
+ &::after {
22
+ transition-property: bottom, transform;
23
+ }
24
+ }
25
+
26
+ &.is-active {
27
+ .hamburger-inner {
28
+ transform: rotate(765deg);
29
+ transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
30
+
31
+ &::before,
32
+ &::after {
33
+ transition-delay: 0s;
34
+ }
35
+
36
+ &::before {
37
+ top: 0;
38
+ opacity: 0;
39
+ }
40
+
41
+ &::after {
42
+ bottom: 0;
43
+ transform: rotate(90deg);
44
+ }
45
+ }
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "css-hamburgers",
3
+ "version": "0.6.0",
4
+ "description": "Collection of tasty CSS-animated hamburger icons. Includes Sass files (modular and customizable), so cook up your own hamburger.",
5
+ "license": "MIT",
6
+ "author": {
7
+ "name": "Jonathan Suh",
8
+ "email": "hello@jonsuh.com",
9
+ "url": "https://jonsuh.com/hamburgers"
10
+ },
11
+ "main": "_sass/hamburgers/hamburgers.scss",
12
+ "keywords": [
13
+ "css",
14
+ "hamburger",
15
+ "hamburgers",
16
+ "menu",
17
+ "sass",
18
+ "scss"
19
+ ],
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "https://github.com/jonsuh/hamburgers.git"
23
+ },
24
+ "bugs": {
25
+ "url": "https://github.com/jonsuh/hamburgers/issues"
26
+ },
27
+ "ignore": [
28
+ "**/.*",
29
+ "node_modules",
30
+ "js",
31
+ "_js",
32
+ "css",
33
+ "*.mp4",
34
+ "*.ogv",
35
+ "*.webm",
36
+ "favicon.ico",
37
+ "hamburger.png",
38
+ "index.html"
39
+ ]
40
+ }
@@ -0,0 +1,16 @@
1
+ module.exports = {
2
+ "server": {
3
+ baseDir: "./"
4
+ },
5
+ "files": [
6
+ "css/**/*.css"
7
+ ],
8
+ "browser": "default",
9
+ "injectChanges": true,
10
+ "online": false,
11
+ "open": false,
12
+ "port": 3000,
13
+ "proxy": false,
14
+ "notify": false,
15
+ "watchTask": true
16
+ };
@@ -0,0 +1,6 @@
1
+ {
2
+ "use": ["autoprefixer"],
3
+ "autoprefixer": {
4
+ "browsers": ["last 2 versions"]
5
+ }
6
+ }
@@ -0,0 +1,203 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>Hamburgers by Jonathan Suh</title>
6
+ <link rel="stylesheet" href="hamburgers.css">
7
+ <style>
8
+ code {
9
+ display: inline-block;
10
+ }
11
+
12
+ code,
13
+ .hamburger {
14
+ vertical-align: middle;
15
+ }
16
+ </style>
17
+ </head>
18
+ <body>
19
+ <div class="hamburger hamburger--arrow">
20
+ <div class="hamburger-box">
21
+ <div class="hamburger-inner"></div>
22
+ </div>
23
+ </div>
24
+ <code>hamburger--arrow</code>
25
+
26
+ <br>
27
+
28
+ <div class="hamburger hamburger--arrow-r">
29
+ <div class="hamburger-box">
30
+ <div class="hamburger-inner"></div>
31
+ </div>
32
+ </div>
33
+ <code>hamburger--arrow-r</code>
34
+
35
+ <br>
36
+
37
+ <div class="hamburger hamburger--arrowalt">
38
+ <div class="hamburger-box">
39
+ <div class="hamburger-inner"></div>
40
+ </div>
41
+ </div>
42
+ <code>hamburger--arrowalt</code>
43
+
44
+ <br>
45
+
46
+ <div class="hamburger hamburger--arrowalt-r">
47
+ <div class="hamburger-box">
48
+ <div class="hamburger-inner"></div>
49
+ </div>
50
+ </div>
51
+ <code>hamburger--arrowalt-r</code>
52
+
53
+ <br>
54
+
55
+ <div class="hamburger hamburger--boring">
56
+ <div class="hamburger-box">
57
+ <div class="hamburger-inner"></div>
58
+ </div>
59
+ </div>
60
+ <code>hamburger--boring</code>
61
+
62
+ <br>
63
+
64
+ <div class="hamburger hamburger--collapse">
65
+ <div class="hamburger-box">
66
+ <div class="hamburger-inner"></div>
67
+ </div>
68
+ </div>
69
+ <code>hamburger--collapse</code>
70
+
71
+ <br>
72
+
73
+ <div class="hamburger hamburger--collapse-r">
74
+ <div class="hamburger-box">
75
+ <div class="hamburger-inner"></div>
76
+ </div>
77
+ </div>
78
+ <code>hamburger--collapse-r</code>
79
+
80
+ <br>
81
+
82
+ <div class="hamburger hamburger--elastic">
83
+ <div class="hamburger-box">
84
+ <div class="hamburger-inner"></div>
85
+ </div>
86
+ </div>
87
+ <code>hamburger--elastic</code>
88
+
89
+ <br>
90
+
91
+ <div class="hamburger hamburger--elastic-r">
92
+ <div class="hamburger-box">
93
+ <div class="hamburger-inner"></div>
94
+ </div>
95
+ </div>
96
+ <code>hamburger--elastic-r</code>
97
+
98
+ <br>
99
+
100
+ <div class="hamburger hamburger--emphatic">
101
+ <div class="hamburger-box">
102
+ <div class="hamburger-inner"></div>
103
+ </div>
104
+ </div>
105
+ <code>hamburger--emphatic</code>
106
+
107
+ <br>
108
+
109
+ <div class="hamburger hamburger--emphatic-r">
110
+ <div class="hamburger-box">
111
+ <div class="hamburger-inner"></div>
112
+ </div>
113
+ </div>
114
+ <code>hamburger--emphatic-r</code>
115
+
116
+ <br>
117
+
118
+ <div class="hamburger hamburger--slider">
119
+ <div class="hamburger-box">
120
+ <div class="hamburger-inner"></div>
121
+ </div>
122
+ </div>
123
+ <code>hamburger--slider</code>
124
+
125
+ <br>
126
+
127
+ <div class="hamburger hamburger--slider-r">
128
+ <div class="hamburger-box">
129
+ <div class="hamburger-inner"></div>
130
+ </div>
131
+ </div>
132
+ <code>hamburger--slider-r</code>
133
+
134
+ <br>
135
+
136
+ <div class="hamburger hamburger--spin">
137
+ <div class="hamburger-box">
138
+ <div class="hamburger-inner"></div>
139
+ </div>
140
+ </div>
141
+ <code>hamburger--spin</code>
142
+
143
+ <br>
144
+
145
+ <div class="hamburger hamburger--spin-r">
146
+ <div class="hamburger-box">
147
+ <div class="hamburger-inner"></div>
148
+ </div>
149
+ </div>
150
+ <code>hamburger--spin-r</code>
151
+
152
+ <br>
153
+
154
+ <div class="hamburger hamburger--squeeze">
155
+ <div class="hamburger-box">
156
+ <div class="hamburger-inner"></div>
157
+ </div>
158
+ </div>
159
+ <code>hamburger--squeeze</code>
160
+
161
+ <br>
162
+
163
+ <div class="hamburger hamburger--vortex">
164
+ <div class="hamburger-box">
165
+ <div class="hamburger-inner"></div>
166
+ </div>
167
+ </div>
168
+ <code>hamburger--vortex</code>
169
+
170
+ <br>
171
+
172
+ <div class="hamburger hamburger--vortex-r">
173
+ <div class="hamburger-box">
174
+ <div class="hamburger-inner"></div>
175
+ </div>
176
+ </div>
177
+ <code>hamburger--vortex-r</code>
178
+
179
+ <script>
180
+ /**
181
+ * forEach implementation for Objects/NodeLists/Arrays, automatic type loops and context options
182
+ *
183
+ * @private
184
+ * @author Todd Motto
185
+ * @link https://github.com/toddmotto/foreach
186
+ * @param {Array|Object|NodeList} collection - Collection of items to iterate, could be an Array, Object or NodeList
187
+ * @callback requestCallback callback - Callback function for each iteration.
188
+ * @param {Array|Object|NodeList} scope=null - Object/NodeList/Array that forEach is iterating over, to use as the this value when executing callback.
189
+ * @returns {}
190
+ */
191
+ var forEach=function(t,o,r){if("[object Object]"===Object.prototype.toString.call(t))for(var c in t)Object.prototype.hasOwnProperty.call(t,c)&&o.call(r,t[c],c,t);else for(var e=0,l=t.length;l>e;e++)o.call(r,t[e],e,t)};
192
+
193
+ var hamburgers = document.querySelectorAll(".hamburger");
194
+ if (hamburgers.length > 0) {
195
+ forEach(hamburgers, function(hamburger) {
196
+ hamburger.addEventListener("click", function() {
197
+ this.classList.toggle("is-active");
198
+ }, false);
199
+ });
200
+ }
201
+ </script>
202
+ </body>
203
+ </html>