diff --git a/.gitignore b/.gitignore
index a9c2f3c..a5a863a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -303,3 +303,4 @@ $RECYCLE.BIN/
# End of https://www.toptal.com/developers/gitignore/api/node,now,visualstudiocode,webstorm+all,windows,macos,linux
/public
+*.min.svg
diff --git a/.vercelignore b/.vercelignore
new file mode 100644
index 0000000..7cf58ac
--- /dev/null
+++ b/.vercelignore
@@ -0,0 +1 @@
+/assets/
diff --git a/assets/banner.png b/assets/banner.png
index 7a1142e..56dea22 100644
Binary files a/assets/banner.png and b/assets/banner.png differ
diff --git a/assets/logo.svg b/assets/logo.svg
deleted file mode 100644
index 5da6653..0000000
--- a/assets/logo.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/assets/pentagon.svg b/assets/pentagon.svg
new file mode 100644
index 0000000..987bfa4
--- /dev/null
+++ b/assets/pentagon.svg
@@ -0,0 +1,25 @@
+
diff --git a/assets/s2f.svg b/assets/s2f.svg
new file mode 100644
index 0000000..d028f34
--- /dev/null
+++ b/assets/s2f.svg
@@ -0,0 +1,28 @@
+
diff --git a/assets/share2fedi.svg b/assets/share2fedi.svg
new file mode 100644
index 0000000..d3d43ce
--- /dev/null
+++ b/assets/share2fedi.svg
@@ -0,0 +1,35 @@
+
diff --git a/package.json b/package.json
index 7169c79..6e5a306 100644
--- a/package.json
+++ b/package.json
@@ -12,6 +12,7 @@
"private": true,
"scripts": {
"build": "gulp",
+ "build-icons": "svgo --multipass assets/pentagon.svg assets/s2f.svg assets/share2fedi.svg -o assets/pentagon.min.svg assets/s2f.min.svg assets/share2fedi.min.svg",
"dev": "gulp watch",
"fmt": "prettier --write .",
"lint": "prettier --check . && eslint .",
@@ -33,6 +34,7 @@
"postcss-csso": "^6.0.0",
"prettier": "^2.8.4",
"sass": "^1.49.7",
- "sirv-cli": "^2.0.2"
+ "sirv-cli": "^2.0.2",
+ "svgo": "^3.0.1"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 75b0454..cd9e66b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,55 +1,40 @@
lockfileVersion: '6.0'
-settings:
- autoInstallPeers: true
- excludeLinksFromLockfile: false
+specifiers:
+ autoprefixer: ^10.4.2
+ browserslist: ^4.19.1
+ eslint: ^8.35.0
+ eslint-config-prettier: ^8.6.0
+ eslint-plugin-unicorn: ^45.0.2
+ gulp: ^4.0.2
+ gulp-postcss: ^9.0.1
+ gulp-sass: ^5.1.0
+ gulp-sourcemaps: ^3.0.0
+ gulp-terser: ^2.1.0
+ postcss: ^8.4.6
+ postcss-csso: ^6.0.0
+ prettier: ^2.8.4
+ sass: ^1.49.7
+ sirv-cli: ^2.0.2
+ svgo: ^3.0.1
devDependencies:
- autoprefixer:
- specifier: ^10.4.2
- version: 10.4.2(postcss@8.4.6)
- browserslist:
- specifier: ^4.19.1
- version: 4.19.1
- eslint:
- specifier: ^8.35.0
- version: 8.35.0
- eslint-config-prettier:
- specifier: ^8.6.0
- version: 8.6.0(eslint@8.35.0)
- eslint-plugin-unicorn:
- specifier: ^45.0.2
- version: 45.0.2(eslint@8.35.0)
- gulp:
- specifier: ^4.0.2
- version: 4.0.2
- gulp-postcss:
- specifier: ^9.0.1
- version: 9.0.1(postcss@8.4.6)
- gulp-sass:
- specifier: ^5.1.0
- version: 5.1.0
- gulp-sourcemaps:
- specifier: ^3.0.0
- version: 3.0.0
- gulp-terser:
- specifier: ^2.1.0
- version: 2.1.0(acorn@8.8.1)
- postcss:
- specifier: ^8.4.6
- version: 8.4.6
- postcss-csso:
- specifier: ^6.0.0
- version: 6.0.0(postcss@8.4.6)
- prettier:
- specifier: ^2.8.4
- version: 2.8.4
- sass:
- specifier: ^1.49.7
- version: 1.49.7
- sirv-cli:
- specifier: ^2.0.2
- version: 2.0.2
+ autoprefixer: 10.4.2_postcss@8.4.6
+ browserslist: 4.19.1
+ eslint: 8.35.0
+ eslint-config-prettier: 8.6.0_eslint@8.35.0
+ eslint-plugin-unicorn: 45.0.2_eslint@8.35.0
+ gulp: 4.0.2
+ gulp-postcss: 9.0.1_postcss@8.4.6
+ gulp-sass: 5.1.0
+ gulp-sourcemaps: 3.0.0
+ gulp-terser: 2.1.0
+ postcss: 8.4.6
+ postcss-csso: 6.0.0_postcss@8.4.6
+ prettier: 2.8.4
+ sass: 1.49.7
+ sirv-cli: 2.0.2
+ svgo: 3.0.2
packages:
@@ -170,7 +155,12 @@ packages:
resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
dev: true
- /@types/normalize-package-data@2.4.1:
+ /@trysound/sax/0.2.0:
+ resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
+ engines: {node: '>=10.13.0'}
+ dev: true
+
+ /@types/normalize-package-data/2.4.1:
resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
dev: true
@@ -444,7 +434,11 @@ packages:
dev: true
optional: true
- /brace-expansion@1.1.11:
+ /boolbase/1.0.0:
+ resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+ dev: true
+
+ /brace-expansion/1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
dependencies:
balanced-match: 1.0.2
@@ -695,7 +689,12 @@ packages:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
dev: true
- /component-emitter@1.3.0:
+ /commander/7.2.0:
+ resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
+ engines: {node: '>= 10'}
+ dev: true
+
+ /component-emitter/1.3.0:
resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==}
dev: true
@@ -749,7 +748,17 @@ packages:
which: 2.0.2
dev: true
- /css-tree@2.0.4:
+ /css-select/5.1.0:
+ resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
+ dependencies:
+ boolbase: 1.0.0
+ css-what: 6.1.0
+ domhandler: 5.0.3
+ domutils: 3.0.1
+ nth-check: 2.1.1
+ dev: true
+
+ /css-tree/2.0.4:
resolution: {integrity: sha512-b4IS9ZUMtGBiNjzYbcj9JhYbyei99R3ai2CSxlu8GQDnoPA/P+NU85hAm0eKDc/Zp660rpK6tFJQ2OSdacMHVg==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
dependencies:
@@ -757,7 +766,28 @@ packages:
source-map-js: 1.0.2
dev: true
- /css@3.0.0:
+ /css-tree/2.2.1:
+ resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
+ dependencies:
+ mdn-data: 2.0.28
+ source-map-js: 1.0.2
+ dev: true
+
+ /css-tree/2.3.1:
+ resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
+ dependencies:
+ mdn-data: 2.0.30
+ source-map-js: 1.0.2
+ dev: true
+
+ /css-what/6.1.0:
+ resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
+ engines: {node: '>= 6'}
+ dev: true
+
+ /css/3.0.0:
resolution: {integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==}
dependencies:
inherits: 2.0.4
@@ -772,7 +802,14 @@ packages:
css-tree: 2.0.4
dev: true
- /d@1.0.1:
+ /csso/5.0.5:
+ resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
+ dependencies:
+ css-tree: 2.2.1
+ dev: true
+
+ /d/1.0.1:
resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==}
dependencies:
es5-ext: 0.10.53
@@ -895,7 +932,34 @@ packages:
esutils: 2.0.3
dev: true
- /duplexify@3.7.1:
+ /dom-serializer/2.0.0:
+ resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ entities: 4.4.0
+ dev: true
+
+ /domelementtype/2.3.0:
+ resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
+ dev: true
+
+ /domhandler/5.0.3:
+ resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
+ engines: {node: '>= 4'}
+ dependencies:
+ domelementtype: 2.3.0
+ dev: true
+
+ /domutils/3.0.1:
+ resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==}
+ dependencies:
+ dom-serializer: 2.0.0
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ dev: true
+
+ /duplexify/3.7.1:
resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==}
dependencies:
end-of-stream: 1.4.4
@@ -921,7 +985,12 @@ packages:
once: 1.4.0
dev: true
- /error-ex@1.3.2:
+ /entities/4.4.0:
+ resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==}
+ engines: {node: '>=0.12'}
+ dev: true
+
+ /error-ex/1.3.2:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
dependencies:
is-arrayish: 0.2.1
@@ -2181,7 +2250,15 @@ packages:
resolution: {integrity: sha512-IonVb7pfla2U4zW8rc7XGrtgq11BvYeCxWN8HS+KFBnLDE7XDK9AAMVhRuG6fj9BBsjc69Fqsp6WEActEdNTDQ==}
dev: true
- /memoizee@0.4.15:
+ /mdn-data/2.0.28:
+ resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
+ dev: true
+
+ /mdn-data/2.0.30:
+ resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
+ dev: true
+
+ /memoizee/0.4.15:
resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==}
dependencies:
d: 1.0.1
@@ -2341,7 +2418,13 @@ packages:
once: 1.4.0
dev: true
- /number-is-nan@1.0.1:
+ /nth-check/2.1.1:
+ resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
+ dependencies:
+ boolbase: 1.0.0
+ dev: true
+
+ /number-is-nan/1.0.1:
resolution: {integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=}
engines: {node: '>=0.10.0'}
dev: true
@@ -3273,7 +3356,20 @@ packages:
es6-symbol: 3.1.3
dev: true
- /terser@5.10.0(acorn@8.8.1):
+ /svgo/3.0.2:
+ resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+ dependencies:
+ '@trysound/sax': 0.2.0
+ commander: 7.2.0
+ css-select: 5.1.0
+ css-tree: 2.3.1
+ csso: 5.0.5
+ picocolors: 1.0.0
+ dev: true
+
+ /terser/5.10.0:
resolution: {integrity: sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==}
engines: {node: '>=10'}
hasBin: true