diff --git a/cypress/integration/misc/menu.spec.js b/cypress/integration/misc/menu.spec.js index 98e228f2..86e3ab57 100644 --- a/cypress/integration/misc/menu.spec.js +++ b/cypress/integration/misc/menu.spec.js @@ -7,7 +7,7 @@ describe('The Menu', () => { }) it('Can be hidden on desktop', () => { - cy.get('a.menu-show-button:visible') + cy.get('button.menu-show-button:visible') .click() cy.get('.namespace-container') .should('not.have.class', 'is-active') @@ -21,7 +21,7 @@ describe('The Menu', () => { it('Is can be shown on mobile', () => { cy.viewport('iphone-8') - cy.get('a.menu-show-button:visible') + cy.get('button.menu-show-button:visible') .click() cy.get('.namespace-container') .should('have.class', 'is-active') diff --git a/package.json b/package.json index 72d4a362..1fea18f5 100644 --- a/package.json +++ b/package.json @@ -81,6 +81,7 @@ "vite": "2.6.14", "vite-plugin-pwa": "0.11.3", "vue-tsc": "0.29.4", + "vite-svg-loader": "^3.1.0", "wait-on": "6.0.0", "workbox-cli": "6.3.0" }, diff --git a/src/assets/logo-full-pride.svg b/src/assets/logo-full-pride.svg index f7935877..f7d6527f 100644 --- a/src/assets/logo-full-pride.svg +++ b/src/assets/logo-full-pride.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/assets/logo-full.svg b/src/assets/logo-full.svg index 12b4369d..c5e728a3 100644 --- a/src/assets/logo-full.svg +++ b/src/assets/logo-full.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/components/home/Logo.vue b/src/components/home/Logo.vue new file mode 100644 index 00000000..cea2d0f0 --- /dev/null +++ b/src/components/home/Logo.vue @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/components/home/MenuButton.vue b/src/components/home/MenuButton.vue new file mode 100644 index 00000000..ec5caeea --- /dev/null +++ b/src/components/home/MenuButton.vue @@ -0,0 +1,75 @@ + + $store.commit('toggleMenu')" + v-shortkey="['ctrl', 'e']" + :aria-label="menuActive ? $t('misc.hideMenu') : $t('misc.showMenu')" + /> + + + + + \ No newline at end of file diff --git a/src/components/home/PoweredByLink.vue b/src/components/home/PoweredByLink.vue new file mode 100644 index 00000000..e174ba69 --- /dev/null +++ b/src/components/home/PoweredByLink.vue @@ -0,0 +1,20 @@ + + + {{ $t('misc.poweredBy') }} + + + + + + \ No newline at end of file diff --git a/src/components/home/contentAuth.vue b/src/components/home/contentAuth.vue index d68cdb43..e0fda120 100644 --- a/src/components/home/contentAuth.vue +++ b/src/components/home/contentAuth.vue @@ -1,7 +1,7 @@ - + diff --git a/src/components/home/contentNoAuth.vue b/src/components/home/contentNoAuth.vue index b9573906..38b945ee 100644 --- a/src/components/home/contentNoAuth.vue +++ b/src/components/home/contentNoAuth.vue @@ -1,7 +1,7 @@ - + {{ $t('misc.info') }} @@ -18,16 +18,13 @@ \ No newline at end of file diff --git a/vite.config.js b/vite.config.js index b22ab63a..417ccfd8 100644 --- a/vite.config.js +++ b/vite.config.js @@ -4,6 +4,7 @@ import legacyFn from '@vitejs/plugin-legacy' const {VitePWA} = require('vite-plugin-pwa') const path = require('path') const {visualizer} = require('rollup-plugin-visualizer') +import svgLoader from 'vite-svg-loader' const pathSrc = path.resolve(__dirname, './src') @@ -42,6 +43,11 @@ export default defineConfig({ }, }), legacy, + svgLoader({ + // Since the svgs are already manually optimized via https://jakearchibald.github.io/svgomg/ + // we don't need to optimize them again. + svgo: false, + }), VitePWA({ srcDir: 'src', filename: 'sw.js', diff --git a/yarn.lock b/yarn.lock index e91b509a..5368a2af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3052,6 +3052,11 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + "@tsconfig/node10@^1.0.7": version "1.0.8" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" @@ -3577,7 +3582,7 @@ "@vue/compiler-core" "3.2.21" "@vue/shared" "3.2.21" -"@vue/compiler-sfc@3.2.21": +"@vue/compiler-sfc@3.2.21", "@vue/compiler-sfc@^3.2.20": version "3.2.21" resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.21.tgz#42639ee49e725afb7d8f1d1940e75dc17a56002c" integrity sha512-+yDlUSebKpz/ovxM2vLRRx7w/gVfY767pOfYTgbIhAs+ogvIV2BsIt4fpxlThnlCNChJ+yE0ERUNoROv2kEGEQ== @@ -4387,6 +4392,11 @@ body-parser@1.19.0: raw-body "2.4.0" type-is "~1.6.17" +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + boxen@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" @@ -5408,6 +5418,37 @@ crypto-random-string@^2.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== +css-select@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" + integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== + dependencies: + boolbase "^1.0.0" + css-what "^5.0.0" + domhandler "^4.2.0" + domutils "^2.6.0" + nth-check "^2.0.0" + +css-tree@^1.1.2, css-tree@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" + integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== + +csso@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + cssom@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" @@ -5923,7 +5964,7 @@ dompurify@2.3.3: resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.3.tgz#c1af3eb88be47324432964d8abc75cf4b98d634c" integrity sha512-dqnqRkPMAjOZE0FogZ+ceJNM2dZ3V/yNOuFB7+39qpO93hHhfRpHw3heYQC7DPK9FqbQTfBKUJhiSfz4MvXYwg== -domutils@^2.8.0: +domutils@^2.6.0, domutils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== @@ -9579,6 +9620,11 @@ md5-hex@^3.0.1: dependencies: blueimp-md5 "^2.10.0" +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -10296,6 +10342,13 @@ npmlog@^5.0.1: gauge "^3.0.0" set-blocking "^2.0.0" +nth-check@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" + integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== + dependencies: + boolbase "^1.0.0" + number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -12132,6 +12185,11 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + stack-generator@^2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/stack-generator/-/stack-generator-2.0.5.tgz#fb00e5b4ee97de603e0773ea78ce944d81596c36" @@ -12410,6 +12468,19 @@ supports-hyperlinks@^2.0.0, supports-hyperlinks@^2.1.0: has-flag "^4.0.0" supports-color "^7.0.0" +svgo@^2.7.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + picocolors "^1.0.0" + stable "^0.1.8" + symbol-observable@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" @@ -13173,6 +13244,14 @@ vite-plugin-pwa@0.11.3: workbox-build "^6.3.0" workbox-window "^6.3.0" +vite-svg-loader@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/vite-svg-loader/-/vite-svg-loader-3.1.0.tgz#58d4ed5785583afce10059125467f8bf803e3183" + integrity sha512-dcxLJPQXC3e2/HYrKjOi0fEIzP+Wcny1PhOTsYhnZcqLIhyjAHkMeZwWl9jXC3u+QpUZy4TyLgVnBPuiok3BUA== + dependencies: + "@vue/compiler-sfc" "^3.2.20" + svgo "^2.7.0" + vite@2.6.14: version "2.6.14" resolved "https://registry.yarnpkg.com/vite/-/vite-2.6.14.tgz#35c09a15e4df823410819a2a239ab11efb186271"
{{ $t('misc.info') }}