0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2025-04-01 02:42:23 -05:00

Merge pull request #539 from verdaccio/new_footer

feat: new footer, close #486
This commit is contained in:
Juan Picado @jotadeveloper 2018-02-03 13:25:53 +01:00 committed by GitHub
commit 15d7f0e22a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 187 additions and 2 deletions

View file

@ -26,6 +26,9 @@
"es6": true,
"jest": true
},
"globals": {
"__APP_VERSION__": true
},
"rules": {
"no-tabs": 0,
"keyword-spacing": 0,

View file

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 45 45" style="enable-background:new 0 0 45 45;" xml:space="preserve" version="1.1" id="svg2"><metadata id="metadata8"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/></cc:Work></rdf:RDF></metadata><defs id="defs6"><clipPath id="clipPath16" clipPathUnits="userSpaceOnUse"><path id="path18" d="M 0,36 36,36 36,0 0,0 0,36 Z"/></clipPath><clipPath id="clipPath28" clipPathUnits="userSpaceOnUse"><path id="path30" d="M 18,36 C 8.059,36 0,27.941 0,18 l 0,0 C 0,8.059 8.059,0 18,0 l 0,0 c 9.941,0 18,8.059 18,18 l 0,0 c 0,9.941 -8.059,18 -18,18 z"/></clipPath></defs><g transform="matrix(1.25,0,0,-1.25,0,45)" id="g10"><g id="g12"><g clip-path="url(#clipPath16)" id="g14"><g transform="translate(36,18)" id="g20"><path id="path22" style="fill:#88c9f9;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,-9.941 -8.059,-18 -18,-18 -9.941,0 -18,8.059 -18,18 0,9.941 8.059,18 18,18 C -8.059,18 0,9.941 0,0"/></g></g></g><g id="g24"><g clip-path="url(#clipPath28)" id="g26"><g transform="translate(3.6274,28.9521)" id="g32"><path id="path34" style="fill:#5c913b;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 0,0 C -0.451,2.93 2.195,4.156 3.607,4.469 5.019,4.784 6.383,5.09 6.54,4.464 6.696,3.836 6.851,3.003 7.713,3.316 8.575,3.63 10.756,3.875 11.776,4.658 12.795,5.441 14.02,5.445 15.04,5.131 16.059,4.818 18.917,4.904 18.29,3.964 17.663,3.023 16.465,3.137 15.839,2.04 15.212,0.941 16.011,0.214 16.873,0.214 c 0.865,0 1.709,-0.135 2.259,0.727 0.549,0.863 -0.382,2.463 0.325,2.357 0.706,-0.106 1.477,-0.866 2.03,-2.043 0.547,-1.176 1.408,-0.47 1.723,-1.176 0.313,-0.705 2.04,-2.039 1.177,-1.804 -0.864,0.236 -1.726,0.392 -1.961,-0.47 -0.236,-0.863 0.389,-1.726 -0.236,-1.647 -0.627,0.079 -0.861,-0.089 -1.725,-0.004 -0.862,0.083 -1.333,0.631 -2.039,-0.545 -0.705,-1.175 -1.254,-1.961 -1.567,-2.509 -0.315,-0.549 -0.785,-0.861 -0.55,-1.96 0.235,-1.099 -0.628,-0.785 -0.628,0.156 0,0.94 -0.548,1.098 -1.253,0.942 -0.706,-0.157 -1.803,-0.313 -1.724,-1.098 0.077,-0.784 -0.315,-1.725 0.313,-2.352 0.627,-0.629 1.33,0.076 1.723,-0.158 0.393,-0.237 1.525,-0.023 1.133,-0.416 -0.393,-0.391 -1.76,-0.881 -0.976,-1.509 0.786,-0.626 1.578,-0.829 1.893,-0.907 0.313,-0.08 0.062,0.774 1.083,1.166 1.017,0.392 2.608,1.29 3,0.584 0.391,-0.705 0.338,-0.595 1.75,-0.75 1.41,-0.156 1.79,-0.585 2.417,-1.917 0.626,-1.333 0.446,-1.192 1.462,-1.581 1.021,-0.393 1.678,-0.222 0.737,-1.086 -0.941,-0.86 -1.651,-0.814 -2.199,-1.833 -0.55,-1.017 -0.153,-1.731 -1.25,-2.75 -1.098,-1.019 -2.242,-1.876 -3.417,-2.583 -0.618,-0.37 -2.162,-2.07 -3.083,-2.667 -0.834,-0.541 -1.083,0 -1.083,0 0,0 0.256,1.667 0.964,2.372 0.704,0.705 1.105,3.344 0.869,4.128 -0.234,0.783 -1.36,1.02 -1.75,1.333 -0.392,0.312 -1.417,1.548 -1.417,2.334 0,0.784 1.71,2.809 1.71,2.809 0.218,-1.088 -1.039,0.329 -1.627,0.524 -0.47,0.157 -1.542,1.656 -2.459,1.814 -0.916,0.159 -1.363,0.7 -2.068,1.25 -0.706,0.549 -2.431,1.332 -2.353,2.195 0.079,0.862 -1.725,1.568 -2.038,1.568 -0.314,0 -1.019,0 -1.647,1.098 -0.627,1.098 -1.725,2.196 -1.411,2.979 0.313,0.784 0.392,1.727 0.234,2.589 C 3.058,0.236 1.882,0.55 1.647,0.315 1.412,0.079 0.158,-1.02 0,0"/></g></g></g></g></svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 45 45" style="enable-background:new 0 0 45 45;" xml:space="preserve" version="1.1" id="svg2"><metadata id="metadata8"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/></cc:Work></rdf:RDF></metadata><defs id="defs6"><clipPath id="clipPath16" clipPathUnits="userSpaceOnUse"><path id="path18" d="M 0,36 36,36 36,0 0,0 0,36 Z"/></clipPath></defs><g transform="matrix(1.25,0,0,-1.25,0,45)" id="g10"><g id="g12"><g clip-path="url(#clipPath16)" id="g14"><g transform="translate(36,9)" id="g20"><path id="path22" style="fill:#009b3a;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,-2.209 -1.791,-4 -4,-4 l -28,0 c -2.209,0 -4,1.791 -4,4 l 0,18 c 0,2.209 1.791,4 4,4 l 28,0 c 2.209,0 4,-1.791 4,-4 L 0,0 Z"/></g><g transform="translate(32.7275,18)" id="g24"><path id="path26" style="fill:#fedf01;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 0,0 -14.728,-11.124 -29.456,0 -14.728,11.125 0,0 Z"/></g><g transform="translate(24.4336,18.0762)" id="g28"><path id="path30" style="fill:#002776;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,3.567 -2.892,6.458 -6.458,6.458 -3.567,0 -6.458,-2.891 -6.458,-6.458 0,-3.566 2.891,-6.458 6.458,-6.458 C -2.892,-6.458 0,-3.566 0,0"/></g><g transform="translate(12.2769,21.1128)" id="g32"><path id="path34" style="fill:#cbe9d4;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c -0.332,-0.621 -0.558,-1.303 -0.672,-2.023 3.994,0.29 9.417,-1.892 11.744,-4.596 0.402,0.604 0.7,1.281 0.882,2.004 C 9.083,-1.806 4.038,0.016 0,0"/></g><path id="path36" style="fill:#88c9f9;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 13,16.767 -1,0 0,1 1,0 0,-1 z"/><path id="path38" style="fill:#88c9f9;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 14,14.767 -1,0 0,1 1,0 0,-1 z"/><path id="path40" style="fill:#55acee;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 16,16.767 -1,0 0,1 1,0 0,-1 z"/><path id="path42" style="fill:#55acee;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 18,15.767 -1,0 0,1 1,0 0,-1 z"/><path id="path44" style="fill:#55acee;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 22,13.767 -1,0 0,1 1,0 0,-1 z"/><path id="path46" style="fill:#55acee;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 19,12.767 -1,0 0,1 1,0 0,-1 z"/><path id="path48" style="fill:#55acee;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 22,18.767 -1,0 0,1 1,0 0,-1 z"/><path id="path50" style="fill:#3b88c3;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 20,14.767 -1,0 0,1 1,0 0,-1 z"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 45 45" style="enable-background:new 0 0 45 45;" xml:space="preserve" version="1.1" id="svg2"><metadata id="metadata8"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/></cc:Work></rdf:RDF></metadata><defs id="defs6"><clipPath id="clipPath16" clipPathUnits="userSpaceOnUse"><path id="path18" d="M 0,36 36,36 36,0 0,0 0,36 Z"/></clipPath></defs><g transform="matrix(1.25,0,0,-1.25,0,45)" id="g10"><g id="g12"><g clip-path="url(#clipPath16)" id="g14"><g transform="translate(36,9)" id="g20"><path id="path22" style="fill:#de2910;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,-2.209 -1.791,-4 -4,-4 l -28,0 c -2.209,0 -4,1.791 -4,4 l 0,18 c 0,2.209 1.791,4 4,4 l 28,0 c 2.209,0 4,-1.791 4,-4 L 0,0 Z"/></g><g transform="translate(7,25.0488)" id="g24"><path id="path26" style="fill:#ffde02;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 0,0 0.929,-2.67 3.755,-2.729 1.502,-4.436 2.321,-7.143 0,-5.528 -2.321,-7.143 -1.502,-4.436 -3.755,-2.729 -0.929,-2.67 0,0 Z"/></g><g transform="translate(13,28.4722)" id="g28"><path id="path30" style="fill:#ffde02;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 0,0 0.34,-0.688 1.099,-0.798 0.55,-1.334 0.679,-2.09 0,-1.733 -0.679,-2.09 l 0.13,0.756 -0.55,0.536 0.76,0.11 L 0,0 Z"/></g><g transform="translate(15,24.4722)" id="g32"><path id="path34" style="fill:#ffde02;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 0,0 0.34,-0.688 1.099,-0.798 0.55,-1.334 0.679,-2.09 0,-1.733 -0.679,-2.09 l 0.13,0.756 -0.55,0.536 0.76,0.11 L 0,0 Z"/></g><g transform="translate(15,20.4722)" id="g36"><path id="path38" style="fill:#ffde02;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 0,0 0.34,-0.688 1.099,-0.798 0.55,-1.334 0.679,-2.09 0,-1.733 -0.679,-2.09 l 0.13,0.756 -0.55,0.536 0.76,0.11 L 0,0 Z"/></g><g transform="translate(13,16.4727)" id="g40"><path id="path42" style="fill:#ffde02;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 0,0 0.34,-0.689 1.099,-0.799 0.55,-1.334 0.679,-2.091 0,-1.734 l -0.679,-0.357 0.13,0.757 -0.55,0.535 0.76,0.11 L 0,0 Z"/></g></g></g></g></svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 45 45" style="enable-background:new 0 0 45 45;" xml:space="preserve" version="1.1" id="svg2"><metadata id="metadata8"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/></cc:Work></rdf:RDF></metadata><defs id="defs6"><clipPath id="clipPath16" clipPathUnits="userSpaceOnUse"><path id="path18" d="M 0,36 36,36 36,0 0,0 0,36 Z"/></clipPath><clipPath id="clipPath42" clipPathUnits="userSpaceOnUse"><path id="path44" d="m 15,21 6,0 0,-6 -6,0 0,6 z"/></clipPath></defs><g transform="matrix(1.25,0,0,-1.25,0,45)" id="g10"><g id="g12"><g clip-path="url(#clipPath16)" id="g14"><g transform="translate(0,9)" id="g20"><path id="path22" style="fill:#138808;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,-2.209 1.791,-4 4,-4 l 28,0 c 2.209,0 4,1.791 4,4 L 36,4 0,4 0,0 Z"/></g><path id="path24" style="fill:#eeeeee;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 0,13 36,13 36,23 0,23 0,13 Z"/><g transform="translate(36,23)" id="g26"><path id="path28" style="fill:#ff9933;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 0,4 c 0,2.209 -1.791,4 -4,4 l -28,0 c -2.209,0 -4,-1.791 -4,-4 l 0,-4 36,0 z"/></g><g transform="translate(22,18)" id="g30"><path id="path32" style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,2.21 -1.791,4.001 -4.001,4.001 -2.209,0 -4,-1.791 -4,-4.001 0,-2.209 1.791,-4 4,-4 C -1.791,-4 0,-2.209 0,0"/></g><g transform="translate(21,18)" id="g34"><path id="path36" style="fill:#eeeeee;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,1.657 -1.344,3.001 -3.001,3.001 -1.657,0 -3,-1.344 -3,-3.001 0,-1.657 1.343,-3 3,-3 C -1.344,-3 0,-1.657 0,0"/></g><g id="g38"><g id="g40"/><g id="g46"><g style="opacity:0.60000598" id="g48" clip-path="url(#clipPath42)"><g id="g50" transform="translate(18,21)"><path id="path52" style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 0,0 0.146,-2.264 1.148,-0.229 0.417,-2.376 2.121,-0.878 0.624,-2.583 2.771,-1.852 0.736,-2.854 3,-3 0.736,-3.146 2.771,-4.147 0.624,-3.417 2.121,-5.121 0.417,-3.624 1.148,-5.771 0.146,-3.736 0,-6 l -0.146,2.264 -1.002,-2.035 0.731,2.147 -1.705,-1.497 1.498,1.704 -2.147,-0.73 2.035,1.001 L -3,-3 l 2.264,0.146 -2.035,1.002 2.147,-0.731 -1.498,1.705 1.705,-1.498 -0.731,2.147 1.002,-2.035 L 0,0 Z"/></g></g></g></g><g transform="translate(17,18)" id="g54"><path id="path56" style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 0,0 C 0,0.552 0.448,1 1,1 1.552,1 2,0.552 2,0 2,-0.552 1.552,-1 1,-1 0.448,-1 0,-0.552 0,0"/></g></g></g></g></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.4 KiB

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 45 45" style="enable-background:new 0 0 45 45;" xml:space="preserve" version="1.1" id="svg2"><metadata id="metadata8"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/></cc:Work></rdf:RDF></metadata><defs id="defs6"><clipPath id="clipPath16" clipPathUnits="userSpaceOnUse"><path id="path18" d="M 0,36 36,36 36,0 0,0 0,36 Z"/></clipPath></defs><g transform="matrix(1.25,0,0,-1.25,0,45)" id="g10"><g id="g12"><g clip-path="url(#clipPath16)" id="g14"><g transform="translate(27.6102,20.9519)" id="g20"><path id="path22" style="fill:#004600;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 -1.213,-2.022 -0.208,2.349 -2.298,0.528 2.17,0.924 -0.207,2.349 1.548,-1.779 2.17,0.924 L 0.75,1.25 2.298,-0.529 0,0 Z m -5.11,-10.424 c -4.142,0 -7.5,3.358 -7.5,7.5 0,3.72 2.711,6.798 6.263,7.389 -2.221,-1.034 -3.763,-3.279 -3.763,-5.889 0,-3.59 2.91,-6.5 6.5,-6.5 2.61,0 4.855,1.542 5.889,3.763 -0.591,-3.552 -3.669,-6.263 -7.389,-6.263 m 9.5,20.472 -23,0 0,-26 23,0 c 2.209,0 4,1.791 4,4 l 0,18 c 0,2.209 -1.791,4 -4,4"/></g><g transform="translate(4,31)" id="g24"><path id="path26" style="fill:#eeeeee;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c -2.209,0 -4,-1.791 -4,-4 l 0,-18 c 0,-2.209 1.791,-4 4,-4 l 5,0 0,26 -5,0 z"/></g><g transform="translate(29.5723,24.2247)" id="g28"><path id="path30" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 -2.17,-0.924 -1.548,1.779 0.207,-2.349 -2.17,-0.923 2.298,-0.528 0.208,-2.35 1.213,2.022 2.298,-0.529 -1.548,1.779 L 0,0 Z"/></g><g transform="translate(24,13.0276)" id="g32"><path id="path34" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c -3.59,0 -6.5,2.91 -6.5,6.5 0,2.611 1.543,4.856 3.763,5.89 C -6.289,11.799 -9,8.72 -9,5 c 0,-4.142 3.358,-7.5 7.5,-7.5 3.72,0 6.799,2.711 7.39,6.263 C 4.856,1.543 2.611,0 0,0"/></g></g></g></g></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 45 45" style="enable-background:new 0 0 45 45;" xml:space="preserve" version="1.1" id="svg2"><metadata id="metadata8"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/></cc:Work></rdf:RDF></metadata><defs id="defs6"><clipPath id="clipPath16" clipPathUnits="userSpaceOnUse"><path id="path18" d="M 0,36 36,36 36,0 0,0 0,36 Z"/></clipPath></defs><g transform="matrix(1.25,0,0,-1.25,0,45)" id="g10"><g id="g12"><g clip-path="url(#clipPath16)" id="g14"><g transform="translate(36,9)" id="g20"><path id="path22" style="fill:#c60a1d;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,-2.209 -1.791,-4 -4,-4 l -28,0 c -2.209,0 -4,1.791 -4,4 l 0,18 c 0,2.209 1.791,4 4,4 l 28,0 c 2.209,0 4,-1.791 4,-4 L 0,0 Z"/></g><path id="path24" style="fill:#ffc400;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 36,12 0,12 0,24 36,24 36,12 Z"/><g transform="translate(9,19)" id="g26"><path id="path28" style="fill:#ea596e;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 0,-3 c 0,-1.657 1.343,-3 3,-3 1.657,0 3,1.343 3,3 L 6,0 0,0 Z"/></g><path id="path30" style="fill:#f4a2b2;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 12,17 3,0 0,3 -3,0 0,-3 z"/><path id="path32" style="fill:#dd2e44;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 12,17 -3,0 0,3 3,0 0,-3 z"/><g transform="translate(15,21.5)" id="g34"><path id="path36" style="fill:#ea596e;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,-0.829 -1.343,-1.5 -3,-1.5 -1.657,0 -3,0.671 -3,1.5 0,0.829 1.343,1.5 3,1.5 1.657,0 3,-0.671 3,-1.5"/></g><g transform="translate(15,22.25)" id="g38"><path id="path40" style="fill:#ffac33;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,0.414 -1.343,0.75 -3,0.75 -1.657,0 -3,-0.336 -3,-0.75 0,-0.414 1.343,-0.75 3,-0.75 1.657,0 3,0.336 3,0.75"/></g><path id="path42" style="fill:#99aab5;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 7,13 1,0 0,7 -1,0 0,-7 z"/><path id="path44" style="fill:#99aab5;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 17,13 -1,0 0,7 1,0 0,-7 z"/><path id="path46" style="fill:#66757f;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 9,13 -3,0 0,1 3,0 0,-1 z"/><path id="path48" style="fill:#66757f;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 18,13 -3,0 0,1 3,0 0,-1 z"/><path id="path50" style="fill:#66757f;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 8,20 -1,0 0,1 1,0 0,-1 z"/><path id="path52" style="fill:#66757f;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 17,20 -1,0 0,1 1,0 0,-1 z"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View file

@ -0,0 +1,80 @@
@import '../../styles/variable';
.wrap {
margin-top: auto;
border-top: 1px solid $border-color;
background: #f9f9f9;
}
footer.footer {
display: flex;
margin-top: 0;
padding: 20px 0;
font-size: 14px;
height: 18px;
color: #999;
span {
display: inline-block;
height: 18px;
vertical-align: middle;
}
.tooltip {
align-items: center;
margin-left: 5px;
position: relative;
margin-top: -2px;
height: 20px;
background: #d3dddd;
padding: 1px 4px;
border-radius: 2px;
transform: scaleX(0);
transition: transform 0.3s cubic-bezier(.12,.76,.14,.99);
transform-origin: left;
&:before {
position: absolute;
top: 3px;
left: -7px;
display: block;
content: '';
width: 7px;
height: 15px;
background: #d3dddd;
background-image: linear-gradient(45deg, white, white 30%, transparent 30%), linear-gradient(-225deg, white, white 30%, transparent 30%);
}
img:not(:first-child) {
margin-left: 8px;
}
}
// Footer Hover
&.showAuthorsGeographic .tooltip,
&:hover .tooltip {
display: flex;
transform: scaleX(1);
}
.earth {
margin-left: 8px;
margin-right: 8px;
}
:global {
.emoji {
width: 18px;
height: 18px;
}
}
.right {
margin-left: auto;
}
.logo {
vertical-align: top;
height: 18px;
width: 20px;
}
}

View file

@ -0,0 +1,63 @@
import React from 'react';
import classes from './footer.scss';
import logo from './logo.svg';
import earth from './earth.svg';
// Vectors from Twitter Emoji (Open Source)
import brazilFlag from './flags/brazil-1f1e7-1f1f7.svg';
import chinaFlag from './flags/china-1f1e8-1f1f3.svg';
import indiaFlag from './flags/india-1f1ee-1f1f3.svg';
import nicaraguaFlag from './flags/nicaragua-1f1f3-1f1ee.svg';
import pakistanFlag from './flags/pakistan-1f1f5-1f1f0.svg';
import spainFlag from './flags/spain-1f1ea-1f1f8.svg';
export default class Footer extends React.Component {
constructor(props) {
super(props);
this.handleEarthIconClick = this.handleEarthIconClick.bind(this);
this.state = {
showAuthorsGeographic: false
};
}
handleEarthIconClick() {
this.setState({
showAuthorsGeographic: true
});
}
render() {
return (
<div className={classes.wrap}>
<footer
className={`container ${classes.footer} ${this.state.showAuthorsGeographic && classes.showAuthorsGeographic}`}
>
<span>Made with&nbsp;</span>
<span></span>
<span>&nbsp;on</span>
<img className={`${classes.earth} emoji`} src={earth} alt="Earth" onClick={this.handleEarthIconClick}/>
<div className={classes.tooltip}>
<img src={brazilFlag} alt="Brazil" title="Brazil" className="emoji"/>
<img src={chinaFlag} alt="China" title="China" className="emoji"/>
<img src={indiaFlag} alt="India" title="India" className="emoji"/>
<img src={nicaraguaFlag} alt="Nicaragua" title="Nicaragua" className="emoji"/>
<img src={pakistanFlag} alt="Pakistan" title="Pakistan" className="emoji"/>
<img src={spainFlag} alt="Spain" title="Spain" className="emoji"/>
</div>
{/* Countries are order by alphabets */}
<div className={classes.right}>
Powered by&nbsp;
{ /* Can't switch to HTTPS due it hosted on GitHub Pages */ }
<a href="http://www.verdaccio.org/">
<img className={classes.logo} src={logo} alt="Verdaccio" title="Verdaccio"/>
</a>
&nbsp;/&nbsp;
{__APP_VERSION__}
</div>
</footer>
</div>
);
}
}

View file

@ -0,0 +1 @@
<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path d="M48 17.6L32.8 48H24L.4.8h15.2l12.8 25.6 4.4-8.8H48z" id="a"/><filter id="b" filterUnits="objectBoundingBox" height="140.3%" width="139.9%" y="-11.7%" x="-20%"><feGaussianBlur stdDeviation="2.5"/></filter><path d="M50.8 12H35.6L41.2.8h15.2L50.8 12z" id="c"/><filter id="d" filterUnits="objectBoundingBox" height="269.6%" width="191.3%" y="-49.1%" x="-45.7%"><feGaussianBlur stdDeviation="2.5"/></filter><path d="M32.8 48H24L.4.8h15.2l20.377 40.89L32.8 48z" id="e"/></defs><path fill="none" d="M-1-1h582v402H-1z"/><g><g stroke="null" fill-rule="evenodd" fill="none"><use transform="matrix(1.71429 0 0 1.71429 -37.027 -40.362)" x="22.366" y="28.311" xlink:href="#a" filter="url(#b)" fill="#000"/><use transform="matrix(1.71429 0 0 1.71429 -37.027 -40.362)" x="22.366" y="28.311" xlink:href="#a" fill="#405236"/><path stroke="#405236" d="M80.27 40.4H58.816L50 58.028 26.785 11.6H5.33l38.4 76.8h12.542l24-48z" stroke-width="2.4"/><use transform="matrix(1.71429 0 0 1.71429 -37.027 -40.362)" x="22.366" y="28.311" xlink:href="#c" filter="url(#d)" fill="#000"/><use transform="matrix(1.71429 0 0 1.71429 -37.027 -40.362)" x="22.366" y="28.311" xlink:href="#c" fill="#CD4000"/><path stroke="#CD4000" d="M87.128 26.686L94.671 11.6H73.215l-7.543 15.086h21.456z" stroke-width="2.4"/><g><use transform="matrix(1.71429 0 0 1.71429 -37.027 -40.362)" x="22.366" y="28.311" xlink:href="#e" fill="#4A5E3F"/><path stroke="#405236" d="M56.274 88.4l4.415-8.763L26.783 11.6H5.33l38.4 76.8h12.547-.002z" stroke-width="2.4"/></g><path stroke="#CD4000" stroke-linecap="square" stroke-width="2.4" d="M65.771 11.6h26.094m-32.95 6.857h26.092m-32.95 8.229H78.15"/></g></g></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -5,6 +5,10 @@
li {
border-bottom: 1px solid #e4e8f1;
list-style: none;
&:last-child {
border-bottom: none;
}
}
.listTitle {

View file

@ -4,11 +4,12 @@ import {HashRouter as Router, Route, Switch} from 'react-router-dom';
import Header from './components/Header';
import Home from './modules/home';
import Detail from './modules/detail';
import Footer from './components/Footer';
const RouterApp = () => {
return (
<Router>
<div>
<div className="page-full-height">
<Header/>
<div className="container">
<Switch>
@ -17,6 +18,7 @@ const RouterApp = () => {
<Route exact path="/detail/:package" component={Detail} />
</Switch>
</div>
<Footer/>
</div>
</Router>
);

View file

@ -22,4 +22,10 @@ ul {
margin-top: 0 !important;
}
}
.page-full-height {
display: flex;
flex-direction: column;
min-height: 100vh;
}
}

View file

@ -0,0 +1,9 @@
import fs from 'fs';
import path from 'path';
export default function getPackageVersion() {
let packageJSON = JSON.parse(fs.readFileSync(path.join(__dirname, '../package.json')));
return packageJSON.version;
}

View file

@ -41,7 +41,7 @@ module.exports = {
use: 'babel-loader',
},
{
test: /\.(jpe?g|png|gif|svg)$/,
test: /\.(jpe?g|png|gif)$/,
use: 'file-loader?name=[name].[ext]',
},
{

View file

@ -4,6 +4,7 @@ import FriendlyErrorsPlugin from 'friendly-errors-webpack-plugin';
import baseConfig from './webpack.config';
import env from '../src/config/env';
import StyleLintPlugin from 'stylelint-webpack-plugin';
import getPackageVersion from './getPackageVersion';
export default {
...baseConfig,
@ -25,6 +26,7 @@ export default {
new webpack.DefinePlugin({
'__DEBUG__': true,
'process.env.NODE_ENV': '"development"',
'__APP_VERSION__': `"${getPackageVersion()}"`,
}),
new HTMLWebpackPlugin({
title: 'Verdaccio',

View file

@ -5,6 +5,7 @@ const baseConfig = require('./webpack.config');
const env = require('../src/config/env');
const _ = require('lodash');
const merge = require('webpack-merge');
import getPackageVersion from './getPackageVersion';
const prodConf = {
entry: {
@ -19,6 +20,7 @@ const prodConf = {
new webpack.DefinePlugin({
'__DEBUG__': false,
'process.env.NODE_ENV': '"production"',
'__APP_VERSION__': `"${getPackageVersion()}"`,
}),
new webpack.optimize.UglifyJsPlugin({
sourceMap: true,