From 6ee639ca82653a8f1e5dfdb50d67e2f0df813775 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Tue, 4 Jun 2019 15:24:43 +0300 Subject: [PATCH 1/2] Minor CSS tweaks. (#285) * update font stack and also specify one for `code` * use hex colors * merge a property * simplify selector * remove redundant values from shorthands Adapted our Stylelint config to check for the above. --- .stylelintrc | 5 ++++- public/badge/badge.css | 2 +- public/style.css | 32 +++++++++++++++++--------------- 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/.stylelintrc b/.stylelintrc index ca56f01e..65d5bbb2 100644 --- a/.stylelintrc +++ b/.stylelintrc @@ -8,7 +8,9 @@ "block-closing-brace-empty-line-before": null, "block-closing-brace-newline-after": null, "block-opening-brace-space-before": null, - "color-named": null, + "color-hex-case": "lower", + "color-hex-length": "short", + "color-named": "never", "declaration-block-semicolon-newline-after": "always-multi-line", "declaration-block-semicolon-newline-before": "never-multi-line", "declaration-block-semicolon-space-after": "always-single-line", @@ -49,6 +51,7 @@ "selector-max-universal": 1, "selector-no-qualifying-type": null, "selector-no-vendor-prefix": null, + "shorthand-property-no-redundant-values": true, "string-quotes": "double", "value-keyword-case": "lower", "value-list-comma-newline-after": "never-multi-line", diff --git a/public/badge/badge.css b/public/badge/badge.css index 734b41a0..054b66a0 100644 --- a/public/badge/badge.css +++ b/public/badge/badge.css @@ -8,7 +8,7 @@ } .sri-test::before { - background-color: yellow; + background-color: #ff0; content: "[Testing SRI support...]"; } diff --git a/public/style.css b/public/style.css index d59c742a..2c6f276f 100644 --- a/public/style.css +++ b/public/style.css @@ -4,7 +4,7 @@ body { color: #333; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; font-weight: 300; line-height: 1.5; @@ -54,9 +54,10 @@ code { word-break: break-all; display: inline-block; padding: 1rem; - border-left: 3px solid gray; + border-left: 3px solid #808080; background-color: #3a3a3a; color: #ccc; + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 1rem; line-height: 1; margin-top: 1rem; @@ -64,16 +65,18 @@ code { nav { background-color: #333; + padding-top: 0.5rem; + padding-bottom: 0.5rem; } nav a { - color: white; + color: #fff; float: right; - padding: 0.5rem 1rem 0.5rem 0; + padding: 0.5rem 1rem; } nav a:hover { - color: white; + color: #fff; } footer { @@ -84,9 +87,8 @@ footer { .container { width: auto; max-width: 960px; - margin: auto; + margin: auto auto 2rem; padding: 1rem; - margin-bottom: 2rem; } .clear { @@ -97,7 +99,7 @@ footer { * App container */ #app { - color: black; + color: #000; background-color: #adbdc6; padding: 4rem 0; max-width: 100%; @@ -110,14 +112,14 @@ footer { font-size: 1.5rem; } -#sriApp input:not([type="checkbox"]) { +#sriApp input { font-size: 0.9rem; height: 2.25rem; display: inline-block; } #sriApp input[type="url"] { - background-color: white; + background-color: #fff; color: #888; border: 1px solid #ccc; width: 70%; @@ -126,7 +128,7 @@ footer { #sriApp input[type="submit"] { cursor: pointer; - color: white; + color: #fff; background-color: #008cba; border: 1px solid #0079a1; width: 25%; @@ -142,9 +144,9 @@ footer { height: 5rem; padding: 1rem; border: none; - border-left: 3px solid gray; + border-left: 3px solid #808080; background-color: #3a3a3a; - margin: 1rem 0 0 0; + margin: 1rem 0 0; } #sriSnippet { @@ -158,7 +160,7 @@ footer { * Mobile styling */ -@media all and (max-width: 960px) { +@media (max-width: 960px) { nav { padding: 0.75rem 0; text-align: center; @@ -178,7 +180,7 @@ footer { } #app { - padding: 1rem 0 0.25rem 0; + padding: 1rem 0 0.25rem; text-align: center; } From 10e2aa7b77f74658c12e5f7b5e2eb521a48509f7 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Tue, 4 Jun 2019 15:59:43 +0300 Subject: [PATCH 2/2] Generate proper favicons. (#297) Also redirect `/favicon.ico` and `/apple-touch-icon.png` to their location so that we cover most browsers. --- index.js | 16 ++++++++++++++++ public/favicon.ico | Bin 5430 -> 0 bytes public/favicons/android-chrome-192x192.png | Bin 0 -> 2713 bytes public/favicons/android-chrome-512x512.png | Bin 0 -> 5179 bytes public/favicons/apple-touch-icon.png | Bin 0 -> 1979 bytes public/favicons/browserconfig.xml | 9 +++++++++ public/favicons/favicon-16x16.png | Bin 0 -> 260 bytes public/favicons/favicon-32x32.png | Bin 0 -> 453 bytes public/favicons/favicon.ico | Bin 0 -> 15086 bytes public/favicons/manifest.json | 19 +++++++++++++++++++ public/favicons/mstile-150x150.png | Bin 0 -> 2094 bytes public/favicons/safari-pinned-tab.svg | 1 + templates/index.html | 13 ++++++++++++- 13 files changed, 57 insertions(+), 1 deletion(-) delete mode 100644 public/favicon.ico create mode 100644 public/favicons/android-chrome-192x192.png create mode 100644 public/favicons/android-chrome-512x512.png create mode 100644 public/favicons/apple-touch-icon.png create mode 100644 public/favicons/browserconfig.xml create mode 100644 public/favicons/favicon-16x16.png create mode 100644 public/favicons/favicon-32x32.png create mode 100644 public/favicons/favicon.ico create mode 100644 public/favicons/manifest.json create mode 100644 public/favicons/mstile-150x150.png create mode 100644 public/favicons/safari-pinned-tab.svg diff --git a/index.js b/index.js index c7f1c4ff..8ef1b5b3 100644 --- a/index.js +++ b/index.js @@ -118,6 +118,22 @@ const REFERRER_HEADER = 'no-referrer, strict-origin-when-cross-origin'; } }); + server.route({ + method: 'GET', + path: '/favicon.ico', + handler: (request, h) => { + return h.redirect('/favicons/favicon.ico').permanent(); + } + }); + + server.route({ + method: 'GET', + path: '/apple-touch-icon.png', + handler: (request, h) => { + return h.redirect('/favicons/apple-touch-icon.png').permanent(); + } + }); + await server.start(); console.log(`Server running at: ${server.info.uri}`); } catch (error) { diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index f89eadb12ffd235017e5f0a96a0b093ec3774b05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5430 zcmcgwUu;uV82{#oi-tG^6JHG5lTnPQ55yM(CO*m=iAJMu62u1;5)(QIn*th*Zr#>R zMq#4c90JbGg@IXn+ii7g$J&m8?TT)6c7MtOvy{X0PC=({`+eHJlK8)Z3ux^v5HSB?8(uxD>fyz{tT9=-U*q*&yhaC~&M@5oe@)gUR$(cZ)1p^3ha z38R-+3w|~_{e0_S-9V+KETz;{wks`$REw+Dh1ktnIJIEX=@k4i<$m|uoWk$xM3OF`Ns}gyX|xYVlz;{%rQaYxYlSgaa`yKlA>1 zm}=oboZ>W_4sYB)GyJB}xJvbo}=($5+a$)$e%U7s2b%sTY*@ zfO)FGIW8D5x9ZO`I^PfFXvbd{4k_b+;<9DXKtHu4`G!D~uCeK0m*5pf=V^!Cc z)#~y5rz3xFk@frjJpVZllS>bO>rpEqn{5(u9ZKO%s zW3#^PwYGz|bE(DSHrWnFQTugoXka&QJRdgFwg);Z^P$DlAno?y?>l&7`LK~T<^pd% zw0Ih%eZuk87;h{eHqx%|`D`{HT09NXuCrIn@y7CDBW+p>?$1LG_C5bwAIn5~Zqg)e zc@2>3xOiuMXm0G4OOwu>!e~eBS+}{nR?wfHaNiz3J#@@!9c?!u*Dm6WEzEC_b@bG@ zK0g|~dG)n!Ut2?_c&WF4I@dYUd}cI!=?(lJU9U$&E0*>OBa^Q8%(#z{W26E1*Z7~b z8`t#5wDPPLhjaNvx4*67H{V(Fd?Nbfiuuyzl9VWsq#*t_+i`1LQGly5NNIrbB*3-= zKnaxyKyeVD=w2zb11yyaJYHZ6WVncTNh`Tcl2Dt@DdSxc13)$xLR{Woh-(}b{H1>b(kHl`4 zu$t7T7-_~c6FGL&YQpg1NeFb*sQIvV#8xZs0r%Z6>iMT7EcwVB=dYYT$!cWlcU^96 zCVx6JGTF)_+3@T*?TzSc>FV{%JJ>O;{XlqRhYL=sKcO`Qt`;#yId+K@jvM>3NuN(uE!$Wi9Tj^{Ezn^nTPHc-m4K>(?g1vhPLpe(J wQ>&x#$WvWcPBmeiw9t2@hD(m4Fr z)5YHf*I)`PO;d3lx;o`i`m4VcK1BkSp#(m|Her7>P`daR!OfTq3)mFghQ-c!``SDg zqLeQD8XSkguogB1C*XfhsT^PU?XU+vLL)3o8u2mqLVK6xlrH?X*b%Q|7A!~V@FsRf zJEv3&U-;G718-s`EF@;(E$oRJ7hp;keLfbzG58d9u#l?9=QtJ%BHyK%(uLm&YvCFU zMH9>u%@~I3ur^vdrIP%b@*+4KuVWI-bCdA~j=-WQa!UQU11u&QF%0)%Z!Cfm7wPmuwhF7`L_CMlXoSUFBSzzS zoP;${tryV#U+@)J5&PqI^uuH%U@}JuOh$j)i36}AD$WS)Aat?kp$y%z4vxY-=#B9i zJ)f6mj7M+WgQKtxx}z*N-$~L7)(R|)^>H|^#~T=qX)XE}UJ{sw;dler<1nm`g;9Y* zmtN}hw|@I;UWy9z#7fu_hv7;*iQf1gGjy?sLIN}JJ$mCwT#3W5C00ZaRG<`jad`gS z78R&O4LYJL7Q~WR8S7(v9DoyXIqt=)=!+4Uh&nGXbV;BN6EOmP@G9=b!No9<3|!*K*8v<36Uo34J`Z3UG{8jC z(12}y9>6M?1QSWaB&_1|0D591Oe75>(aYxnv`254NE&*h!sh`L;aQkS8lFRuBcDfb zElea0*E{lk0LQ>Y(r{c92Cxn4VInE0$F@-zz;YN56G_2%tPq6(bizQGND2m_a})+p zhBsj%DR>Lzj-oJv+h8IoxWiFY25(bujUOJ^>DV01IOb zYz{2e2oaVE-V}jD6xTfMrk%`v;M6SS}6& zXorts{~+=iDjdaO1UJI|LF5)kaT&l~Xo5kc8T-a*088O#7({BZOq>SL8t=j&@&Vd7 ziqi-#g+b&BM{yg#R+t5oSgXf&aU4K*41r0k4MWd34xkW^!6eq6M3JL7j^J=4U=mwL zIg0B5mP0K}Vrd*!jPn3m<1LuP(z|HmD9$4|3nsC2o};)AU~No>Nvur8dd_J875D@u zvCbf@NdWXeylNRnDC@6=oeP>d&FktENe)Xg)E zU=K9FB1IaLJNZEa=!~ynks<@o%_Wsaa2YI8&$G=kkw4->C7U~i{V9zYFx!^CU-(b1)qMsPArymqEbI}Kn_jDU%kMq^2rW*Wdd z*XHpr@M@TN=_cg6jMAgP%J>B)UKxiqT*hetMYsl&2@5w7p7wy7kC;#Ii7(@sJ$H5^FH+`Ak(p}Q!V->xhG)~N-vY28%Lz%~ET?idfKK=nmJ`w!U7gD52zJJFm}J#V?Bzm{J{)@p zCRz0)TDef95v+*OFv*G^v6>5AdO_R-Yf;jSvrm8fx;z)EG=OT|bv`RTKnEAfG=dE= z7Su=@QvVpiS~27{SWu4fEWWSkoz$#t4?gJ1|duq;Ga+ znnutQPkDCMPy#PtA*WP8$1dK8I#|fn;|_FmN(FqU`jasM7E+UOmhRQ7TJq+6J7P#k z-{apS8%Gx^4PgbmiDp=iCGZ|rby-g7>(tj`8Z1X<;AV7jIZElS^?T*$DbX%x{&r@iyrsS``%fq-w_Is*@5IpjGH zQo42PPWUv#BN>~}8@r+0d6?4OYEHsnBw$HOU?@&QC+BTSBY5k#r$r0m0*si?5E2-P zi?Q(O@961{iq;MM7RC7(h$h${nlKO-Vlkc0rlLHAJS>DWF%W}r78cfppZ)$1#}IsX T(O#o400000NkvXXu0mjfuKKX< literal 0 HcmV?d00001 diff --git a/public/favicons/android-chrome-512x512.png b/public/favicons/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..9c571e23dfefd7d8cc6b3498f9d5c37278f41c9e GIT binary patch literal 5179 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 N002ovPDHLkV1lGbm|Fk< literal 0 HcmV?d00001 diff --git a/public/favicons/browserconfig.xml b/public/favicons/browserconfig.xml new file mode 100644 index 00000000..a2f2185c --- /dev/null +++ b/public/favicons/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #333333 + + + diff --git a/public/favicons/favicon-16x16.png b/public/favicons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..c2b4d505ca3672547c2a822705bcf45d35e47c8c GIT binary patch literal 260 zcmV+f0sH=mP)UZ+=adJpg3&7g@+R|l=uiGGV#rW3rh}!sL*1>S7Ahp3ZWcGbVEfbkplsG zgFuf!4*2K{0v&ug;Gi}L)NtmvkQ)SYSo5pA8U$`jZz004Vmu&P3fOq82s~k{USx_% zGoFy@p7aKVCQxAe@4q;pSr|7s>b7#^jQ4DOQ4SQ57%w4Ko%;cPk-{a-e4^0+0000< KMNUMnLSTZHnrKe| literal 0 HcmV?d00001 diff --git a/public/favicons/favicon-32x32.png b/public/favicons/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..54b5bd3136ca6c140a42f748480833799a5c4beb GIT binary patch literal 453 zcmV;$0XqJPP)S1wq46>feJ)`I>4Q7;1buKwxLdo17u@~JLkjluJ!U?Y zedoJvMbA)#Vm!OyuRn&}h8s25Ia3QaZc7cliI)gNHRhl$m_s$f@e((!47!Uac#WS3 zLLy4hhjl0&>*zx%5)p)-c#S8xs}+!pUW{Q9t2ltN=m4vj#29*!tQC+AB`jMjAOlKR zhE{+VN|;wGAQ4JfqE>(hyHG-Q;n4~R!J1&e8bY)J{$oxsU=IJa0^VX=Fkl>SwF2&; zUNE2@_w~Mx3k3s;jQk!X<4|DuA(D**xUe7)umG2lfamBI2OqRYX6ZoD+R9i=)LkY;5)`vo7AO+Ng#x{PKy5RhYM8~%zR8^ee3&F)Gb zgAI%C{8%S$g8L}95Kw{pP8}v6&9fS vh%&4~omoXWKKkoIet;N^or%Q*EC1^VP&tTy6IsZ*00000NkvXXu0mjf&8NE7 literal 0 HcmV?d00001 diff --git a/public/favicons/favicon.ico b/public/favicons/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..cc519a0e1ca95e03cbec3c9c2251a97035d5a39e GIT binary patch literal 15086 zcmd6tZHN_B7{|}L>YCT18p7#;WIBD7?ULEdq&9kR@O{8%*hNf@6sf2027ydTa$TvOJ4{m*naswc~M@-2a% z3eawkRqN8yEE@9qlIJpbw?OUo7!E0RUR|N%$gv6X{J&bAE~}W2hU&=UNBkS$IJh)4 z+J1uAH|Eji8$;Yy*i)i*d+b_|TYY-6_7ih4{5Asme<#P1toqXYi8lr`FLsW~wz{v4 zNz;_2k660ye;z^ozmTi2{{vz@HiFvix!sy&j$OX!o&jHug8n1qoaxdP+D?o+Ao?z1 z=cjCYj=Xn<>U8-LV>gto)fIn_OIJucx@W=BQPi*8vqH2c`7m}R6!DDdnqObLo=sOJ zX$xs%?Bn3eQFec>bqL*hAAhq6^uL9M%v@G-Kw*C07g+}UXMPEnKvexSJS$sD@ z(Ha_!x51~|_M?4E6YAe$_4zE?cQ&E^oj%>RAMN{^Q2#!wFU_J`-(kJlg!-k)``sBn zsd|gOBEaE9jZ&L--0* zbN&-X;-01)%B7sjEe+BlP2Ty}@!_Zc0iB0SK;JLwUF;^f8+30t0N+6obs@$0z7|ul zl|#9dQ@N!xyn>4U~AU=N(Hu@`&gXllxu z8@&_Z*%}kGjt}*(REByg6=N!u^Yf~9U~1L&wpQ)7ma3Hx3>niCwS&ei*Zz59=0)v* zF;lhQZ%kX%_8QZw{kYx6@08STt>L46heZZLjB#0HAY#D{BV0^A3x1&DPpp@`VN8047^ssa54b{)~S z{x4_y#y8SW`~`3rqHCDdptkoxQ(yRpxT;-z3^t$3eu7VMO(8@m@pK=2FCe$obO_%< z&INH)Gt;@Xu|uua=HS|vYaWQ9>-=nv{2H^)6*r`v@p@MJI!A6hM|zf-8uZADM9!p-U7}xmn#rqkvses&8^CR*2Y5U}z4xbj7|1-r*%Ngy%SI@qA zu6cXBajRIXqdC&H@zwK5JVvAY&!y$GedL`Any*Il#m9e6Oz#~SpGELT3HcRskv&eA z#it9B?r-tq$-1wYU9P;g9iQhRYwS?}T{cgWCGU99dsJw=tbU5^yeHAu4t*u&SM2tr zV^m#> z`8SV1{>>@*RZFw;RF-xA?t|P~dsQRRJJm_hd(B12t3_iKL$MT7vAa@^e;ob#?fwk7 z3YLPd$rnL&nls?jA|Lr`jK(U4VkxF#duy$6eT-2pOwU9sVIL%|QEF4)Dv)m}H8A3; zhI%vXhYK|h)Y=NGWya?qzE8d>unS($cDz4yf4EGe5`xMzDk-QuqtZ;IJVPy{N2nwt zRFa9Jl1wPWag|Hu3Q84vS=K{Q2h{5n87i(E`wBQxV+CP?Ka9BxPJq3p``LD`&(Xm6 z>AIG`9c!)HZj1WHx9QjQc{pLLjiEm0Z~p1)hP3Y-)Yl!)t9{z_eA^2)m&<-6-*^n# zIzjhQ*EriQpU#BwS=QM9y*m<5>(jx2+*X5p>+22MS)Z@^G{znS+Y2CR?XmgdR=)M; z9k!Q%*5kOJYhS+g-@LP}_3vDU@$y|6(XZ#LV{i)6;;2tP@~uBFv90-^1@mDwY=@&T zSVP-tQ=fd~Tc3ZcBWmfN3$N6mGMfAu>Y?VkoVqC<16-A&pC@TcFDq{n^4Hk^0EKCG Af&c&j literal 0 HcmV?d00001 diff --git a/public/favicons/manifest.json b/public/favicons/manifest.json new file mode 100644 index 00000000..ed538edd --- /dev/null +++ b/public/favicons/manifest.json @@ -0,0 +1,19 @@ +{ + "name": "SRI Hash Generator", + "short_name": "SRI Hash", + "icons": [ + { + "src": "/favicons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/favicons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#333333", + "background_color": "#333333", + "display": "standalone" +} diff --git a/public/favicons/mstile-150x150.png b/public/favicons/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..6225584e7c7199d0f0471315be14c00d8a7c283e GIT binary patch literal 2094 zcmb7_{a4ai9>-A^t?=P=YD-6>X|y~(P+5e9K(;jsB4DVgxR|byfRR05y5s}KD7B`h zCKhVcz!wHgTPDmImDFXEX^Yjq3{!)eF*qicnJw9fk&Ayq_ndpqJ@5PeyxyN5KIh&` zN#uB+HD9cOKp;K@{2?j?;^w=uS9!XWV)Y^bfq1^3{@p$Yo+w+EJWeo{4O z^u~S(XY?Lt^vK&2`6ov2Stt9j3zMqelZE9Iw0?#mnVGqra+v;zp-?&aL(SrC8>hP_Si;Ql7(_E%rlqGJ0`C0Bz5WNEyv~Y z01Hafr6(q40#6kO!Pb=Cu`w>5chDS8irg8#IQ}5cmcfeaK_UoU7Lkl-d~AQMQBPDN zy$(ig>$r9fzk{$FTx1FJ|cH(LuRjRQ$zu|14)VGOdu4X$jcS&U_(mgFAdy6 zbV%tgY#4`uuksC!!jVWVvgL$3iARY-`6J`MQqJG5w7ugp9W)-paYsWCi-($VLVa&2 z@Q~G|A(*k)aBXC1q#+?5s5XwJENOnU{l-lZH{nECB6!m|N{h?{PF`JBNZ@JAeIDuq zyz{(r2h(xF5ht$ybj6pVkP|^4)&Z4A0u1!AHE`KzjB|?tKY^E!Hk0Nk1(d+`%!j9f zkm2_;N5;5G6(Vnah4lDdZ@n9owkv2!u}_H-PsyAx&9S`;gl?Ic*|Tpp`Q}!gI& zu8Z2bsh*t%*0b0ZB0v2zyECP?q3p_#2+p4`CaUO!0tD7wH-8biKebQ;wbcXh*?Uox zX1S{NT!#5u`zmk!Bp0umVG4mTK$wlW->O2J(};D0r}}of3N|*w1(s(W(hs+%9h&pD zDF50fVRLfIVeZF^ck-9{ih^lt%?A0B2ks^T>H#_fR6GBA2e z$vzY_Hi+t5o4Ebxg(Yvjv^6u}$&^Abf(tF_(QVgNak9HcUM23uu9-PNwbmwNl~myT z>+*mHN_IMeJd79#)u{T)l|z~>TD1v6Tx zqh#+ne6s?5lgltGW9Jj~e$-7#j!SvbZ>n0JPx)5@sAy~tq}xaTv%N_7&!0av$(t@h ztn(LyB@HRn+O+j=_6OzTCf~0{hjq~TOEvmH*E>+y|D4MA3aWi?R4Qk(+Uik}1AMn*r+ipU_C(e!yDN;4TQPd%3XajDUeK zn78=VSLG76WFe1o$=7GdS`HQ}7c!z{!lo@Ap?Uq+*pm0Dq1idbR&@p%VZzxSYZz`- zSokpIf7IFeshFQUgQJ5Y><^*jyT*S&{nhi&P;Dmb2ifa%{@TrTFM)kn-uPfOY^2_j zjwR1V(y)N0>~dI?h7%n76Tt0y*_lc(@hr@ zR=Nvu(sp`rSivAZt(Z>_GbD5|oL_ZN`9njw0{d`ECU}cwbw}dhqg|8i%Es}fHPU>{ zLPDMloe&cFN+K{~$~0JK^W| ze1sVron)!@)cWN)pUXr2Mqi+7p!jxkS?dPCY}o*0umm748zYzd$pVvSlcE)MavPxF zN6YtP+l;rmi?HoQ6N$c_$Mp7Bnp5ADAs6Z9AMKc(a3k0vTqM^$0!KeG-JN^jxyCoP zJV75XC(FSw@2)|NbpKWR_A!@B(_Gz5tR)Q-B191HpJr^SwjY*0e#*^3@TE(L2;s`p?ikRgh5rNnRn#Z| literal 0 HcmV?d00001 diff --git a/public/favicons/safari-pinned-tab.svg b/public/favicons/safari-pinned-tab.svg new file mode 100644 index 00000000..5b86f4fc --- /dev/null +++ b/public/favicons/safari-pinned-tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/index.html b/templates/index.html index 2228e1e3..8d154aae 100644 --- a/templates/index.html +++ b/templates/index.html @@ -12,7 +12,18 @@ - + + + + + + + + + + + +