aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBastien Wirtz <bastien.wirtz@gmail.com>2020-03-17 22:17:07 -0700
committerGitHub <noreply@github.com>2020-03-17 22:17:07 -0700
commit2cf93f388130134d8ff9cf1af7535e21cafc207f (patch)
tree1542cb9b40b0cae474528d3e4ef7cd2274c8a6e2
parentb4de52de8977f21fef7468c1a9c706b33c1b2dd5 (diff)
parent7cc525b2a65ce07a340562864682e663ab46bb84 (diff)
downloadhomer-2cf93f388130134d8ff9cf1af7535e21cafc207f.tar.gz
homer-2cf93f388130134d8ff9cf1af7535e21cafc207f.tar.zst
homer-2cf93f388130134d8ff9cf1af7535e21cafc207f.zip
Merge pull request #27 from traeblain/feature-burger
Added Hamburger Menu for small screens per Bulma spec.
-rw-r--r--app.css613
-rw-r--r--app.js6
-rw-r--r--app.scss13
-rw-r--r--index.html29
4 files changed, 389 insertions, 272 deletions
diff --git a/app.css b/app.css
index b514059..60b41e8 100644
--- a/app.css
+++ b/app.css
@@ -1,277 +1,372 @@
1@charset "UTF-8";
1/* raleway-regular - latin */ 2/* raleway-regular - latin */
2@font-face { 3@font-face {
3 font-family: 'Raleway'; 4 font-family: "Raleway";
4 font-style: normal; 5 font-style: normal;
5 font-weight: 400; 6 font-weight: 400;
6 font-display: swap; 7 font-display: swap;
7 src: local("Raleway"), local("Raleway-Regular"), url("./webfonts/raleway/raleway-v14-latin-regular.woff2") format("woff2"), url("./webfonts/raleway/raleway-v14-latin-regular.woff") format("woff"); 8 src: local("Raleway"), local("Raleway-Regular"), url("./webfonts/raleway/raleway-v14-latin-regular.woff2") format("woff2"), url("./webfonts/raleway/raleway-v14-latin-regular.woff") format("woff");
8 /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ } 9 /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
9 10}
10/* lato-regular - latin */ 11/* lato-regular - latin */
11@font-face { 12@font-face {
12 font-family: 'Lato'; 13 font-family: "Lato";
13 font-style: normal; 14 font-style: normal;
14 font-weight: 400; 15 font-weight: 400;
15 font-display: swap; 16 font-display: swap;
16 src: local("Lato Regular"), local("Lato-Regular"), url("./webfonts/lato/lato-v16-latin-regular.woff2") format("woff2"), url("./webfonts/lato/lato-v16-latin-regular.woff") format("woff"); 17 src: local("Lato Regular"), local("Lato-Regular"), url("./webfonts/lato/lato-v16-latin-regular.woff2") format("woff2"), url("./webfonts/lato/lato-v16-latin-regular.woff") format("woff");
17 /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ } 18 /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
18 19}
19html { 20html {
20 height: 100%; } 21 height: 100%;
22}
21 23
22body { 24body {
23 font-family: 'Raleway', sans-serif; 25 font-family: "Raleway", sans-serif;
24 height: 100%; } 26 height: 100%;
27}
28body #app {
29 min-height: 100%;
30 transition: background-color cubic-bezier(0.165, 0.84, 0.44, 1) 300ms;
31 background-color: #f5f5f5;
32 color: #363636;
33}
34body #app a:hover {
35 color: #363636;
36}
37body #app .title {
38 color: #303030;
39}
40body #app .subtitle {
41 color: #424242;
42}
43body #app .card {
44 background-color: #ffffff;
45 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1);
46}
47body #app .card:hover {
48 background-color: #ffffff;
49}
50body #app .footer {
51 background-color: #ffffff;
52 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1);
53}
54@media (prefers-color-scheme: light), (prefers-color-scheme: no-preference) {
25 body #app { 55 body #app {
26 min-height: 100%;
27 transition: background-color cubic-bezier(0.165, 0.84, 0.44, 1) 300ms;
28 background-color: #f5f5f5; 56 background-color: #f5f5f5;
29 color: #363636; } 57 color: #363636;
30 body #app a:hover { 58 }
31 color: #363636; } 59 body #app a:hover {
32 body #app .title { 60 color: #363636;
33 color: #303030; } 61 }
34 body #app .subtitle { 62 body #app .title {
35 color: #424242; } 63 color: #303030;
36 body #app .card { 64 }
37 background-color: #ffffff; 65 body #app .subtitle {
38 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1); } 66 color: #424242;
39 body #app .card:hover { 67 }
40 background-color: #ffffff; } 68 body #app .card {
41 body #app .footer { 69 background-color: #ffffff;
42 background-color: #ffffff;
43 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1); }
44 @media (prefers-color-scheme: light), (prefers-color-scheme: no-preference) {
45 body #app {
46 background-color: #f5f5f5;
47 color: #363636; }
48 body #app a:hover {
49 color: #363636; }
50 body #app .title {
51 color: #303030; }
52 body #app .subtitle {
53 color: #424242; }
54 body #app .card {
55 background-color: #ffffff;
56 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1); }
57 body #app .card:hover {
58 background-color: #ffffff; }
59 body #app .footer {
60 background-color: #ffffff;
61 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1); } }
62 @media (prefers-color-scheme: dark) {
63 body #app {
64 background-color: #131313;
65 color: #eaeaea; }
66 body #app a:hover {
67 color: #ffdd57; }
68 body #app .title {
69 color: #fafafa; }
70 body #app .subtitle {
71 color: #f5f5f5; }
72 body #app .card {
73 background-color: #2b2b2b;
74 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.4); }
75 body #app .card:hover {
76 background-color: #2b2b2b; }
77 body #app .footer {
78 background-color: #2b2b2b;
79 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.4); } }
80 body #app.is-light {
81 background-color: #f5f5f5;
82 color: #363636; }
83 body #app.is-light a:hover {
84 color: #363636; }
85 body #app.is-light .title {
86 color: #303030; }
87 body #app.is-light .subtitle {
88 color: #424242; }
89 body #app.is-light .card {
90 background-color: #ffffff;
91 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1); }
92 body #app.is-light .card:hover {
93 background-color: #ffffff; }
94 body #app.is-light .footer {
95 background-color: #ffffff;
96 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1); }
97 body #app.is-dark {
98 background-color: #131313;
99 color: #eaeaea; }
100 body #app.is-dark a:hover {
101 color: #ffdd57; }
102 body #app.is-dark .title {
103 color: #fafafa; }
104 body #app.is-dark .subtitle {
105 color: #f5f5f5; }
106 body #app.is-dark .card {
107 background-color: #2b2b2b;
108 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.4); }
109 body #app.is-dark .card:hover {
110 background-color: #2b2b2b; }
111 body #app.is-dark .footer {
112 background-color: #2b2b2b;
113 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.4); }
114 body h1, body h2, body h3, body h4, body h5, body h6 {
115 font-family: 'Lato', sans-serif; }
116 body h1 {
117 font-size: 2rem; }
118 body h2 {
119 font-size: 1.7rem;
120 margin-top: 2rem;
121 margin-bottom: 1rem; }
122 body h2 .fas, body h2 .fab, body h2 .far {
123 margin-right: 10px; }
124 body h2 span {
125 font-weight: bold;
126 color: #4285f4; }
127 body [v-cloak] {
128 display: none; }
129 body #bighead {
130 color: #ffffff; }
131 body #bighead .dashboard-title {
132 padding: 6px 0 0 80px; }
133 body #bighead .first-line {
134 height: 100px;
135 vertical-align: center;
136 background-color: #3367d6; }
137 body #bighead .first-line h1 {
138 margin-top: -12px;
139 font-size: 2rem; }
140 body #bighead .first-line .headline {
141 margin-top: 5px;
142 font-size: 0.9rem; }
143 body #bighead .first-line .container {
144 height: 80px;
145 padding: 10px 0; }
146 body #bighead .first-line .logo {
147 float: left; }
148 body #bighead .first-line .logo i {
149 vertical-align: top;
150 padding: 8px 15px;
151 font-size: 50px; }
152 body #bighead .first-line .logo img {
153 padding: 10px;
154 max-height: 70px;
155 max-width: 70px; }
156 body #bighead .navbar {
157 background-color: #4285f4; }
158 body #bighead .navbar a {
159 color: #ffffff; }
160 body #bighead .navbar a:hover, body #bighead .navbar a:focus {
161 color: #ffffff;
162 background-color: #5a95f5; }
163 body #main-section {
164 margin-bottom: 2rem;
165 padding: 0; }
166 body #main-section h2 {
167 border-bottom: 1px dashed #ccc;
168 padding-bottom: 10px; }
169 body #main-section .title {
170 font-size: 1.1em; }
171 body #main-section .subtitle {
172 font-size: .9em;
173 white-space: nowrap;
174 overflow: hidden;
175 text-overflow: ellipsis; }
176 body #main-section .container {
177 padding: 1.2rem .75rem; }
178 body #main-section .message {
179 margin-top: 45px;
180 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1); }
181 body #main-section .message .message-header {
182 font-weight: bold; }
183 body #main-section .message .message-body {
184 border: none; }
185 body .media-content {
186 overflow: inherit; }
187 body .tag {
188 color: #4285f4;
189 background-color: #4285f4;
190 position: absolute;
191 top: 1rem;
192 right: -0.2rem;
193 width: 3px;
194 overflow: hidden;
195 transition: all 0.2s ease-out;
196 padding: 0; }
197 body .tag .tag-text {
198 display: none; }
199 body .card {
200 border-radius: 5px;
201 border: none;
202 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1); 70 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1);
203 transition: cubic-bezier(0.165, 0.84, 0.44, 1) 300ms; } 71 }
204 body .card a { 72 body #app .card:hover {
205 outline: none; } 73 background-color: #ffffff;
206 body .card:hover { 74 }
207 transform: translate(0, -3px); } 75 body #app .footer {
208 body .card:hover .tag { 76 background-color: #ffffff;
209 width: auto; 77 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1);
210 color: #ffffff; 78 }
211 padding: 0 0.75em; } 79}
212 body .card:hover .tag .tag-text { 80@media (prefers-color-scheme: dark) {
213 display: block; } 81 body #app {
214 body .card-content { 82 background-color: #131313;
215 height: 85px; 83 color: #eaeaea;
216 padding: 1.3rem; } 84 }
217 body .layout-vertical .card { 85 body #app a:hover {
218 border-radius: 0; } 86 color: #ffdd57;
219 body .layout-vertical .column div:first-of-type .card { 87 }
220 border-radius: 5px 5px 0 0; } 88 body #app .title {
221 body .layout-vertical .column div:last-child .card { 89 color: #fafafa;
222 border-radius: 0 0 5px 5px; } 90 }
223 body .footer { 91 body #app .subtitle {
224 position: fixed; 92 color: #f5f5f5;
225 left: 0; 93 }
226 right: 0; 94 body #app .card {
227 bottom: 0; 95 background-color: #2b2b2b;
228 padding: 0.5rem; 96 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.4);
229 text-align: left; 97 }
230 color: #676767; 98 body #app .card:hover {
231 font-size: 0.85rem; 99 background-color: #2b2b2b;
232 transition: background-color cubic-bezier(0.165, 0.84, 0.44, 1) 300ms; } 100 }
233 body .no-footer #main-section { 101 body #app .footer {
234 margin-bottom: 0; } 102 background-color: #2b2b2b;
235 body .no-footer .footer { 103 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.4);
236 display: none; } 104 }
237 body .search-bar { 105}
238 position: relative; 106body #app.is-light {
239 display: inline-block; } 107 background-color: #f5f5f5;
240 body .search-bar #search { 108 color: #363636;
241 border: none; 109}
242 background-color: #5f98f6; 110body #app.is-light a:hover {
243 border-radius: 5px; 111 color: #363636;
244 padding: 2px 12px 2px 30px; 112}
245 margin: 10px 0; 113body #app.is-light .title {
246 transition: all 100ms linear; 114 color: #303030;
247 color: #ffffff; 115}
248 height: 30px; 116body #app.is-light .subtitle {
249 width: 100px; } 117 color: #424242;
250 body .search-bar #search:focus { 118}
251 color: #000000; 119body #app.is-light .card {
252 width: 250px; 120 background-color: #ffffff;
253 background-color: #ffffff; } 121 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1);
254 body .search-bar .search-label::before { 122}
255 font-family: 'Font Awesome 5 Free'; 123body #app.is-light .card:hover {
256 position: absolute; 124 background-color: #ffffff;
257 top: 12px; 125}
258 left: 8px; 126body #app.is-light .footer {
259 content: "\f002"; 127 background-color: #ffffff;
260 font-weight: 900; 128 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1);
261 width: 20px; 129}
262 height: 20px; } 130body #app.is-dark {
263 body .search-bar:focus-within .search-label::before { 131 background-color: #131313;
264 color: #4a4a4a; } 132 color: #eaeaea;
265 body .icon-button { 133}
266 display: inline-block; } 134body #app.is-dark a:hover {
267 body .offline-message { 135 color: #ffdd57;
268 text-align: center; 136}
269 margin: 35px 0; } 137body #app.is-dark .title {
270 body .offline-message i { 138 color: #fafafa;
271 font-size: 2rem; } 139}
272 body .offline-message i.fa-redo-alt { 140body #app.is-dark .subtitle {
273 font-size: 1.3rem; 141 color: #f5f5f5;
274 line-height: 1rem; 142}
275 vertical-align: middle; 143body #app.is-dark .card {
276 cursor: pointer; 144 background-color: #2b2b2b;
277 color: #3273dc; } 145 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.4);
146}
147body #app.is-dark .card:hover {
148 background-color: #2b2b2b;
149}
150body #app.is-dark .footer {
151 background-color: #2b2b2b;
152 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.4);
153}
154body h1, body h2, body h3, body h4, body h5, body h6 {
155 font-family: "Lato", sans-serif;
156}
157body h1 {
158 font-size: 2rem;
159}
160body h2 {
161 font-size: 1.7rem;
162 margin-top: 2rem;
163 margin-bottom: 1rem;
164}
165body h2 .fas, body h2 .fab, body h2 .far {
166 margin-right: 10px;
167}
168body h2 span {
169 font-weight: bold;
170 color: #4285f4;
171}
172body [v-cloak] {
173 display: none;
174}
175body #bighead {
176 color: #ffffff;
177}
178body #bighead .dashboard-title {
179 padding: 6px 0 0 80px;
180}
181body #bighead .first-line {
182 height: 100px;
183 vertical-align: center;
184 background-color: #3367d6;
185}
186body #bighead .first-line h1 {
187 margin-top: -12px;
188 font-size: 2rem;
189}
190body #bighead .first-line .headline {
191 margin-top: 5px;
192 font-size: 0.9rem;
193}
194body #bighead .first-line .container {
195 height: 80px;
196 padding: 10px 0;
197}
198body #bighead .first-line .logo {
199 float: left;
200}
201body #bighead .first-line .logo i {
202 vertical-align: top;
203 padding: 8px 15px;
204 font-size: 50px;
205}
206body #bighead .first-line .logo img {
207 padding: 10px;
208 max-height: 70px;
209 max-width: 70px;
210}
211body #bighead .navbar, body #bighead .navbar-menu {
212 background-color: #4285f4;
213}
214body #bighead .navbar a, body #bighead .navbar-menu a {
215 color: #ffffff;
216}
217body #bighead .navbar a:hover, body #bighead .navbar a:focus, body #bighead .navbar-menu a:hover, body #bighead .navbar-menu a:focus {
218 color: #ffffff;
219 background-color: #5a95f5;
220}
221body #bighead .navbar-end {
222 text-align: right;
223}
224body #main-section {
225 margin-bottom: 2rem;
226 padding: 0;
227}
228body #main-section h2 {
229 border-bottom: 1px dashed #ccc;
230 padding-bottom: 10px;
231}
232body #main-section .title {
233 font-size: 1.1em;
234}
235body #main-section .subtitle {
236 font-size: 0.9em;
237 white-space: nowrap;
238 overflow: hidden;
239 text-overflow: ellipsis;
240}
241body #main-section .container {
242 padding: 1.2rem 0.75rem;
243}
244body #main-section .message {
245 margin-top: 45px;
246 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1);
247}
248body #main-section .message .message-header {
249 font-weight: bold;
250}
251body #main-section .message .message-body {
252 border: none;
253}
254body .media-content {
255 overflow: inherit;
256}
257body .tag {
258 color: #4285f4;
259 background-color: #4285f4;
260 position: absolute;
261 top: 1rem;
262 right: -0.2rem;
263 width: 3px;
264 overflow: hidden;
265 transition: all 0.2s ease-out;
266 padding: 0;
267}
268body .tag .tag-text {
269 display: none;
270}
271body .card {
272 border-radius: 5px;
273 border: none;
274 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1);
275 transition: cubic-bezier(0.165, 0.84, 0.44, 1) 300ms;
276}
277body .card a {
278 outline: none;
279}
280body .card:hover {
281 transform: translate(0, -3px);
282}
283body .card:hover .tag {
284 width: auto;
285 color: #ffffff;
286 padding: 0 0.75em;
287}
288body .card:hover .tag .tag-text {
289 display: block;
290}
291body .card-content {
292 height: 85px;
293 padding: 1.3rem;
294}
295body .layout-vertical .card {
296 border-radius: 0;
297}
298body .layout-vertical .column div:first-of-type .card {
299 border-radius: 5px 5px 0 0;
300}
301body .layout-vertical .column div:last-child .card {
302 border-radius: 0 0 5px 5px;
303}
304body .footer {
305 position: fixed;
306 left: 0;
307 right: 0;
308 bottom: 0;
309 padding: 0.5rem;
310 text-align: left;
311 color: #676767;
312 font-size: 0.85rem;
313 transition: background-color cubic-bezier(0.165, 0.84, 0.44, 1) 300ms;
314}
315body .no-footer #main-section {
316 margin-bottom: 0;
317}
318body .no-footer .footer {
319 display: none;
320}
321body .search-bar {
322 position: relative;
323 display: inline-block;
324}
325body .search-bar #search {
326 border: none;
327 background-color: #5f98f6;
328 border-radius: 5px;
329 padding: 2px 12px 2px 30px;
330 margin: 0 0 0 12px;
331 transition: all 100ms linear;
332 color: #ffffff;
333 height: 30px;
334 width: 100px;
335}
336body .search-bar #search:focus {
337 color: #000000;
338 width: 250px;
339 background-color: #ffffff;
340}
341body .search-bar .search-label::before {
342 font-family: "Font Awesome 5 Free";
343 position: absolute;
344 top: 4px;
345 left: 16px;
346 content: "";
347 font-weight: 900;
348 width: 20px;
349 height: 20px;
350 color: #ffffff;
351}
352body .search-bar:focus-within .search-label::before {
353 color: #4a4a4a;
354}
355body .icon-button {
356 display: inline-block;
357 padding: 0 12px;
358}
359body .offline-message {
360 text-align: center;
361 margin: 35px 0;
362}
363body .offline-message i {
364 font-size: 2rem;
365}
366body .offline-message i.fa-redo-alt {
367 font-size: 1.3rem;
368 line-height: 1rem;
369 vertical-align: middle;
370 cursor: pointer;
371 color: #3273dc;
372}
diff --git a/app.js b/app.js
index 21bdbb9..6c83074 100644
--- a/app.js
+++ b/app.js
@@ -5,7 +5,8 @@ const app = new Vue({
5 offline: false, 5 offline: false,
6 filter: '', 6 filter: '',
7 vlayout: true, 7 vlayout: true,
8 isDark: null 8 isDark: null,
9 showMenu: false
9 }, 10 },
10 created: async function () { 11 created: async function () {
11 let that = this; 12 let that = this;
@@ -81,6 +82,9 @@ const app = new Vue({
81 this.vlayout = !this.vlayout; 82 this.vlayout = !this.vlayout;
82 localStorage.vlayout = this.vlayout; 83 localStorage.vlayout = this.vlayout;
83 }, 84 },
85 toggleMenu: function() {
86 this.showMenu = !this.showMenu;
87 }
84 } 88 }
85}); 89});
86 90
diff --git a/app.scss b/app.scss
index a0b1d42..69b1067 100644
--- a/app.scss
+++ b/app.scss
@@ -175,7 +175,7 @@ body {
175 } 175 }
176 } 176 }
177 } 177 }
178 .navbar { 178 .navbar, .navbar-menu {
179 background-color: $secondary-color; 179 background-color: $secondary-color;
180 180
181 a { 181 a {
@@ -186,6 +186,9 @@ body {
186 } 186 }
187 } 187 }
188 } 188 }
189 .navbar-end {
190 text-align: right;
191 }
189 } 192 }
190 193
191 #main-section { 194 #main-section {
@@ -320,7 +323,7 @@ body {
320 background-color: lighten( $secondary-color, 6% ); 323 background-color: lighten( $secondary-color, 6% );
321 border-radius: 5px; 324 border-radius: 5px;
322 padding: 2px 12px 2px 30px; 325 padding: 2px 12px 2px 30px;
323 margin: 10px 0; 326 margin: 0 0 0 12px;
324 transition: all 100ms linear; 327 transition: all 100ms linear;
325 color: #ffffff; 328 color: #ffffff;
326 height: 30px; 329 height: 30px;
@@ -337,12 +340,13 @@ body {
337 .search-label::before { 340 .search-label::before {
338 font-family: 'Font Awesome 5 Free'; 341 font-family: 'Font Awesome 5 Free';
339 position: absolute; 342 position: absolute;
340 top: 12px; 343 top: 4px;
341 left: 8px; 344 left: 16px;
342 content: "\f002"; 345 content: "\f002";
343 font-weight: 900; 346 font-weight: 900;
344 width: 20px; 347 width: 20px;
345 height: 20px; 348 height: 20px;
349 color: #ffffff;
346 } 350 }
347 351
348 &:focus-within .search-label::before { 352 &:focus-within .search-label::before {
@@ -352,6 +356,7 @@ body {
352 356
353 .icon-button { 357 .icon-button {
354 display: inline-block; 358 display: inline-block;
359 padding: 0 12px;
355 } 360 }
356 361
357 .offline-message { 362 .offline-message {
diff --git a/index.html b/index.html
index 070656d..9c1b531 100644
--- a/index.html
+++ b/index.html
@@ -30,24 +30,37 @@
30 <div v-cloak v-if="config.links" class="container-fluid"> 30 <div v-cloak v-if="config.links" class="container-fluid">
31 <nav class="navbar" role="navigation" aria-label="main navigation"> 31 <nav class="navbar" role="navigation" aria-label="main navigation">
32 <div class="container"> 32 <div class="container">
33 <div class="navbar-menu"> 33 <div class="navbar-brand">
34 <a role="button"
35 class="navbar-burger" :class="{ 'is-active': showMenu }"
36 aria-label="menu" aria-expanded="false"
37 v-on:click="toggleMenu()">
38 <span aria-hidden="true"></span>
39 <span aria-hidden="true"></span>
40 <span aria-hidden="true"></span>
41 </a>
42 </div>
43 <div class="navbar-menu" :class="{ 'is-active': showMenu }">
34 <div class="navbar-start"> 44 <div class="navbar-start">
35 <a v-for="link in config.links" class="navbar-item" :href="link.url" :target="link.target"> 45 <a v-for="link in config.links" class="navbar-item" :href="link.url" :target="link.target">
36 <i v-if="link.icon" style="margin-right: 6px;" :class="link.icon"></i> 46 <i v-if="link.icon" style="margin-right: 6px;" :class="link.icon"></i>
37 {{ link.name }} 47 {{ link.name }}
38 </a> 48 </a>
39 </div> 49 </div>
40 <div class="end"> 50 <div class="navbar-end">
51 <div class="navbar-item">
41 <a 52 <a
42 v-on:click="toggleTheme()" 53 v-on:click="toggleTheme()"
43 aria-label="Toggle dark mode" 54 aria-label="Toggle dark mode"
55 class="icon-button"
44 ><i class="fas fa-adjust"></i> 56 ><i class="fas fa-adjust"></i>
45 </a> 57 </a>
46 <a v-on:click="toggleLayout()" class="icon-button navbar-item"><i 58 <a v-on:click="toggleLayout()" class="icon-button"><i
47 :class="['fas', vlayout ? 'fa-list' : 'fa-columns']"></i></a> 59 :class="['fas', vlayout ? 'fa-list' : 'fa-columns']"></i></a>
48 <div class="search-bar"> 60 <div class="search-bar">
49 <label for="search" class="search-label"></label> 61 <label for="search" class="search-label"></label>
50 <input type="text" id="search" v-model="filter" /> 62 <input type="text" id="search" v-model="filter" />
63 </div>
51 </div> 64 </div>
52 </div> 65 </div>
53 </div> 66 </div>