Compare commits
273 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aa780977f1 | ||
|
|
4cb77334fb | ||
|
|
293e95c5b0 | ||
|
|
302095ef80 | ||
|
|
feb35afa9a | ||
|
|
6b925a0434 | ||
|
|
4211ccc685 | ||
|
|
9c982283fb | ||
|
|
888958db54 | ||
|
|
cb3e9ec2cd | ||
|
|
f7e604f11b | ||
|
|
1b36b96239 | ||
|
|
ee3ef6c1e6 | ||
|
|
83bd063bea | ||
|
|
12531edec9 | ||
|
|
7edd501d0f | ||
|
|
c7036b3a5d | ||
|
|
3075517af9 | ||
|
|
e8f0bc6b8b | ||
|
|
ded3a48e0b | ||
|
|
a04a3c4fe4 | ||
|
|
4aaf70ba68 | ||
|
|
fa176cb027 | ||
|
|
c4ce344487 | ||
|
|
f2c7cccba1 | ||
|
|
901406a337 | ||
|
|
4b48b13561 | ||
|
|
10b29f6349 | ||
|
|
b24d833d12 | ||
|
|
9004c02898 | ||
|
|
409edba74c | ||
|
|
2f1c07f786 | ||
|
|
278e73745a | ||
|
|
3652432e0b | ||
|
|
67ad2ef206 | ||
|
|
f2e157a746 | ||
|
|
606515ffd5 | ||
|
|
6ff67e5f94 | ||
|
|
5f037fc647 | ||
|
|
d1c62f701e | ||
|
|
b2bef03373 | ||
|
|
49fe308da0 | ||
|
|
bce2772dcb | ||
|
|
dd0b9d6d61 | ||
|
|
1e90298f72 | ||
|
|
7f4385f8cb | ||
|
|
48f2a73291 | ||
|
|
8cf33089a2 | ||
|
|
c16be33d40 | ||
|
|
a9691a2a25 | ||
|
|
e88e6dcc2d | ||
|
|
00ffbdbc42 | ||
|
|
97f348daf2 | ||
|
|
d0f47b4504 | ||
|
|
2db6bfebcf | ||
|
|
286003cf27 | ||
|
|
d27c61c7ce | ||
|
|
c56ee65a73 | ||
|
|
d3c0c7c596 | ||
|
|
e7fec30b7c | ||
|
|
da36f8d7dd | ||
|
|
63de7a6613 | ||
|
|
b14c814c55 | ||
|
|
7f8293e691 | ||
|
|
59a27d4489 | ||
|
|
4e59e73ec5 | ||
|
|
df1c909fce | ||
|
|
3aa0aebfc6 | ||
|
|
afdbb0dbb5 | ||
|
|
9fc37034a6 | ||
|
|
53fc0c6656 | ||
|
|
cfe57b788b | ||
|
|
3b55cc1c2c | ||
|
|
47c41be79a | ||
|
|
cfc9c2632b | ||
|
|
c0cb2791d0 | ||
|
|
6520b686a3 | ||
|
|
4041c8f588 | ||
|
|
da63f481c6 | ||
|
|
a5bcaadafb | ||
|
|
19142b284a | ||
|
|
511fa58d66 | ||
|
|
2fbac120b2 | ||
|
|
dea36af5cc | ||
|
|
81d28461f6 | ||
|
|
92302e87e5 | ||
|
|
1fd30b4ac3 | ||
|
|
f751bbac97 | ||
|
|
feb99103b8 | ||
|
|
0851c76e65 | ||
|
|
bf1f3bf00a | ||
|
|
c0dd04bc94 | ||
|
|
c2aba79db7 | ||
|
|
1df8263038 | ||
|
|
d983b291ce | ||
|
|
accf43e978 | ||
|
|
476dab914b | ||
|
|
dad260bbb0 | ||
|
|
e605273769 | ||
|
|
b98cd98699 | ||
|
|
a35c23a56b | ||
|
|
2e8d311021 | ||
|
|
6632b7a2fb | ||
|
|
d3132b75e5 | ||
|
|
56e1d4d2a8 | ||
|
|
892e4c4f2e | ||
|
|
a36dcfcee1 | ||
|
|
f8edb4a97e | ||
|
|
dc76cb4fcf | ||
|
|
d4672f4eaa | ||
|
|
ba1512e9e4 | ||
|
|
d42bb6456c | ||
|
|
f0de99ad26 | ||
|
|
fe9f6cbf35 | ||
|
|
efbae531de | ||
|
|
341523e3ae | ||
|
|
89ad2b299c | ||
|
|
b24f484b1c | ||
|
|
5525f3890a | ||
|
|
c0e7124c61 | ||
|
|
76ea71ee41 | ||
|
|
cc5deca895 | ||
|
|
daae4015dc | ||
|
|
39e109c4ed | ||
|
|
a48ff0ee17 | ||
|
|
77cee01a8b | ||
|
|
820234ee1a | ||
|
|
2dc60f9aff | ||
|
|
326079512e | ||
|
|
bee2f12624 | ||
|
|
8bfe5baaa3 | ||
|
|
cc417e4954 | ||
|
|
b296c72020 | ||
|
|
c41f9a98c5 | ||
|
|
5ac61a227a | ||
|
|
594a7e74c5 | ||
|
|
3b2721ea22 | ||
|
|
638b967977 | ||
|
|
87173db442 | ||
|
|
d1efb026eb | ||
|
|
298f6d7618 | ||
|
|
e1f458eff3 | ||
|
|
e04aa0da9b | ||
|
|
137dda5216 | ||
|
|
b2618cd8aa | ||
|
|
4f102d42d6 | ||
|
|
5c8af06c8f | ||
|
|
5ee18a235c | ||
|
|
fb54c90877 | ||
|
|
adfa4ce721 | ||
|
|
33898fecfa | ||
|
|
3bfe84a764 | ||
|
|
09bbc5ee7e | ||
|
|
a303538ddf | ||
|
|
2044de7122 | ||
|
|
d11f7c02b3 | ||
|
|
ba6d057ad0 | ||
|
|
e2f5dd4b63 | ||
|
|
15932ab3f3 | ||
|
|
427b170c83 | ||
|
|
40b516aa11 | ||
|
|
92d20bc2be | ||
|
|
3945e48b40 | ||
|
|
ba5b3131c3 | ||
|
|
96efda61c7 | ||
|
|
d1db19a8d5 | ||
|
|
2327afcbba | ||
|
|
b391be4ad0 | ||
|
|
f96f77db0a | ||
|
|
0b2a91ced8 | ||
|
|
3b71c34db6 | ||
|
|
2dbaf42570 | ||
|
|
8784d37b52 | ||
|
|
8bac0c71c4 | ||
|
|
8da6a3de9e | ||
|
|
53b9a15144 | ||
|
|
6012332b17 | ||
|
|
3e19161499 | ||
|
|
2ce0ceab6a | ||
|
|
fe5a55787e | ||
|
|
ac0385be40 | ||
|
|
8f754db58e | ||
|
|
1a4da2d89d | ||
|
|
b9583c5b9c | ||
|
|
538ab159b4 | ||
|
|
846cca8b64 | ||
|
|
a31083a840 | ||
|
|
f58058eca1 | ||
|
|
c94b56a3f6 | ||
|
|
2961d852b1 | ||
|
|
85d44a4eeb | ||
|
|
a3363acf56 | ||
|
|
9b8fb659fb | ||
|
|
06f7bea02e | ||
|
|
13e88ba0d9 | ||
|
|
a24d08111c | ||
|
|
5b51c589da | ||
|
|
cbb7b2bf25 | ||
|
|
f6e135a28c | ||
|
|
e8b7db4d98 | ||
|
|
731d06a35e | ||
|
|
534e163f76 | ||
|
|
3036d019f0 | ||
|
|
d8693f187e | ||
|
|
8acb9d984e | ||
|
|
2edebc8a4d | ||
|
|
5568ffb4ea | ||
|
|
8eee9fe6e9 | ||
|
|
2274a5b863 | ||
|
|
1fcf3658e9 | ||
|
|
79ca903ee7 | ||
|
|
d14567dd3a | ||
|
|
496840794c | ||
|
|
86e17a979f | ||
|
|
a3103d212f | ||
|
|
e84673198c | ||
|
|
7ea6c0c27f | ||
|
|
7eba9fe307 | ||
|
|
fdb8b9fa31 | ||
|
|
766b705f07 | ||
|
|
b4e72c77bc | ||
|
|
640a7d7830 | ||
|
|
9f8847823e | ||
|
|
93e4db218f | ||
|
|
101d9496ca | ||
|
|
710c6ca91d | ||
|
|
8beed7f45c | ||
|
|
9cb3820c96 | ||
|
|
ed2e1f11e4 | ||
|
|
8a4b9b1024 | ||
|
|
bc58a738da | ||
|
|
cf57f915ba | ||
|
|
a7bfb8fe51 | ||
|
|
12f8343cd5 | ||
|
|
226e86ce37 | ||
|
|
e439d14d58 | ||
|
|
25c296be90 | ||
|
|
01f0f8de03 | ||
|
|
e17c498da0 | ||
|
|
37d449b3c4 | ||
|
|
ef0265d974 | ||
|
|
4944906408 | ||
|
|
51eeee9e16 | ||
|
|
3cde601008 | ||
|
|
f3137c418a | ||
|
|
dbec08fee2 | ||
|
|
c500dc6775 | ||
|
|
6e21908ee2 | ||
|
|
b752ff4bef | ||
|
|
35e4c2ae8e | ||
|
|
10c50b5053 | ||
|
|
7de1bc1ebf | ||
|
|
243e5b8087 | ||
|
|
7cd828b3cd | ||
|
|
54b1b494fc | ||
|
|
3cde77c350 | ||
|
|
65f492945c | ||
|
|
67848d02c0 | ||
|
|
361de1103b | ||
|
|
6c3683b852 | ||
|
|
daaa0c48c2 | ||
|
|
c6cac53ba7 | ||
|
|
d0caa3b6c4 | ||
|
|
861c1beb03 | ||
|
|
19289c6c42 | ||
|
|
f877e574af | ||
|
|
9207412c51 | ||
|
|
3871a5ecf8 | ||
|
|
8b35ad415b | ||
|
|
ad0c6e6580 | ||
|
|
790a6fcaf6 | ||
|
|
b2c292b531 | ||
|
|
6b12e23cd5 |
18
.eslintrc.js
@@ -3,9 +3,25 @@ module.exports = {
|
||||
env: {
|
||||
es2021: true,
|
||||
},
|
||||
extends: ["plugin:vue/vue3-essential", "eslint:recommended"],
|
||||
extends: [
|
||||
"eslint:recommended",
|
||||
"plugin:vue/vue3-essential",
|
||||
"plugin:vue/vue3-recommended",
|
||||
"plugin:vue/vue3-strongly-recommended",
|
||||
"prettier",
|
||||
],
|
||||
rules: {
|
||||
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
|
||||
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
|
||||
"vue/multi-word-component-names": "off",
|
||||
"vue/v-on-event-hyphenation": "off",
|
||||
"vue/no-v-html": "off",
|
||||
"no-unused-vars": "off",
|
||||
"vue/prop-name-casing": "off",
|
||||
},
|
||||
parser: "vue-eslint-parser",
|
||||
parserOptions: {
|
||||
parser: "@typescript-eslint/parser",
|
||||
sourceType: "module",
|
||||
},
|
||||
};
|
||||
|
||||
6
.gitignore
vendored
@@ -23,4 +23,8 @@ pnpm-debug.log*
|
||||
*.sln
|
||||
*.sw?
|
||||
|
||||
__pycache__
|
||||
# TODO
|
||||
TODO.md
|
||||
|
||||
__pycache__
|
||||
dev-dist/*
|
||||
15
README.md
@@ -1,6 +1,6 @@
|
||||
### Swing music client
|
||||
|
||||
This repo contains the client code for the swing music player.
|
||||
This repo contains the client code for the [swing music player](https://github.com/geoffrey45/swingmusic).
|
||||
|
||||
### Setup
|
||||
|
||||
@@ -26,15 +26,14 @@ yarn dev
|
||||
yarn build
|
||||
```
|
||||
|
||||
If you are developing together with the server, make sure the server code is placed in the same directory as the client code. Such that when you run `yarn build` the output is placed in the server's `client` directory.
|
||||
---
|
||||
### Generating PWA favicons
|
||||
|
||||
```bash
|
||||
│
|
||||
├── swing-client
|
||||
│ └── # client code here
|
||||
├── swingmusic
|
||||
│ └── # server code here
|
||||
```sh
|
||||
yarn generate-pwa-assets
|
||||
```
|
||||
---
|
||||
|
||||
|
||||
### Contributing
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
||||
<link rel="icon" href="./src/assets/icons/logo-small.svg" />
|
||||
<title>Swing Music</title>
|
||||
<base href="./">
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
|
||||
33
package.json
@@ -5,7 +5,8 @@
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"serve": "vite preview",
|
||||
"build": "vite build --emptyOutDir --outDir ../swing/client",
|
||||
"build": "vite build",
|
||||
"generate-pwa-assets": "pwa-assets-generator --preset minimal public/logo-fill.light.svg",
|
||||
"lint": "eslint --ext .js,.vue --ignore-path .gitignore --fix src"
|
||||
},
|
||||
"dependencies": {
|
||||
@@ -14,26 +15,38 @@
|
||||
"@vueuse/components": "^9.2.0",
|
||||
"@vueuse/core": "^8.5.0",
|
||||
"@vueuse/integrations": "^9.2.0",
|
||||
"@vueuse/motion": "^2.0.0",
|
||||
"axios": "^0.26.1",
|
||||
"fuse.js": "^6.6.2",
|
||||
"motion": "^10.15.5",
|
||||
"node-vibrant": "3.1.6",
|
||||
"pinia": "^2.0.17",
|
||||
"pinia-plugin-persistedstate": "^2.1.1",
|
||||
"sass": "^1.56.1",
|
||||
"sass-loader": "^13.2.0",
|
||||
"vite-svg-loader": "^3.4.0",
|
||||
"vue": "^3.2.37",
|
||||
"pinia-plugin-persistedstate": "^3.2.0",
|
||||
"v-wave": "^1.5.0",
|
||||
"vue": "^v3.2.45",
|
||||
"vue-debounce": "^3.0.2",
|
||||
"vue-router": "^4.1.3",
|
||||
"vue-template-compiler": "^2.0.0",
|
||||
"vue-virtual-scroller": "^2.0.0-beta.7",
|
||||
"webpack": "^5.74.0"
|
||||
"vue-wrap-balancer": "^1.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@nextcss/color-tools": "^1.0.7",
|
||||
"@typescript-eslint/parser": "^6.3.0",
|
||||
"@vite-pwa/assets-generator": "^0.0.3",
|
||||
"@vitejs/plugin-vue": "^3.2.0",
|
||||
"eslint": "^8.7.0",
|
||||
"eslint-plugin-vue": "^8.3.0",
|
||||
"eslint": "^8.46.0",
|
||||
"eslint-config-prettier": "^9.0.0",
|
||||
"eslint-plugin-vue": "^9.17.0",
|
||||
"sass": "^1.56.1",
|
||||
"sass-loader": "^13.2.0",
|
||||
"typescript": "^5.0.4",
|
||||
"vite": "^3.0.4",
|
||||
"vue-svg-loader": "^0.16.0"
|
||||
"vite-plugin-compression": "^0.5.1",
|
||||
"vite-plugin-pwa": "^0.16.4",
|
||||
"vite-plugin-singlefile": "^0.13.5",
|
||||
"vite-svg-loader": "^4.0.0",
|
||||
"vue-virtual-draglist": "^3.0.4"
|
||||
},
|
||||
"packageManager": "yarn@1.22.19"
|
||||
}
|
||||
|
||||
BIN
public/apple-touch-icon-180x180.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
public/favicon.ico
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 591 B |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 15 KiB |
23
public/logo-fill.light.svg
Normal file
@@ -0,0 +1,23 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_14_3)">
|
||||
<path d="M14 27.6441C21.5354 27.6441 27.6441 21.5354 27.6441 14C27.6441 6.46458 21.5354 0.355927 14 0.355927C6.46461 0.355927 0.355957 6.46458 0.355957 14C0.355957 21.5354 6.46461 27.6441 14 27.6441Z" fill="white"/>
|
||||
<g filter="url(#filter0_d_14_3)">
|
||||
<path d="M14.1221 14.9372C15.6529 14.9372 17.1518 14.8463 18.3804 14.6644C19.3548 14.517 19.66 13.7979 19.329 12.7716L17.499 7.00511C17.1672 5.94913 16.3182 5.45764 15.1465 5.45764H13.0908C11.9191 5.45764 11.07 5.94913 10.7383 7.00511L8.90825 12.7716C8.57724 13.7979 8.88246 14.517 9.85688 14.6644C11.0855 14.8463 12.5856 14.9372 14.1221 14.9372ZM13.4838 14.451V22.1166H14.756V14.451H13.4838ZM10.9926 22.6014H17.2447C17.5434 22.6014 17.7469 22.3873 17.7469 22.0759C17.7469 21.4994 17.277 21.099 16.5694 21.099H11.6679C10.9603 21.099 10.4973 21.4994 10.4973 22.0759C10.4973 22.3873 10.6939 22.6014 10.9926 22.6014Z" fill="black"/>
|
||||
</g>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_14_3" x="4.77966" y="5.45764" width="18.678" height="25.1438" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="4"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14_3"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14_3" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="clip0_14_3">
|
||||
<rect width="28" height="28" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
20
public/logo.svg
Normal file
@@ -0,0 +1,20 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.com/svgjs" width="28" height="28"><svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14 27.6441C21.5354 27.6441 27.6441 21.5354 27.6441 14C27.6441 6.46458 21.5354 0.355927 14 0.355927C6.46461 0.355927 0.355957 6.46458 0.355957 14C0.355957 21.5354 6.46461 27.6441 14 27.6441Z" fill="black"></path>
|
||||
<g filter="url(#filter0_d_16_11)">
|
||||
<path d="M14.1221 14.9372C15.6529 14.9372 17.1518 14.8463 18.3804 14.6644C19.3548 14.517 19.66 13.7979 19.329 12.7716L17.499 7.00511C17.1672 5.94913 16.3182 5.45764 15.1465 5.45764H13.0908C11.9191 5.45764 11.07 5.94913 10.7383 7.00511L8.90825 12.7716C8.57724 13.7979 8.88246 14.517 9.85688 14.6644C11.0855 14.8463 12.5856 14.9372 14.1221 14.9372ZM13.4838 14.451V22.1166H14.756V14.451H13.4838ZM10.9926 22.6014H17.2447C17.5434 22.6014 17.7469 22.3873 17.7469 22.0759C17.7469 21.4994 17.277 21.099 16.5694 21.099H11.6679C10.9603 21.099 10.4973 21.4994 10.4973 22.0759C10.4973 22.3873 10.6939 22.6014 10.9926 22.6014Z" fill="white"></path>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="SvgjsFilter1000" x="4.77966" y="2.45764" width="18.678" height="25.1438" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"></feColorMatrix>
|
||||
<feOffset dy="1"></feOffset>
|
||||
<feGaussianBlur stdDeviation="2"></feGaussianBlur>
|
||||
<feComposite in2="hardAlpha" operator="out"></feComposite>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.25 0"></feColorMatrix>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_16_11"></feBlend>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_16_11" result="shape"></feBlend>
|
||||
</filter>
|
||||
</defs>
|
||||
</svg><style>@media (prefers-color-scheme: light) { :root { filter: none; } }
|
||||
@media (prefers-color-scheme: dark) { :root { filter: none; } }
|
||||
</style></svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
BIN
public/maskable-icon-512x512.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
public/pwa-192x192.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
public/pwa-512x512.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
public/pwa-64x64.png
Normal file
|
After Width: | Height: | Size: 867 B |
1
public/site.webmanifest
Normal file
@@ -0,0 +1 @@
|
||||
{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
|
||||
15
public/workers/logtrack.js
Normal file
@@ -0,0 +1,15 @@
|
||||
onmessage = (e) => {
|
||||
const { trackhash, duration, source, timestamp } = e.data;
|
||||
|
||||
const is_dev = location.port === "5173";
|
||||
const base_url = is_dev ? "http://localhost:1980" : location.origin;
|
||||
const url = base_url + "/logger/track/log";
|
||||
|
||||
fetch(url, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({ trackhash, duration, source, timestamp }),
|
||||
});
|
||||
};
|
||||
18
public/workers/silence.js
Normal file
@@ -0,0 +1,18 @@
|
||||
onmessage = async (e) => {
|
||||
const { ending_file, starting_file } = e.data;
|
||||
|
||||
const is_dev = location.port === "5173";
|
||||
const base_url = is_dev ? "http://localhost:1980" : location.origin;
|
||||
const url = base_url + "/file/silence";
|
||||
|
||||
const res = await fetch(url, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({ ending_file, starting_file }),
|
||||
});
|
||||
|
||||
const data = await res.json();
|
||||
postMessage(data);
|
||||
};
|
||||
137
src/App.vue
@@ -2,21 +2,36 @@
|
||||
<ContextMenu />
|
||||
<Modal />
|
||||
<Notification />
|
||||
<div id="drag-img" class="ellip2" style=""></div>
|
||||
<section
|
||||
id="app-grid"
|
||||
:class="{
|
||||
noSidebar: !settings.use_sidebar || !xl,
|
||||
NoSideBorders: !xxl,
|
||||
useSidebar: settings.use_sidebar && xl,
|
||||
NoSideBorders: settings.is_alt_layout || !xxl,
|
||||
extendWidth: settings.extend_width && settings.can_extend_width,
|
||||
is_alt_layout: settings.is_alt_layout,
|
||||
}"
|
||||
:style="{
|
||||
maxWidth: `${
|
||||
settings.is_default_layout
|
||||
? content_height > 1080
|
||||
? '2220px'
|
||||
: '1760px'
|
||||
: ''
|
||||
}`,
|
||||
}"
|
||||
>
|
||||
<LeftSidebar />
|
||||
<LeftSidebar v-if="settings.is_default_layout && !isMobile" />
|
||||
<NavBar />
|
||||
<div id="acontent" v-element-size="updateContentElemSize">
|
||||
<router-view />
|
||||
<div id="contentresizer" ref="appcontent"></div>
|
||||
<BalancerProvider>
|
||||
<RouterView />
|
||||
</BalancerProvider>
|
||||
</div>
|
||||
<RightSideBar v-if="settings.use_sidebar && xl" />
|
||||
<BottomBar />
|
||||
<!-- <BubbleManager /> -->
|
||||
</section>
|
||||
</template>
|
||||
|
||||
@@ -24,18 +39,25 @@
|
||||
// @libraries
|
||||
import { vElementSize } from "@vueuse/components";
|
||||
import { onStartTyping } from "@vueuse/core";
|
||||
import { onMounted } from "vue";
|
||||
import { onMounted, Ref, ref } from "vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import { BalancerProvider } from "vue-wrap-balancer";
|
||||
|
||||
// @stores
|
||||
import { content_width } from "@/stores/content-width";
|
||||
import useContextStore from "@/stores/context";
|
||||
import useModalStore from "@/stores/modal";
|
||||
import useQStore from "@/stores/queue";
|
||||
import useSettingsStore from "@/stores/settings";
|
||||
import {
|
||||
content_height,
|
||||
content_width,
|
||||
isMobile,
|
||||
updateCardWidth,
|
||||
} from "@/stores/content-width";
|
||||
import useLyrics from "@/stores/lyrics";
|
||||
import useModal from "@/stores/modal";
|
||||
import useQueue from "@/stores/queue";
|
||||
import useSettings from "@/stores/settings";
|
||||
import useTracker from "@/stores/tracker";
|
||||
|
||||
// @utils
|
||||
import handleShortcuts from "@/composables/useKeyboard";
|
||||
import handleShortcuts from "@/helpers/useKeyboard";
|
||||
import { readLocalStorage, writeLocalStorage } from "@/utils";
|
||||
import { xl, xxl } from "./composables/useBreakpoints";
|
||||
|
||||
@@ -45,35 +67,56 @@ import Modal from "@/components/modal.vue";
|
||||
import Notification from "@/components/Notification.vue";
|
||||
|
||||
// @app-grid-components
|
||||
import BottomBar from "@/components/BottomBar.vue";
|
||||
import BottomBar from "@/components/BottomBar/BottomBar.vue";
|
||||
import LeftSidebar from "@/components/LeftSidebar/index.vue";
|
||||
import NavBar from "@/components/nav/NavBar.vue";
|
||||
import RightSideBar from "@/components/RightSideBar/Main.vue";
|
||||
import LeftSidebar from "./components/LeftSidebar/index.vue";
|
||||
import { getAllSettings } from "@/requests/settings";
|
||||
|
||||
const queue = useQStore();
|
||||
import { getRootDirs } from "@/requests/settings/rootdirs";
|
||||
// import BubbleManager from "./components/bubbles/BinManager.vue";
|
||||
|
||||
const appcontent: Ref<HTMLLegendElement | null> = ref(null);
|
||||
const queue = useQueue();
|
||||
const modal = useModal();
|
||||
const lyrics = useLyrics();
|
||||
const router = useRouter();
|
||||
const modal = useModalStore();
|
||||
const settings = useSettingsStore();
|
||||
const settings = useSettings();
|
||||
useTracker();
|
||||
|
||||
queue.readQueue();
|
||||
handleShortcuts(useQStore);
|
||||
handleShortcuts(useQueue, useModal);
|
||||
|
||||
router.afterEach(() => {
|
||||
(document.getElementById("acontent") as HTMLElement).scrollTo(0, 0);
|
||||
});
|
||||
|
||||
onStartTyping((e) => {
|
||||
if (e.ctrlKey) {
|
||||
console.log("ctrl pressed");
|
||||
}
|
||||
|
||||
onStartTyping(() => {
|
||||
const elem = document.getElementById("globalsearch") as HTMLInputElement;
|
||||
elem.focus();
|
||||
elem.value = "";
|
||||
});
|
||||
|
||||
function updateContentElemSize({ width }: { width: number }) {
|
||||
content_width.value = width;
|
||||
function getContentSize() {
|
||||
const elem = document.getElementById("acontent") as HTMLElement;
|
||||
return {
|
||||
width: elem.offsetWidth,
|
||||
height: elem.offsetHeight,
|
||||
};
|
||||
}
|
||||
|
||||
function updateContentElemSize({
|
||||
width,
|
||||
height,
|
||||
}: {
|
||||
width: number;
|
||||
height: number;
|
||||
}) {
|
||||
// 1572 is the maxwidth of the #acontent. see app-grid.scss > $maxwidth
|
||||
const elem_width = appcontent.value?.offsetWidth || 0;
|
||||
|
||||
content_width.value = elem_width;
|
||||
content_height.value = height;
|
||||
updateCardWidth();
|
||||
}
|
||||
|
||||
function handleWelcomeModal() {
|
||||
@@ -89,29 +132,43 @@ function handleWelcomeModal() {
|
||||
}
|
||||
}
|
||||
|
||||
function handleRootDirsPrompt() {
|
||||
getRootDirs().then((dirs) => {
|
||||
if (dirs.length === 0) {
|
||||
modal.showRootDirsPromptModal();
|
||||
} else {
|
||||
settings.setRootDirs(dirs);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
const { width, height } = getContentSize();
|
||||
updateContentElemSize({ width, height });
|
||||
|
||||
handleWelcomeModal();
|
||||
settings.initializeVolume();
|
||||
|
||||
handleRootDirsPrompt();
|
||||
|
||||
getAllSettings()
|
||||
.then(({ settings: data }) => {
|
||||
settings.mapDbSettings(data);
|
||||
})
|
||||
.then(() => {
|
||||
if (queue.currenttrack && !settings.use_lyrics_plugin) {
|
||||
lyrics.checkExists(
|
||||
queue.currenttrack.filepath,
|
||||
queue.currenttrack.trackhash
|
||||
);
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
@import "./assets/scss/mixins.scss";
|
||||
|
||||
.l-sidebar {
|
||||
position: relative;
|
||||
|
||||
.withlogo {
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
.l-album-art {
|
||||
width: calc(100% - 2rem);
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.r-sidebar {
|
||||
&::-webkit-scrollbar {
|
||||
display: none;
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14 13.8477C16.127 13.8477 17.8496 11.9668 17.8496 9.66406C17.8496 7.39648 16.127 5.59473 14 5.59473C11.8818 5.59473 10.1416 7.42285 10.1504 9.68164C10.1592 11.9756 11.873 13.8477 14 13.8477ZM14 12.3096C12.7871 12.3096 11.7588 11.1582 11.7588 9.68164C11.75 8.24023 12.7783 7.13281 14 7.13281C15.2305 7.13281 16.2412 8.22266 16.2412 9.66406C16.2412 11.1406 15.2217 12.3096 14 12.3096ZM8.51562 22.0215H19.4756C20.9961 22.0215 21.7256 21.5381 21.7256 20.501C21.7256 18.084 18.7109 14.8672 14 14.8672C9.28906 14.8672 6.26562 18.084 6.26562 20.501C6.26562 21.5381 6.99512 22.0215 8.51562 22.0215ZM8.24316 20.4834C8.03223 20.4834 7.95312 20.4131 7.95312 20.2549C7.95312 18.9102 10.124 16.4053 14 16.4053C17.8672 16.4053 20.0381 18.9102 20.0381 20.2549C20.0381 20.4131 19.959 20.4834 19.748 20.4834H8.24316Z" fill="#F2F2F2"/>
|
||||
<path d="M14 13.8477C16.127 13.8477 17.8496 11.9668 17.8496 9.66406C17.8496 7.39648 16.127 5.59473 14 5.59473C11.8818 5.59473 10.1416 7.42285 10.1504 9.68164C10.1592 11.9756 11.873 13.8477 14 13.8477ZM14 12.3096C12.7871 12.3096 11.7588 11.1582 11.7588 9.68164C11.75 8.24023 12.7783 7.13281 14 7.13281C15.2305 7.13281 16.2412 8.22266 16.2412 9.66406C16.2412 11.1406 15.2217 12.3096 14 12.3096ZM8.51562 22.0215H19.4756C20.9961 22.0215 21.7256 21.5381 21.7256 20.501C21.7256 18.084 18.7109 14.8672 14 14.8672C9.28906 14.8672 6.26562 18.084 6.26562 20.501C6.26562 21.5381 6.99512 22.0215 8.51562 22.0215ZM8.24316 20.4834C8.03223 20.4834 7.95312 20.4131 7.95312 20.2549C7.95312 18.9102 10.124 16.4053 14 16.4053C17.8672 16.4053 20.0381 18.9102 20.0381 20.2549C20.0381 20.4131 19.959 20.4834 19.748 20.4834H8.24316Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 931 B After Width: | Height: | Size: 936 B |
3
src/assets/icons/avatar.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M6.10515 24.5753H21.6977C23.0148 24.5753 23.8007 23.9513 23.8007 22.9154C23.8007 19.9004 19.9776 15.7538 13.8955 15.7538C7.82523 15.7538 4 19.9004 4 22.9154C4 23.9513 4.78797 24.5753 6.10515 24.5753ZM13.9052 13.6731C16.4594 13.6731 18.6327 11.4019 18.6327 8.46591C18.6327 5.58403 16.453 3.39099 13.9052 3.39099C11.3573 3.39099 9.17547 5.62458 9.17969 8.48724C9.1818 11.4019 11.3434 13.6731 13.9052 13.6731Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 542 B |
4
src/assets/icons/check.filled.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M6.84421 24.8972H21.0295C23.5685 24.8972 24.8737 23.5919 24.8737 21.0914V6.82921C24.8737 4.32656 23.5685 3.02344 21.0295 3.02344H6.84421C4.31484 3.02344 3 4.31695 3 6.82921V21.0914C3 23.6016 4.31484 24.8972 6.84421 24.8972Z" fill="white"/>
|
||||
<path d="M12.6617 19.7301C12.219 19.7301 11.8571 19.5387 11.5314 19.1137L8.65744 15.6204C8.45002 15.3523 8.34033 15.0818 8.34033 14.7848C8.34033 14.1879 8.81588 13.7037 9.42033 13.7037C9.7822 13.7037 10.0611 13.8281 10.3646 14.2148L12.6212 17.0827L17.4669 9.32416C17.7233 8.92409 18.0554 8.71338 18.4225 8.71338C18.9981 8.71338 19.5376 9.12401 19.5376 9.73807C19.5376 10.0085 19.4033 10.2949 19.232 10.5642L13.7474 19.1053C13.4802 19.5152 13.0982 19.7301 12.6617 19.7301Z" fill="blue"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 847 B |
@@ -1,3 +1,4 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M9.96582 22.7686H18.043C19.3965 22.7686 20.2666 21.9512 20.3369 20.5977L20.9258 7.94141H21.8926C22.3408 7.94141 22.6836 7.58984 22.6836 7.15039C22.6836 6.71094 22.332 6.37695 21.8926 6.37695H17.9902V5.05859C17.9902 3.70508 17.1289 2.91406 15.6611 2.91406H12.3213C10.8535 2.91406 9.99219 3.70508 9.99219 5.05859V6.37695H6.10742C5.66797 6.37695 5.31641 6.71973 5.31641 7.15039C5.31641 7.59863 5.66797 7.94141 6.10742 7.94141H7.07422L7.66309 20.5977C7.7334 21.96 8.59473 22.7686 9.96582 22.7686ZM11.6357 5.1377C11.6357 4.68945 11.9521 4.39941 12.4355 4.39941H15.5469C16.0303 4.39941 16.3467 4.68945 16.3467 5.1377V6.37695H11.6357V5.1377ZM10.1416 21.1953C9.6582 21.1953 9.30664 20.835 9.28027 20.3164L8.69141 7.94141H19.2822L18.7109 20.3164C18.6934 20.8438 18.3506 21.1953 17.8496 21.1953H10.1416ZM11.4072 19.7803C11.7852 19.7803 12.0225 19.543 12.0137 19.1914L11.75 9.99805C11.7412 9.64648 11.4951 9.41797 11.1348 9.41797C10.7656 9.41797 10.5283 9.65527 10.5371 10.0068L10.8008 19.2002C10.8096 19.5518 11.0557 19.7803 11.4072 19.7803ZM14 19.7803C14.3691 19.7803 14.624 19.5518 14.624 19.2002V10.0068C14.624 9.65527 14.3691 9.41797 14 9.41797C13.6309 9.41797 13.3848 9.65527 13.3848 10.0068V19.2002C13.3848 19.5518 13.6309 19.7803 14 19.7803ZM16.5928 19.7891C16.9443 19.7891 17.1904 19.5518 17.1992 19.2002L17.4629 10.0068C17.4717 9.65527 17.2344 9.42676 16.8652 9.42676C16.5049 9.42676 16.2588 9.65527 16.25 10.0068L15.9863 19.2002C15.9775 19.543 16.2148 19.7891 16.5928 19.7891Z"/>
|
||||
</svg>
|
||||
<path
|
||||
d="M9.96582 22.7686H18.043C19.3965 22.7686 20.2666 21.9512 20.3369 20.5977L20.9258 7.94141H21.8926C22.3408 7.94141 22.6836 7.58984 22.6836 7.15039C22.6836 6.71094 22.332 6.37695 21.8926 6.37695H17.9902V5.05859C17.9902 3.70508 17.1289 2.91406 15.6611 2.91406H12.3213C10.8535 2.91406 9.99219 3.70508 9.99219 5.05859V6.37695H6.10742C5.66797 6.37695 5.31641 6.71973 5.31641 7.15039C5.31641 7.59863 5.66797 7.94141 6.10742 7.94141H7.07422L7.66309 20.5977C7.7334 21.96 8.59473 22.7686 9.96582 22.7686ZM11.6357 5.1377C11.6357 4.68945 11.9521 4.39941 12.4355 4.39941H15.5469C16.0303 4.39941 16.3467 4.68945 16.3467 5.1377V6.37695H11.6357V5.1377ZM10.1416 21.1953C9.6582 21.1953 9.30664 20.835 9.28027 20.3164L8.69141 7.94141H19.2822L18.7109 20.3164C18.6934 20.8438 18.3506 21.1953 17.8496 21.1953H10.1416ZM11.4072 19.7803C11.7852 19.7803 12.0225 19.543 12.0137 19.1914L11.75 9.99805C11.7412 9.64648 11.4951 9.41797 11.1348 9.41797C10.7656 9.41797 10.5283 9.65527 10.5371 10.0068L10.8008 19.2002C10.8096 19.5518 11.0557 19.7803 11.4072 19.7803ZM14 19.7803C14.3691 19.7803 14.624 19.5518 14.624 19.2002V10.0068C14.624 9.65527 14.3691 9.41797 14 9.41797C13.6309 9.41797 13.3848 9.65527 13.3848 10.0068V19.2002C13.3848 19.5518 13.6309 19.7803 14 19.7803ZM16.5928 19.7891C16.9443 19.7891 17.1904 19.5518 17.1992 19.2002L17.4629 10.0068C17.4717 9.65527 17.2344 9.42676 16.8652 9.42676C16.5049 9.42676 16.2588 9.65527 16.25 10.0068L15.9863 19.2002C15.9775 19.543 16.2148 19.7891 16.5928 19.7891Z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
@@ -1,3 +1,3 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M6.81055 21.7666H21.3916C23.0879 21.7666 24.0723 20.7822 24.0723 18.9014V9.85742C24.0723 7.97656 23.0791 6.99219 21.1807 6.99219H13.0332C12.4004 6.99219 12.0225 6.85156 11.5303 6.44727L11.0381 6.04297C10.4141 5.5332 9.95703 5.36621 9.03418 5.36621H6.54688C4.89453 5.36621 3.91895 6.33301 3.91895 8.1875V18.9014C3.91895 20.791 4.91211 21.7666 6.81055 21.7666ZM5.66797 8.33691C5.66797 7.53711 6.11621 7.11523 6.89844 7.11523H8.56836C9.19238 7.11523 9.56152 7.26465 10.0625 7.66895L10.5547 8.08203C11.1699 8.57422 11.6445 8.75 12.5674 8.75H21.0664C21.875 8.75 22.3232 9.17188 22.3232 10.0156V10.5342H5.66797V8.33691ZM6.9248 20.0176C6.11621 20.0176 5.66797 19.5957 5.66797 18.7432V12.0723H22.3232V18.752C22.3232 19.5957 21.875 20.0176 21.0664 20.0176H6.9248Z" fill="#F2F2F2"/>
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M6.81055 21.7666H21.3916C23.0879 21.7666 24.0723 20.7822 24.0723 18.9014V9.85742C24.0723 7.97656 23.0791 6.99219 21.1807 6.99219H13.0332C12.4004 6.99219 12.0225 6.85156 11.5303 6.44727L11.0381 6.04297C10.4141 5.5332 9.95703 5.36621 9.03418 5.36621H6.54688C4.89453 5.36621 3.91895 6.33301 3.91895 8.1875V18.9014C3.91895 20.791 4.91211 21.7666 6.81055 21.7666ZM5.66797 8.33691C5.66797 7.53711 6.11621 7.11523 6.89844 7.11523H8.56836C9.19238 7.11523 9.56152 7.26465 10.0625 7.66895L10.5547 8.08203C11.1699 8.57422 11.6445 8.75 12.5674 8.75H21.0664C21.875 8.75 22.3232 9.17188 22.3232 10.0156V10.5342H5.66797V8.33691ZM6.9248 20.0176C6.11621 20.0176 5.66797 19.5957 5.66797 18.7432V12.0723H22.3232V18.752C22.3232 19.5957 21.875 20.0176 21.0664 20.0176H6.9248Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 885 B After Width: | Height: | Size: 898 B |
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24" width="24px" height="24px">
|
||||
<g id="surface88165820">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 5 3 C 3.90625 3 3 3.90625 3 5 L 3 9 C 3 10.09375 3.90625 11 5 11 L 9 11 C 10.09375 11 11 10.09375 11 9 L 11 5 C 11 3.90625 10.09375 3 9 3 Z M 15 3 C 13.90625 3 13 3.90625 13 5 L 13 9 C 13 10.09375 13.90625 11 15 11 L 19 11 C 20.09375 11 21 10.09375 21 9 L 21 5 C 21 3.90625 20.09375 3 19 3 Z M 5 5 L 9 5 L 9 9 L 5 9 Z M 15 5 L 19 5 L 19 9 L 15 9 Z M 5 13 C 3.90625 13 3 13.90625 3 15 L 3 19 C 3 20.09375 3.90625 21 5 21 L 9 21 C 10.09375 21 11 20.09375 11 19 L 11 15 C 11 13.90625 10.09375 13 9 13 Z M 15 13 C 13.90625 13 13 13.90625 13 15 L 13 19 C 13 20.09375 13.90625 21 15 21 L 19 21 C 20.09375 21 21 20.09375 21 19 L 21 15 C 21 13.90625 20.09375 13 19 13 Z M 5 15 L 9 15 L 9 19 L 5 19 Z M 15 15 L 19 15 L 19 19 L 15 19 Z M 15 15 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:0.8;" d="M 5 3 C 3.90625 3 3 3.90625 3 5 L 3 9 C 3 10.09375 3.90625 11 5 11 L 9 11 C 10.09375 11 11 10.09375 11 9 L 11 5 C 11 3.90625 10.09375 3 9 3 Z M 15 3 C 13.90625 3 13 3.90625 13 5 L 13 9 C 13 10.09375 13.90625 11 15 11 L 19 11 C 20.09375 11 21 10.09375 21 9 L 21 5 C 21 3.90625 20.09375 3 19 3 Z M 5 5 L 9 5 L 9 9 L 5 9 Z M 15 5 L 19 5 L 19 9 L 15 9 Z M 5 13 C 3.90625 13 3 13.90625 3 15 L 3 19 C 3 20.09375 3.90625 21 5 21 L 9 21 C 10.09375 21 11 20.09375 11 19 L 11 15 C 11 13.90625 10.09375 13 9 13 Z M 15 13 C 13.90625 13 13 13.90625 13 15 L 13 19 C 13 20.09375 13.90625 21 15 21 L 19 21 C 20.09375 21 21 20.09375 21 19 L 21 15 C 21 13.90625 20.09375 13 19 13 Z M 5 15 L 9 15 L 9 19 L 5 19 Z M 15 15 L 19 15 L 19 19 L 15 19 Z M 15 15 "/>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
3
src/assets/icons/heart-no-color.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="28" fill="currentColor" height="28" viewBox="0 0 28 28" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5.09668 11.1846C5.09668 14.9375 8.25195 18.6465 13.1562 21.8105C13.4287 21.9863 13.7627 22.1621 13.9912 22.1621C14.2197 22.1621 14.5537 21.9863 14.8262 21.8105C19.7393 18.6465 22.8857 14.9375 22.8857 11.1846C22.8857 7.94141 20.6445 5.69141 17.7705 5.69141C16.0918 5.69141 14.7822 6.45605 13.9912 7.61621C13.2178 6.46484 11.8994 5.69141 10.2207 5.69141C7.33789 5.69141 5.09668 7.94141 5.09668 11.1846ZM6.90723 11.1758C6.90723 8.96094 8.36621 7.45801 10.3262 7.45801C11.9082 7.45801 12.7959 8.41602 13.3496 9.25098C13.5957 9.61133 13.7627 9.72559 13.9912 9.72559C14.2285 9.72559 14.3779 9.60254 14.6328 9.25098C15.2305 8.43359 16.083 7.45801 17.6562 7.45801C19.625 7.45801 21.084 8.96094 21.084 11.1758C21.084 14.2695 17.8672 17.6973 14.1582 20.1582C14.0791 20.2109 14.0264 20.2461 13.9912 20.2461C13.9561 20.2461 13.9033 20.2109 13.833 20.1582C10.124 17.6973 6.90723 14.2695 6.90723 11.1758Z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1016 B |
@@ -1,3 +1,3 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="rgb(250, 33, 33)" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.9912 22.1445C14.2197 22.1445 14.5449 21.9775 14.8086 21.8105C19.7217 18.6465 22.8682 14.9375 22.8682 11.1758C22.8682 7.9502 20.6445 5.7002 17.8408 5.7002C16.0918 5.7002 14.7822 6.66699 13.9912 8.11719C13.2178 6.67578 11.8994 5.7002 10.1504 5.7002C7.34668 5.7002 5.11426 7.9502 5.11426 11.1758C5.11426 14.9375 8.26074 18.6465 13.1738 21.8105C13.4463 21.9775 13.7715 22.1445 13.9912 22.1445Z"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 521 B After Width: | Height: | Size: 517 B |
@@ -1,3 +1,3 @@
|
||||
<svg width="28" fill="rgb(250, 33, 33)" height="28" viewBox="0 0 28 28" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="28" fill="currentColor" height="28" viewBox="0 0 28 28" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5.09668 11.1846C5.09668 14.9375 8.25195 18.6465 13.1562 21.8105C13.4287 21.9863 13.7627 22.1621 13.9912 22.1621C14.2197 22.1621 14.5537 21.9863 14.8262 21.8105C19.7393 18.6465 22.8857 14.9375 22.8857 11.1846C22.8857 7.94141 20.6445 5.69141 17.7705 5.69141C16.0918 5.69141 14.7822 6.45605 13.9912 7.61621C13.2178 6.46484 11.8994 5.69141 10.2207 5.69141C7.33789 5.69141 5.09668 7.94141 5.09668 11.1846ZM6.90723 11.1758C6.90723 8.96094 8.36621 7.45801 10.3262 7.45801C11.9082 7.45801 12.7959 8.41602 13.3496 9.25098C13.5957 9.61133 13.7627 9.72559 13.9912 9.72559C14.2285 9.72559 14.3779 9.60254 14.6328 9.25098C15.2305 8.43359 16.083 7.45801 17.6562 7.45801C19.625 7.45801 21.084 8.96094 21.084 11.1758C21.084 14.2695 17.8672 17.6973 14.1582 20.1582C14.0791 20.2109 14.0264 20.2461 13.9912 20.2461C13.9561 20.2461 13.9033 20.2109 13.833 20.1582C10.124 17.6973 6.90723 14.2695 6.90723 11.1758Z" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1020 B After Width: | Height: | Size: 1016 B |
3
src/assets/icons/image.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M26.5355 20.4111L19.5935 13.8974C19.0683 13.4286 18.4589 13.1771 17.8324 13.1771C17.19 13.1771 16.6137 13.3977 16.0788 13.876L10.7862 18.6062L8.62453 16.6555C8.13234 16.2123 7.59117 15.9896 7.04249 15.9896C6.50039 15.9896 6.02507 16.2006 5.53288 16.6438L1.11023 20.6075C1.16788 22.7666 2.17217 23.8932 4.11232 23.8932H23.1117C25.4627 23.8932 26.6346 22.6801 26.5355 20.4111ZM9.0785 14.1538C10.6134 14.1538 11.8788 12.8883 11.8788 11.3396C11.8788 9.80465 10.6134 8.52754 9.0785 8.52754C7.52975 8.52754 6.26436 9.80465 6.26436 11.3396C6.26436 12.8883 7.52975 14.1538 9.0785 14.1538ZM3.84421 24.8781H23.9109C26.4499 24.8781 27.7552 23.5824 27.7552 21.0819V6.81004C27.7552 4.30739 26.4499 3.00427 23.9109 3.00427H3.84421C1.31484 3.00427 0 4.30739 0 6.81004V21.0819C0 23.5824 1.31484 24.8781 3.84421 24.8781ZM3.97733 22.5821C2.88772 22.5821 2.29592 22.018 2.29592 20.8794V7.01043C2.29592 5.87183 2.88772 5.30019 3.97733 5.30019H23.7778C24.8578 5.30019 25.4592 5.87183 25.4592 7.01043V20.8794C25.4592 22.018 24.8578 22.5821 23.7778 22.5821H3.97733Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -1,4 +1,4 @@
|
||||
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M15 1.875C7.75195 1.875 1.875 7.75195 1.875 15C1.875 22.248 7.75195 28.125 15 28.125C22.248 28.125 28.125 22.248 28.125 15C28.125 7.75195 22.248 1.875 15 1.875ZM15 25.8984C8.98242 25.8984 4.10156 21.0176 4.10156 15C4.10156 8.98242 8.98242 4.10156 15 4.10156C21.0176 4.10156 25.8984 8.98242 25.8984 15C25.8984 21.0176 21.0176 25.8984 15 25.8984Z" fill="white"/>
|
||||
<path d="M13.5938 9.84375C13.5938 10.2167 13.7419 10.5744 14.0056 10.8381C14.2694 11.1018 14.627 11.25 15 11.25C15.373 11.25 15.7306 11.1018 15.9944 10.8381C16.2581 10.5744 16.4062 10.2167 16.4062 9.84375C16.4062 9.47079 16.2581 9.1131 15.9944 8.84938C15.7306 8.58566 15.373 8.4375 15 8.4375C14.627 8.4375 14.2694 8.58566 14.0056 8.84938C13.7419 9.1131 13.5938 9.47079 13.5938 9.84375V9.84375ZM15.7031 13.125H14.2969C14.168 13.125 14.0625 13.2305 14.0625 13.3594V21.3281C14.0625 21.457 14.168 21.5625 14.2969 21.5625H15.7031C15.832 21.5625 15.9375 21.457 15.9375 21.3281V13.3594C15.9375 13.2305 15.832 13.125 15.7031 13.125Z" fill="white"/>
|
||||
<svg width="30" height="30" viewBox="0 0 30 30" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M15 1.875C7.75195 1.875 1.875 7.75195 1.875 15C1.875 22.248 7.75195 28.125 15 28.125C22.248 28.125 28.125 22.248 28.125 15C28.125 7.75195 22.248 1.875 15 1.875ZM15 25.8984C8.98242 25.8984 4.10156 21.0176 4.10156 15C4.10156 8.98242 8.98242 4.10156 15 4.10156C21.0176 4.10156 25.8984 8.98242 25.8984 15C25.8984 21.0176 21.0176 25.8984 15 25.8984Z" fill="currentColor"/>
|
||||
<path d="M13.5938 9.84375C13.5938 10.2167 13.7419 10.5744 14.0056 10.8381C14.2694 11.1018 14.627 11.25 15 11.25C15.373 11.25 15.7306 11.1018 15.9944 10.8381C16.2581 10.5744 16.4062 10.2167 16.4062 9.84375C16.4062 9.47079 16.2581 9.1131 15.9944 8.84938C15.7306 8.58566 15.373 8.4375 15 8.4375C14.627 8.4375 14.2694 8.58566 14.0056 8.84938C13.7419 9.1131 13.5938 9.47079 13.5938 9.84375V9.84375ZM15.7031 13.125H14.2969C14.168 13.125 14.0625 13.2305 14.0625 13.3594V21.3281C14.0625 21.457 14.168 21.5625 14.2969 21.5625H15.7031C15.832 21.5625 15.9375 21.457 15.9375 21.3281V13.3594C15.9375 13.2305 15.832 13.125 15.7031 13.125Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="375" viewBox="0 0 375 375" height="375" version="1.0"><defs><clipPath id="a"><path d="M 73.445312 66 L 301 66 L 301 308.839844 L 73.445312 308.839844 Z M 73.445312 66"/></clipPath></defs><path fill="#FFF" d="M 187.5 0 C 83.945312 0 0 83.945312 0 187.5 C 0 291.054688 83.945312 375 187.5 375 C 291.054688 375 375 291.054688 375 187.5 C 375 83.945312 291.054688 0 187.5 0 Z M 187.5 0"/><g clip-path="url(#a)"><path fill="#4AD168" d="M 88.226562 152.753906 C 78.492188 138.632812 73.621094 118.523438 73.621094 92.417969 L 73.621094 66.613281 L 143.804688 66.613281 L 276.328125 211.664062 C 283.808594 219.96875 288.796875 226.96875 291.289062 232.664062 C 293.785156 238.359375 295.625 243.578125 296.8125 248.324219 C 299.425781 257.816406 300.730469 269.503906 300.730469 283.386719 L 300.730469 308.835938 L 232.507812 308.835938 L 88.761719 152.753906 Z M 223.601562 142.609375 C 223.601562 109.980469 228.648438 88.742188 238.742188 78.894531 C 244.085938 73.671875 251.035156 70.351562 259.585938 68.925781 C 268.253906 67.382812 278.761719 66.613281 291.113281 66.613281 L 300.730469 66.613281 L 300.730469 94.734375 C 300.730469 120.003906 294.082031 136.914062 280.78125 145.457031 C 271.28125 151.625 255.308594 154.710938 232.867188 154.710938 L 223.601562 154.710938 Z M 73.621094 281.074219 C 73.621094 255.800781 80.273438 238.832031 93.570312 230.171875 C 103.070312 224.121094 119.042969 221.09375 141.488281 221.09375 L 150.75 221.09375 L 150.75 233.199219 C 150.75 266.183594 145.703125 287.363281 135.609375 296.734375 C 128.722656 303.140625 118.6875 306.9375 105.507812 308.125 C 98.855469 308.601562 91.433594 308.835938 83.242188 308.835938 L 73.621094 308.835938 Z M 73.621094 281.074219"/></g></svg>
|
||||
|
Before Width: | Height: | Size: 1.7 KiB |
@@ -1,3 +0,0 @@
|
||||
<svg width="60" height="50" viewBox="0 0 60 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M57.6854 3.09975C56.5653 1.69314 54.4815 0 50.7566 0C46.146 0 40.2851 3.0737 35.1276 8.20522C34.3722 8.93457 33.6949 9.66392 33.0437 10.4193V5.20966C33.0437 4.38065 32.7144 3.58559 32.1282 2.99939C31.542 2.41319 30.7469 2.08386 29.9179 2.08386C29.0889 2.08386 28.2938 2.41319 27.7076 2.99939C27.1214 3.58559 26.7921 4.38065 26.7921 5.20966V10.4193C26.1409 9.66392 25.4636 8.93457 24.7082 8.20522C19.5507 3.0737 13.6898 0 9.07926 0C5.35435 0 3.27048 1.69314 2.15041 3.09975C-1.28797 7.50191 -0.0116033 15.082 1.88992 22.636C3.32258 28.4187 6.31814 31.1538 9.13135 32.4041C8.40766 34.0087 8.03468 35.7493 8.03733 37.5096C8.03992 40.0481 8.81518 42.5258 10.26 44.6131C11.7049 46.7004 13.7509 48.2984 16.1259 49.1947C18.501 50.091 21.0927 50.2432 23.5563 49.6308C26.0199 49.0185 28.2388 47.6708 29.9179 45.7669C31.8971 48.0002 34.6097 49.4521 37.5658 49.8601C40.5219 50.2681 43.5265 49.6054 46.0366 47.9918C48.5468 46.3781 50.3971 43.9198 51.2531 41.0611C52.1092 38.2024 51.9146 35.1318 50.7045 32.4041C53.5177 31.1538 56.5132 28.4187 57.9459 22.636C59.8474 15.082 61.1238 7.50191 57.6854 3.09975V3.09975ZM20.5405 43.7612C18.9172 43.8013 17.3419 43.2082 16.1482 42.1074C14.9544 41.0066 14.2358 39.4846 14.1444 37.8633C14.053 36.2421 14.596 34.6489 15.6585 33.4209C16.721 32.1929 18.2197 31.4266 19.8372 31.284C20.2452 31.2419 20.6408 31.1192 21.0011 30.9231C21.3613 30.727 21.6791 30.4613 21.9359 30.1415C22.1927 29.8217 22.3835 29.4541 22.4972 29.06C22.6109 28.6659 22.6453 28.2531 22.5983 27.8456C22.5066 27.0244 22.0934 26.2728 21.449 25.7554C20.8047 25.238 19.9817 24.9968 19.16 25.0845C17.12 25.2999 15.1671 26.0255 13.4814 27.1944C11.4497 27.0121 9.10531 25.7097 7.93313 21.1252C6.0316 13.4409 5.74507 8.67409 7.09959 6.9549C7.25588 6.74651 7.62055 6.25159 9.07926 6.25159C11.9446 6.25159 16.477 8.83038 20.3061 12.6334C24.1352 16.4365 26.7921 20.9949 26.7921 23.9644V37.5096C26.7853 39.1655 26.1244 40.7516 24.9535 41.9225C23.7826 43.0935 22.1964 43.7543 20.5405 43.7612ZM51.9027 21.1252C50.7305 25.7097 48.3862 27.0121 46.3544 27.1944C44.6687 26.0255 42.7158 25.2999 40.6759 25.0845C40.2538 25.0083 39.8206 25.0198 39.4032 25.1182C38.9858 25.2166 38.5932 25.3999 38.2496 25.6566C37.9061 25.9133 37.619 26.2379 37.4063 26.6103C37.1936 26.9827 37.0598 27.3948 37.0133 27.8212C36.9667 28.2475 37.0084 28.6788 37.1356 29.0883C37.2629 29.4978 37.4731 29.8768 37.7531 30.2016C38.0331 30.5264 38.377 30.7901 38.7633 30.9763C39.1496 31.1626 39.5701 31.2673 39.9986 31.284C41.1968 31.4197 42.3302 31.899 43.2622 32.6642C44.1942 33.4294 44.885 34.4478 45.2514 35.5966C45.6177 36.7455 45.644 37.9758 45.327 39.1393C45.01 40.3027 44.3633 41.3497 43.4648 42.154C42.5663 42.9582 41.4544 43.4855 40.2631 43.6722C39.0718 43.8588 37.8519 43.697 36.7504 43.2061C35.649 42.7152 34.713 41.9163 34.0553 40.9055C33.3977 39.8948 33.0463 38.7154 33.0437 37.5096V23.9644C33.0437 20.9949 35.5964 16.5407 39.5297 12.6334C43.463 8.72618 47.8912 6.25159 50.7566 6.25159C52.2153 6.25159 52.5799 6.74651 52.7362 6.9549C54.0907 8.67409 53.8042 13.4409 51.9027 21.1252Z" fill="white"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.1 KiB |
3
src/assets/icons/logos/logo-dark.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="18" height="28" viewBox="0 0 18 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8.75681 15.5528C11.2466 15.5528 13.6945 15.4046 15.7077 15.1061C17.3289 14.8617 17.8407 13.6588 17.2929 11.9592L14.3091 2.55748C13.7602 0.817535 12.3597 0 10.429 0H7.07537C5.14471 0 3.74427 0.817535 3.19533 2.55748L0.211561 11.9592C-0.33625 13.6588 0.175541 14.8617 1.79669 15.1061C3.80993 15.4046 6.25783 15.5528 8.75681 15.5528ZM8.75681 13.6442C6.68101 13.6442 4.66866 13.5297 2.55012 13.2903C2.00748 13.233 1.93999 12.9054 2.11095 12.3403L4.93951 3.29897C5.23106 2.35365 6.00452 1.8974 7.07537 1.8974H10.429C11.4999 1.8974 12.2733 2.35365 12.5741 3.29897L15.3935 12.3403C15.5644 12.9054 15.497 13.233 14.9544 13.2903C12.8357 13.5297 10.8234 13.6442 8.75681 13.6442ZM7.71611 14.7115V27.2097H9.79031V14.7115H7.71611ZM3.65449 28H13.8499C14.3349 28 14.6668 27.6509 14.6668 27.1433C14.6668 26.2034 13.9005 25.5506 12.7489 25.5506H4.75548C3.60388 25.5506 2.84886 26.2034 2.84886 27.1433C2.84886 27.6509 3.16946 28 3.65449 28Z" fill="black"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
18
src/assets/icons/logos/logo-fill-dark.svg
Normal file
@@ -0,0 +1,18 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14 27.6441C21.5354 27.6441 27.6441 21.5354 27.6441 14C27.6441 6.46458 21.5354 0.355927 14 0.355927C6.46461 0.355927 0.355957 6.46458 0.355957 14C0.355957 21.5354 6.46461 27.6441 14 27.6441Z" fill="black"/>
|
||||
<g filter="url(#filter0_d_16_11)">
|
||||
<path d="M14.1221 14.9372C15.6529 14.9372 17.1518 14.8463 18.3804 14.6644C19.3548 14.517 19.66 13.7979 19.329 12.7716L17.499 7.00511C17.1672 5.94913 16.3182 5.45764 15.1465 5.45764H13.0908C11.9191 5.45764 11.07 5.94913 10.7383 7.00511L8.90825 12.7716C8.57724 13.7979 8.88246 14.517 9.85688 14.6644C11.0855 14.8463 12.5856 14.9372 14.1221 14.9372ZM13.4838 14.451V22.1166H14.756V14.451H13.4838ZM10.9926 22.6014H17.2447C17.5434 22.6014 17.7469 22.3873 17.7469 22.0759C17.7469 21.4994 17.277 21.099 16.5694 21.099H11.6679C10.9603 21.099 10.4973 21.4994 10.4973 22.0759C10.4973 22.3873 10.6939 22.6014 10.9926 22.6014Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_16_11" x="4.77966" y="2.45764" width="18.678" height="25.1438" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="1"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.25 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_16_11"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_16_11" result="shape"/>
|
||||
</filter>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
23
src/assets/icons/logos/logo-fill.light.svg
Normal file
@@ -0,0 +1,23 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_14_3)">
|
||||
<path d="M14 27.6441C21.5354 27.6441 27.6441 21.5354 27.6441 14C27.6441 6.46458 21.5354 0.355927 14 0.355927C6.46461 0.355927 0.355957 6.46458 0.355957 14C0.355957 21.5354 6.46461 27.6441 14 27.6441Z" fill="white"/>
|
||||
<g filter="url(#filter0_d_14_3)">
|
||||
<path d="M14.1221 14.9372C15.6529 14.9372 17.1518 14.8463 18.3804 14.6644C19.3548 14.517 19.66 13.7979 19.329 12.7716L17.499 7.00511C17.1672 5.94913 16.3182 5.45764 15.1465 5.45764H13.0908C11.9191 5.45764 11.07 5.94913 10.7383 7.00511L8.90825 12.7716C8.57724 13.7979 8.88246 14.517 9.85688 14.6644C11.0855 14.8463 12.5856 14.9372 14.1221 14.9372ZM13.4838 14.451V22.1166H14.756V14.451H13.4838ZM10.9926 22.6014H17.2447C17.5434 22.6014 17.7469 22.3873 17.7469 22.0759C17.7469 21.4994 17.277 21.099 16.5694 21.099H11.6679C10.9603 21.099 10.4973 21.4994 10.4973 22.0759C10.4973 22.3873 10.6939 22.6014 10.9926 22.6014Z" fill="black"/>
|
||||
</g>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_14_3" x="4.77966" y="5.45764" width="18.678" height="25.1438" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="4"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14_3"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14_3" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="clip0_14_3">
|
||||
<rect width="28" height="28" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
3
src/assets/icons/logos/logo-light.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="18" height="28" viewBox="0 0 18 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8.75681 15.5528C11.2466 15.5528 13.6945 15.4046 15.7077 15.1061C17.3289 14.8617 17.8407 13.6588 17.2929 11.9592L14.3091 2.55748C13.7602 0.817535 12.3597 0 10.429 0H7.07537C5.14471 0 3.74427 0.817535 3.19533 2.55748L0.211561 11.9592C-0.33625 13.6588 0.175541 14.8617 1.79669 15.1061C3.80993 15.4046 6.25783 15.5528 8.75681 15.5528ZM8.75681 13.6442C6.68101 13.6442 4.66866 13.5297 2.55012 13.2903C2.00748 13.233 1.93999 12.9054 2.11095 12.3403L4.93951 3.29897C5.23106 2.35365 6.00452 1.8974 7.07537 1.8974H10.429C11.4999 1.8974 12.2733 2.35365 12.5741 3.29897L15.3935 12.3403C15.5644 12.9054 15.497 13.233 14.9544 13.2903C12.8357 13.5297 10.8234 13.6442 8.75681 13.6442ZM7.71611 14.7115V27.2097H9.79031V14.7115H7.71611ZM3.65449 28H13.8499C14.3349 28 14.6668 27.6509 14.6668 27.1433C14.6668 26.2034 13.9005 25.5506 12.7489 25.5506H4.75548C3.60388 25.5506 2.84886 26.2034 2.84886 27.1433C2.84886 27.6509 3.16946 28 3.65449 28Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
4
src/assets/icons/logos/logo-rounded-dark.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M15 28.6441C22.5354 28.6441 28.6441 22.5354 28.6441 15C28.6441 7.46458 22.5354 1.35593 15 1.35593C7.46461 1.35593 1.35596 7.46458 1.35596 15C1.35596 22.5354 7.46461 28.6441 15 28.6441Z" stroke="black"/>
|
||||
<path d="M15.1214 15.9451C16.6402 15.9451 18.1335 15.8547 19.3616 15.6726C20.3505 15.5235 20.6627 14.7897 20.3286 13.7529L18.5084 8.01774C18.1736 6.95635 17.3193 6.45764 16.1415 6.45764H14.0957C12.918 6.45764 12.0637 6.95635 11.7289 8.01774L9.90872 13.7529C9.57455 14.7897 9.88675 15.5235 10.8757 15.6726C12.1038 15.8547 13.597 15.9451 15.1214 15.9451ZM15.1214 14.7808C13.8552 14.7808 12.6276 14.711 11.3353 14.5649C11.0043 14.53 10.9631 14.3301 11.0674 13.9854L12.7928 8.47006C12.9707 7.8934 13.4425 7.61509 14.0957 7.61509H16.1415C16.7947 7.61509 17.2666 7.8934 17.4501 8.47006L19.1699 13.9854C19.2742 14.3301 19.233 14.53 18.902 14.5649C17.6096 14.711 16.3821 14.7808 15.1214 14.7808ZM14.4866 15.4319V23.056H15.7519V15.4319H14.4866ZM12.009 23.538H18.2283C18.5242 23.538 18.7266 23.3251 18.7266 23.0154C18.7266 22.4421 18.2592 22.0439 17.5567 22.0439H12.6806C11.9781 22.0439 11.5175 22.4421 11.5175 23.0154C11.5175 23.3251 11.7131 23.538 12.009 23.538Z" fill="black"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
4
src/assets/icons/logos/logo-rounded-light.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M15 28.6441C22.5354 28.6441 28.6441 22.5354 28.6441 15C28.6441 7.46458 22.5354 1.35593 15 1.35593C7.46461 1.35593 1.35596 7.46458 1.35596 15C1.35596 22.5354 7.46461 28.6441 15 28.6441Z" stroke="white"/>
|
||||
<path d="M15.1214 15.9451C16.6402 15.9451 18.1335 15.8547 19.3616 15.6726C20.3505 15.5235 20.6627 14.7897 20.3286 13.7529L18.5084 8.01774C18.1736 6.95635 17.3193 6.45764 16.1415 6.45764H14.0957C12.918 6.45764 12.0637 6.95635 11.7289 8.01774L9.90872 13.7529C9.57455 14.7897 9.88675 15.5235 10.8757 15.6726C12.1038 15.8547 13.597 15.9451 15.1214 15.9451ZM15.1214 14.7808C13.8552 14.7808 12.6276 14.711 11.3353 14.5649C11.0043 14.53 10.9631 14.3301 11.0674 13.9854L12.7928 8.47006C12.9707 7.8934 13.4425 7.61509 14.0957 7.61509H16.1415C16.7947 7.61509 17.2666 7.8934 17.4501 8.47006L19.1699 13.9854C19.2742 14.3301 19.233 14.53 18.902 14.5649C17.6096 14.711 16.3821 14.7808 15.1214 14.7808ZM14.4866 15.4319V23.056H15.7519V15.4319H14.4866ZM12.009 23.538H18.2283C18.5242 23.538 18.7266 23.3251 18.7266 23.0154C18.7266 22.4421 18.2592 22.0439 17.5567 22.0439H12.6806C11.9781 22.0439 11.5175 22.4421 11.5175 23.0154C11.5175 23.3251 11.7131 23.538 12.009 23.538Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
4
src/assets/icons/lyrics.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8.39687 27.1131C9.04913 27.1131 9.53405 26.7937 10.3459 26.0807L14.3572 22.5294H21.4504C24.9784 22.5294 26.9547 20.503 26.9547 17.0251V7.93679C26.9547 4.45891 24.9784 2.4325 21.4504 2.4325H6.50218C2.97625 2.4325 1 4.4493 1 7.93679V17.0251C1 20.5126 3.02476 22.5294 6.42836 22.5294H6.9107V25.4181C6.9107 26.4533 7.45422 27.1131 8.39687 27.1131ZM8.96593 24.532V21.1863C8.96593 20.4986 8.67132 20.2335 8.01319 20.2335H6.56757C4.35225 20.2335 3.29592 19.1066 3.29592 16.9523V8.00007C3.29592 5.84569 4.35225 4.72842 6.56757 4.72842H21.3871C23.5928 4.72842 24.6588 5.84569 24.6588 8.00007V16.9523C24.6588 19.1066 23.5928 20.2335 21.3871 20.2335H14.2321C13.521 20.2335 13.1823 20.3484 12.6864 20.8497L8.96593 24.532Z" fill="currentColor"/>
|
||||
<path d="M8.2771 11.2555C8.2771 12.6189 9.13022 13.6523 10.4502 13.6523C10.9762 13.6523 11.4768 13.547 11.7878 13.1582H11.9174C11.5281 14.0908 10.6426 14.7372 9.78389 14.9491C9.37561 15.0578 9.23194 15.2495 9.23194 15.5329C9.23194 15.8427 9.4928 16.0804 9.83147 16.0804C11.0784 16.0804 13.4024 14.5982 13.4024 11.7334C13.4024 10.0933 12.3606 8.83142 10.776 8.83142C9.34444 8.83142 8.2771 9.8315 8.2771 11.2555ZM14.6327 11.2555C14.6327 12.6189 15.4837 13.6523 16.8058 13.6523C17.3317 13.6523 17.8302 13.547 18.1412 13.1582H18.273C17.8837 14.0908 16.9982 14.7372 16.1394 14.9491C15.7387 15.0578 15.5875 15.2495 15.5875 15.5329C15.5875 15.8427 15.8462 16.0804 16.1849 16.0804C17.4318 16.0804 19.7559 14.5982 19.7559 11.7334C19.7559 10.0933 18.7141 8.83142 17.1316 8.83142C15.6979 8.83142 14.6327 9.8315 14.6327 11.2555Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
4
src/assets/icons/lyrics2.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8.39687 27.1131C9.04913 27.1131 9.53405 26.7937 10.3459 26.0807L14.3572 22.5294H21.4504C24.9784 22.5294 26.9547 20.503 26.9547 17.0251V7.93679C26.9547 4.45891 24.9784 2.4325 21.4504 2.4325H6.50218C2.97625 2.4325 1 4.4493 1 7.93679V17.0251C1 20.5126 3.02476 22.5294 6.42836 22.5294H6.9107V25.4181C6.9107 26.4533 7.45422 27.1131 8.39687 27.1131ZM8.96593 24.532V21.1863C8.96593 20.4986 8.67132 20.2335 8.01319 20.2335H6.56757C4.35225 20.2335 3.29592 19.1066 3.29592 16.9523V8.00007C3.29592 5.84569 4.35225 4.72842 6.56757 4.72842H21.3871C23.5928 4.72842 24.6588 5.84569 24.6588 8.00007V16.9523C24.6588 19.1066 23.5928 20.2335 21.3871 20.2335H14.2321C13.521 20.2335 13.1823 20.3484 12.6864 20.8497L8.96593 24.532Z" fill="currentColor"/>
|
||||
<path d="M8.2771 11.2555C8.2771 12.6189 9.13022 13.6523 10.4502 13.6523C10.9762 13.6523 11.4768 13.547 11.7878 13.1582H11.9174C11.5281 14.0908 10.6426 14.7372 9.78389 14.9491C9.37561 15.0578 9.23194 15.2495 9.23194 15.5329C9.23194 15.8427 9.4928 16.0804 9.83147 16.0804C11.0784 16.0804 13.4024 14.5982 13.4024 11.7334C13.4024 10.0933 12.3606 8.83142 10.776 8.83142C9.34444 8.83142 8.2771 9.8315 8.2771 11.2555ZM14.6327 11.2555C14.6327 12.6189 15.4837 13.6523 16.8058 13.6523C17.3317 13.6523 17.8302 13.547 18.1412 13.1582H18.273C17.8837 14.0908 16.9982 14.7372 16.1394 14.9491C15.7387 15.0578 15.5875 15.2495 15.5875 15.5329C15.5875 15.8427 15.8462 16.0804 16.1849 16.0804C17.4318 16.0804 19.7559 14.5982 19.7559 11.7334C19.7559 10.0933 18.7141 8.83142 17.1316 8.83142C15.6979 8.83142 14.6327 9.8315 14.6327 11.2555Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -1,5 +1,5 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="7.04999" cy="12.0498" r="1.25" fill="white"/>
|
||||
<circle cx="12.05" cy="12.0498" r="1.25" fill="white"/>
|
||||
<circle cx="17.05" cy="12.0498" r="1.25" fill="white"/>
|
||||
</svg>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="7.04999" cy="12.0498" r="1.25" fill="currentColor" />
|
||||
<circle cx="12.05" cy="12.0498" r="1.25" fill="currentColor" />
|
||||
<circle cx="17.05" cy="12.0498" r="1.25" fill="currentColor" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 273 B After Width: | Height: | Size: 316 B |
3
src/assets/icons/pin.fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="28" height="29" viewBox="0 0 28 29" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5 17.816C5 18.8775 5.71648 19.5801 6.82812 19.5801H13.0962V25.1161C13.0962 26.7698 13.9348 28.4269 14.2573 28.4269C14.5723 28.4269 15.4109 26.7698 15.4109 25.1161V19.5801H21.6791C22.7907 19.5801 23.5072 18.8775 23.5072 17.816C23.5072 15.2991 21.5035 12.7005 18.1937 11.482L17.8091 6.03984C19.5601 5.04609 20.9431 3.95086 21.5483 3.17625C21.8677 2.76515 22.0285 2.3393 22.0285 1.96242C22.0285 1.18852 21.4334 0.621094 20.5583 0.621094H7.95851C7.07375 0.621094 6.48828 1.18852 6.48828 1.96242C6.48828 2.3393 6.63945 2.76515 6.95891 3.17625C7.56406 3.95086 8.94711 5.04609 10.6981 6.03984L10.3135 11.482C7.00367 12.7005 5 15.2991 5 17.816Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 773 B |
@@ -1,3 +1,3 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.803 4.385C14.766 2.354 17.45 1.889 19.039 3.478L24.522 8.961C26.111 10.551 25.646 13.234 23.615 14.196L18.225 16.75C17.8189 16.9424 17.5024 17.2836 17.341 17.703L15.752 21.833C15.6474 22.105 15.4764 22.3466 15.2547 22.5359C15.033 22.7251 14.7676 22.8559 14.4825 22.9165C14.1974 22.9771 13.9016 22.9656 13.6221 22.8829C13.3426 22.8002 13.0882 22.649 12.882 22.443L9.75 19.31L4.06 25H3V23.94L8.69 18.25L5.558 15.118C5.352 14.9118 5.20076 14.6575 5.118 14.378C5.03523 14.0986 5.02357 13.8029 5.08406 13.5178C5.14456 13.2327 5.2753 12.9673 5.46441 12.7455C5.65353 12.5238 5.89503 12.3527 6.167 12.248L10.297 10.659C10.717 10.498 11.058 10.181 11.25 9.775L13.803 4.385V4.385ZM17.978 4.539C17.7797 4.34069 17.5367 4.19293 17.2694 4.10817C17.002 4.02341 16.7183 4.00414 16.442 4.05198C16.1656 4.09981 15.9048 4.21335 15.6816 4.38304C15.4583 4.55272 15.2791 4.77357 15.159 5.027L12.606 10.417C12.2487 11.1713 11.615 11.7592 10.836 12.059L6.706 13.648C6.66707 13.6629 6.63247 13.6872 6.60535 13.7188C6.57822 13.7505 6.55944 13.7884 6.55069 13.8291C6.54195 13.8698 6.54353 13.9121 6.55528 13.9521C6.56704 13.9921 6.5886 14.0285 6.618 14.058L13.942 21.382C13.9715 21.4114 14.0078 21.433 14.0477 21.4449C14.0876 21.4567 14.1299 21.4583 14.1706 21.4497C14.2113 21.4411 14.2492 21.4224 14.2809 21.3954C14.3126 21.3684 14.337 21.3339 14.352 21.295L15.941 17.165C16.2405 16.3857 16.8285 15.7515 17.583 15.394L22.973 12.841C23.2266 12.721 23.4476 12.5417 23.6174 12.3184C23.7873 12.095 23.9009 11.8341 23.9487 11.5576C23.9966 11.2812 23.9772 10.9972 23.8923 10.7298C23.8075 10.4624 23.6595 10.2193 23.461 10.021L17.978 4.54V4.539Z" fill="white"/>
|
||||
<svg width="28" height="29" viewBox="0 0 28 29" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.2573 28.4269C14.5723 28.4269 15.4109 26.7698 15.4109 25.1161V18.5306H13.0962V25.1161C13.0962 26.7698 13.9348 28.4269 14.2573 28.4269ZM6.82812 19.5801H21.6791C22.7907 19.5801 23.5072 18.8775 23.5072 17.816C23.5072 14.2737 19.5411 10.7869 14.2573 10.7869C8.96609 10.7869 5 14.2737 5 17.816C5 18.8775 5.71648 19.5801 6.82812 19.5801ZM7.36437 17.5997C7.12648 17.5997 7.02405 17.4621 7.06671 17.1858C7.34983 15.0869 10.1063 12.7066 14.2573 12.7066C18.4009 12.7066 21.1573 15.0869 21.4405 17.1858C21.4831 17.4621 21.3807 17.5997 21.1428 17.5997H7.36437ZM6.48828 1.96242C6.48828 2.32969 6.63945 2.75554 6.95891 3.16664C7.55445 3.95086 8.94711 5.04609 10.4511 6.03984L10.0133 12.4003H12.1034L12.5434 5.10305C12.5551 4.90735 12.519 4.81922 12.3702 4.74375C10.779 3.92156 9.54404 2.97328 9.3617 2.71781C9.26584 2.58023 9.34694 2.48015 9.47163 2.48015H19.0355C19.1602 2.48015 19.2413 2.58023 19.1455 2.71781C18.9631 2.97328 17.7282 3.92156 16.137 4.74375C15.9978 4.81922 15.9521 4.90735 15.9734 5.10305L16.4037 12.4003H18.4939L18.0561 6.03984C19.5697 5.04609 20.9527 3.95086 21.5483 3.16664C21.8773 2.75554 22.0285 2.32969 22.0285 1.96242C22.0285 1.18852 21.4334 0.621094 20.5583 0.621094H7.95851C7.07375 0.621094 6.48828 1.18852 6.48828 1.96242Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.4 KiB |
@@ -1,3 +1,3 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M9.3418 21.3711C9.71094 21.3711 10.0361 21.2393 10.4404 21.002L20.8203 14.999C21.5762 14.5596 21.8926 14.2168 21.8926 13.6631C21.8926 13.1094 21.5762 12.7754 20.8203 12.3271L10.4404 6.32422C10.0361 6.08691 9.71094 5.95508 9.3418 5.95508C8.62109 5.95508 8.11133 6.50879 8.11133 7.37891V19.9473C8.11133 20.8262 8.62109 21.3711 9.3418 21.3711Z" fill="#F2F2F2"/>
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M9.3418 21.3711C9.71094 21.3711 10.0361 21.2393 10.4404 21.002L20.8203 14.999C21.5762 14.5596 21.8926 14.2168 21.8926 13.6631C21.8926 13.1094 21.5762 12.7754 20.8203 12.3271L10.4404 6.32422C10.0361 6.08691 9.71094 5.95508 9.3418 5.95508C8.62109 5.95508 8.11133 6.50879 8.11133 7.37891V19.9473C8.11133 20.8262 8.62109 21.3711 9.3418 21.3711Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 471 B After Width: | Height: | Size: 484 B |
@@ -1 +1,12 @@
|
||||
<svg fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="28px" height="28px" baseProfile="basic"><path d="M51,48H25c-1.104,0-2-0.896-2-2s0.896-2,2-2h26c1.104,0,2,0.896,2,2S52.104,48,51,48z"/><path d="M16.356,45.919c1.121,0.082,1.962,1.032,1.962,2.222c0,1.647-1.524,2.816-3.678,2.816c-1.9,0-3.391-1.032-3.391-2.201 c0-0.52,0.362-0.889,0.861-0.889c0.328,0,0.602,0.157,0.909,0.54c0.417,0.561,0.957,0.848,1.62,0.848c0.902,0,1.49-0.472,1.49-1.203 c0-0.725-0.595-1.217-1.483-1.217h-0.554c-0.472,0-0.82-0.362-0.82-0.861c0-0.479,0.342-0.848,0.82-0.848h0.533 c0.738,0,1.285-0.465,1.285-1.101s-0.533-1.073-1.299-1.073c-0.588,0-1.053,0.26-1.47,0.813c-0.246,0.321-0.533,0.465-0.889,0.465 c-0.526,0-0.902-0.355-0.902-0.861c0-1.128,1.456-2.119,3.302-2.119c1.996,0,3.391,1.032,3.391,2.502c0,1.005-0.745,1.9-1.688,2.017 V45.919z"/><path d="M51,34H25c-1.104,0-2-0.896-2-2s0.896-2,2-2h26c1.104,0,2,0.896,2,2S52.104,34,51,34z"/><path d="M17.345,35.209c0.636,0,1.032,0.342,1.032,0.902c0,0.554-0.39,0.889-1.032,0.889h-4.676c-0.663,0-1.101-0.376-1.101-0.95 c0-0.41,0.226-0.766,0.909-1.436l2.365-2.434c0.731-0.745,1.039-1.237,1.039-1.757c0-0.67-0.485-1.121-1.203-1.121 c-0.581,0-1.005,0.294-1.306,0.902c-0.301,0.465-0.561,0.643-0.957,0.643c-0.54,0-0.916-0.369-0.916-0.889 c0-1.271,1.436-2.461,3.302-2.461c1.88,0,3.254,1.148,3.254,2.714c0,0.964-0.465,1.812-1.606,2.933l-1.948,1.969v0.096H17.345z"/><path d="M51,20.019H25c-1.104,0-2-0.896-2-2s0.896-2,2-2h26c1.104,0,2,0.896,2,2S52.104,20.019,51,20.019z"/><path d="M14.765,21.797v-6.146h-0.027l-0.718,0.485c-0.355,0.226-0.547,0.294-0.772,0.294c-0.451,0-0.779-0.328-0.779-0.779 c0-0.335,0.205-0.636,0.608-0.889l1.114-0.745c0.533-0.342,1.019-0.499,1.477-0.499c0.8,0,1.333,0.54,1.333,1.374v6.904 C17,22.569,16.597,23,15.886,23C15.168,23,14.765,22.563,14.765,21.797z"/></svg>
|
||||
<svg fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="28px" height="28px"
|
||||
baseProfile="basic">
|
||||
<path d="M51,48H25c-1.104,0-2-0.896-2-2s0.896-2,2-2h26c1.104,0,2,0.896,2,2S52.104,48,51,48z" />
|
||||
<path
|
||||
d="M16.356,45.919c1.121,0.082,1.962,1.032,1.962,2.222c0,1.647-1.524,2.816-3.678,2.816c-1.9,0-3.391-1.032-3.391-2.201 c0-0.52,0.362-0.889,0.861-0.889c0.328,0,0.602,0.157,0.909,0.54c0.417,0.561,0.957,0.848,1.62,0.848c0.902,0,1.49-0.472,1.49-1.203 c0-0.725-0.595-1.217-1.483-1.217h-0.554c-0.472,0-0.82-0.362-0.82-0.861c0-0.479,0.342-0.848,0.82-0.848h0.533 c0.738,0,1.285-0.465,1.285-1.101s-0.533-1.073-1.299-1.073c-0.588,0-1.053,0.26-1.47,0.813c-0.246,0.321-0.533,0.465-0.889,0.465 c-0.526,0-0.902-0.355-0.902-0.861c0-1.128,1.456-2.119,3.302-2.119c1.996,0,3.391,1.032,3.391,2.502c0,1.005-0.745,1.9-1.688,2.017 V45.919z" />
|
||||
<path d="M51,34H25c-1.104,0-2-0.896-2-2s0.896-2,2-2h26c1.104,0,2,0.896,2,2S52.104,34,51,34z" />
|
||||
<path
|
||||
d="M17.345,35.209c0.636,0,1.032,0.342,1.032,0.902c0,0.554-0.39,0.889-1.032,0.889h-4.676c-0.663,0-1.101-0.376-1.101-0.95 c0-0.41,0.226-0.766,0.909-1.436l2.365-2.434c0.731-0.745,1.039-1.237,1.039-1.757c0-0.67-0.485-1.121-1.203-1.121 c-0.581,0-1.005,0.294-1.306,0.902c-0.301,0.465-0.561,0.643-0.957,0.643c-0.54,0-0.916-0.369-0.916-0.889 c0-1.271,1.436-2.461,3.302-2.461c1.88,0,3.254,1.148,3.254,2.714c0,0.964-0.465,1.812-1.606,2.933l-1.948,1.969v0.096H17.345z" />
|
||||
<path d="M51,20.019H25c-1.104,0-2-0.896-2-2s0.896-2,2-2h26c1.104,0,2,0.896,2,2S52.104,20.019,51,20.019z" />
|
||||
<path
|
||||
d="M14.765,21.797v-6.146h-0.027l-0.718,0.485c-0.355,0.226-0.547,0.294-0.772,0.294c-0.451,0-0.779-0.328-0.779-0.779 c0-0.335,0.205-0.636,0.608-0.889l1.114-0.745c0.533-0.342,1.019-0.499,1.477-0.499c0.8,0,1.333,0.54,1.333,1.374v6.904 C17,22.569,16.597,23,15.886,23C15.168,23,14.765,22.563,14.765,21.797z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
5
src/assets/icons/radio.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg width="28" height="30" viewBox="0 0 28 30" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M21.367 13.6066C22.377 13.5853 23.1931 12.7884 23.1931 11.7944C23.1931 10.7887 22.3749 9.97054 21.367 9.95671C20.3613 9.945 19.5314 10.7866 19.5314 11.7944C19.5314 12.7905 20.3613 13.6205 21.367 13.6066ZM21.367 18.829C22.3727 18.829 23.1931 17.997 23.1931 16.9891C23.1931 15.9813 22.3749 15.1631 21.367 15.1631C20.3613 15.1631 19.5314 15.9855 19.5314 16.9891C19.5314 17.9948 20.3613 18.829 21.367 18.829ZM11.1511 11.3658C11.6283 11.3658 12.0117 10.9631 12.0117 10.4625C12.0117 9.98742 11.6262 9.59226 11.1511 9.59226C10.6739 9.59226 10.2787 9.98742 10.2787 10.4625C10.2787 10.9631 10.6739 11.3658 11.1511 11.3658ZM13.9634 12.1671C14.4598 12.1671 14.8357 11.7644 14.8357 11.2852C14.8357 10.7866 14.4619 10.4032 13.9634 10.4032C13.4841 10.4032 13.1145 10.7866 13.1145 11.2852C13.1145 11.7644 13.4862 12.1671 13.9634 12.1671ZM16.0873 14.2024C16.5687 14.2024 16.9734 13.819 16.9734 13.3418C16.9734 12.8412 16.5687 12.4364 16.0873 12.4364C15.6122 12.4364 15.2309 12.8412 15.2309 13.3418C15.2309 13.819 15.6122 14.2024 16.0873 14.2024ZM16.8087 16.9327C17.2859 16.9327 17.6693 16.5396 17.6693 16.0624C17.6693 15.5756 17.2859 15.1922 16.8087 15.1922C16.3219 15.1922 15.9384 15.5756 15.9384 16.0624C15.9384 16.5396 16.3219 16.9327 16.8087 16.9327ZM16.0873 19.6767C16.5666 19.6767 16.9734 19.272 16.9734 18.7831C16.9734 18.2963 16.5687 17.9128 16.0873 17.9128C15.6122 17.9128 15.2309 18.2963 15.2309 18.7831C15.2309 19.2741 15.6122 19.6767 16.0873 19.6767ZM13.9634 21.7697C14.4619 21.7697 14.8357 21.3766 14.8357 20.8877C14.8357 20.4084 14.4598 20.0037 13.9634 20.0037C13.4862 20.0037 13.1145 20.4084 13.1145 20.8877C13.1145 21.3766 13.4841 21.7697 13.9634 21.7697ZM11.1511 22.6287C11.6262 22.6287 12.0117 22.2335 12.0117 21.7584C12.0117 21.2578 11.6283 20.8531 11.1511 20.8531C10.6739 20.8531 10.2787 21.2578 10.2787 21.7584C10.2787 22.2335 10.6739 22.6287 11.1511 22.6287ZM8.3271 21.7697C8.80429 21.7697 9.17601 21.3766 9.17601 20.8877C9.17601 20.4084 8.80218 20.0037 8.3271 20.0037C7.82859 20.0037 7.45476 20.4084 7.45476 20.8877C7.45476 21.3766 7.82648 21.7697 8.3271 21.7697ZM6.21069 19.6767C6.68577 19.6767 7.0596 19.2741 7.0596 18.7831C7.0596 18.2963 6.68577 17.9128 6.21069 17.9128C5.7239 17.9128 5.31913 18.2963 5.31913 18.7831C5.31913 19.272 5.7239 19.6767 6.21069 19.6767ZM5.4914 16.9327C5.96858 16.9327 6.35202 16.5396 6.35202 16.0624C6.35202 15.5756 5.96858 15.1922 5.4914 15.1922C5.0121 15.1922 4.62116 15.5756 4.62116 16.0624C4.62116 16.5396 5.0121 16.9327 5.4914 16.9327ZM6.21069 14.2024C6.68577 14.2024 7.0596 13.819 7.0596 13.3418C7.0596 12.8412 6.68577 12.4364 6.21069 12.4364C5.7239 12.4364 5.31913 12.8412 5.31913 13.3418C5.31913 13.819 5.7239 14.2024 6.21069 14.2024ZM8.3271 12.1671C8.80218 12.1671 9.17601 11.7644 9.17601 11.2852C9.17601 10.7866 8.80429 10.4032 8.3271 10.4032C7.82648 10.4032 7.45476 10.7866 7.45476 11.2852C7.45476 11.7644 7.82859 12.1671 8.3271 12.1671ZM11.1511 14.2601C11.6283 14.2601 12.0117 13.867 12.0117 13.3898C12.0117 12.8988 11.6283 12.4941 11.1511 12.4941C10.6739 12.4941 10.2787 12.8988 10.2787 13.3898C10.2787 13.867 10.6739 14.2601 11.1511 14.2601ZM13.7728 15.4003C14.2596 15.4003 14.6334 14.9955 14.6334 14.528C14.6334 14.0508 14.2596 13.6556 13.7728 13.6556C13.2977 13.6556 12.8909 14.0529 12.8909 14.528C12.8909 14.9934 13.2977 15.4003 13.7728 15.4003ZM13.7728 18.5674C14.2617 18.5674 14.6334 18.1819 14.6334 17.7047C14.6334 17.2062 14.2617 16.8131 13.7728 16.8131C13.2956 16.8131 12.8909 17.2062 12.8909 17.7047C12.8909 18.1819 13.2956 18.5674 13.7728 18.5674ZM11.1511 19.7248C11.6262 19.7248 12.0117 19.3179 12.0117 18.8311C12.0117 18.3539 11.6283 17.9609 11.1511 17.9609C10.6739 17.9609 10.2787 18.3539 10.2787 18.8311C10.2787 19.3179 10.6739 19.7248 11.1511 19.7248ZM8.51554 18.5674C8.99273 18.5674 9.39749 18.1819 9.39749 17.7047C9.39749 17.2062 8.99273 16.8131 8.51554 16.8131C8.03835 16.8131 7.65492 17.2062 7.65492 17.7047C7.65492 18.1819 8.03835 18.5674 8.51554 18.5674ZM8.51554 15.4003C8.99062 15.4003 9.39749 14.9934 9.39749 14.528C9.39749 14.0529 8.99062 13.6556 8.51554 13.6556C8.04046 13.6556 7.65492 14.0508 7.65492 14.528C7.65492 14.9955 8.04046 15.4003 8.51554 15.4003ZM11.1511 16.9807C11.6283 16.9807 12.0117 16.5877 12.0117 16.1105C12.0117 15.6333 11.6283 15.2402 11.1511 15.2402C10.6739 15.2402 10.2787 15.6333 10.2787 16.1105C10.2787 16.5877 10.6739 16.9807 11.1511 16.9807ZM22.444 7.38796L23.0962 5.33649L6.82734 0.0527401C6.26344 -0.132415 5.64844 0.186802 5.47711 0.746487C5.28985 1.30406 5.60696 1.91906 6.16664 2.10632L22.444 7.38796ZM3.84421 27.0553H23.9109C26.4499 27.0553 27.7552 25.7597 27.7552 23.2591V8.98734C27.7552 6.48469 26.4499 5.18157 23.9109 5.18157H3.84421C1.31484 5.18157 0 6.48469 0 8.98734V23.2591C0 25.7597 1.31484 27.0553 3.84421 27.0553ZM3.97733 24.7594C2.88772 24.7594 2.29592 24.1952 2.29592 23.0566V9.18773C2.29592 8.04913 2.88772 7.47749 3.97733 7.47749H23.7778C24.8578 7.47749 25.4592 8.04913 25.4592 9.18773V23.0566C25.4592 24.1952 24.8578 24.7594 23.7778 24.7594H3.97733Z"
|
||||
fill="currentColor" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.0 KiB |
3
src/assets/icons/reload.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4 15.007C4 20.8158 8.66992 25.4899 14.4712 25.4899C20.2703 25.4899 24.9306 20.8158 24.9306 15.007C24.9306 14.318 24.4478 13.8277 23.7597 13.8277C23.0929 13.8277 22.641 14.318 22.641 15.007C22.641 19.5471 19.0038 23.194 14.4712 23.194C9.93647 23.194 6.29592 19.5471 6.29592 15.007C6.29592 10.4428 9.90694 6.81608 14.4353 6.81608C15.2015 6.81608 15.9196 6.87584 16.5203 7.01038L13.3265 10.1691C13.1233 10.384 13.0042 10.6437 13.0042 10.9488C13.0042 11.5912 13.4913 12.0762 14.1241 12.0762C14.4592 12.0762 14.7262 11.9676 14.924 11.7581L19.7373 6.90866C19.9862 6.66936 20.0915 6.38858 20.0915 6.06421C20.0915 5.75578 19.967 5.44945 19.7373 5.22187L14.924 0.333982C14.7241 0.110624 14.4496 0 14.1241 0C13.4913 0 13.0042 0.508356 13.0042 1.15288C13.0042 1.45804 13.1233 1.71772 13.3169 1.93264L16.1514 4.72992C15.6327 4.63172 15.0426 4.56445 14.4353 4.56445C8.64039 4.56445 4 9.20367 4 15.007Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@@ -1,3 +1,3 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.5322 19.0332C13.9297 19.0332 15.2393 18.6113 16.3291 17.8906L20.1787 21.749C20.4336 21.9951 20.7588 22.1182 21.1104 22.1182C21.8398 22.1182 22.376 21.5469 22.376 20.8262C22.376 20.4922 22.2617 20.167 22.0156 19.9209L18.1924 16.0801C18.9834 14.9551 19.4492 13.5928 19.4492 12.1162C19.4492 8.31055 16.3379 5.19922 12.5322 5.19922C8.73535 5.19922 5.61523 8.31055 5.61523 12.1162C5.61523 15.9219 8.72656 19.0332 12.5322 19.0332ZM12.5322 17.1875C9.74609 17.1875 7.46094 14.9023 7.46094 12.1162C7.46094 9.33008 9.74609 7.04492 12.5322 7.04492C15.3184 7.04492 17.6035 9.33008 17.6035 12.1162C17.6035 14.9023 15.3184 17.1875 12.5322 17.1875Z" fill="#F2F2F2"/>
|
||||
<path d="M12.5322 19.0332C13.9297 19.0332 15.2393 18.6113 16.3291 17.8906L20.1787 21.749C20.4336 21.9951 20.7588 22.1182 21.1104 22.1182C21.8398 22.1182 22.376 21.5469 22.376 20.8262C22.376 20.4922 22.2617 20.167 22.0156 19.9209L18.1924 16.0801C18.9834 14.9551 19.4492 13.5928 19.4492 12.1162C19.4492 8.31055 16.3379 5.19922 12.5322 5.19922C8.73535 5.19922 5.61523 8.31055 5.61523 12.1162C5.61523 15.9219 8.72656 19.0332 12.5322 19.0332ZM12.5322 17.1875C9.74609 17.1875 7.46094 14.9023 7.46094 12.1162C7.46094 9.33008 9.74609 7.04492 12.5322 7.04492C15.3184 7.04492 17.6035 9.33008 17.6035 12.1162C17.6035 14.9023 15.3184 17.1875 12.5322 17.1875Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 768 B After Width: | Height: | Size: 773 B |
@@ -1,3 +1,3 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.1035 23.208H14.8877C15.6172 23.208 16.1885 22.751 16.3643 22.0479L16.7158 20.5098L16.9443 20.4219L18.2891 21.2568C18.9043 21.6436 19.6338 21.5381 20.1523 21.0195L21.3828 19.7891C21.9102 19.2617 21.998 18.541 21.6113 17.9346L20.7764 16.5898L20.8643 16.3789L22.4023 16.0186C23.0967 15.8428 23.5537 15.2715 23.5537 14.542V12.8105C23.5537 12.0811 23.1055 11.5098 22.4023 11.334L20.873 10.9648L20.7852 10.7363L21.6201 9.40039C22.0068 8.79395 21.9189 8.07324 21.3916 7.53711L20.1611 6.30664C19.6514 5.78809 18.9219 5.69141 18.3066 6.06934L16.9619 6.89551L16.7158 6.80762L16.3643 5.26074C16.1885 4.55762 15.6172 4.10938 14.8877 4.10938H13.1035C12.3652 4.10938 11.7939 4.55762 11.627 5.26074L11.2754 6.80762L11.0293 6.89551L9.68457 6.06934C9.06055 5.69141 8.33984 5.78809 7.83008 6.30664L6.59082 7.53711C6.07227 8.07324 5.97559 8.79395 6.3623 9.40039L7.19727 10.7363L7.10938 10.9648L5.58887 11.334C4.88574 11.5098 4.4375 12.0811 4.4375 12.8105V14.542C4.4375 15.2715 4.89453 15.8428 5.58887 16.0186L7.12695 16.3789L7.20605 16.5898L6.37109 17.9346C5.98438 18.541 6.08105 19.2617 6.59961 19.7891L7.83887 21.0195C8.34863 21.5381 9.07812 21.6436 9.69336 21.2568L11.0381 20.4219L11.2754 20.5098L11.627 22.0479C11.7939 22.751 12.3652 23.208 13.1035 23.208ZM13.332 21.5908C13.1826 21.5908 13.1035 21.5293 13.0859 21.3975L12.5586 19.2354C12.0049 19.1035 11.4688 18.875 11.0381 18.6025L9.13965 19.7715C9.02539 19.8418 8.91992 19.833 8.81445 19.7275L7.8916 18.8047C7.78613 18.708 7.78613 18.6025 7.85645 18.4883L9.02539 16.5898C8.7793 16.168 8.55078 15.6406 8.41895 15.0869L6.24805 14.5684C6.11621 14.5508 6.0459 14.4717 6.0459 14.3223V13.0215C6.0459 12.8633 6.10742 12.8018 6.24805 12.7666L8.41016 12.2568C8.54199 11.668 8.79688 11.123 9.0166 10.7275L7.84766 8.84668C7.77734 8.72363 7.77734 8.61816 7.87402 8.5127L8.80566 7.59863C8.91113 7.50195 9.00781 7.48438 9.13965 7.56348L11.0205 8.71484C11.416 8.46875 12.0049 8.22266 12.5674 8.08203L13.0859 5.91992C13.1035 5.78809 13.1826 5.71777 13.332 5.71777H14.6592C14.8086 5.71777 14.8789 5.7793 14.9053 5.91992L15.4326 8.09082C16.0039 8.23145 16.5225 8.46875 16.9619 8.71484L18.8428 7.56348C18.9746 7.49316 19.0713 7.50195 19.1768 7.60742L20.1084 8.52148C20.2139 8.61816 20.2139 8.72363 20.1348 8.84668L18.9746 10.7275C19.1855 11.123 19.4492 11.668 19.5811 12.2568L21.7432 12.7666C21.8838 12.8018 21.9365 12.8633 21.9365 13.0215V14.3223C21.9365 14.4717 21.875 14.5508 21.7432 14.5684L19.5723 15.0869C19.4404 15.6406 19.2031 16.1768 18.957 16.5898L20.126 18.4795C20.1963 18.6025 20.1963 18.6992 20.0908 18.7959L19.168 19.7275C19.0625 19.833 18.957 19.8418 18.8428 19.7715L16.9531 18.6025C16.5137 18.875 16.0127 19.0947 15.4326 19.2354L14.9053 21.3975C14.8789 21.5293 14.8086 21.5908 14.6592 21.5908H13.332ZM14 16.9941C15.8281 16.9941 17.3311 15.4912 17.3311 13.6543C17.3311 11.835 15.8281 10.332 14 10.332C12.1631 10.332 10.6514 11.835 10.6514 13.6543C10.6514 15.4912 12.1631 16.9941 14 16.9941ZM14 15.4736C12.998 15.4736 12.1807 14.6562 12.1807 13.6543C12.1807 12.6699 13.0068 11.8525 14 11.8525C14.9756 11.8525 15.793 12.6699 15.793 13.6543C15.793 14.6475 14.9756 15.4736 14 15.4736Z" fill="#F2F2F2"/>
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.1035 23.208H14.8877C15.6172 23.208 16.1885 22.751 16.3643 22.0479L16.7158 20.5098L16.9443 20.4219L18.2891 21.2568C18.9043 21.6436 19.6338 21.5381 20.1523 21.0195L21.3828 19.7891C21.9102 19.2617 21.998 18.541 21.6113 17.9346L20.7764 16.5898L20.8643 16.3789L22.4023 16.0186C23.0967 15.8428 23.5537 15.2715 23.5537 14.542V12.8105C23.5537 12.0811 23.1055 11.5098 22.4023 11.334L20.873 10.9648L20.7852 10.7363L21.6201 9.40039C22.0068 8.79395 21.9189 8.07324 21.3916 7.53711L20.1611 6.30664C19.6514 5.78809 18.9219 5.69141 18.3066 6.06934L16.9619 6.89551L16.7158 6.80762L16.3643 5.26074C16.1885 4.55762 15.6172 4.10938 14.8877 4.10938H13.1035C12.3652 4.10938 11.7939 4.55762 11.627 5.26074L11.2754 6.80762L11.0293 6.89551L9.68457 6.06934C9.06055 5.69141 8.33984 5.78809 7.83008 6.30664L6.59082 7.53711C6.07227 8.07324 5.97559 8.79395 6.3623 9.40039L7.19727 10.7363L7.10938 10.9648L5.58887 11.334C4.88574 11.5098 4.4375 12.0811 4.4375 12.8105V14.542C4.4375 15.2715 4.89453 15.8428 5.58887 16.0186L7.12695 16.3789L7.20605 16.5898L6.37109 17.9346C5.98438 18.541 6.08105 19.2617 6.59961 19.7891L7.83887 21.0195C8.34863 21.5381 9.07812 21.6436 9.69336 21.2568L11.0381 20.4219L11.2754 20.5098L11.627 22.0479C11.7939 22.751 12.3652 23.208 13.1035 23.208ZM13.332 21.5908C13.1826 21.5908 13.1035 21.5293 13.0859 21.3975L12.5586 19.2354C12.0049 19.1035 11.4688 18.875 11.0381 18.6025L9.13965 19.7715C9.02539 19.8418 8.91992 19.833 8.81445 19.7275L7.8916 18.8047C7.78613 18.708 7.78613 18.6025 7.85645 18.4883L9.02539 16.5898C8.7793 16.168 8.55078 15.6406 8.41895 15.0869L6.24805 14.5684C6.11621 14.5508 6.0459 14.4717 6.0459 14.3223V13.0215C6.0459 12.8633 6.10742 12.8018 6.24805 12.7666L8.41016 12.2568C8.54199 11.668 8.79688 11.123 9.0166 10.7275L7.84766 8.84668C7.77734 8.72363 7.77734 8.61816 7.87402 8.5127L8.80566 7.59863C8.91113 7.50195 9.00781 7.48438 9.13965 7.56348L11.0205 8.71484C11.416 8.46875 12.0049 8.22266 12.5674 8.08203L13.0859 5.91992C13.1035 5.78809 13.1826 5.71777 13.332 5.71777H14.6592C14.8086 5.71777 14.8789 5.7793 14.9053 5.91992L15.4326 8.09082C16.0039 8.23145 16.5225 8.46875 16.9619 8.71484L18.8428 7.56348C18.9746 7.49316 19.0713 7.50195 19.1768 7.60742L20.1084 8.52148C20.2139 8.61816 20.2139 8.72363 20.1348 8.84668L18.9746 10.7275C19.1855 11.123 19.4492 11.668 19.5811 12.2568L21.7432 12.7666C21.8838 12.8018 21.9365 12.8633 21.9365 13.0215V14.3223C21.9365 14.4717 21.875 14.5508 21.7432 14.5684L19.5723 15.0869C19.4404 15.6406 19.2031 16.1768 18.957 16.5898L20.126 18.4795C20.1963 18.6025 20.1963 18.6992 20.0908 18.7959L19.168 19.7275C19.0625 19.833 18.957 19.8418 18.8428 19.7715L16.9531 18.6025C16.5137 18.875 16.0127 19.0947 15.4326 19.2354L14.9053 21.3975C14.8789 21.5293 14.8086 21.5908 14.6592 21.5908H13.332ZM14 16.9941C15.8281 16.9941 17.3311 15.4912 17.3311 13.6543C17.3311 11.835 15.8281 10.332 14 10.332C12.1631 10.332 10.6514 11.835 10.6514 13.6543C10.6514 15.4912 12.1631 16.9941 14 16.9941ZM14 15.4736C12.998 15.4736 12.1807 14.6562 12.1807 13.6543C12.1807 12.6699 13.0068 11.8525 14 11.8525C14.9756 11.8525 15.793 12.6699 15.793 13.6543C15.793 14.6475 14.9756 15.4736 14 15.4736Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
5
src/assets/icons/speaker.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.8205 24.9747C13.6952 24.9747 14.3304 24.3395 14.3304 23.4744V5.57171C14.3304 4.70664 13.6952 4.01172 12.8013 4.01172C12.2041 4.01172 11.7881 4.26625 11.1462 4.86883L6.23296 9.4593C6.16476 9.52539 6.06984 9.56055 5.9632 9.56055H2.64538C0.927185 9.56055 0 10.5175 0 12.3273V16.6783C0 18.4977 0.927185 19.4472 2.64538 19.4472H5.96109C6.06773 19.4472 6.16265 19.476 6.23085 19.5421L11.1462 24.1773C11.7241 24.7351 12.2149 24.9747 12.8205 24.9747Z" fill="currentColor"/>
|
||||
<path d="M18.5131 19.6804C18.9969 20.0005 19.6489 19.8932 20.0075 19.3792C20.952 18.1218 21.5122 16.3335 21.5122 14.4815C21.5122 12.6295 20.952 10.8508 20.0075 9.57953C19.6489 9.06977 18.9969 8.95071 18.5131 9.28258C17.942 9.65711 17.84 10.3464 18.2877 11.0019C18.9357 11.9226 19.3013 13.1748 19.3013 14.4815C19.3013 15.7881 18.924 17.0287 18.2877 17.961C17.8496 18.6241 17.942 19.2962 18.5131 19.6804Z" fill="currentColor"/>
|
||||
<path d="M23.1864 22.8128C23.7128 23.1479 24.3615 23.0193 24.7264 22.4875C26.2517 20.3322 27.137 17.4477 27.137 14.4815C27.137 11.5152 26.2613 8.61156 24.7264 6.47336C24.3615 5.94368 23.7128 5.81501 23.1864 6.15016C22.6346 6.49797 22.5559 7.18375 22.9611 7.79077C24.2089 9.61023 24.9282 12.0065 24.9282 14.4815C24.9282 16.9565 24.1897 19.3314 22.9611 21.1701C22.5655 21.7771 22.6346 22.465 23.1864 22.8128Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
3
src/assets/icons/square.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="white" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M6.84421 24.8972H21.0295C23.5685 24.8972 24.8737 23.5919 24.8737 21.0914V6.82921C24.8737 4.32656 23.5685 3.02344 21.0295 3.02344H6.84421C4.31484 3.02344 3 4.31695 3 6.82921V21.0914C3 23.6016 4.31484 24.8972 6.84421 24.8972ZM6.97733 22.6013C5.88772 22.6013 5.29592 22.0371 5.29592 20.8985V7.01999C5.29592 5.88139 5.88772 5.31936 6.97733 5.31936H20.8964C21.9764 5.31936 22.5778 5.88139 22.5778 7.01999V20.8985C22.5778 22.0371 21.9764 22.6013 20.8964 22.6013H6.97733Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 594 B |
@@ -1,12 +1,12 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_308_586)">
|
||||
<path d="M23.1318 14.1377C25.5928 14.1377 27.6582 12.0811 27.6582 9.61133C27.6582 7.12402 25.6104 5.08496 23.1318 5.08496C20.6533 5.08496 18.6055 7.13281 18.6055 9.61133C18.6055 12.0986 20.6533 14.1377 23.1318 14.1377ZM6.81055 21.7666H21.3916C23.0879 21.7666 24.0723 20.7822 24.0723 18.9014V15.3066C23.5977 15.4121 22.8857 15.4209 22.3232 15.3066V18.752C22.3232 19.5957 21.875 20.0176 21.0664 20.0176H6.9248C6.11621 20.0176 5.66797 19.5957 5.66797 18.7432V12.0723H17.9551C17.709 11.5977 17.5244 11.0791 17.4365 10.5342H5.66797V8.33691C5.66797 7.53711 6.11621 7.11523 6.89844 7.11523H8.56836C9.19238 7.11523 9.56152 7.26465 10.0625 7.66895L10.5547 8.08203C11.1699 8.57422 11.6445 8.75 12.5674 8.75H17.4453C17.5156 8.12598 17.6562 7.58105 17.9551 6.99219H13.0332C12.4004 6.99219 12.0225 6.85156 11.5303 6.44727L11.0381 6.04297C10.4141 5.5332 9.95703 5.36621 9.03418 5.36621H6.54688C4.89453 5.36621 3.91895 6.33301 3.91895 8.1875V18.9014C3.91895 20.791 4.91211 21.7666 6.81055 21.7666ZM20.8643 10.2178C20.5391 10.2178 20.2578 9.92773 20.2578 9.61133C20.2578 9.28613 20.5391 9.00488 20.8643 9.00488H25.3994C25.7334 9.00488 26.0059 9.28613 26.0059 9.61133C26.0059 9.92773 25.7334 10.2178 25.3994 10.2178H20.8643Z" fill="#fff"/>
|
||||
<path d="M26.7314 6.32392C28.484 8.0765 28.4777 10.9912 26.7376 12.7314C24.9788 14.4902 22.0827 14.4902 20.3239 12.7314C18.5713 10.9788 18.5713 8.08271 20.3301 6.32392C22.0827 4.57135 24.9788 4.57135 26.7314 6.32392Z" fill="#fff"/>
|
||||
<path d="M21.4986 10.6246C21.2438 10.8794 21.2438 11.2896 21.5048 11.5506C21.7721 11.8178 22.1885 11.8241 22.4433 11.5693L23.9783 10.0342L24.662 9.27599V9.95962L24.6247 11.0783C24.6185 11.2461 24.6806 11.4201 24.8111 11.5382C25.0535 11.7806 25.4326 11.7992 25.6688 11.5506C25.793 11.4139 25.849 11.2585 25.8366 11.0721L25.7371 8.01438C25.7309 7.77201 25.6812 7.62285 25.5569 7.49856C25.4388 7.38047 25.2834 7.33697 25.0535 7.33076L21.9834 7.21889C21.8031 7.21268 21.6478 7.26861 21.5173 7.39912C21.2749 7.6415 21.2749 8.02681 21.5297 8.25676C21.6478 8.37484 21.8218 8.43699 21.9834 8.43699L23.1083 8.40592L23.7919 8.39349L23.0337 9.08955L21.4986 10.6246Z" fill="black"/>
|
||||
<path d="M23.1318 14.1377C25.5928 14.1377 27.6582 12.0811 27.6582 9.61133C27.6582 7.12402 25.6104 5.08496 23.1318 5.08496C20.6533 5.08496 18.6055 7.13281 18.6055 9.61133C18.6055 12.0986 20.6533 14.1377 23.1318 14.1377ZM6.81055 21.7666H21.3916C23.0879 21.7666 24.0723 20.7822 24.0723 18.9014V15.3066C23.5977 15.4121 22.8857 15.4209 22.3232 15.3066V18.752C22.3232 19.5957 21.875 20.0176 21.0664 20.0176H6.9248C6.11621 20.0176 5.66797 19.5957 5.66797 18.7432V12.0723H17.9551C17.709 11.5977 17.5244 11.0791 17.4365 10.5342H5.66797V8.33691C5.66797 7.53711 6.11621 7.11523 6.89844 7.11523H8.56836C9.19238 7.11523 9.56152 7.26465 10.0625 7.66895L10.5547 8.08203C11.1699 8.57422 11.6445 8.75 12.5674 8.75H17.4453C17.5156 8.12598 17.6562 7.58105 17.9551 6.99219H13.0332C12.4004 6.99219 12.0225 6.85156 11.5303 6.44727L11.0381 6.04297C10.4141 5.5332 9.95703 5.36621 9.03418 5.36621H6.54688C4.89453 5.36621 3.91895 6.33301 3.91895 8.1875V18.9014C3.91895 20.791 4.91211 21.7666 6.81055 21.7666ZM20.8643 10.2178C20.5391 10.2178 20.2578 9.92773 20.2578 9.61133C20.2578 9.28613 20.5391 9.00488 20.8643 9.00488H25.3994C25.7334 9.00488 26.0059 9.28613 26.0059 9.61133C26.0059 9.92773 25.7334 10.2178 25.3994 10.2178H20.8643Z" fill="currentColor"/>
|
||||
<path d="M26.7314 6.32392C28.484 8.0765 28.4777 10.9912 26.7376 12.7314C24.9788 14.4902 22.0827 14.4902 20.3239 12.7314C18.5713 10.9788 18.5713 8.08271 20.3301 6.32392C22.0827 4.57135 24.9788 4.57135 26.7314 6.32392Z" fill="green"/>
|
||||
<path d="M21.4986 10.6246C21.2438 10.8794 21.2438 11.2896 21.5048 11.5506C21.7721 11.8178 22.1885 11.8241 22.4433 11.5693L23.9783 10.0342L24.662 9.27599V9.95962L24.6247 11.0783C24.6185 11.2461 24.6806 11.4201 24.8111 11.5382C25.0535 11.7806 25.4326 11.7992 25.6688 11.5506C25.793 11.4139 25.849 11.2585 25.8366 11.0721L25.7371 8.01438C25.7309 7.77201 25.6812 7.62285 25.5569 7.49856C25.4388 7.38047 25.2834 7.33697 25.0535 7.33076L21.9834 7.21889C21.8031 7.21268 21.6478 7.26861 21.5173 7.39912C21.2749 7.6415 21.2749 8.02681 21.5297 8.25676C21.6478 8.37484 21.8218 8.43699 21.9834 8.43699L23.1083 8.40592L23.7919 8.39349L23.0337 9.08955L21.4986 10.6246Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_308_586">
|
||||
<rect width="28" height="28" fill="white"/>
|
||||
<rect width="28" height="28" fill="currentColor"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 28 28" width="28px" height="28px">
|
||||
<g id="surface79432257">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 14 5.214844 C 13.210938 5.214844 12.5 5.625 12.105469 6.308594 L 4.253906 19.90625 C 3.859375 20.589844 3.859375 21.410156 4.253906 22.09375 C 4.652344 22.777344 5.359375 23.1875 6.148438 23.1875 L 21.851562 23.1875 C 22.640625 23.1875 23.347656 22.777344 23.746094 22.09375 C 24.140625 21.410156 24.140625 20.589844 23.746094 19.90625 L 15.894531 6.308594 C 15.5 5.625 14.789062 5.214844 14 5.214844 Z M 14 6.964844 C 14.074219 6.964844 14.265625 6.988281 14.378906 7.183594 L 22.230469 20.78125 C 22.34375 20.980469 22.269531 21.152344 22.230469 21.21875 C 22.191406 21.285156 22.078125 21.4375 21.851562 21.4375 L 6.148438 21.4375 C 5.921875 21.4375 5.808594 21.285156 5.769531 21.21875 C 5.730469 21.152344 5.65625 20.980469 5.769531 20.78125 L 13.621094 7.183594 C 13.734375 6.988281 13.925781 6.964844 14 6.964844 Z M 13.992188 10.058594 C 13.691406 10.058594 13.445312 10.152344 13.253906 10.335938 C 13.066406 10.523438 12.976562 10.753906 12.984375 11.03125 L 13.125 16.214844 C 13.140625 16.792969 13.433594 17.085938 14.007812 17.085938 C 14.5625 17.085938 14.84375 16.792969 14.851562 16.214844 L 15.015625 11.042969 C 15.023438 10.765625 14.929688 10.53125 14.730469 10.34375 C 14.535156 10.152344 14.289062 10.058594 13.992188 10.058594 Z M 14 18.238281 C 13.328125 18.238281 12.902344 18.808594 12.902344 19.289062 C 12.902344 19.769531 13.3125 20.339844 14 20.339844 C 14.6875 20.339844 15.097656 19.800781 15.097656 19.289062 C 15.097656 18.777344 14.671875 18.238281 14 18.238281 Z M 14 18.238281 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:currentColor;fill-opacity:1;" d="M 14 5.214844 C 13.210938 5.214844 12.5 5.625 12.105469 6.308594 L 4.253906 19.90625 C 3.859375 20.589844 3.859375 21.410156 4.253906 22.09375 C 4.652344 22.777344 5.359375 23.1875 6.148438 23.1875 L 21.851562 23.1875 C 22.640625 23.1875 23.347656 22.777344 23.746094 22.09375 C 24.140625 21.410156 24.140625 20.589844 23.746094 19.90625 L 15.894531 6.308594 C 15.5 5.625 14.789062 5.214844 14 5.214844 Z M 14 6.964844 C 14.074219 6.964844 14.265625 6.988281 14.378906 7.183594 L 22.230469 20.78125 C 22.34375 20.980469 22.269531 21.152344 22.230469 21.21875 C 22.191406 21.285156 22.078125 21.4375 21.851562 21.4375 L 6.148438 21.4375 C 5.921875 21.4375 5.808594 21.285156 5.769531 21.21875 C 5.730469 21.152344 5.65625 20.980469 5.769531 20.78125 L 13.621094 7.183594 C 13.734375 6.988281 13.925781 6.964844 14 6.964844 Z M 13.992188 10.058594 C 13.691406 10.058594 13.445312 10.152344 13.253906 10.335938 C 13.066406 10.523438 12.976562 10.753906 12.984375 11.03125 L 13.125 16.214844 C 13.140625 16.792969 13.433594 17.085938 14.007812 17.085938 C 14.5625 17.085938 14.84375 16.792969 14.851562 16.214844 L 15.015625 11.042969 C 15.023438 10.765625 14.929688 10.53125 14.730469 10.34375 C 14.535156 10.152344 14.289062 10.058594 13.992188 10.058594 Z M 14 18.238281 C 13.328125 18.238281 12.902344 18.808594 12.902344 19.289062 C 12.902344 19.769531 13.3125 20.339844 14 20.339844 C 14.6875 20.339844 15.097656 19.800781 15.097656 19.289062 C 15.097656 18.777344 14.671875 18.238281 14 18.238281 Z M 14 18.238281 "/>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 28 28" width="28px" height="28px">
|
||||
<g id="surface79671233">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 14 4.375 C 8.683594 4.375 4.375 8.683594 4.375 14 C 4.375 19.316406 8.683594 23.625 14 23.625 C 19.316406 23.625 23.625 19.316406 23.625 14 C 23.625 8.683594 19.316406 4.375 14 4.375 Z M 14 6.125 C 18.347656 6.125 21.875 9.652344 21.875 14 C 21.875 18.347656 18.347656 21.875 14 21.875 C 9.652344 21.875 6.125 18.347656 6.125 14 C 6.125 9.652344 9.652344 6.125 14 6.125 Z M 14 9.1875 C 13.273438 9.1875 12.6875 9.773438 12.6875 10.5 C 12.6875 11.226562 13.273438 11.8125 14 11.8125 C 14.726562 11.8125 15.3125 11.226562 15.3125 10.5 C 15.3125 9.773438 14.726562 9.1875 14 9.1875 Z M 14 13.125 C 13.515625 13.125 13.125 13.515625 13.125 14 L 13.125 18.375 C 13.125 18.859375 13.515625 19.25 14 19.25 C 14.484375 19.25 14.875 18.859375 14.875 18.375 L 14.875 14 C 14.875 13.515625 14.484375 13.125 14 13.125 Z M 14 13.125 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:currentColor;fill-opacity:1;" d="M 14 4.375 C 8.683594 4.375 4.375 8.683594 4.375 14 C 4.375 19.316406 8.683594 23.625 14 23.625 C 19.316406 23.625 23.625 19.316406 23.625 14 C 23.625 8.683594 19.316406 4.375 14 4.375 Z M 14 6.125 C 18.347656 6.125 21.875 9.652344 21.875 14 C 21.875 18.347656 18.347656 21.875 14 21.875 C 9.652344 21.875 6.125 18.347656 6.125 14 C 6.125 9.652344 9.652344 6.125 14 6.125 Z M 14 9.1875 C 13.273438 9.1875 12.6875 9.773438 12.6875 10.5 C 12.6875 11.226562 13.273438 11.8125 14 11.8125 C 14.726562 11.8125 15.3125 11.226562 15.3125 10.5 C 15.3125 9.773438 14.726562 9.1875 14 9.1875 Z M 14 13.125 C 13.515625 13.125 13.125 13.515625 13.125 14 L 13.125 18.375 C 13.125 18.859375 13.515625 19.25 14 19.25 C 14.484375 19.25 14.875 18.859375 14.875 18.375 L 14.875 14 C 14.875 13.515625 14.484375 13.125 14 13.125 Z M 14 13.125 "/>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 28 28" width="28px" height="28px">
|
||||
<g id="surface79451713">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 22.703125 15.355469 C 22.628906 15.773438 22.449219 16.152344 22.203125 16.476562 C 22.667969 17.058594 22.851562 17.796875 22.671875 18.554688 C 22.550781 19.082031 22.265625 19.539062 21.886719 19.886719 C 22.15625 20.265625 22.3125 20.71875 22.3125 21.203125 C 22.3125 22.542969 21.121094 23.59375 19.597656 23.59375 L 13.121094 23.613281 C 11.023438 23.613281 9.042969 22.796875 7.558594 21.316406 C 6.070312 19.828125 5.25 17.851562 5.25 15.75 C 5.25 11.828125 6.660156 10.425781 7.59375 9.5 L 7.695312 9.398438 C 7.988281 9.101562 8.527344 8.707031 9.210938 8.203125 C 10.59375 7.179688 12.914062 5.464844 13.339844 4.308594 C 13.683594 3.382812 14.109375 2.230469 15.75 2.230469 C 16.480469 2.230469 17.152344 2.683594 17.550781 3.445312 C 17.929688 4.175781 18.496094 6.132812 16.472656 9.625 L 19.757812 9.625 C 21.167969 9.625 22.3125 10.699219 22.3125 12.015625 C 22.3125 12.4375 22.191406 12.832031 21.984375 13.175781 C 22.574219 13.746094 22.851562 14.519531 22.703125 15.355469 Z M 19.597656 21.84375 C 20.121094 21.84375 20.5625 21.550781 20.5625 21.203125 C 20.5625 20.851562 20.203125 20.5625 19.757812 20.5625 L 17.9375 20.5625 C 17.453125 20.5625 17.0625 20.171875 17.0625 19.6875 C 17.0625 19.203125 17.453125 18.8125 17.9375 18.8125 L 20.226562 18.8125 C 20.609375 18.8125 20.894531 18.472656 20.96875 18.15625 C 21.015625 17.949219 21 17.679688 20.71875 17.441406 C 20.558594 17.476562 20.394531 17.5 20.226562 17.5 L 17.9375 17.5 C 17.453125 17.5 17.0625 17.109375 17.0625 16.625 C 17.0625 16.140625 17.453125 15.75 17.9375 15.75 L 20.226562 15.75 C 20.617188 15.75 20.917969 15.394531 20.980469 15.050781 C 21.046875 14.667969 20.820312 14.417969 20.542969 14.261719 C 20.25 14.355469 19.933594 14.40625 19.597656 14.40625 L 17.945312 14.4375 C 17.46875 14.4375 17.070312 14.054688 17.0625 13.578125 C 17.054688 13.09375 17.4375 12.695312 17.921875 12.6875 L 19.582031 12.65625 C 20.121094 12.65625 20.5625 12.363281 20.5625 12.015625 C 20.5625 11.664062 20.203125 11.375 19.757812 11.375 L 14.875 11.375 C 14.550781 11.375 14.25 11.195312 14.097656 10.902344 C 13.949219 10.613281 13.972656 10.265625 14.15625 10 C 16.121094 7.1875 16.417969 5.234375 16.039062 4.339844 C 15.921875 4.058594 15.777344 3.984375 15.742188 3.976562 C 15.386719 3.976562 15.328125 3.976562 14.984375 4.917969 C 14.375 6.5625 11.992188 8.324219 10.25 9.609375 C 9.675781 10.035156 9.136719 10.433594 8.929688 10.636719 L 8.828125 10.738281 C 8.015625 11.550781 7 12.554688 7 15.75 C 7 17.386719 7.636719 18.921875 8.792969 20.078125 C 9.949219 21.230469 11.488281 21.863281 13.117188 21.863281 Z M 19.597656 21.84375 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:currentColor;fill-opacity:1;" d="M 22.703125 15.355469 C 22.628906 15.773438 22.449219 16.152344 22.203125 16.476562 C 22.667969 17.058594 22.851562 17.796875 22.671875 18.554688 C 22.550781 19.082031 22.265625 19.539062 21.886719 19.886719 C 22.15625 20.265625 22.3125 20.71875 22.3125 21.203125 C 22.3125 22.542969 21.121094 23.59375 19.597656 23.59375 L 13.121094 23.613281 C 11.023438 23.613281 9.042969 22.796875 7.558594 21.316406 C 6.070312 19.828125 5.25 17.851562 5.25 15.75 C 5.25 11.828125 6.660156 10.425781 7.59375 9.5 L 7.695312 9.398438 C 7.988281 9.101562 8.527344 8.707031 9.210938 8.203125 C 10.59375 7.179688 12.914062 5.464844 13.339844 4.308594 C 13.683594 3.382812 14.109375 2.230469 15.75 2.230469 C 16.480469 2.230469 17.152344 2.683594 17.550781 3.445312 C 17.929688 4.175781 18.496094 6.132812 16.472656 9.625 L 19.757812 9.625 C 21.167969 9.625 22.3125 10.699219 22.3125 12.015625 C 22.3125 12.4375 22.191406 12.832031 21.984375 13.175781 C 22.574219 13.746094 22.851562 14.519531 22.703125 15.355469 Z M 19.597656 21.84375 C 20.121094 21.84375 20.5625 21.550781 20.5625 21.203125 C 20.5625 20.851562 20.203125 20.5625 19.757812 20.5625 L 17.9375 20.5625 C 17.453125 20.5625 17.0625 20.171875 17.0625 19.6875 C 17.0625 19.203125 17.453125 18.8125 17.9375 18.8125 L 20.226562 18.8125 C 20.609375 18.8125 20.894531 18.472656 20.96875 18.15625 C 21.015625 17.949219 21 17.679688 20.71875 17.441406 C 20.558594 17.476562 20.394531 17.5 20.226562 17.5 L 17.9375 17.5 C 17.453125 17.5 17.0625 17.109375 17.0625 16.625 C 17.0625 16.140625 17.453125 15.75 17.9375 15.75 L 20.226562 15.75 C 20.617188 15.75 20.917969 15.394531 20.980469 15.050781 C 21.046875 14.667969 20.820312 14.417969 20.542969 14.261719 C 20.25 14.355469 19.933594 14.40625 19.597656 14.40625 L 17.945312 14.4375 C 17.46875 14.4375 17.070312 14.054688 17.0625 13.578125 C 17.054688 13.09375 17.4375 12.695312 17.921875 12.6875 L 19.582031 12.65625 C 20.121094 12.65625 20.5625 12.363281 20.5625 12.015625 C 20.5625 11.664062 20.203125 11.375 19.757812 11.375 L 14.875 11.375 C 14.550781 11.375 14.25 11.195312 14.097656 10.902344 C 13.949219 10.613281 13.972656 10.265625 14.15625 10 C 16.121094 7.1875 16.417969 5.234375 16.039062 4.339844 C 15.921875 4.058594 15.777344 3.984375 15.742188 3.976562 C 15.386719 3.976562 15.328125 3.976562 14.984375 4.917969 C 14.375 6.5625 11.992188 8.324219 10.25 9.609375 C 9.675781 10.035156 9.136719 10.433594 8.929688 10.636719 L 8.828125 10.738281 C 8.015625 11.550781 7 12.554688 7 15.75 C 7 17.386719 7.636719 18.921875 8.792969 20.078125 C 9.949219 21.230469 11.488281 21.863281 13.117188 21.863281 Z M 19.597656 21.84375 "/>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.8 KiB |
4
src/assets/icons/upload.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="30" height="28" viewBox="0 0 30 28" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M18.183 19.296V21.5919H24.0023C27.6612 21.5919 29.9102 19.4134 29.9102 16.453C29.9102 13.9804 28.488 11.976 26.1691 11.0502C26.1841 5.75621 22.3633 1.93848 17.4628 1.93848C14.3376 1.93848 12.0063 3.55543 10.5368 5.67371C7.76062 4.98418 4.44797 7.08887 4.33875 10.4008C1.66078 10.8574 0 13.0844 0 15.9027C0 19.0487 2.39062 21.5919 6.2871 21.5919H11.704V19.296H6.28382C3.71108 19.296 2.32123 17.7644 2.32123 15.8626C2.32123 13.6644 3.76451 12.1185 6.16452 12.1185C6.33491 12.1185 6.40194 12.0205 6.39772 11.8576C6.32811 8.36127 8.83358 7.25128 11.3489 7.97549C11.4937 8.02237 11.5884 7.99471 11.6587 7.86159C12.7807 5.82159 14.5247 4.2344 17.448 4.2344C21.1547 4.2344 23.7705 7.16526 23.9571 10.5899C23.9944 11.1953 23.9508 11.8766 23.8955 12.4422C23.8816 12.6051 23.9445 12.7009 24.0977 12.7222C26.2432 13.1404 27.589 14.3898 27.589 16.356C27.589 18.0742 26.3798 19.296 23.9463 19.296H18.183Z" fill="currentColor"/>
|
||||
<path d="M14.9473 27.4717C15.5419 27.4717 16.027 26.9856 16.027 26.4133V15.594L15.9166 13.5041L16.6617 14.3636L18.3122 16.015C18.5091 16.214 18.773 16.3342 19.0357 16.3342C19.5647 16.3342 20.0072 15.9501 20.0072 15.4021C20.0072 15.1223 19.9008 14.8944 19.6943 14.7072L15.7587 11.0146C15.4725 10.7498 15.228 10.6509 14.9473 10.6509C14.659 10.6509 14.4145 10.7498 14.1262 11.0146L10.1927 14.7072C9.98629 14.8944 9.87988 15.1223 9.87988 15.4021C9.87988 15.9501 10.3031 16.3342 10.8417 16.3342C11.1044 16.3342 11.378 16.214 11.5727 16.015L13.2232 14.3636L13.9704 13.5041L13.86 15.594V26.4133C13.86 26.9856 14.3527 27.4717 14.9473 27.4717Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
6
src/assets/icons/volume-full.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg width="33" height="28" viewBox="0 0 33 28" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M2.58773 18.6598H5.91726C6.01218 18.6598 6.09749 18.6886 6.17531 18.7589L11.3234 23.3667C11.9323 23.9107 12.4017 24.1641 13.0169 24.1641C13.8724 24.1641 14.5289 23.5289 14.5289 22.6639V4.76112C14.5289 3.89605 13.8724 3.20113 12.9977 3.20113C12.3909 3.20113 11.977 3.46949 11.3234 4.05824L6.17531 8.62551C6.09538 8.69371 6.01218 8.72465 5.91726 8.72465H2.58773C0.869528 8.72465 0 9.62605 0 11.4455V15.9507C0 17.768 0.879137 18.6598 2.58773 18.6598ZM2.78366 16.5966C2.39647 16.5966 2.20991 16.4079 2.20991 16.0207V11.3733C2.20991 10.9786 2.39647 10.7899 2.78366 10.7899H6.44929C6.76663 10.7899 7.00733 10.725 7.27686 10.4789L11.9695 6.20744C12.0239 6.15095 12.0825 6.12001 12.1624 6.12001C12.2466 6.12001 12.319 6.18072 12.319 6.28829V21.0694C12.319 21.177 12.2466 21.2515 12.1624 21.2515C12.1017 21.2515 12.0335 21.2164 11.9695 21.1599L7.27686 16.9076C7.00733 16.669 6.76663 16.5966 6.44929 16.5966H2.78366Z" fill="currentColor"/>
|
||||
<path d="M18.513 18.8698C18.9968 19.1899 19.6488 19.0826 20.0074 18.5686C20.9519 17.3112 21.5121 15.5229 21.5121 13.6709C21.5121 11.8189 20.9519 10.0402 20.0074 8.76894C19.6488 8.25918 18.9968 8.14012 18.513 8.47199C17.9419 8.84652 17.8399 9.53581 18.2876 10.1914C18.9356 11.112 19.3012 12.3642 19.3012 13.6709C19.3012 14.9775 18.9239 16.2181 18.2876 17.1504C17.8495 17.8135 17.9419 18.4856 18.513 18.8698Z" fill="currentColor"/>
|
||||
<path d="M23.1843 22.0022C23.7107 22.3374 24.3595 22.2087 24.7223 21.6769C26.2497 19.5216 27.1329 16.6371 27.1329 13.6709C27.1329 10.7046 26.2593 7.80097 24.7223 5.66277C24.3595 5.13309 23.7107 5.00442 23.1843 5.33957C22.6305 5.68738 22.5518 6.37316 22.9591 6.98018C24.2069 8.79964 24.9262 11.1959 24.9262 13.6709C24.9262 16.1459 24.1877 18.5208 22.9591 20.3595C22.5635 20.9665 22.6305 21.6544 23.1843 22.0022Z" fill="currentColor"/>
|
||||
<path d="M27.8953 25.1731C28.4013 25.5124 29.0852 25.3636 29.448 24.8063C31.5157 21.7233 32.7503 17.8835 32.7503 13.6772C32.7503 9.46339 31.4868 5.64074 29.448 2.55028C29.0852 1.98122 28.4013 1.84411 27.8953 2.18348C27.3424 2.53879 27.2648 3.21824 27.6466 3.82105C29.4419 6.54893 30.5587 9.93448 30.5587 13.6772C30.5587 17.4103 29.4419 20.8172 27.6466 23.5355C27.2648 24.1383 27.3424 24.8156 27.8953 25.1731Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
4
src/assets/icons/volume-low.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5.58773 19.4704H8.91726C9.01218 19.4704 9.09749 19.4992 9.17531 19.5695L14.3234 24.1773C14.9227 24.7213 15.4017 24.9747 16.0073 24.9747C16.8724 24.9747 17.5172 24.3395 17.5172 23.4744V5.57171C17.5172 4.70664 16.8724 4.01172 15.9881 4.01172C15.3909 4.01172 14.977 4.28008 14.3234 4.86883L9.17531 9.4361C9.09538 9.5043 9.01218 9.53524 8.91726 9.53524H5.58773C3.86953 9.53524 3 10.4366 3 12.2561V16.7612C3 18.5786 3.87914 19.4704 5.58773 19.4704ZM5.78366 17.4072C5.39647 17.4072 5.20991 17.2185 5.20991 16.8313V12.1839C5.20991 11.7892 5.39647 11.6005 5.78366 11.6005H9.44929C9.76663 11.6005 10.0073 11.5356 10.2769 11.2895L14.9695 7.01803C15.0239 6.96154 15.0825 6.9306 15.1624 6.9306C15.2466 6.9306 15.319 6.99131 15.319 7.09888V21.88C15.319 21.9876 15.2466 22.0621 15.1624 22.0621C15.1017 22.0621 15.0335 22.027 14.9695 21.9705L10.2769 17.7182C10.0073 17.4796 9.76663 17.4072 9.44929 17.4072H5.78366Z" fill="currentColor"/>
|
||||
<path d="M21.5033 19.69C21.9871 20.0122 22.6391 19.9028 22.9977 19.3888C23.9401 18.1314 24.5024 16.3431 24.5024 14.4911C24.5024 12.6391 23.9401 10.8604 22.9977 9.58914C22.6391 9.07938 21.9871 8.96032 21.5033 9.29219C20.9322 9.66672 20.8302 10.356 21.2757 11.0116C21.9238 11.9322 22.2915 13.1845 22.2915 14.4911C22.2915 15.7977 21.9142 17.0383 21.2757 17.9706C20.8398 18.6358 20.9322 19.3058 21.5033 19.69Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
5
src/assets/icons/volume-mid.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M2.58773 19.4704H5.91726C6.01218 19.4704 6.09749 19.4992 6.17531 19.5695L11.3234 24.1773C11.9323 24.7213 12.4017 24.9747 13.0169 24.9747C13.8724 24.9747 14.5289 24.3395 14.5289 23.4744V5.57171C14.5289 4.70664 13.8724 4.01172 12.9977 4.01172C12.3909 4.01172 11.977 4.28008 11.3234 4.86883L6.17531 9.4361C6.09538 9.5043 6.01218 9.53524 5.91726 9.53524H2.58773C0.869528 9.53524 0 10.4366 0 12.2561V16.7612C0 18.5786 0.879137 19.4704 2.58773 19.4704ZM2.78366 17.4072C2.39647 17.4072 2.20991 17.2185 2.20991 16.8313V12.1839C2.20991 11.7892 2.39647 11.6005 2.78366 11.6005H6.44929C6.76663 11.6005 7.00733 11.5356 7.27686 11.2895L11.9695 7.01803C12.0239 6.96154 12.0825 6.9306 12.1624 6.9306C12.2466 6.9306 12.319 6.99131 12.319 7.09888V21.88C12.319 21.9876 12.2466 22.0621 12.1624 22.0621C12.1017 22.0621 12.0335 22.027 11.9695 21.9705L7.27686 17.7182C7.00733 17.4796 6.76663 17.4072 6.44929 17.4072H2.78366Z" fill="currentColor"/>
|
||||
<path d="M18.5131 19.6804C18.9969 20.0005 19.6489 19.8932 20.0075 19.3792C20.952 18.1218 21.5122 16.3335 21.5122 14.4815C21.5122 12.6295 20.952 10.8508 20.0075 9.57953C19.6489 9.06977 18.9969 8.95071 18.5131 9.28258C17.942 9.65711 17.84 10.3464 18.2877 11.0019C18.9357 11.9226 19.3013 13.1748 19.3013 14.4815C19.3013 15.7881 18.924 17.0287 18.2877 17.961C17.8496 18.6241 17.942 19.2962 18.5131 19.6804Z" fill="currentColor"/>
|
||||
<path d="M23.1864 22.8128C23.7128 23.1479 24.3615 23.0193 24.7264 22.4875C26.2517 20.3322 27.137 17.4477 27.137 14.4815C27.137 11.5152 26.2613 8.61156 24.7264 6.47336C24.3615 5.94368 23.7128 5.81501 23.1864 6.15016C22.6346 6.49797 22.5559 7.18375 22.9611 7.79077C24.2089 9.61023 24.9282 12.0065 24.9282 14.4815C24.9282 16.9565 24.1897 19.3314 22.9611 21.1701C22.5655 21.7771 22.6346 22.465 23.1864 22.8128Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
4
src/assets/icons/volume-mute.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="28" height="28" viewBox="0 0 28 28" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M7.94572 18.8783H11.2699C11.369 18.8783 11.4522 18.9113 11.5279 18.9774L16.678 23.5853C17.2965 24.1292 17.7564 24.3826 18.3716 24.3826C18.9193 24.3826 19.3724 24.1147 19.6525 23.6551L17.7489 21.7611L12.5697 17.0856C12.329 16.8683 12.1694 16.8151 11.8499 16.8151H8.14376C7.74486 16.8151 7.55829 16.6264 7.55829 16.2392V11.5609L5.86096 9.86566C5.53448 10.2765 5.34839 10.8756 5.34839 11.664V16.1692C5.34839 17.9865 6.22752 18.8783 7.94572 18.8783ZM19.8751 16.7612L19.8772 4.97964C19.8772 4.11456 19.2367 3.41964 18.3524 3.41964C17.7456 3.41964 17.335 3.688 16.6717 4.27675L11.7637 8.6359L13.2475 10.1251L17.3179 6.42595C17.3744 6.36946 17.4426 6.33853 17.5108 6.33853C17.597 6.33853 17.6673 6.39923 17.6673 6.50681V14.5492L19.8751 16.7612Z" fill="currentColor"/>
|
||||
<path d="M23.7703 25.5182C24.1345 25.8803 24.7394 25.8824 25.0898 25.5182C25.4519 25.1464 25.454 24.5628 25.0898 24.2007L4.60336 3.71426C4.23914 3.35004 3.63422 3.35004 3.27 3.71426C2.91 4.06676 2.91 4.68129 3.27 5.03379L23.7703 25.5182Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 49 KiB |
@@ -1,98 +0,0 @@
|
||||
<svg width="1600" height="548" viewBox="0 0 1600 548" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_7_2)" filter="url(#filter0_d_7_2)">
|
||||
<path d="M1241.06 372.097L1280.6 358.972C1285.2 357.445 1286.98 353.889 1285.29 348.789L1277.15 324.265C1275.46 319.165 1271.88 317.39 1266.73 319.099L1244.64 326.433C1242.92 327.002 1241.77 326.961 1240.07 326.308L1238.37 325.655C1236.22 324.834 1234.83 324.793 1232.33 325.623L1225.58 327.862C1221.1 329.35 1219.33 332.85 1221 337.878L1230.64 366.93C1232.34 372.054 1235.91 373.806 1241.06 372.097ZM1225.87 336.709C1225.15 334.54 1225.99 332.993 1228.11 332.289L1232.64 330.785C1234.33 330.224 1235.47 330.297 1237.19 330.942L1238.9 331.619C1241.01 332.4 1242.45 332.449 1244.95 331.619L1268 323.968C1270.19 323.24 1271.79 323.981 1272.55 326.269L1273.01 327.675L1227.85 342.667L1225.87 336.709ZM1239.8 367.251C1237.6 367.979 1236.01 367.239 1235.24 364.927L1229.24 346.838L1274.4 331.846L1280.41 349.959C1281.17 352.247 1280.34 353.794 1278.14 354.522L1239.8 367.251Z" fill="#F2F2F2"/>
|
||||
</g>
|
||||
<g filter="url(#filter1_d_7_2)">
|
||||
<path d="M920.83 363.356L946.539 355.986C951.704 354.505 953.602 351.009 952.114 345.819L945.838 323.925C944.876 320.57 943.998 319.149 941.289 317.627L924.921 308.37C922.305 306.899 920.501 306.894 917.483 307.759L905.848 311.095C900.682 312.575 898.785 316.071 900.273 321.261L910.715 357.687C912.21 362.902 915.665 364.837 920.83 363.356ZM919.86 358.514C917.519 359.185 916.007 358.286 915.364 356.041L905.087 320.195C904.45 317.974 905.249 316.386 907.591 315.715L917.874 312.767L921.666 325.995C922.656 329.447 924.847 330.622 928.275 329.639L941.286 325.909L947.3 346.886C947.943 349.131 947.113 350.701 944.772 351.372L919.86 358.514ZM927.519 325.362C926.53 325.646 925.995 325.329 925.711 324.34L922.237 312.222L939.444 321.944L927.519 325.362Z" fill="#F2F2F2"/>
|
||||
</g>
|
||||
<g filter="url(#filter2_d_7_2)">
|
||||
<path d="M920.83 363.356L946.539 355.986C951.704 354.505 953.602 351.009 952.114 345.819L945.838 323.925C944.876 320.57 943.998 319.149 941.289 317.627L924.921 308.37C922.305 306.899 920.501 306.894 917.483 307.759L905.848 311.095C900.682 312.575 898.785 316.071 900.273 321.261L910.715 357.687C912.21 362.902 915.665 364.837 920.83 363.356ZM919.86 358.514C917.519 359.185 916.007 358.286 915.364 356.041L905.087 320.195C904.45 317.974 905.249 316.386 907.591 315.715L917.874 312.767L921.666 325.995C922.656 329.447 924.847 330.622 928.275 329.639L941.286 325.909L947.3 346.886C947.943 349.131 947.113 350.701 944.772 351.372L919.86 358.514ZM927.519 325.362C926.53 325.646 925.995 325.329 925.711 324.34L922.237 312.222L939.444 321.944L927.519 325.362Z" fill="#F2F2F2"/>
|
||||
</g>
|
||||
<g filter="url(#filter3_d_7_2)">
|
||||
<path d="M784.959 386.222L825.55 376.844C830.272 375.753 832.379 372.38 831.169 367.144L825.353 341.967C824.143 336.731 820.745 334.63 815.46 335.851L792.779 341.091C791.017 341.498 789.875 341.35 788.245 340.541L786.615 339.732C784.55 338.714 783.17 338.543 780.601 339.137L773.677 340.736C769.077 341.799 766.983 345.118 768.176 350.281L775.066 380.106C776.282 385.366 779.674 387.443 784.959 386.222ZM773.141 349.572C772.626 347.345 773.603 345.882 775.78 345.379L780.429 344.305C782.166 343.904 783.29 344.082 784.944 344.886L786.58 345.719C788.61 346.694 790.044 346.878 792.613 346.284L816.273 340.818C818.524 340.298 820.043 341.184 820.585 343.533L820.919 344.976L774.554 355.688L773.141 349.572ZM784.152 381.28C781.901 381.8 780.382 380.914 779.834 378.541L775.543 359.97L821.908 349.258L826.204 367.853C826.747 370.202 825.77 371.665 823.52 372.185L784.152 381.28Z" fill="#F2F2F2"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip1_7_2)" filter="url(#filter4_d_7_2)">
|
||||
<path d="M1175.56 503.894L1196.91 519.989C1201.21 523.223 1205.14 522.634 1208.39 518.322L1222.1 500.132C1224.2 497.345 1224.8 495.789 1224.39 492.709L1221.93 474.066C1221.53 471.092 1220.45 469.648 1217.94 467.759L1208.27 460.475C1203.98 457.241 1200.05 457.829 1196.8 462.141L1174 492.404C1170.73 496.736 1171.26 500.66 1175.56 503.894ZM1178.84 500.205C1176.89 498.739 1176.7 496.991 1178.11 495.126L1200.55 465.344C1201.94 463.499 1203.69 463.181 1205.63 464.647L1214.18 471.085L1205.9 482.075C1203.73 484.943 1204.12 487.4 1206.96 489.546L1217.77 497.692L1204.64 515.119C1203.23 516.985 1201.48 517.267 1199.54 515.801L1178.84 500.205ZM1209.92 486.369C1209.1 485.749 1209.03 485.131 1209.65 484.309L1217.24 474.241L1219.83 493.834L1209.92 486.369Z" fill="#F2F2F2"/>
|
||||
</g>
|
||||
<g filter="url(#filter5_d_7_2)">
|
||||
<path d="M1139.29 314.117C1132.34 317.228 1125.57 322.685 1121.15 328.736C1120.32 329.881 1120.52 331.249 1121.6 332.139C1120.46 334.001 1120.66 336.223 1122.27 338.113C1124.35 340.483 1127.29 340.653 1129.65 338.606L1139.05 330.428C1141.39 328.392 1141.58 325.5 1139.53 323.086C1138.67 322.072 1137.62 321.465 1136.52 321.272C1138.09 320.294 1139.7 319.406 1141.33 318.677C1153.86 313.061 1165.63 316.977 1170.78 328.458C1175.92 339.939 1171.02 351.354 1158.49 356.97C1156.86 357.7 1155.14 358.335 1153.35 358.832C1153.92 357.889 1154.16 356.708 1153.99 355.352C1153.56 352.243 1151.28 350.46 1148.2 350.847L1135.84 352.424C1132.71 352.808 1130.91 355.126 1131.29 358.233C1131.63 360.721 1133.16 362.348 1135.28 362.719C1135.25 364.134 1136.14 365.195 1137.55 365.333C1145.01 366.065 1153.6 364.665 1160.54 361.554C1175.83 354.705 1181.74 340.691 1175.34 326.415C1168.95 312.161 1154.57 307.268 1139.29 314.117Z" fill="#333333" fill-opacity="0.01"/>
|
||||
</g>
|
||||
<g filter="url(#filter6_d_7_2)">
|
||||
<path d="M1021.88 49.7976L1032.05 74.5314C1034.09 79.5014 1037.78 81 1042.77 78.9465L1063.84 70.2835C1067.06 68.9559 1068.38 67.9266 1069.59 65.0655L1076.98 47.7724C1078.15 45.0097 1077.96 43.2162 1076.76 40.3132L1072.16 29.1191C1070.12 24.1491 1066.43 22.6505 1061.44 24.704L1026.39 39.1169C1021.38 41.18 1019.83 44.8276 1021.88 49.7976ZM1026.58 48.2971C1025.66 46.0444 1026.38 44.4425 1028.54 43.5542L1063.03 29.3706C1065.17 28.4919 1066.83 29.11 1067.76 31.3627L1071.83 41.2563L1059.1 46.4904C1055.78 47.8562 1054.86 50.1642 1056.21 53.462L1061.36 65.9799L1041.18 74.2799C1039.02 75.1682 1037.37 74.5173 1036.44 72.2646L1026.58 48.2971ZM1060.38 52.2372C1059.99 51.285 1060.24 50.7183 1061.2 50.3267L1072.85 45.532L1065.1 63.71L1060.38 52.2372Z" fill="#F2F2F2"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_7_2" x="1199" y="294" width="109.13" height="109.13" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="4"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_7_2"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_7_2" result="shape"/>
|
||||
</filter>
|
||||
<filter id="filter1_d_7_2" x="599" y="285" width="376.948" height="240.948" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dx="-274" dy="138"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_7_2"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_7_2" result="shape"/>
|
||||
</filter>
|
||||
<filter id="filter2_d_7_2" x="873" y="285" width="106.948" height="106.948" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="4"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_7_2"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_7_2" result="shape"/>
|
||||
</filter>
|
||||
<filter id="filter3_d_7_2" x="748" y="312" width="103.955" height="103.955" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="4"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_7_2"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_7_2" result="shape"/>
|
||||
</filter>
|
||||
<filter id="filter4_d_7_2" x="1142" y="435" width="120.036" height="120.036" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="4"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_7_2"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_7_2" result="shape"/>
|
||||
</filter>
|
||||
<filter id="filter5_d_7_2" x="1033" y="285" width="169.719" height="165.719" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dx="-60" dy="56"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_7_2"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_7_2" result="shape"/>
|
||||
</filter>
|
||||
<filter id="filter6_d_7_2" x="999" y="0" width="158.416" height="317.416" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dx="50" dy="209"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_7_2"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_7_2" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="clip0_7_2">
|
||||
<rect width="80" height="80" fill="white" transform="translate(1203 319.204) rotate(-18.3641)"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip1_7_2">
|
||||
<rect width="80" height="80" fill="white" transform="translate(1194.15 435) rotate(37)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 19 KiB |
@@ -1,4 +0,0 @@
|
||||
<svg width="189" height="36" viewBox="0 0 189 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M15.6328 35L8.625 10.3203H8.41406C8.74219 14.5234 8.90625 17.7891 8.90625 20.1172V35H0.703125V0.734375H13.0312L20.1797 25.0625H20.3672L27.375 0.734375H39.7266V35H31.2188V19.9766C31.2188 19.1953 31.2266 18.3281 31.2422 17.375C31.2734 16.4219 31.3828 14.0859 31.5703 10.3672H31.3594L24.4453 35H15.6328ZM76.2422 0.734375V21.3594C76.2422 25.8438 74.9688 29.3203 72.4219 31.7891C69.8906 34.2422 66.2344 35.4688 61.4531 35.4688C56.7812 35.4688 53.1875 34.2734 50.6719 31.8828C48.1719 29.4922 46.9219 26.0547 46.9219 21.5703V0.734375H56.2266V20.8438C56.2266 23.2656 56.6797 25.0234 57.5859 26.1172C58.4922 27.2109 59.8281 27.7578 61.5938 27.7578C63.4844 27.7578 64.8516 27.2188 65.6953 26.1406C66.5547 25.0469 66.9844 23.2656 66.9844 20.7969V0.734375H76.2422ZM105.844 24.5938C105.844 26.7188 105.305 28.6094 104.227 30.2656C103.148 31.9062 101.594 33.1875 99.5625 34.1094C97.5312 35.0156 95.1484 35.4688 92.4141 35.4688C90.1328 35.4688 88.2188 35.3125 86.6719 35C85.125 34.6719 83.5156 34.1094 81.8438 33.3125V25.0625C83.6094 25.9688 85.4453 26.6797 87.3516 27.1953C89.2578 27.6953 91.0078 27.9453 92.6016 27.9453C93.9766 27.9453 94.9844 27.7109 95.625 27.2422C96.2656 26.7578 96.5859 26.1406 96.5859 25.3906C96.5859 24.9219 96.4531 24.5156 96.1875 24.1719C95.9375 23.8125 95.5234 23.4531 94.9453 23.0938C94.3828 22.7344 92.8672 22 90.3984 20.8906C88.1641 19.875 86.4844 18.8906 85.3594 17.9375C84.25 16.9844 83.4219 15.8906 82.875 14.6562C82.3438 13.4219 82.0781 11.9609 82.0781 10.2734C82.0781 7.11719 83.2266 4.65625 85.5234 2.89062C87.8203 1.125 90.9766 0.242188 94.9922 0.242188C98.5391 0.242188 102.156 1.0625 105.844 2.70312L103.008 9.85156C99.8047 8.38281 97.0391 7.64844 94.7109 7.64844C93.5078 7.64844 92.6328 7.85938 92.0859 8.28125C91.5391 8.70312 91.2656 9.22656 91.2656 9.85156C91.2656 10.5234 91.6094 11.125 92.2969 11.6562C93 12.1875 94.8906 13.1562 97.9688 14.5625C100.922 15.8906 102.969 17.3203 104.109 18.8516C105.266 20.3672 105.844 22.2812 105.844 24.5938ZM111.141 35V0.734375H120.445V35H111.141ZM143.133 7.83594C140.93 7.83594 139.211 8.74219 137.977 10.5547C136.742 12.3516 136.125 14.8359 136.125 18.0078C136.125 24.6016 138.633 27.8984 143.648 27.8984C145.164 27.8984 146.633 27.6875 148.055 27.2656C149.477 26.8438 150.906 26.3359 152.344 25.7422V33.5703C149.484 34.8359 146.25 35.4688 142.641 35.4688C137.469 35.4688 133.5 33.9688 130.734 30.9688C127.984 27.9688 126.609 23.6328 126.609 17.9609C126.609 14.4141 127.273 11.2969 128.602 8.60938C129.945 5.92188 131.867 3.85938 134.367 2.42188C136.883 0.96875 139.836 0.242188 143.227 0.242188C146.93 0.242188 150.469 1.04688 153.844 2.65625L151.008 9.94531C149.742 9.35156 148.477 8.85156 147.211 8.44531C145.945 8.03906 144.586 7.83594 143.133 7.83594Z" fill="white"/>
|
||||
<path d="M160.289 14.4453C159.008 12.5859 158.367 9.9375 158.367 6.5V3.10156H167.602L185.039 22.2031C186.023 23.2969 186.68 24.2188 187.008 24.9688C187.336 25.7188 187.578 26.4062 187.734 27.0312C188.078 28.2812 188.25 29.8203 188.25 31.6484V35H179.273L160.359 14.4453H160.289ZM178.102 13.1094C178.102 8.8125 178.766 6.01562 180.094 4.71875C180.797 4.03125 181.711 3.59375 182.836 3.40625C183.977 3.20312 185.359 3.10156 186.984 3.10156H188.25V6.80469C188.25 10.1328 187.375 12.3594 185.625 13.4844C184.375 14.2969 182.273 14.7031 179.32 14.7031H178.102V13.1094ZM158.367 31.3438C158.367 28.0156 159.242 25.7812 160.992 24.6406C162.242 23.8438 164.344 23.4453 167.297 23.4453H168.516V25.0391C168.516 29.3828 167.852 32.1719 166.523 33.4062C165.617 34.25 164.297 34.75 162.562 34.9062C161.688 34.9688 160.711 35 159.633 35H158.367V31.3438Z" fill="#4AD168"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.6 KiB |
@@ -6,7 +6,7 @@
|
||||
height: 100%;
|
||||
padding-right: $small;
|
||||
|
||||
@include phone-only {
|
||||
@include largePhones {
|
||||
grid-template-columns: 1fr 9.2rem;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
|
||||
.scrollable {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
|
||||
grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
|
||||
padding: 0 1rem;
|
||||
padding-bottom: 4rem;
|
||||
overflow: auto;
|
||||
max-height: 100%;
|
||||
gap: 2rem 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,55 +2,46 @@ $g-border: solid 1px $gray5;
|
||||
|
||||
#app-grid {
|
||||
display: grid;
|
||||
grid-template-columns: min-content 1fr 29rem;
|
||||
grid-template-rows: max-content 1fr 5rem;
|
||||
// grid-template-columns: min-content 1fr 29rem;
|
||||
grid-template-columns: min-content 1fr;
|
||||
grid-template-rows: $navheight 1fr $navheight;
|
||||
grid-template-areas:
|
||||
"l-sidebar nav r-sidebar"
|
||||
"l-sidebar content r-sidebar"
|
||||
"bottombar bottombar bottombar";
|
||||
|
||||
// gap: 0 1.5rem;
|
||||
"l-sidebar nav"
|
||||
"l-sidebar content"
|
||||
"bottombar bottombar";
|
||||
height: 100%;
|
||||
border: $g-border;
|
||||
border-top: none;
|
||||
border-bottom: none;
|
||||
margin: 0 auto;
|
||||
max-width: 1720px;
|
||||
|
||||
#contentresizer {
|
||||
margin: 0 $padright 0 $padleft;
|
||||
}
|
||||
|
||||
@include allPhones {
|
||||
grid-template-columns: 1fr;
|
||||
// grid-template-columns: 1fr;
|
||||
grid-template-rows: max-content 1fr 9.5rem;
|
||||
grid-template-areas:
|
||||
"nav"
|
||||
"content"
|
||||
"bottombar";
|
||||
}
|
||||
}
|
||||
|
||||
#acontent {
|
||||
width: 100%;
|
||||
grid-area: content;
|
||||
padding-right: calc($medium);
|
||||
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.vue-recycle-scroller__item-wrapper {
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
.vue-recycle-scroller {
|
||||
padding-left: 1.25rem;
|
||||
scrollbar-gutter: stable;
|
||||
}
|
||||
|
||||
.r-sidebar {
|
||||
grid-area: r-sidebar;
|
||||
border-left: $g-border;
|
||||
margin-right: $margright;
|
||||
}
|
||||
|
||||
.topnav {
|
||||
grid-area: nav;
|
||||
margin: 1rem 0;
|
||||
}
|
||||
|
||||
.l-sidebar {
|
||||
width: 15rem;
|
||||
grid-area: l-sidebar;
|
||||
display: grid;
|
||||
grid-template-rows: 1fr max-content;
|
||||
border-right: $g-border;
|
||||
height: $navheight;
|
||||
padding: 1rem $padleft;
|
||||
padding-right: $padright;
|
||||
}
|
||||
|
||||
.b-bar {
|
||||
@@ -59,59 +50,157 @@ $g-border: solid 1px $gray5;
|
||||
}
|
||||
|
||||
.content-page {
|
||||
margin-left: 1.25rem;
|
||||
margin-right: -$medium;
|
||||
padding-right: $medium;
|
||||
scrollbar-gutter: stable;
|
||||
padding-left: $padleft;
|
||||
padding-right: $padright;
|
||||
padding-bottom: $padbottom;
|
||||
}
|
||||
|
||||
.vue-recycle-scroller__item-wrapper {
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
.vue-recycle-scroller {
|
||||
scrollbar-gutter: stable;
|
||||
padding-left: $padleft;
|
||||
}
|
||||
|
||||
.r-sidebar {
|
||||
grid-area: r-sidebar;
|
||||
border-left: $g-border;
|
||||
|
||||
.vue-recycle-scroller {
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// ====== MODIFIERS =======
|
||||
|
||||
#app-grid.extendWidth {
|
||||
max-width: 100%;
|
||||
padding-right: 0;
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
#app-grid.noSidebar {
|
||||
grid-template-columns: min-content 1fr;
|
||||
#app-grid.is_alt_layout {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-rows: max-content 1fr 5rem;
|
||||
grid-template-areas:
|
||||
"l-sidebar nav"
|
||||
"l-sidebar content"
|
||||
"bottombar bottombar";
|
||||
"nav"
|
||||
"content"
|
||||
"bottombar";
|
||||
|
||||
#acontent {
|
||||
margin-right: 0 !important;
|
||||
padding-right: $medium !important;
|
||||
.vue-recycle-scroller,
|
||||
.content-page,
|
||||
.topnav,
|
||||
#songlist-scroller {
|
||||
padding-left: $alt_layout_pad;
|
||||
padding-right: $alt_layout_pad;
|
||||
}
|
||||
|
||||
.b-bar,
|
||||
.search-page-top-results {
|
||||
padding: 0 $alt_layout_pad;
|
||||
}
|
||||
|
||||
#contentresizer {
|
||||
margin: 0 $alt_layout_pad;
|
||||
}
|
||||
|
||||
.topnav {
|
||||
//reduce width to match #acontent
|
||||
width: calc(100% - 1rem);
|
||||
padding-right: 0;
|
||||
background-color: $gray;
|
||||
}
|
||||
|
||||
.vue-recycle-scroller,
|
||||
.content-page {
|
||||
padding-top: 2rem;
|
||||
}
|
||||
|
||||
.search-page-top-results {
|
||||
padding-bottom: $padbottom;
|
||||
}
|
||||
|
||||
.search-view .buttons-area {
|
||||
padding-left: $alt_layout_pad;
|
||||
}
|
||||
|
||||
.lyricsview {
|
||||
padding-bottom: 2rem;
|
||||
}
|
||||
|
||||
#lyricscontent {
|
||||
padding-top: 0;
|
||||
padding-left: 2rem;
|
||||
padding-right: 2rem;
|
||||
}
|
||||
|
||||
.nolyrics {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
@media (min-width: 1980px) {
|
||||
// NOTE: Styles for 1680px and below
|
||||
$alt_layout_pad: max(2rem, calc((100% - 1680px) / 2));
|
||||
|
||||
.vue-recycle-scroller,
|
||||
.content-page,
|
||||
.topnav,
|
||||
#songlist-scroller {
|
||||
padding-left: $alt_layout_pad;
|
||||
padding-right: $alt_layout_pad;
|
||||
}
|
||||
|
||||
#contentresizer {
|
||||
margin: 0 $alt_layout_pad;
|
||||
}
|
||||
|
||||
.search-view .buttons-area {
|
||||
padding-left: $alt_layout_pad;
|
||||
}
|
||||
|
||||
.b-bar,
|
||||
.search-page-top-results {
|
||||
padding: 0 $alt_layout_pad;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#app-grid.extendWidth {
|
||||
padding-right: 0;
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
#app-grid.useSidebar {
|
||||
grid-template-columns: min-content 1fr 28rem;
|
||||
grid-template-areas:
|
||||
"l-sidebar nav r-sidebar"
|
||||
"l-sidebar content r-sidebar"
|
||||
"bottombar bottombar bottombar";
|
||||
|
||||
@include for-desktop-down {
|
||||
grid-template-columns: min-content 1fr 24rem;
|
||||
}
|
||||
|
||||
#acontent {
|
||||
// margin-right: 0 !important;
|
||||
// padding-right: $medium !important;
|
||||
}
|
||||
}
|
||||
|
||||
#app-grid.NoSideBorders {
|
||||
border-right: none;
|
||||
border-left: none;
|
||||
border-right: none !important;
|
||||
border-left: none !important;
|
||||
}
|
||||
|
||||
.v-scroll-page {
|
||||
width: calc(100% + $medium) !important;
|
||||
|
||||
.scroller {
|
||||
padding-right: $padright;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
padding-right: 1.25rem;
|
||||
padding-bottom: $content-padding-bottom;
|
||||
padding-bottom: $padbottom;
|
||||
}
|
||||
}
|
||||
|
||||
.isSmall {
|
||||
.songlist-item {
|
||||
grid-template-columns: 1.75rem 2fr 2.5rem 2.5rem;
|
||||
grid-template-columns: 2fr 5.5rem !important;
|
||||
}
|
||||
|
||||
.song-artists,
|
||||
@@ -130,7 +219,7 @@ $g-border: solid 1px $gray5;
|
||||
.isMedium {
|
||||
// hide album column
|
||||
.songlist-item {
|
||||
grid-template-columns: 1.75rem 1.5fr 1fr 2.5rem 2.5rem;
|
||||
grid-template-columns: 1.75rem 1.5fr 1fr 5.5rem;
|
||||
}
|
||||
|
||||
.song-album {
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
// TEXT
|
||||
input[type="search"]::-webkit-search-cancel-button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
// TEXT
|
||||
.t-center {
|
||||
text-align: center;
|
||||
}
|
||||
@@ -25,7 +28,7 @@
|
||||
}
|
||||
|
||||
.heading {
|
||||
font-size: 2rem;
|
||||
font-size: 1.5rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@@ -54,12 +57,12 @@ a {
|
||||
border-radius: $medium;
|
||||
}
|
||||
|
||||
.circular {
|
||||
border-radius: 10rem;
|
||||
.rounded-lg {
|
||||
border-radius: 1.25rem;
|
||||
}
|
||||
|
||||
.border {
|
||||
border: 1px solid $gray3;
|
||||
.circular {
|
||||
border-radius: 10rem;
|
||||
}
|
||||
|
||||
.bg-primary {
|
||||
@@ -77,9 +80,12 @@ button {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 2.25rem;
|
||||
background: linear-gradient(70deg, $gray3, $gray2);
|
||||
padding: 0 $small;
|
||||
|
||||
background-color: $gray4;
|
||||
font-weight: 700;
|
||||
cursor: pointer;
|
||||
|
||||
svg {
|
||||
transition: all 0.2s;
|
||||
}
|
||||
@@ -90,13 +96,17 @@ button {
|
||||
}
|
||||
}
|
||||
|
||||
&:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-image: linear-gradient($darkestblue, $darkblue);
|
||||
background-color: $darkestblue;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-active {
|
||||
background-image: linear-gradient($darkestblue, $darkblue);
|
||||
background-color: $darkestblue;
|
||||
}
|
||||
|
||||
.btn-disabled {
|
||||
@@ -130,7 +140,6 @@ button {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
// NO THIS, NO THAT (OVERRIDES)
|
||||
.no-border {
|
||||
border: none;
|
||||
}
|
||||
@@ -146,5 +155,89 @@ button {
|
||||
.load_disabled {
|
||||
pointer-events: all;
|
||||
background: $gray5 !important;
|
||||
border-color: $gray5 !important;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#drag-img {
|
||||
width: max-content;
|
||||
max-width: 15rem;
|
||||
background-color: $darkblue;
|
||||
padding: $smaller $small;
|
||||
border-radius: $smaller;
|
||||
opacity: 1;
|
||||
position: absolute;
|
||||
left: -20rem;
|
||||
}
|
||||
|
||||
.spinner {
|
||||
border: solid 3px rgb(0, 0, 0);
|
||||
border-top: solid 3px transparent;
|
||||
border-left: solid 3px transparent;
|
||||
border-radius: 50%;
|
||||
width: 1.25rem;
|
||||
height: 1.25rem;
|
||||
animation: spin 0.45s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.card-list-scroll-x {
|
||||
overflow: hidden;
|
||||
|
||||
h3 {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr max-content;
|
||||
align-items: baseline;
|
||||
padding: 0 $medium;
|
||||
margin-bottom: $medium;
|
||||
}
|
||||
|
||||
.cards {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax($cardwidth, 1fr));
|
||||
overflow-x: auto;
|
||||
scroll-snap-type: x mandatory;
|
||||
flex-direction: row;
|
||||
padding-bottom: 2rem;
|
||||
|
||||
@include hideScrollbars;
|
||||
}
|
||||
|
||||
.album-card {
|
||||
&:hover {
|
||||
background-color: $gray;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.rhelp {
|
||||
text-transform: uppercase;
|
||||
font-size: 11px;
|
||||
color: $purple;
|
||||
font-weight: bold;
|
||||
margin: $smaller 0;
|
||||
|
||||
&.album {
|
||||
color: $orange;
|
||||
}
|
||||
|
||||
&.track {
|
||||
color: $pink;
|
||||
}
|
||||
|
||||
&.folder {
|
||||
color: $teal;
|
||||
}
|
||||
|
||||
&.playlist {
|
||||
color: $green;
|
||||
}
|
||||
}
|
||||
@@ -12,9 +12,13 @@
|
||||
|
||||
html {
|
||||
cursor: default !important;
|
||||
overflow: hidden;
|
||||
|
||||
& > * {
|
||||
overflow: visible !important;
|
||||
-webkit-tap-highlight-color: transparent; /* Webkit browsers like Safari */
|
||||
tap-highlight-color: transparent; /* Some Android browsers */
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,8 +44,4 @@ body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
a {
|
||||
cursor: default !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
input[type="number"] {
|
||||
width: 40px;
|
||||
padding: 4px 5px;
|
||||
border: 1px solid #bbb;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,33 +1,20 @@
|
||||
.tabheaders {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(5, max-content);
|
||||
justify-content: space-around;
|
||||
margin: 1rem;
|
||||
width: max-content;
|
||||
background-color: $gray4;
|
||||
height: 2.25rem;
|
||||
|
||||
& > * {
|
||||
border-left: solid 1px $gray3;
|
||||
}
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: $medium;
|
||||
|
||||
.tab {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
user-select: none;
|
||||
height: 2rem;
|
||||
text-transform: capitalize;
|
||||
background-color: $gray5;
|
||||
border: none;
|
||||
|
||||
transition: all 0.3s ease;
|
||||
padding: 0 $small;
|
||||
|
||||
&:first-child {
|
||||
border-left: solid 1px transparent;
|
||||
}
|
||||
padding: 0 $medium;
|
||||
}
|
||||
|
||||
.activetab {
|
||||
background-color: $darkblue;
|
||||
transition: all 0.3s ease;
|
||||
border-left: solid 1px transparent;
|
||||
background-color: white;
|
||||
color: $gray;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
input[type="range"] {
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
margin-right: 15px;
|
||||
width: calc(100% - 2px);
|
||||
height: 0.3rem;
|
||||
border-radius: 5px;
|
||||
background: $gray4 linear-gradient(90deg, $darkblue, $darkestblue) no-repeat;
|
||||
background: $gray4 linear-gradient(37deg, white, white) no-repeat;
|
||||
background-size: 100% 100%;
|
||||
cursor: pointer;
|
||||
|
||||
&::-webkit-slider-thumb {
|
||||
-webkit-appearance: none;
|
||||
@@ -13,25 +15,27 @@ input[type="range"] {
|
||||
height: 0;
|
||||
width: 0.8rem;
|
||||
border-radius: 50%;
|
||||
background: $darkestblue;
|
||||
background: white;
|
||||
}
|
||||
|
||||
&::-moz-range-thumb {
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
|
||||
height: 0;
|
||||
border-radius: 50%;
|
||||
background: $darkestblue;
|
||||
background: white;
|
||||
border: none;
|
||||
}
|
||||
|
||||
&::-ms-thumb {
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
|
||||
height: 0;
|
||||
width: 0.8rem;
|
||||
border-radius: 50%;
|
||||
background: $darkestblue;
|
||||
background: white;
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
@@ -58,6 +62,7 @@ input[type="range"]::-webkit-slider-runnable-track {
|
||||
}
|
||||
|
||||
input[type="range"]::-moz-range-track {
|
||||
appearance: none;
|
||||
-webkit-appearance: none;
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
@@ -65,6 +70,7 @@ input[type="range"]::-moz-range-track {
|
||||
}
|
||||
|
||||
input[type="range"]::-ms-track {
|
||||
appearance: none;
|
||||
-webkit-appearance: none;
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
||||
@@ -5,8 +5,27 @@
|
||||
}
|
||||
|
||||
// media query mixins
|
||||
@mixin phone-only {
|
||||
@media (max-width: 599px) {
|
||||
@mixin smallPhone {
|
||||
@media (max-width: 550px) {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin iphoneSE {
|
||||
@media (max-width: 386px) {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin allPhones {
|
||||
@media (max-width: 900px) {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin largePhones {
|
||||
// 550px <= width < 900px
|
||||
@media (min-width: 550px) {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
@@ -18,7 +37,7 @@
|
||||
}
|
||||
|
||||
@mixin tablet-portrait {
|
||||
@media (max-width: 810) {
|
||||
@media (max-width: 810px) {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
@@ -34,3 +53,13 @@
|
||||
@content;
|
||||
}
|
||||
}
|
||||
|
||||
// hide scrollbar
|
||||
@mixin hideScrollbars {
|
||||
scrollbar-width: none !important;
|
||||
-ms-overflow-style: none !important;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// colors
|
||||
|
||||
$separator: #ffffff2f;
|
||||
$highlight-blue: #006eff;
|
||||
$darkestblue: #234ece;
|
||||
$bbb: #161616; //bottom controls background
|
||||
@@ -27,14 +26,14 @@ $gray2: rgb(99, 99, 102);
|
||||
$gray3: rgb(72, 72, 74);
|
||||
$gray4: rgb(58, 58, 60);
|
||||
$gray5: rgb(44, 44, 46);
|
||||
$body: rgba(0, 0, 0, 0.95);
|
||||
$body: #111111;
|
||||
|
||||
$red: #ff453a;
|
||||
$blue: #0a84ff;
|
||||
$darkblue: #055ee2;
|
||||
$green: rgb(20, 160, 55);
|
||||
$green: rgb(94, 247, 132);
|
||||
$yellow: rgb(255, 214, 10);
|
||||
$orange: rgb(255, 159, 10);
|
||||
$orange: #ff9f0a;
|
||||
$pink: rgb(255, 55, 95);
|
||||
$purple: #bf5af2;
|
||||
$brown: rgb(172, 142, 104);
|
||||
@@ -46,7 +45,7 @@ $accent: $gray1;
|
||||
$secondary: $gray5;
|
||||
$danger: $red;
|
||||
$track-hover: $gray4;
|
||||
$context: black;
|
||||
$context: $gray5;
|
||||
$playlist-card-bg: $gray4;
|
||||
|
||||
// SVG COLORS
|
||||
@@ -54,3 +53,29 @@ $default: $accent;
|
||||
$side-nav-svg: $red;
|
||||
|
||||
$overshoot: cubic-bezier(0.68, -0.55, 0.265, 1.55);
|
||||
|
||||
$separator: $gray4;
|
||||
|
||||
$margright: 0;
|
||||
$padbottom: 4rem;
|
||||
$maxwidth: 1438px;
|
||||
$navheight: 5rem;
|
||||
$cardwidth: 10.75rem;
|
||||
$maxpadleft: 5rem;
|
||||
|
||||
|
||||
$alt_layout_pad: max(2rem, calc((100% - 1280px) / 2));
|
||||
|
||||
$maxpadright: calc(100% - $maxwidth);
|
||||
|
||||
$padleft: clamp(2rem, $maxpadright, $maxpadleft);
|
||||
|
||||
// 👇 fixed width with content floating to the left.
|
||||
// $padright: clamp(
|
||||
// 1rem,
|
||||
// max($maxpadright, 5rem),
|
||||
// calc($maxpadright + $maxpadleft)
|
||||
// );
|
||||
$padright: $padleft;
|
||||
|
||||
$margright: calc(0rem - $padright);
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
"./variables",
|
||||
"./ProgressBar.scss",
|
||||
"./BottomBar/BottomBar.scss",
|
||||
"./Global",
|
||||
"./moz.scss"
|
||||
"./Global"
|
||||
;
|
||||
|
||||
|
||||
@font-face {
|
||||
font-family: "SFCompactDisplay";
|
||||
src: url("../sf-compact.woff") format("woff");
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
// Styles that only apply to our dear Firefox
|
||||
|
||||
@-moz-document url-prefix() {
|
||||
#acontent {
|
||||
margin-right: calc(-1rem + 1px);
|
||||
padding-right: 1rem;
|
||||
}
|
||||
|
||||
// applies to playlist list page
|
||||
.content-page {
|
||||
margin-right: calc(0rem - ($medium + 4px));
|
||||
}
|
||||
|
||||
// virtual scroller pages: folder, playlist, album
|
||||
.header-list-layout {
|
||||
margin-right: calc(0rem - ($medium + 4px)) !important;
|
||||
|
||||
.scrollable {
|
||||
padding-right: calc(1rem - 3px) !important;
|
||||
}
|
||||
}
|
||||
|
||||
.v-scroll-page {
|
||||
width: calc(100% + 1rem) !important;
|
||||
|
||||
.scroller {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
// padding-right: 1.25rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
#app-grid.noSidebar > #acontent {
|
||||
padding-right: 1rem !important;
|
||||
}
|
||||
|
||||
.search-view {
|
||||
margin-right: -1rem !important;
|
||||
}
|
||||
}
|
||||
@@ -1,113 +0,0 @@
|
||||
<template>
|
||||
<div class="al-bio rounded">
|
||||
<div class="separator" id="av-sep"></div>
|
||||
<div class="grid albumbio">
|
||||
<div class="left rounded">
|
||||
<img
|
||||
class="rect rounded"
|
||||
:src="paths.images.thumb + images.album"
|
||||
alt=""
|
||||
loading="lazy"
|
||||
/>
|
||||
<div class="circle"></div>
|
||||
<img
|
||||
class="circle"
|
||||
:src="paths.images.artist + images.artist"
|
||||
alt=""
|
||||
loading="lazy"
|
||||
/>
|
||||
</div>
|
||||
<div class="bio rounded bg-primary" v-html="bio" v-if="bio"></div>
|
||||
<div class="bio rounded bg-primary" v-else>No bio found</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { paths } from "@/config";
|
||||
|
||||
defineProps<{
|
||||
bio: string | null;
|
||||
images: {
|
||||
artist: string;
|
||||
album: string;
|
||||
};
|
||||
}>();
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.al-bio {
|
||||
padding: $small;
|
||||
|
||||
.albumbio {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: $small;
|
||||
min-height: 15rem;
|
||||
|
||||
@include for-desktop-down {
|
||||
grid-template-columns: 1fr !important;
|
||||
|
||||
.left {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.left {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
margin-right: $small;
|
||||
overflow: hidden;
|
||||
border: solid 1px $gray5;
|
||||
background-image: linear-gradient(37deg, $gray5 20%, $gray4);
|
||||
|
||||
// @include for-desktop-down {
|
||||
// display: none;
|
||||
// }
|
||||
|
||||
$rectpos: calc(50% - 5rem);
|
||||
|
||||
.rect {
|
||||
width: 10rem;
|
||||
height: 10rem;
|
||||
position: absolute;
|
||||
bottom: 0rem;
|
||||
left: $rectpos;
|
||||
transform: rotate(15deg) translate(-1rem, 1rem);
|
||||
z-index: 1;
|
||||
transition: all 0.5s ease-in-out;
|
||||
|
||||
&:hover {
|
||||
transform: rotate(0deg) translate(-1rem, 0) scale(1.1);
|
||||
transition: all 0.5s ease-in-out;
|
||||
}
|
||||
}
|
||||
|
||||
.circle {
|
||||
position: absolute;
|
||||
width: 7rem;
|
||||
height: 7rem;
|
||||
bottom: 0;
|
||||
left: calc($rectpos + 7rem);
|
||||
border-radius: 50%;
|
||||
box-shadow: 0 0 2rem rgb(0, 0, 0);
|
||||
transition: all 0.25s ease-in-out;
|
||||
|
||||
&:hover {
|
||||
transform: scale(1.5);
|
||||
}
|
||||
}
|
||||
}
|
||||
.bio {
|
||||
border: solid 1px $gray5;
|
||||
padding: $small;
|
||||
line-height: 1.5rem;
|
||||
|
||||
&::after {
|
||||
content: " ...";
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div
|
||||
class="album_disc_header no-select"
|
||||
v-if="album_disc.is_album_disc_number"
|
||||
class="album_disc_header no-select"
|
||||
>
|
||||
<div class="disc_number">Disc {{ album_disc.album_page_disc_number }}</div>
|
||||
<div></div>
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
<template>
|
||||
<div class="artist-albums">
|
||||
<h3>
|
||||
<span>{{ title }} </span>
|
||||
<SeeAll
|
||||
v-if="maxAbumCards <= albums.length"
|
||||
:route="route"
|
||||
@click="
|
||||
!favorites ? useArtistDiscographyStore().setPage(albumType) : null
|
||||
"
|
||||
/>
|
||||
</h3>
|
||||
<div class="cards">
|
||||
<AlbumCard v-for="a in albums.slice(0, maxAbumCards)" :album="a" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { Album } from "@/interfaces";
|
||||
import { maxAbumCards } from "@/stores/content-width";
|
||||
import { discographyAlbumTypes } from "@/composables/enums";
|
||||
import useArtistDiscographyStore from "@/stores/pages/artistDiscog";
|
||||
|
||||
import AlbumCard from "../shared/AlbumCard.vue";
|
||||
import SeeAll from "../shared/SeeAll.vue";
|
||||
|
||||
defineProps<{
|
||||
title: string;
|
||||
albums: Album[];
|
||||
albumType?: discographyAlbumTypes;
|
||||
favorites?: boolean;
|
||||
route: string;
|
||||
}>();
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.artist-albums {
|
||||
overflow: hidden;
|
||||
|
||||
h3 {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr max-content;
|
||||
align-items: center;
|
||||
padding: 0 $medium;
|
||||
margin-bottom: $small;
|
||||
}
|
||||
|
||||
.cards {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
|
||||
gap: 5rem 0;
|
||||
}
|
||||
|
||||
.album-card {
|
||||
&:hover {
|
||||
background-color: $gray;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,68 +1,96 @@
|
||||
<template>
|
||||
<div
|
||||
class="genres-banner"
|
||||
:class="{
|
||||
nocontrast: album.info.colors ? isLight(album.info.colors[0]) : false,
|
||||
:style="{
|
||||
color: color ? getShift(color, [100, -100]) : '',
|
||||
}"
|
||||
>
|
||||
<div class="rounded pad-sm">
|
||||
{{ album.info.genres.length ? "Genres" : "No genres" }}
|
||||
</div>
|
||||
<div
|
||||
v-for="genre in album.info.genres"
|
||||
class="rounded pad-sm"
|
||||
:style="{ backgroundColor: album.info.colors[0] }"
|
||||
>
|
||||
{{ genre }}
|
||||
<div class="scrollable">
|
||||
<div class="rounded pad-sm genre-pill">
|
||||
{{ genres.length ? "Genres" : "No genres" }}
|
||||
</div>
|
||||
<div
|
||||
v-for="genre in genres"
|
||||
:key="genre"
|
||||
class="genre-pill rounded pad-sm"
|
||||
:style="{
|
||||
backgroundColor: color,
|
||||
}"
|
||||
>
|
||||
{{ genre }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { onMounted } from "vue";
|
||||
import { computed, onMounted } from "vue";
|
||||
import useAlbumStore from "@/stores/pages/album";
|
||||
import { isLight } from "@/composables/colors/album";
|
||||
import useArtistStore from "@/stores/pages/artist";
|
||||
|
||||
import { getShift } from "@/utils/colortools/shift";
|
||||
|
||||
const album = useAlbumStore();
|
||||
const store = useArtistStore();
|
||||
|
||||
onMounted(async () => {
|
||||
// onMounted, fetch data to be used in the component below this one.
|
||||
const album = useAlbumStore();
|
||||
await album.fetchArtistAlbums();
|
||||
const props = defineProps<{
|
||||
source: string;
|
||||
}>();
|
||||
|
||||
const genres = computed(() => {
|
||||
return props.source === "album" ? album.info.genres : store.genres;
|
||||
});
|
||||
|
||||
const color = computed(() => {
|
||||
return props.source === "album" ? album.colors.btn : "";
|
||||
});
|
||||
|
||||
const hookAction = async () => {
|
||||
if (props.source === "album") {
|
||||
// fetch data to be used in the component below this one.
|
||||
await album.fetchArtistAlbums();
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
onMounted(hookAction);
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.genres-banner.nocontrast {
|
||||
color: $black;
|
||||
}
|
||||
|
||||
.genres-banner {
|
||||
display: flex;
|
||||
gap: 1rem;
|
||||
margin-top: 2rem;
|
||||
padding-bottom: 2rem;
|
||||
font-size: 0.9rem;
|
||||
padding-left: $medium;
|
||||
text-transform: capitalize;
|
||||
user-select: none;
|
||||
overflow: scroll;
|
||||
@include hideScrollbars;
|
||||
|
||||
div {
|
||||
.scrollable {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
width: max-content;
|
||||
gap: 1rem;
|
||||
padding-right: $medium;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.genre-pill {
|
||||
background-color: $gray5;
|
||||
min-width: 4rem;
|
||||
text-align: center;
|
||||
outline: solid 1px $gray;
|
||||
padding: $small 1rem;
|
||||
font-weight: 700;
|
||||
|
||||
&:first-child {
|
||||
background-color: white;
|
||||
color: black;
|
||||
outline-color: white;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: $darkestblue !important;
|
||||
outline-color: $darkestblue;
|
||||
background-color: $pink !important;
|
||||
color: $white;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,263 +0,0 @@
|
||||
<template>
|
||||
<div
|
||||
class="album-header-ambient rounded"
|
||||
style="height: 100%; width: 100%"
|
||||
:style="{
|
||||
boxShadow: album.colors ? `0 .5rem 2rem ${album.colors[0]}` : '',
|
||||
}"
|
||||
></div>
|
||||
<div
|
||||
class="a-header rounded"
|
||||
ref="albumheaderthing"
|
||||
:style="{
|
||||
backgroundColor: album.colors ? album.colors[0] : '',
|
||||
}"
|
||||
>
|
||||
<div
|
||||
class="big-img no-scroll"
|
||||
:class="`${albumHeaderSmall ? 'imgSmall' : ''} shadow-lg rounded-sm`"
|
||||
>
|
||||
<img :src="imguri.thumb.large + album.image" class="rounded-sm" />
|
||||
</div>
|
||||
<div
|
||||
class="info"
|
||||
:class="{ nocontrast: album.colors ? isLight(album.colors[0]) : false }"
|
||||
>
|
||||
<div class="album-info">
|
||||
<div class="top">
|
||||
<div v-auto-animate class="h">
|
||||
<span v-if="album.is_soundtrack">Soundtrack</span>
|
||||
<span v-else-if="album.is_compilation">Compilation</span>
|
||||
<span v-else-if="album.is_EP">EP</span>
|
||||
<span v-else-if="album.is_single">Single</span>
|
||||
<span v-else>Album</span>
|
||||
</div>
|
||||
<div class="title ellip2" v-tooltip>
|
||||
{{ album.title }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="stats ellip">
|
||||
<div class="border rounded-sm pad-sm">
|
||||
<ArtistName
|
||||
:artists="album.albumartists"
|
||||
:albumartists="''"
|
||||
:small="true"
|
||||
/> • {{ album.date }} • {{ album.count }}
|
||||
{{ album.count === 1 ? "Track" : "Tracks" }} •
|
||||
{{ formatSeconds(album.duration, true) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="buttons">
|
||||
<PlayBtnRect :source="playSources.album" :store="useAlbumStore" />
|
||||
<HeartSvg :state="album.is_favorite" @handleFav="handleFav" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="art" v-if="!albumHeaderSmall">
|
||||
<RouterLink
|
||||
v-for="a in album.albumartists"
|
||||
:to="{
|
||||
name: Routes.artist,
|
||||
params: { hash: a.artisthash },
|
||||
}"
|
||||
>
|
||||
<img
|
||||
:src="imguri.artist.small + a.image"
|
||||
class="shadow-lg circular"
|
||||
loading="lazy"
|
||||
:title="a.name"
|
||||
:style="{ border: `solid 2px ${album.colors[0]}` }"
|
||||
/>
|
||||
</RouterLink>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from "vue";
|
||||
|
||||
import ArtistName from "@/components/shared/ArtistName.vue";
|
||||
import { paths } from "@/config";
|
||||
import { albumHeaderSmall } from "@/stores/content-width";
|
||||
import useNavStore from "@/stores/nav";
|
||||
import useAlbumStore from "@/stores/pages/album";
|
||||
import { formatSeconds, useVisibility } from "@/utils";
|
||||
import { isLight } from "@/composables/colors/album";
|
||||
import { favType, playSources } from "@/composables/enums";
|
||||
import { Album } from "@/interfaces";
|
||||
import { Routes } from "@/router/routes";
|
||||
import HeartSvg from "../shared/HeartSvg.vue";
|
||||
|
||||
import PlayBtnRect from "../shared/PlayBtnRect.vue";
|
||||
import favoriteHandler from "@/composables/favoriteHandler";
|
||||
import { storeToRefs } from "pinia";
|
||||
|
||||
// const props = defineProps<{
|
||||
// album: Album;
|
||||
// }>();
|
||||
|
||||
const albumheaderthing = ref<any>(null);
|
||||
const imguri = paths.images;
|
||||
const nav = useNavStore();
|
||||
const store = useAlbumStore();
|
||||
|
||||
const { info: album } = storeToRefs(store);
|
||||
|
||||
defineEmits<{
|
||||
(event: "playThis"): void;
|
||||
}>();
|
||||
|
||||
/**
|
||||
* Calls the `toggleShowPlay` method which toggles the play button in the nav.
|
||||
* Emits the `resetBottomPadding` event to reset the album page content bottom padding.
|
||||
*
|
||||
* @param {boolean} state the new visibility state of the album page header.
|
||||
*/
|
||||
function handleVisibilityState(state: boolean) {
|
||||
nav.toggleShowPlay(state);
|
||||
}
|
||||
|
||||
useVisibility(albumheaderthing, handleVisibilityState);
|
||||
|
||||
// const is_fav = ref(props.album.is_favorite);
|
||||
|
||||
function handleFav() {
|
||||
favoriteHandler(
|
||||
album.value.is_favorite,
|
||||
favType.album,
|
||||
album.value.albumhash,
|
||||
store.makeFavorite,
|
||||
store.removeFavorite
|
||||
);
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.album-header-ambient {
|
||||
width: 20rem;
|
||||
position: absolute;
|
||||
z-index: -100 !important;
|
||||
opacity: 0.25;
|
||||
}
|
||||
|
||||
.a-header {
|
||||
display: grid;
|
||||
grid-template-columns: max-content 1fr;
|
||||
gap: 1rem;
|
||||
padding: 1rem;
|
||||
height: $banner-height;
|
||||
background-color: $black;
|
||||
align-items: flex-end;
|
||||
|
||||
.buttons {
|
||||
display: flex;
|
||||
gap: $small;
|
||||
}
|
||||
|
||||
.big-img {
|
||||
height: calc(100%);
|
||||
width: 16rem;
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
|
||||
img {
|
||||
height: 16rem;
|
||||
aspect-ratio: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.big-img.imgSmall {
|
||||
width: 12rem;
|
||||
height: 12rem;
|
||||
|
||||
img {
|
||||
height: 12rem;
|
||||
}
|
||||
}
|
||||
|
||||
.nocontrast {
|
||||
color: $black;
|
||||
}
|
||||
|
||||
.info {
|
||||
width: 100%;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr max-content;
|
||||
height: 100%;
|
||||
align-items: flex-end;
|
||||
|
||||
.art {
|
||||
display: inline-flex;
|
||||
gap: $small;
|
||||
|
||||
img {
|
||||
height: 3rem;
|
||||
background-color: $gray;
|
||||
border: solid 2px $white;
|
||||
}
|
||||
|
||||
a {
|
||||
transition: all 0.25s ease-in-out;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
transform: scale(1.4);
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
height: 6rem;
|
||||
aspect-ratio: 1;
|
||||
object-fit: cover;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.top {
|
||||
.h {
|
||||
font-size: 14px;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 2.5rem;
|
||||
font-weight: 600;
|
||||
width: fit-content;
|
||||
cursor: text;
|
||||
}
|
||||
|
||||
.artist {
|
||||
font-size: 1.15rem;
|
||||
background-color: red;
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
margin-top: $smaller;
|
||||
|
||||
.stats {
|
||||
font-weight: bold;
|
||||
margin-bottom: 0.75rem;
|
||||
font-size: 0.8rem;
|
||||
|
||||
.artistname {
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
div {
|
||||
font-size: 0.8rem;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
// width: fit-content;
|
||||
// cursor: text;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
21
src/components/AlbumView/Header/AlbumType.vue
Normal file
@@ -0,0 +1,21 @@
|
||||
<template>
|
||||
<div v-if="!isSmallPhone" v-auto-animate class="albumtype">
|
||||
<span v-if="album.is_soundtrack">Soundtrack</span>
|
||||
<span v-else-if="album.is_live">Concert</span>
|
||||
<span v-else-if="album.is_compilation">Compilation</span>
|
||||
<span v-else-if="album.is_EP">EP</span>
|
||||
<span v-else-if="album.is_single">Single</span>
|
||||
<span v-else>Album</span>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { Album } from "@/interfaces";
|
||||
import { isSmallPhone } from "@/stores/content-width";
|
||||
|
||||
defineProps<{
|
||||
album: Album;
|
||||
}>();
|
||||
</script>
|
||||
|
||||
<style lang="scss"></style>
|
||||
83
src/components/AlbumView/Header/Buttons.vue
Normal file
@@ -0,0 +1,83 @@
|
||||
<template>
|
||||
<div class="album-buttons">
|
||||
<PlayBtnRect :source="playSources.album" :bg_color="colors.btn" />
|
||||
|
||||
<HeartSvg
|
||||
:state="album.is_favorite"
|
||||
:color="colors.bg ? colors.bg : ''"
|
||||
@handleFav="handleFav"
|
||||
/>
|
||||
<button
|
||||
class="options"
|
||||
:class="{ context_menu_showing }"
|
||||
@click.prevent="showContextMenu"
|
||||
>
|
||||
<MoreSvg
|
||||
:style="{
|
||||
color: textColor,
|
||||
}"
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from "vue";
|
||||
import { storeToRefs } from "pinia";
|
||||
|
||||
import { favType, playSources } from "@/enums";
|
||||
import useAlbumStore from "@/stores/pages/album";
|
||||
|
||||
import MoreSvg from "@/assets/icons/more.svg";
|
||||
import HeartSvg from "@/components/shared/HeartSvg.vue";
|
||||
import PlayBtnRect from "@/components/shared/PlayBtnRect.vue";
|
||||
import favoriteHandler from "@/helpers/favoriteHandler";
|
||||
import { showAlbumContextMenu } from "@/helpers/contextMenuHandler";
|
||||
|
||||
const store = useAlbumStore();
|
||||
const { info: album, colors } = storeToRefs(store);
|
||||
|
||||
defineProps<{
|
||||
textColor: string;
|
||||
}>();
|
||||
|
||||
const context_menu_showing = ref(false);
|
||||
|
||||
function showContextMenu(e: MouseEvent) {
|
||||
showAlbumContextMenu(e, context_menu_showing);
|
||||
}
|
||||
|
||||
function handleFav() {
|
||||
favoriteHandler(
|
||||
album.value.is_favorite,
|
||||
favType.album,
|
||||
album.value.albumhash,
|
||||
store.makeFavorite,
|
||||
store.removeFavorite
|
||||
);
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.album-buttons {
|
||||
display: flex;
|
||||
gap: $small;
|
||||
|
||||
.options {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
|
||||
&.context_menu_showing {
|
||||
background-color: $darkblue;
|
||||
|
||||
svg {
|
||||
color: $white !important;
|
||||
}
|
||||
}
|
||||
|
||||
svg {
|
||||
transform: scale(1.25);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
109
src/components/AlbumView/Header/Info.vue
Normal file
@@ -0,0 +1,109 @@
|
||||
<template>
|
||||
<div class="album-info" :style="{ color: textColor }">
|
||||
<div class="top">
|
||||
<AlbumType :album="album" />
|
||||
<div id="albumheadertitle" class="title ellip2">
|
||||
<span v-for="t in titleSplits" :key="t">{{ t }}<br /></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div id="test-elem"></div>
|
||||
<Versions :color="colors.bg" :versions="album.versions" />
|
||||
<Stats :album="album" />
|
||||
<Buttons :text-color="textColor || ''" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { storeToRefs } from "pinia";
|
||||
import { computed, onMounted, ref } from "vue";
|
||||
import { onBeforeRouteUpdate } from "vue-router";
|
||||
|
||||
import { balanceText } from "@/utils/balanceText";
|
||||
import { getTextColor } from "@/utils/colortools/shift";
|
||||
|
||||
import useAlbumStore from "@/stores/pages/album";
|
||||
import updatePageTitle from "@/utils/updatePageTitle";
|
||||
|
||||
import Stats from "./Stats.vue";
|
||||
import Buttons from "./Buttons.vue";
|
||||
import Versions from "./Versions.vue";
|
||||
import AlbumType from "./AlbumType.vue";
|
||||
|
||||
const store = useAlbumStore();
|
||||
|
||||
const { info: album, colors } = storeToRefs(store);
|
||||
const titleSplits = ref([""]);
|
||||
|
||||
const textColor = computed((): string => {
|
||||
if (colors.value.bg) {
|
||||
return getTextColor(colors.value.bg);
|
||||
}
|
||||
|
||||
return "";
|
||||
});
|
||||
|
||||
const updateTitle = () => {
|
||||
updatePageTitle(album.value.title + " - " + album.value.albumartists[0].name);
|
||||
const elem = document.getElementById("test-elem");
|
||||
titleSplits.value = balanceText(album.value.title, elem?.offsetWidth || 0);
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
updateTitle();
|
||||
});
|
||||
|
||||
onBeforeRouteUpdate(() => {
|
||||
updateTitle();
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.album-info {
|
||||
img {
|
||||
height: 6rem;
|
||||
aspect-ratio: 1;
|
||||
object-fit: cover;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.top {
|
||||
.albumtype {
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 2.75rem;
|
||||
font-weight: 700;
|
||||
width: fit-content;
|
||||
cursor: text;
|
||||
}
|
||||
|
||||
.artist {
|
||||
font-size: 1.15rem;
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
margin-top: $smaller;
|
||||
|
||||
.stats2 {
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.versions {
|
||||
margin-bottom: $medium;
|
||||
margin-left: -$smaller;
|
||||
|
||||
// &:first-child {}
|
||||
// .master-flag {
|
||||
// background-color: transparent !important;
|
||||
// border: solid 1px !important;
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
65
src/components/AlbumView/Header/Stats.vue
Normal file
@@ -0,0 +1,65 @@
|
||||
<template>
|
||||
<div class="album-stats ellip2">
|
||||
<div class="ellip">
|
||||
<ArtistName
|
||||
:artists="album.albumartists"
|
||||
:albumartists="''"
|
||||
:small="true"
|
||||
:append="!isSmallPhone ? statsText : ''"
|
||||
/>
|
||||
</div>
|
||||
<div v-if="isSmallPhone" class="stats2">
|
||||
{{ album.date }} {{ !album.is_single ? `• ${album.count} Tracks` : "" }} •
|
||||
{{ formatSeconds(album.duration, true) }}
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { computed } from "vue";
|
||||
|
||||
import { Album } from "@/interfaces";
|
||||
import { formatSeconds } from "@/utils";
|
||||
import { isSmallPhone } from "@/stores/content-width";
|
||||
|
||||
import ArtistName from "@/components/shared/ArtistName.vue";
|
||||
|
||||
const props = defineProps<{
|
||||
album: Album;
|
||||
}>();
|
||||
|
||||
const statsText = computed(() => {
|
||||
const is_single = props.album.is_single;
|
||||
|
||||
// hide track count if it's a single, also add an s to track if it's plural
|
||||
return `• ${props.album.date} ${
|
||||
!is_single
|
||||
? `• ${props.album.count.toLocaleString()} Track${
|
||||
props.album.count > 1 ? "s" : ""
|
||||
}`
|
||||
: ""
|
||||
} • ${formatSeconds(props.album.duration, true)}`;
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.album-stats {
|
||||
font-weight: bold;
|
||||
margin-bottom: 0.75rem;
|
||||
font-size: 14px;
|
||||
padding-left: $smaller;
|
||||
|
||||
.artistname {
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
div {
|
||||
font-size: 0.8rem;
|
||||
word-break: normal;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
23
src/components/AlbumView/Header/Versions.vue
Normal file
@@ -0,0 +1,23 @@
|
||||
<template>
|
||||
<div class="versions">
|
||||
<MasterFlag
|
||||
v-for="(v, index) in versions"
|
||||
:key="v"
|
||||
:bitrate="1200"
|
||||
:text="v"
|
||||
:bg_color="color ? getShift(color, [80, -90]) : undefined"
|
||||
:text_color="color ? getShift(color, [-100, 80]) : undefined"
|
||||
:fill="versions.length > 1 && index === 0"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { getShift } from "@/utils/colortools/shift";
|
||||
import MasterFlag from "@/components/shared/MasterFlag.vue";
|
||||
|
||||
defineProps<{
|
||||
color: string;
|
||||
versions: string[];
|
||||
}>();
|
||||
</script>
|
||||
153
src/components/AlbumView/main.vue
Normal file
@@ -0,0 +1,153 @@
|
||||
<template>
|
||||
<div
|
||||
class="album-header-ambient rounded-lg"
|
||||
style="height: 100%; width: 100%"
|
||||
:style="{
|
||||
boxShadow: colors.bg ? `0 .5rem 2rem ${colors.bg}` : '0 .5rem 2rem black',
|
||||
}"
|
||||
></div>
|
||||
<div
|
||||
ref="albumheaderthing"
|
||||
class="a-header rounded-lg"
|
||||
:style="{
|
||||
background: colors.bg ? colors.bg : '',
|
||||
}"
|
||||
>
|
||||
<div
|
||||
class="big-img no-scroll"
|
||||
:class="`${isHeaderSmall ? 'imgSmall' : ''} shadow-lg rounded-sm`"
|
||||
>
|
||||
<img :src="imguri.thumb.large + album.image" class="rounded-sm" />
|
||||
</div>
|
||||
<Info />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from "vue";
|
||||
import { storeToRefs } from "pinia";
|
||||
|
||||
import { paths } from "@/config";
|
||||
import { isHeaderSmall } from "@/stores/content-width";
|
||||
|
||||
import useNavStore from "@/stores/nav";
|
||||
import useAlbumStore from "@/stores/pages/album";
|
||||
|
||||
import Info from "@/components/AlbumView/Header/Info.vue";
|
||||
import useVisibility from "@/utils/useVisibility";
|
||||
|
||||
const albumheaderthing = ref<any>(null);
|
||||
const imguri = paths.images;
|
||||
|
||||
const nav = useNavStore();
|
||||
const store = useAlbumStore();
|
||||
|
||||
const { info: album, colors } = storeToRefs(store);
|
||||
|
||||
defineEmits<{
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
(event: "playThis"): void;
|
||||
}>();
|
||||
|
||||
function handleVisibilityState(state: boolean) {
|
||||
nav.toggleShowPlay(state);
|
||||
}
|
||||
|
||||
useVisibility(albumheaderthing, handleVisibilityState);
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.balance-text-temp {
|
||||
visibility: hidden;
|
||||
position: absolute;
|
||||
top: -9999px;
|
||||
left: -9999px;
|
||||
}
|
||||
|
||||
.album-header-ambient {
|
||||
width: 20rem;
|
||||
position: absolute;
|
||||
z-index: -100 !important;
|
||||
opacity: 0.25;
|
||||
}
|
||||
|
||||
.a-header {
|
||||
display: grid;
|
||||
grid-template-columns: max-content 1fr;
|
||||
gap: 1rem;
|
||||
padding: 1rem;
|
||||
height: $banner-height;
|
||||
background-color: $black;
|
||||
align-items: flex-end;
|
||||
|
||||
.big-img {
|
||||
height: 16rem;
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
|
||||
img {
|
||||
height: 16rem;
|
||||
max-width: 16rem;
|
||||
object-fit: contain;
|
||||
}
|
||||
}
|
||||
|
||||
.big-img.imgSmall {
|
||||
width: 12rem;
|
||||
height: 12rem;
|
||||
|
||||
img {
|
||||
height: 12rem;
|
||||
}
|
||||
}
|
||||
|
||||
.nocontrast {
|
||||
color: $black;
|
||||
|
||||
.top {
|
||||
.albumtype {
|
||||
color: $pink;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include smallPhone {
|
||||
grid-template-columns: 1fr;
|
||||
padding: 2rem 1rem;
|
||||
height: 25rem;
|
||||
|
||||
.big-img {
|
||||
width: 10rem !important;
|
||||
height: 10rem !important;
|
||||
aspect-ratio: 1;
|
||||
margin: 0 auto;
|
||||
|
||||
img {
|
||||
height: 10rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 1.5rem !important;
|
||||
max-width: fit-content;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.album-buttons {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.album-stats > div {
|
||||
border: none;
|
||||
margin: $small auto;
|
||||
}
|
||||
|
||||
.versions {
|
||||
margin-bottom: 0 !important;
|
||||
margin-left: 0 !important;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,146 +0,0 @@
|
||||
<template>
|
||||
<div class="albums-view rounded">
|
||||
<div class="al-header">
|
||||
<div class="heading">ALL ALBUMS</div>
|
||||
<div class="search">
|
||||
<input type="search" placeholder="Search albums" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="separator"></div>
|
||||
<div class="all-albums">
|
||||
<router-link
|
||||
:to="{ path: '/albums/1' }"
|
||||
class="item rounded"
|
||||
v-for="album in albums"
|
||||
:key="album"
|
||||
>
|
||||
<div class="play"></div>
|
||||
<div class="album-art image rounded"></div>
|
||||
<div class="name ellip">{{ album.title }}</div>
|
||||
<div class="artist ellip">{{ album.albumartists }}</div>
|
||||
</router-link>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
setup() {
|
||||
const albums = [
|
||||
{
|
||||
title: "Album 2 af sjf s d kjf saf ",
|
||||
artist:
|
||||
"Artist ad asd f adf d da df d adf ds d fadsf fs dfds sf dadf d",
|
||||
},
|
||||
{
|
||||
title: "Album 3",
|
||||
artist: "Artist 3",
|
||||
},
|
||||
];
|
||||
|
||||
return {
|
||||
albums,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.albums-view {
|
||||
height: calc(100% - 14.5rem);
|
||||
padding: $small;
|
||||
margin-top: $small;
|
||||
overflow: hidden;
|
||||
|
||||
.all-albums {
|
||||
height: calc(100% - 4rem);
|
||||
padding: $small 0 0 0;
|
||||
overflow-y: auto;
|
||||
|
||||
.item {
|
||||
position: relative;
|
||||
width: 10.9rem;
|
||||
height: 13rem;
|
||||
padding: $small 0.95rem $small 0.95rem;
|
||||
margin: $smaller;
|
||||
transition: all 0.2s ease-in-out;
|
||||
cursor: default;
|
||||
float: left;
|
||||
|
||||
.play {
|
||||
position: absolute;
|
||||
bottom: 3rem;
|
||||
left: $small;
|
||||
height: 3rem;
|
||||
width: 3rem;
|
||||
// background: url(../../assets/icons/play.svg) no-repeat center;
|
||||
background-size: 60%;
|
||||
cursor: default;
|
||||
opacity: 0;
|
||||
transition: all 0.5s ease-in-out;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: #574a4a;
|
||||
|
||||
.play {
|
||||
transition: 0.5s all ease;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.album-art {
|
||||
height: 9em;
|
||||
width: 9em;
|
||||
// background-image: url(../../assets/images/null.webp);
|
||||
}
|
||||
|
||||
.name {
|
||||
text-align: left;
|
||||
font-weight: bold;
|
||||
margin-top: $small;
|
||||
}
|
||||
|
||||
.artist {
|
||||
font-size: small;
|
||||
font-weight: lighter;
|
||||
text-align: left;
|
||||
color: rgba(255, 255, 255, 0.699);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.al-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
height: 4em;
|
||||
padding: 0 $small 0 $small;
|
||||
|
||||
.search {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
padding-right: $small;
|
||||
|
||||
input {
|
||||
width: 30rem;
|
||||
border: none;
|
||||
border-radius: 2rem;
|
||||
padding-left: 1rem;
|
||||
background-color: #4645456c;
|
||||
color: rgba(255, 255, 255, 0.521);
|
||||
font-size: 1rem;
|
||||
line-height: 3rem;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
input::-webkit-search-cancel-button {
|
||||
position: relative;
|
||||
right: 20px;
|
||||
cursor: default;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,164 +0,0 @@
|
||||
<template>
|
||||
<div class="top-albums">
|
||||
<div class="heading">TOP ALBUMS</div>
|
||||
<div class="items">
|
||||
<router-link
|
||||
:to="{ path: '/albums/1' }"
|
||||
class="item rounded"
|
||||
v-for="album in albums"
|
||||
:key="album"
|
||||
>
|
||||
<div class="image rounded"></div>
|
||||
<div class="info">
|
||||
<div class="name ellip">{{ album.title }}</div>
|
||||
<div class="artist ellip">{{ album.albumartists }}</div>
|
||||
<div class="separator"></div>
|
||||
<div class="top">
|
||||
<div class="play-icon"></div>
|
||||
<div class="text ellip">{{ album.top_track }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</router-link>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
setup() {
|
||||
const albums = [
|
||||
{
|
||||
title: "Thriller",
|
||||
artist: "Michael Jackson, Sting, Shaggy, Juice WRLD",
|
||||
top_track: "Beat It and althought you whatever",
|
||||
},
|
||||
{
|
||||
title: "Figting Demons",
|
||||
artist: "Juice WRLD",
|
||||
top_track: "Girl Of My Dreams",
|
||||
},
|
||||
{
|
||||
title: "Crybaby",
|
||||
artist: "Lil Peep",
|
||||
top_track: "Lil kennedy",
|
||||
},
|
||||
];
|
||||
|
||||
return {
|
||||
albums,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.top-albums {
|
||||
height: 14rem;
|
||||
border-radius: $small;
|
||||
padding: $small;
|
||||
|
||||
.heading {
|
||||
margin: $small 0 1.5em $small;
|
||||
}
|
||||
|
||||
.items {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-gap: $small;
|
||||
|
||||
.item {
|
||||
height: 10rem;
|
||||
width: clamp(10rem, 100%, 25rem);
|
||||
background-color: rgb(7, 6, 6);
|
||||
display: grid;
|
||||
align-items: center;
|
||||
grid-template-columns: 7.5rem 1fr;
|
||||
padding: $small;
|
||||
cursor: default;
|
||||
transition: all 0.2s ease-in-out;
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-0.5em);
|
||||
}
|
||||
|
||||
.image {
|
||||
height: 7rem;
|
||||
width: 7rem;
|
||||
// background-image: url(../../assets/images/null.webp);
|
||||
border-radius: $small;
|
||||
}
|
||||
|
||||
.info .name {
|
||||
font-size: 1.5rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.info .artist {
|
||||
font-size: small;
|
||||
color: rgba(255, 255, 255, 0.699);
|
||||
}
|
||||
|
||||
.info .top {
|
||||
height: 2.5rem;
|
||||
background-color: $blue;
|
||||
border-radius: $small;
|
||||
margin-left: auto;
|
||||
display: grid;
|
||||
grid-template-columns: 2.5rem 1fr;
|
||||
align-items: center;
|
||||
transition: all 0.2s ease-in-out;
|
||||
user-select: none;
|
||||
|
||||
.play-icon {
|
||||
margin: 0 0 0 $small;
|
||||
height: 1.2rem;
|
||||
width: 1.2rem;
|
||||
background-image: url(../../assets/icons/play.svg);
|
||||
background-size: 96%;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
transition: all 0.2s ease-in-out;
|
||||
}
|
||||
|
||||
.text {
|
||||
color: white;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: rgb(0, 45, 104);
|
||||
transition: all 0.2s ease-in-out;
|
||||
|
||||
.play-icon {
|
||||
transform: scale(1.2);
|
||||
transition: all 0.2s ease-in-out;
|
||||
}
|
||||
}
|
||||
|
||||
&:active {
|
||||
transform: scale(0.95);
|
||||
transition: all 0.1s ease-in-out;
|
||||
}
|
||||
}
|
||||
&:first-child {
|
||||
background-color: rgb(177, 116, 2);
|
||||
|
||||
.image {
|
||||
background-image: url(../../assets/images/null.webp);
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-child(2) {
|
||||
background-color: rgb(0, 74, 117);
|
||||
|
||||
.image {
|
||||
background-image: url(../../assets/images/null.webp);
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-child(3) {
|
||||
background-color: rgb(161, 106, 106);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
35
src/components/ArtistView/AlbumsFetcher.vue
Normal file
@@ -0,0 +1,35 @@
|
||||
<template>
|
||||
<div style="height: 1px">
|
||||
<button v-if="show_text" @click="fetch_callback">Load More</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { nextTick, onMounted } from "vue";
|
||||
import { onBeforeRouteUpdate } from "vue-router";
|
||||
|
||||
import { updateCardWidth } from "@/stores/content-width";
|
||||
|
||||
const props = defineProps<{
|
||||
show_text?: boolean;
|
||||
fetch_callback: () => Promise<void>;
|
||||
reset_callback?: () => Promise<void>;
|
||||
outside_route?: boolean;
|
||||
}>();
|
||||
|
||||
const update = async () => {
|
||||
await nextTick();
|
||||
|
||||
updateCardWidth();
|
||||
};
|
||||
|
||||
onMounted(async () => {
|
||||
props.fetch_callback().then(update);
|
||||
});
|
||||
|
||||
!props.outside_route &&
|
||||
onBeforeRouteUpdate(() => {
|
||||
if (!props.reset_callback) return;
|
||||
props.reset_callback().then(update);
|
||||
});
|
||||
</script>
|
||||
@@ -1,18 +0,0 @@
|
||||
<template><div style="height: 1px;"></div></template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { onMounted } from "vue";
|
||||
import useArtistPageStore from "@/stores/pages/artist";
|
||||
import { onBeforeRouteUpdate } from "vue-router";
|
||||
|
||||
const store = useArtistPageStore();
|
||||
|
||||
onMounted(async () => {
|
||||
await store.getArtistAlbums();
|
||||
});
|
||||
|
||||
onBeforeRouteUpdate(async (to) => {
|
||||
store.resetAlbums();
|
||||
await store.getArtistAlbums();
|
||||
});
|
||||
</script>
|
||||
@@ -1,49 +1,51 @@
|
||||
<template>
|
||||
<div
|
||||
class="artist-header-ambient rounded"
|
||||
v-if="!on_sidebar"
|
||||
class="artist-header-ambient rounded-lg"
|
||||
:class="{ isSmallPhone }"
|
||||
style="height: 100%; width: 100%"
|
||||
:style="{
|
||||
boxShadow: artist.info.colors.length
|
||||
? `0 .5rem 2rem ${artist.info.colors[0]}`
|
||||
boxShadow: !useCircularImage
|
||||
? colors.bg.length
|
||||
? `0 .5rem 2rem ${colors.bg}`
|
||||
: undefined
|
||||
: undefined,
|
||||
}"
|
||||
></div>
|
||||
<div class="artist-page-header rounded no-scroll">
|
||||
<div
|
||||
ref="artistheader"
|
||||
class="artist-page-header rounded-lg no-scroll"
|
||||
:class="{ isSmallPhone, useCircularImage }"
|
||||
:style="{
|
||||
height: `${isSmallPhone ? '25rem' : containerHeight}`,
|
||||
}"
|
||||
>
|
||||
<Info :artist="artist" :use-circular-image="useCircularImage" />
|
||||
<div
|
||||
class="artist-info"
|
||||
:class="{
|
||||
nocontrast: artist.info.colors ? isLight(artist.info.colors[0]) : false,
|
||||
class="artist-img no-select"
|
||||
:style="{
|
||||
height: containerHeight,
|
||||
}"
|
||||
>
|
||||
<section class="text">
|
||||
<div class="card-title">Artist</div>
|
||||
<div class="artist-name ellip2">{{ artist.info.name }}</div>
|
||||
<div class="stats">
|
||||
{{ artist.info.trackcount }} Track{{
|
||||
`${artist.info.trackcount == 1 ? "" : "s"}`
|
||||
}}
|
||||
• {{ artist.info.albumcount }} Album{{
|
||||
`${artist.info.albumcount == 1 ? "" : "s"}`
|
||||
}}
|
||||
•
|
||||
{{ formatSeconds(artist.info.duration, true) }}
|
||||
</div>
|
||||
</section>
|
||||
<div class="buttons">
|
||||
<PlayBtnRect :source="playSources.artist" :store="useArtistPageStore" />
|
||||
<HeartSvg @handleFav="handleFav" :state="artist.info.is_favorite" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="artist-img no-select">
|
||||
<img :src="paths.images.artist.large + artist.info.image" />
|
||||
<img
|
||||
id="artist-avatar"
|
||||
:src="paths.images.artist.large + artist.image"
|
||||
@load="store.setBgColor"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
v-if="!useCircularImage"
|
||||
class="gradient"
|
||||
:style="{
|
||||
backgroundImage: artist.info.colors[0]
|
||||
? `linear-gradient(to left, transparent 30%,
|
||||
${artist.info.colors[0]} 50%,
|
||||
${artist.info.colors[0]} 100%)`
|
||||
backgroundImage: colors.bg
|
||||
? `linear-gradient(${gradientDirection}, transparent ${
|
||||
isSmall
|
||||
? 60
|
||||
: gradientTransparentWidth -
|
||||
(width < 700 ? 40 : width < 900 ? 20 : 10)
|
||||
}%,
|
||||
${colors.bg} ${gradientWidth}%,
|
||||
${colors.bg} 100%)`
|
||||
: '',
|
||||
}"
|
||||
></div>
|
||||
@@ -51,27 +53,60 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { storeToRefs } from "pinia";
|
||||
import { Ref, computed, onMounted, ref } from "vue";
|
||||
import { onBeforeRouteUpdate } from "vue-router";
|
||||
import { useElementSize } from "@vueuse/core";
|
||||
import useSettingsStore from "@/stores/settings";
|
||||
|
||||
import { paths } from "@/config";
|
||||
import useArtistPageStore from "@/stores/pages/artist";
|
||||
import formatSeconds from "@/utils/useFormatSeconds";
|
||||
import { isLight } from "@/composables/colors/album";
|
||||
import { favType, playSources } from "@/composables/enums";
|
||||
import favoriteHandler from "@/composables/favoriteHandler";
|
||||
import updatePageTitle from "@/utils/updatePageTitle";
|
||||
|
||||
import PlayBtnRect from "../shared/PlayBtnRect.vue";
|
||||
import HeartSvg from "@/components/shared/HeartSvg.vue";
|
||||
import Info from "./HeaderComponents/Info.vue";
|
||||
import useArtistStore from "@/stores/pages/artist";
|
||||
import { getShift } from "@/utils/colortools/shift";
|
||||
import { isSmall } from "@/stores/content-width";
|
||||
|
||||
const artist = useArtistPageStore();
|
||||
const image_width_px = 450;
|
||||
const store = useArtistStore();
|
||||
const settings = useSettingsStore();
|
||||
|
||||
function handleFav() {
|
||||
favoriteHandler(
|
||||
artist.info.is_favorite,
|
||||
favType.artist,
|
||||
artist.info.artisthash,
|
||||
artist.makeFavorite,
|
||||
artist.removeFavorite
|
||||
);
|
||||
const props = defineProps<{
|
||||
on_sidebar?: boolean;
|
||||
}>();
|
||||
|
||||
const { info: artist, colors } = storeToRefs(store);
|
||||
|
||||
function updateTitle() {
|
||||
props.on_sidebar ? () => {} : updatePageTitle(artist.value.name);
|
||||
}
|
||||
|
||||
onMounted(() => updateTitle());
|
||||
onBeforeRouteUpdate(() => updateTitle());
|
||||
|
||||
const artistheader: Ref<HTMLElement | null> = ref(null);
|
||||
const { width } = useElementSize(artistheader);
|
||||
|
||||
const gradientTransparentWidth = computed(() =>
|
||||
Math.floor((image_width_px / (width.value || 1)) * 100)
|
||||
);
|
||||
|
||||
const isSmallPhone = computed(() => width.value <= 550);
|
||||
const useCircularImage = computed(
|
||||
() => !isSmallPhone.value && settings.useCircularArtistImg
|
||||
);
|
||||
|
||||
const gradientDirection = computed(() =>
|
||||
isSmallPhone.value ? "210deg" : "to left"
|
||||
);
|
||||
|
||||
const gradientWidth = computed(() => {
|
||||
return isSmallPhone.value ? "80" : Math.min(gradientTransparentWidth.value, 50);
|
||||
});
|
||||
|
||||
const containerHeight = computed(() => {
|
||||
return useCircularImage.value ? "13rem" : "18rem";
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
@@ -81,16 +116,16 @@ function handleFav() {
|
||||
opacity: 0.25;
|
||||
margin-right: -1rem;
|
||||
}
|
||||
|
||||
.artist-page-header {
|
||||
height: 18rem;
|
||||
display: grid;
|
||||
grid-template-columns: 50% 50%;
|
||||
grid-template-columns: 1fr 450px;
|
||||
position: relative;
|
||||
|
||||
.artist-img {
|
||||
// border: solid red;
|
||||
height: 18rem;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
order: 1;
|
||||
|
||||
img {
|
||||
height: 100%;
|
||||
@@ -101,6 +136,23 @@ function handleFav() {
|
||||
}
|
||||
}
|
||||
|
||||
&.useCircularImage {
|
||||
grid-template-columns: min-content 1fr;
|
||||
|
||||
.artist-img {
|
||||
padding: 1rem;
|
||||
order: -1;
|
||||
z-index: 10;
|
||||
|
||||
img {
|
||||
border-radius: 50%;
|
||||
height: calc(100% - 0rem);
|
||||
width: unset;
|
||||
aspect-ratio: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.gradient {
|
||||
position: absolute;
|
||||
background-image: linear-gradient(
|
||||
@@ -111,48 +163,36 @@ function handleFav() {
|
||||
);
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
|
||||
&.isSmallPhone {
|
||||
background-image: linear-gradient(
|
||||
210deg,
|
||||
transparent 20%,
|
||||
$gray 80%,
|
||||
$gray 100%
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
.artist-info {
|
||||
z-index: 1;
|
||||
padding: 1rem;
|
||||
padding-right: 0;
|
||||
|
||||
&.isSmallPhone {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-end;
|
||||
flex-direction: column-reverse;
|
||||
position: relative;
|
||||
|
||||
gap: 1rem;
|
||||
.artist-img {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
top: 0;
|
||||
height: 100% !important;
|
||||
|
||||
.text {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: $small;
|
||||
img {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
aspect-ratio: 1;
|
||||
object-fit: cover;
|
||||
object-position: 0% 20%;
|
||||
}
|
||||
}
|
||||
|
||||
.card-title {
|
||||
opacity: 0.5;
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
.artist-name {
|
||||
font-size: 3rem;
|
||||
font-weight: bold;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.stats {
|
||||
font-size: small;
|
||||
}
|
||||
}
|
||||
|
||||
.artist-info.nocontrast {
|
||||
color: $black;
|
||||
}
|
||||
|
||||
.buttons {
|
||||
display: flex;
|
||||
gap: $small;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
86
src/components/ArtistView/HeaderComponents/Buttons.vue
Normal file
@@ -0,0 +1,86 @@
|
||||
<template>
|
||||
<div class="artist-buttons">
|
||||
<PlayBtnRect :source="playSources.artist" :bg_color="artist.colors.btn" />
|
||||
<HeartSvg
|
||||
:state="artist.info.is_favorite"
|
||||
:color="
|
||||
!useCircularImage
|
||||
? artist.info.colors[0]
|
||||
? artist.info.colors[0]
|
||||
: ''
|
||||
: ''
|
||||
"
|
||||
@handleFav="handleFav"
|
||||
/>
|
||||
<button
|
||||
class="options"
|
||||
:class="{ context_menu_showing }"
|
||||
@click="showContext"
|
||||
>
|
||||
<MoreSvg />
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from "vue";
|
||||
|
||||
import { favType, playSources } from "@/enums";
|
||||
import favoriteHandler from "@/helpers/favoriteHandler";
|
||||
import { showArtistContextMenu } from "@/helpers/contextMenuHandler";
|
||||
import useArtistPageStore from "@/stores/pages/artist";
|
||||
|
||||
import MoreSvg from "@/assets/icons/more.svg";
|
||||
import HeartSvg from "@/components/shared/HeartSvg.vue";
|
||||
import PlayBtnRect from "@/components/shared/PlayBtnRect.vue";
|
||||
|
||||
defineProps<{
|
||||
useCircularImage?: boolean;
|
||||
}>();
|
||||
|
||||
const artist = useArtistPageStore();
|
||||
const context_menu_showing = ref(false);
|
||||
|
||||
function handleFav() {
|
||||
favoriteHandler(
|
||||
artist.info.is_favorite,
|
||||
favType.artist,
|
||||
artist.info.artisthash,
|
||||
artist.makeFavorite,
|
||||
artist.removeFavorite
|
||||
);
|
||||
}
|
||||
|
||||
function showContext(e: MouseEvent) {
|
||||
showArtistContextMenu(
|
||||
e,
|
||||
context_menu_showing,
|
||||
artist.info.artisthash,
|
||||
artist.info.name
|
||||
);
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.artist-buttons {
|
||||
display: flex;
|
||||
gap: $small;
|
||||
|
||||
.options {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
|
||||
&.context_menu_showing {
|
||||
background-color: $darkblue;
|
||||
|
||||
svg {
|
||||
color: $white !important;
|
||||
}
|
||||
}
|
||||
|
||||
svg {
|
||||
transform: scale(1.25);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
89
src/components/ArtistView/HeaderComponents/Info.vue
Normal file
@@ -0,0 +1,89 @@
|
||||
<template>
|
||||
<div
|
||||
class="artist-info"
|
||||
:style="{
|
||||
color: !useCircularImage
|
||||
? artist.colors[0]
|
||||
? getTextColor(artist.colors[0])
|
||||
: undefined
|
||||
: undefined,
|
||||
}"
|
||||
>
|
||||
<section class="text">
|
||||
<div class="card-title">Artist</div>
|
||||
<div
|
||||
class="artist-name"
|
||||
:class="`${useCircularImage ? 'ellip' : 'ellip2'}`"
|
||||
:title="artist.name"
|
||||
>
|
||||
{{ artist.name }}
|
||||
</div>
|
||||
<div class="stats">
|
||||
<span v-if="artist.trackcount">
|
||||
{{ artist.trackcount.toLocaleString() }} Track{{
|
||||
`${artist.trackcount == 1 ? "" : "s"}`
|
||||
}}
|
||||
</span>
|
||||
{{ artist.albumcount && artist.trackcount.toLocaleString() ? "•" : "" }}
|
||||
<span v-if="artist.albumcount">
|
||||
{{ artist.albumcount.toLocaleString() }} Album{{
|
||||
`${artist.albumcount == 1 ? "" : "s"}`
|
||||
}}
|
||||
</span>
|
||||
<span v-if="artist.duration">
|
||||
{{ ` • ${formatSeconds(artist.duration, true)}` }}
|
||||
</span>
|
||||
</div>
|
||||
</section>
|
||||
<Buttons :use-circular-image="useCircularImage" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { getTextColor } from "@/utils/colortools/shift";
|
||||
|
||||
import formatSeconds from "@/utils/useFormatSeconds";
|
||||
import Buttons from "./Buttons.vue";
|
||||
import { Artist } from "@/interfaces";
|
||||
|
||||
defineProps<{
|
||||
artist: Artist;
|
||||
useCircularImage?: boolean;
|
||||
}>();
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.artist-info {
|
||||
z-index: 1;
|
||||
padding: 1rem;
|
||||
padding-right: 0;
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-end;
|
||||
|
||||
gap: 1rem;
|
||||
|
||||
.text {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: $small;
|
||||
}
|
||||
|
||||
.card-title {
|
||||
font-size: small;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.artist-name {
|
||||
font-size: 3.5rem;
|
||||
font-weight: bold;
|
||||
word-wrap: break-all;
|
||||
}
|
||||
|
||||
.stats {
|
||||
font-size: small;
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -7,35 +7,41 @@
|
||||
<div class="tracks" :class="{ isSmall, isMedium }">
|
||||
<SongItem
|
||||
v-for="(song, index) in tracks"
|
||||
:key="index"
|
||||
:track="song"
|
||||
:index="index + 1"
|
||||
:index="total ? total - index : index + 1"
|
||||
:source="source"
|
||||
@playThis="playHandler(index)"
|
||||
/>
|
||||
</div>
|
||||
<div class="error" v-if="!tracks.length">No tracks</div>
|
||||
<div v-if="!tracks.length" class="error">No tracks</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import SongItem from "../shared/SongItem.vue";
|
||||
import { dropSources } from "@/enums";
|
||||
import { Track } from "@/interfaces";
|
||||
import { isMedium, isSmall } from "@/stores/content-width";
|
||||
import SeeAll from "../shared/SeeAll.vue";
|
||||
import SongItem from "../shared/SongItem.vue";
|
||||
|
||||
defineProps<{
|
||||
tracks: Track[];
|
||||
route: string;
|
||||
title: string;
|
||||
playHandler: (index: number) => void;
|
||||
source: dropSources;
|
||||
total?: number;
|
||||
}>();
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.artist-top-tracks {
|
||||
margin-top: 2rem;
|
||||
padding-top: 1rem;
|
||||
|
||||
.section-title {
|
||||
margin-left: 0;
|
||||
align-items: baseline;
|
||||
}
|
||||
|
||||
.error {
|
||||
|
||||