Compare commits

...

273 Commits

Author SHA1 Message Date
mungai-njoroge
aa780977f1 update routes 2024-03-25 01:35:33 +03:00
mungai-njoroge
4cb77334fb updates from server refactors so far 2024-03-10 19:57:57 +03:00
mungai-njoroge
293e95c5b0 disable wide artist header by default 2024-02-25 23:53:28 +03:00
Mungai Njoroge
302095ef80 v1.4.8 - No Sidebar Layout 2024-02-16 22:05:05 +03:00
mungai-njoroge
feb35afa9a fix: clicking on search input taking you to the
+ add an unused library numbers component
+ add fav artists to browse section
2024-02-16 21:32:57 +03:00
mungai-njoroge
6b925a0434 add expand icon to bottom bar thumbnail
+ remove options button from nav in now playing page
2024-02-12 21:48:21 +03:00
mungai-njoroge
4211ccc685 add no sidebar layout
+ add search input on the top nav
+ scroll to top on page navigation
+ move folder list view to settings page
+ remove close button from modals
+ change notification background
+ add fav tracks to home>browse
+ redesign modal inputs and buttons
+ show time on recent items cards on hover (homepage)
+ make nav buttons circular
+ move homepage browse group to bottom of page
+ reduce context menu paddings
+ fix: artist header artist image gradient
+ fix: card size calculation with a contentresizer element
+ fix: next track not starting at 0 duration when progressbar is focused
+ fix: track not pausing when timer is set off when silence thing is on
+ refactor: break down nav bar into multiple components
+ enhancement: make queue context menu more verbose
+ code enhancements
2024-02-12 00:44:05 +03:00
mungai-njoroge
9c982283fb move lyrics to separate route 2024-01-18 23:53:50 +03:00
mungai-njoroge
888958db54 fix: volume not carrying over new track with no crossfade
+ fix: move next timer not being reset on cue track
2024-01-18 15:44:43 +03:00
mungai-njoroge
cb3e9ec2cd fix: pwa window color on latest chrome 2024-01-18 14:11:33 +03:00
mungai-njoroge
f7e604f11b Merge branch 'master' of github.com:cwilvx/swingmusic-client 2024-01-12 19:40:47 +03:00
mungai-njoroge
1b36b96239 fix track logging 2024-01-12 19:40:39 +03:00
Mungai Njoroge
ee3ef6c1e6 Merge pull request #22 from tpatchg/patch-1
Update QuickSettings.vue for spelling
2024-01-12 08:17:46 +03:00
tpatchg
83bd063bea Update QuickSettings.vue
Spelling Fix
2024-01-10 23:06:45 -06:00
mungai-njoroge
12531edec9 Merge branch 'master' of github.com:cwilvx/swingmusic-client 2024-01-09 15:02:30 +03:00
Mungai Njoroge
7edd501d0f Merge pull request #21 from swing-opensource/gapless
v1.4.6: Silence removal, Crossfade and others
2024-01-09 15:01:52 +03:00
mungai-njoroge
c7036b3a5d fix: enable typing to search on mobile view 2024-01-09 14:29:48 +03:00
mungai-njoroge
3075517af9 add silence skip to quick settings 2024-01-08 17:23:46 +03:00
mungai-njoroge
e8f0bc6b8b add quick actions section in settings
+ set CTRL + B to toggle sidebar
2024-01-07 17:20:50 +03:00
mungai-njoroge
ded3a48e0b extract crossfade into separate file 2024-01-05 01:01:41 +03:00
mungai-njoroge
a04a3c4fe4 fix: queue save as playlist 2024-01-04 20:07:45 +03:00
mungai-njoroge
4aaf70ba68 add context menu option to remove track from queue 2024-01-04 10:53:54 +03:00
mungai-njoroge
fa176cb027 remove queue is too short for shuffle warning 2024-01-04 10:45:55 +03:00
mungai-njoroge
c4ce344487 Add shuffle to bottom bar 2024-01-04 10:43:30 +03:00
mungai-njoroge
f2c7cccba1 increase playlist list grid width 2024-01-04 10:30:34 +03:00
mungai-njoroge
901406a337 respect use_crossfade in preloaded track move forward 2024-01-04 01:38:16 +03:00
mungai-njoroge
4b48b13561 add switch to explictly turn on crossfade
~ makes it possible to provide a default crossfade duration
+ hide the experimental flag on chromium browsers
2024-01-02 00:36:46 +03:00
mungai-njoroge
10b29f6349 rewrite tracker to use keys
+ fix tracker throttle function not working
2024-01-01 22:34:57 +03:00
mungai-njoroge
b24d833d12 add search on social to track context menu 2024-01-01 21:02:51 +03:00
mungai-njoroge
9004c02898 fix track play next
+ fix no repeat
2024-01-01 20:40:04 +03:00
mungai-njoroge
409edba74c add audio settings group
+ add components for crossfade duration
2024-01-01 20:18:08 +03:00
mungai-njoroge
2f1c07f786 disable crossfade if duration < 1000 2023-12-27 21:12:54 +03:00
mungai-njoroge
278e73745a rewrite add tracks to queue methods to use the insertAt method
+ clear timeout on seek
2023-12-27 20:23:56 +03:00
mungai-njoroge
3652432e0b + fix crossfade
+ move silence fetch to worker
+ disablecrossfade on manually triggered track plays
+ move remove track from queue to tracklist
+ fix tracker not working by reassigning event listeners
2023-12-27 19:38:19 +03:00
mungai-njoroge
67ad2ef206 Fix file count display in FolderItem.vue and add
new routes in Browse.vue
2023-12-23 18:53:34 +03:00
mungai-njoroge
f2e157a746 gapless initial try 2023-12-22 11:20:51 +03:00
mungai-njoroge
606515ffd5 hide recent items on homepage if they don't exist 2023-12-19 09:27:44 +03:00
mungai-njoroge
6ff67e5f94 resize song items grid size 2023-12-14 10:03:26 +03:00
mungai-njoroge
5f037fc647 add fetch callbacks to sidebar search 2023-12-14 09:52:43 +03:00
mungai-njoroge
d1c62f701e fix broken layout on favorite artists & albums page 2023-12-14 09:51:32 +03:00
mungai-njoroge
b2bef03373 remove see all from top search results 2023-12-14 09:23:14 +03:00
mungai-njoroge
49fe308da0 fix no bottom album rows on album page
+ add store resetter to artist page
2023-12-12 19:54:20 +03:00
mungai-njoroge
bce2772dcb show favorite tracks index in reverse order 2023-12-11 17:40:50 +03:00
mungai-njoroge
dd0b9d6d61 add store resetter methods
+ hide edit button on recently added playlist
2023-12-11 13:29:27 +03:00
mungai-njoroge
1e90298f72 fix padding left on tab headers on search page 2023-12-11 08:31:25 +03:00
mungai-njoroge
7f4385f8cb reduce cardScroller padding
+ spice up hire me
2023-12-11 08:27:21 +03:00
mungai-njoroge
48f2a73291 update settings text 2023-12-10 18:33:34 +03:00
mungai-njoroge
8cf33089a2 default to no sidebar 2023-12-10 18:15:03 +03:00
mungai-njoroge
c16be33d40 fix items glitch on search tracks page 2023-12-10 18:01:33 +03:00
mungai-njoroge
a9691a2a25 rewrite search grid pages with card row virtual list
+ rewrite sidebar tabs with infinite scroll and card row virtual lists
2023-12-10 16:22:43 +03:00
mungai-njoroge
e88e6dcc2d add favorites on recently played
+ create track logger timestamp on track play start
2023-12-10 13:28:52 +03:00
mungai-njoroge
00ffbdbc42 fetch app version from server 2023-12-09 22:16:31 +03:00
mungai-njoroge
97f348daf2 fix play from track card on favorites page 2023-12-09 17:52:18 +03:00
mungai-njoroge
d0f47b4504 move folder to top of browse list 2023-12-09 09:16:53 +03:00
mungai-njoroge
2db6bfebcf move browse to top of homepage
+ move it to separate component
2023-12-08 18:49:53 +03:00
mungai-njoroge
286003cf27 add album and artist list pages
+ fix number localization
+ a lot other things
2023-12-08 09:18:13 +03:00
mungai-njoroge
d27c61c7ce add google, yt, wikipedia and lastfm to album & artist search
+ persist tracker store
+ add generic header to favorites page
+ move lyrics components to Nowplaying page folder
+ update version
2023-12-06 11:05:05 +03:00
mungai-njoroge
c56ee65a73 fix padding right and move card scroller 2023-12-05 15:48:00 +03:00
mungai-njoroge
d3c0c7c596 rewrite appgrid to fix scrollbar paddng-issues 2023-12-04 20:50:34 +03:00
mungai-njoroge
e7fec30b7c fix card size issues on search page 2023-12-04 14:16:44 +03:00
mungai-njoroge
da36f8d7dd Redesign discography with generic header and tabs
+ extract settings tabs into generic tabs
2023-12-04 13:48:52 +03:00
mungai-njoroge
63de7a6613 Remove unused vue files after refactor 2023-12-03 23:31:16 +03:00
mungai-njoroge
b14c814c55 add see all link to card scroller 2023-12-03 20:25:54 +03:00
mungai-njoroge
7f8293e691 migrate horizontal scrollers to use a single component
+ rewrite album view with the dynamic scroller
2023-12-03 20:15:58 +03:00
mungai-njoroge
59a27d4489 log track on end event
+ add recently played to homepage
+ redesign playlist card to match others
+ update pinia persistented state package
2023-12-03 18:27:20 +03:00
mungai-njoroge
4e59e73ec5 maybe: fix scrolling on horizontal card lists 2023-12-03 12:58:19 +03:00
mungai-njoroge
df1c909fce add greetings and misc 2023-12-02 12:43:06 +03:00
mungai-njoroge
3aa0aebfc6 add recent items section in the homepage 2023-12-02 01:58:37 +03:00
mungai-njoroge
afdbb0dbb5 set up track logging via web worker 2023-12-01 10:55:47 +03:00
mungai-njoroge
9fc37034a6 lint code 2023-11-26 15:37:53 +03:00
mungai-njoroge
53fc0c6656 fix play from album 2023-11-26 15:33:22 +03:00
mungai-njoroge
cfe57b788b fix track add to queue 2023-11-25 14:30:26 +03:00
mungai-njoroge
3b55cc1c2c add about page in settings 2023-11-25 12:03:29 +03:00
mungai-njoroge
47c41be79a convert player into setup store 2023-11-25 02:56:31 +03:00
mungai-njoroge
cfc9c2632b break store into 2 and refactor 2023-11-24 00:10:41 +03:00
mungai-njoroge
c0cb2791d0 fix #20 2023-11-14 20:54:23 +03:00
mungai-njoroge
6520b686a3 release v1.4.0 2023-11-14 14:34:59 +03:00
mungai-njoroge
4041c8f588 add context option to search albums and artists on spotify, etc. 2023-11-12 23:21:11 +03:00
mungai-njoroge
da63f481c6 replace now playing with up next on now playing page
+ fix context menu flag watcher bug
2023-11-08 11:06:29 +03:00
mungai-njoroge
a5bcaadafb fix broken settings on ngrok 2023-11-07 23:54:51 +03:00
mungai-njoroge
19142b284a hook plugins settings to settings store
+ misc
2023-11-07 17:14:19 +03:00
mungai-njoroge
511fa58d66 fix disappearing artist separator input on settings page 2023-11-07 10:12:56 +03:00
mungai-njoroge
2fbac120b2 rewrite settings page to use vue router 2023-11-07 09:26:41 +03:00
mungai-njoroge
dea36af5cc clean lyrics plugin
+ update now playing page links to replace current route
+ remove versions from lyrics plugin
+ misc, etc.
2023-11-07 01:39:17 +03:00
mungai-njoroge
81d28461f6 Add settings for lyrics plugin 2023-11-03 17:16:45 +03:00
mungai-njoroge
92302e87e5 move plugin to store and extract dropdown 2023-11-03 16:13:12 +03:00
mungai-njoroge
1fd30b4ac3 add ui for lyrics plugin 2023-11-03 10:40:28 +03:00
mungai-njoroge
f751bbac97 use tabs in now playing page 2023-11-02 12:16:32 +03:00
mungai-njoroge
feb99103b8 break lyrics componnent into 2
+ add lyrics to now playing page
+ remove lyrics from sidebar: it make the sidebar look cluttered
2023-11-01 23:48:31 +03:00
mungai-njoroge
0851c76e65 show lyrics indicatior 2023-10-31 22:36:50 +03:00
mungai-njoroge
bf1f3bf00a refactors and error handling 2023-10-30 17:44:52 +03:00
mungai-njoroge
c0dd04bc94 add lyrics to sidebar 2023-10-30 12:44:33 +03:00
Mungai Njoroge
c2aba79db7 Merge pull request #19 from swing-opensource/handle-album-versions
v1.3.0
2023-10-11 15:00:13 -07:00
mungai-njoroge
1df8263038 move fav btn to the far right 2023-10-12 00:59:38 +03:00
mungai-njoroge
d983b291ce update favicons 2023-10-11 11:03:02 +03:00
mungai-njoroge
accf43e978 prevent similar albums/artists from changing if you don't go back to them from a different page
~ eg. albums won't change if you go navigate to artist page, but they will change if you go to another album page

+ remove clear callback from fetcher component
+ darken recent fav card hover color
2023-10-09 00:18:14 +03:00
mungai-njoroge
476dab914b fix text balance on playlist header
+ move notification a lil bit up
+ fix space pausing music when folder search input is focused
2023-10-06 00:17:26 +03:00
mungai-njoroge
dad260bbb0 add created playlist to playlist list page
+ fix empty playlist bug on playlist page
2023-09-25 19:17:54 +03:00
mungai-njoroge
e605273769 merge EP & singles 2023-09-23 18:58:33 +03:00
mungai-njoroge
b98cd98699 remove console.log from queue store 2023-09-18 01:05:58 +03:00
mungai-njoroge
a35c23a56b change recent card pill color 2023-09-17 09:51:42 +03:00
mungai-njoroge
2e8d311021 change recent card pill color 2023-09-16 14:49:13 +03:00
mungai-njoroge
6632b7a2fb hide album track count on singles 2023-09-16 13:39:37 +03:00
mungai-njoroge
d3132b75e5 misc 2023-09-15 00:08:20 +03:00
mungai-njoroge
56e1d4d2a8 add setting to toggle using simple artist header
+ handle the effects of the above
2023-09-14 23:52:33 +03:00
mungai-njoroge
892e4c4f2e design artist header to use circular artist img 2023-09-14 22:31:38 +03:00
mungai-njoroge
a36dcfcee1 fix loader not respecting click 2023-09-14 21:04:37 +03:00
mungai-njoroge
f8edb4a97e move option menu in now playing header to near heart btn
+ extract ctheme olors from image instead of reading from server on track play
+
2023-09-12 13:49:54 +03:00
mungai-njoroge
dc76cb4fcf rewrite separators input to handle props updates 2023-09-12 12:35:39 +03:00
mungai-njoroge
d4672f4eaa fix right sidebar top results cards grid auto-fit 2023-09-12 03:23:26 +03:00
mungai-njoroge
ba1512e9e4 use ctrl + arrow keys to seek 2023-09-12 03:17:46 +03:00
mungai-njoroge
d42bb6456c add show_if on setting item interface
+ use it to hide show_sidebar setting  if can't extend width
2023-09-12 03:04:44 +03:00
mungai-njoroge
f0de99ad26 always use wide playlist img on mobile 2023-09-12 02:57:36 +03:00
mungai-njoroge
fe9f6cbf35 try to fix loader getting stuck when queue is set to not repeat 2023-09-08 10:24:02 +03:00
mungai-njoroge
efbae531de split album settings into 2
+  add setting to show albums with a single track as singles
2023-09-04 19:54:08 +03:00
mungai-njoroge
341523e3ae show genres in artist page
+ set artist header color on image load
2023-09-04 10:56:32 +03:00
mungai-njoroge
89ad2b299c add half baked audio buffering spinner 2023-09-03 10:28:35 +03:00
mungai-njoroge
b24f484b1c remove radio nav item 2023-08-31 11:30:51 +03:00
mungai-njoroge
5525f3890a remove radios 😭😭
they come with a lot of complexity
2023-08-30 15:59:41 +03:00
mungai-njoroge
c0e7124c61 add button to trigger rescanning root dirs
+ adjust switch off state colors
+ remove notifications from favorite requests
+ misc
2023-08-30 15:22:58 +03:00
mungai-njoroge
76ea71ee41 hide see all for similar artists
+ fix queue play error handling
2023-08-28 12:59:20 +03:00
mungai-njoroge
cc5deca895 redesign logo component
+ hide see all in artist albums if route is null
+ maintain img aspect ratio in now playing page, etc.
+ remove albums explorer components
+ fix noitems component
+ add more radios
2023-08-28 12:42:34 +03:00
mungai-njoroge
daae4015dc add separators input to settings page
+ remove bitrate from now playing page
+ add show_if: () => boolean; to hide settings
2023-08-25 20:04:55 +03:00
mungai-njoroge
39e109c4ed load settings from server on settings page
+ redesign settings page
+ generate .gz bundles on css and js files
+ add logo to settings page version area
+ remove show master flag setting from settings page and store
+ add descriptions to settings
+ move radios data to separate file
+ misc
2023-08-24 16:39:12 +03:00
mungai-njoroge
a48ff0ee17 move save queue as playlist btn to context menu
+ add option to add queue to playlist
+ misc
2023-08-22 13:20:49 +03:00
mungai-njoroge
77cee01a8b cue track if audio.currentTime > 3 2023-08-22 11:47:49 +03:00
mungai-njoroge
820234ee1a add hidden page, add generic header to playlist list page
+ implement playlist pinning
+ redesign playlist header to handle pin button
+ add hidden radio page and card components
2023-08-22 11:44:30 +03:00
mungai-njoroge
2dc60f9aff add top results page to search view
+ fix context menu triggering on touch

+ add time to now playing page
+ a lot of miscs
2023-08-17 21:48:14 +03:00
mungai-njoroge
326079512e disable touch highlight
+ misc
2023-08-16 11:56:06 +03:00
mungai-njoroge
bee2f12624 hide scrollbars on nav
+ hide scrollbars on context menu
2023-08-14 10:43:51 +03:00
mungai-njoroge
8bfe5baaa3 fix touch context menu not triggering attached action
+ misc
2023-08-12 19:06:50 +03:00
mungai-njoroge
cc417e4954 implement queue save as playlist
+ configure eslint
2023-08-12 17:47:25 +03:00
mungai-njoroge
b296c72020 fix playing from search top tracks
+ fix reactivity on now playing page playing from component
2023-08-10 12:39:33 +03:00
mungai-njoroge
c41f9a98c5 JEZUS ... A LOOTTT
+ remove queue page files
+ balance playlist title
+ misc
2023-08-10 12:18:10 +03:00
mungai-njoroge
5ac61a227a show buttons on now playing page
+ fix context children overflow
2023-08-08 13:07:35 +03:00
mungai-njoroge
594a7e74c5 handle playing from the top item search result in quick search
+ implement scroll on volume icon to adjust volume
+ fix sqr_img -> square_img
+ remove passing stores as props
2023-08-08 12:16:32 +03:00
mungai-njoroge
3b2721ea22 implement volume
+ remove client-side in_quotes implementation
+ change progress bar colors to white
2023-08-06 22:10:32 +03:00
mungai-njoroge
638b967977 add top results to right search
+ remove borders from things
+ show app version on settings page
+ misc
2023-08-06 19:25:40 +03:00
mungai-njoroge
87173db442 misc 2023-08-04 19:50:18 +03:00
mungai-njoroge
d1efb026eb link add item to new playlist from context to save item as playlist 2023-08-04 14:16:07 +03:00
mungai-njoroge
298f6d7618 break artist header into small components 2023-08-04 12:55:28 +03:00
mungai-njoroge
e1f458eff3 add artist header context menu with these options:
- play next
- add to queue
- add to playlist
- save as playlist

+ extract "save item as" function into a reusable function
+ refactor for the above
2023-08-04 12:36:28 +03:00
mungai-njoroge
e04aa0da9b implement add folder, album to playlist
+ extract getAddToPlaylistOptions to a reusable function
+ misc
2023-08-04 11:40:44 +03:00
mungai-njoroge
137dda5216 hook the add to queue context option for folders 2023-08-02 15:00:40 +03:00
mungai-njoroge
b2618cd8aa fix heart button not working for small screens
+ fix translate rotate on playlist images
+ move playlist header > .info css into component
+ misc
2023-08-01 10:32:37 +03:00
mungai-njoroge
4f102d42d6 create the initial volume component 2023-07-31 16:45:03 +03:00
mungai-njoroge
5c8af06c8f fix songitem add to fav icon not updated 2023-07-31 14:28:19 +03:00
mungai-njoroge
5ee18a235c round off rgb values 2023-07-31 09:48:48 +03:00
mungai-njoroge
fb54c90877 Merge branch 'handle-album-versions' of github.com:swing-opensource/swingmusic-client into handle-album-versions 2023-07-30 18:22:47 +03:00
mungai-njoroge
adfa4ce721 Finally understood the meaning behind: "FUCK AROUND AND FIND OUT"
LOST MY LAST N COMMITS

HAD TO REWRITE 2 DAYS WORTH OF WORK

- remove gapless5 implementation from queue store
- rewrite a css transforms properly
- reimplement client-side color extraction for album and artist page
- break down album header into components

- a lot of lost code
2023-07-30 18:02:25 +03:00
mungai-njoroge
33898fecfa fix: prevent reloading current playlist if no track was added
+ use dynamic play btn bg colors for artist header
+ extract setColorsToStore into a separate file
2023-07-30 15:02:09 +03:00
mungai-njoroge
3bfe84a764 improve on last commit 2023-07-29 07:14:40 +03:00
mungai-njoroge
09bbc5ee7e implement client-side color extraction for playlist image
+ for more check the diff
2023-07-27 09:46:39 +03:00
mungai-njoroge
a303538ddf add function to save folder as playlist 2023-07-26 14:27:58 +03:00
mungai-njoroge
2044de7122 add modal to save folder as playlist 2023-07-26 13:09:12 +03:00
mungai-njoroge
d11f7c02b3 update upload area of update playlist modal 2023-07-25 08:36:56 +03:00
mungai-njoroge
ba6d057ad0 add context menu for folders cards 2023-07-25 08:26:18 +03:00
mungai-njoroge
e2f5dd4b63 add context menu for folders 2023-07-25 06:50:04 +03:00
mungai-njoroge
15932ab3f3 move files to helpers and refactor usages 2023-07-25 00:02:42 +03:00
mungai-njoroge
427b170c83 add button to remove playlist image
+ redesign update playlist dialog
+ remove transitions from navbar
+ move notifications to bottom, and fix colors too.
2023-07-24 23:15:08 +03:00
mungai-njoroge
40b516aa11 dynamically get domain from window object
+ introduce new player errors
2023-07-24 21:20:05 +03:00
mungai-njoroge
92d20bc2be implement gapless playback and crossfade
using https://github.com/regosen/Gapless-5
2023-07-22 10:23:19 +03:00
mungai-njoroge
3945e48b40 redesign search tab switchers and left nav buttons 2023-07-21 17:06:13 +03:00
mungai-njoroge
ba5b3131c3 update page when adding/removing tracks to a playlist
+ related to the above
2023-07-20 21:22:53 +03:00
mungai-njoroge
96efda61c7 use raw svg strings as icons in context menu
+ add dummy context menu option in playlists to remove track
+ update vite-svg-loader
+ export all svgs from ./icons.ts
2023-07-20 16:48:14 +03:00
mungai-njoroge
d1db19a8d5 remove usused radio code
+ remove artist images from album header
+ add placeholder text for nowplaying when queue is empty
+ misc
2023-07-20 15:07:09 +03:00
mungai-njoroge
2327afcbba add album context menu 2023-07-19 20:30:21 +03:00
mungai-njoroge
b391be4ad0 make all album and artist card list scrollable
+ use same classes for all those components
+ return a minimum of 7 cards for maxAlbumCards
+ refactors
2023-07-12 21:45:09 +03:00
mungai-njoroge
f96f77db0a refactor in @vueuse/motion and remove global motion one for vue components
+ update album api route json variable name
2023-07-09 18:35:03 +03:00
mungai-njoroge
0b2a91ced8 break now playing header into components
+ handle play from queue in now playing page
2023-07-07 13:11:00 +03:00
mungai-njoroge
3b71c34db6 fix multiple API calls on fetch similar artists +misc 2023-07-05 20:42:44 +03:00
mungai-njoroge
2dbaf42570 use songitem components in now playing page
+ show images in now playing page
+ replace queue page with now playing page
2023-07-05 15:28:19 +03:00
mungai-njoroge
8784d37b52 add queue to now playing page 2023-07-05 13:48:42 +03:00
mungai-njoroge
8bac0c71c4 add nowplaying page header 2023-07-05 12:52:11 +03:00
mungai-njoroge
8da6a3de9e hide search on folder page for small screens
+ default to list mode on small screens
2023-07-05 10:58:33 +03:00
mungai-njoroge
53b9a15144 hide fav button on songitem on mobile + refactors 2023-07-05 10:43:42 +03:00
mungai-njoroge
6012332b17 optimize search page for mobile 2023-07-03 16:29:25 +03:00
mungai-njoroge
3e19161499 optimize playlist header for mobile 2023-07-03 15:25:02 +03:00
mungai-njoroge
2ce0ceab6a handle updates to document title on most pages 2023-07-03 14:54:06 +03:00
mungai-njoroge
fe5a55787e optimize artist header for mobile 2023-07-03 12:35:52 +03:00
mungai-njoroge
ac0385be40 optimize header for mobile 2023-07-03 11:52:28 +03:00
mungai-njoroge
8f754db58e port album header to mobile view 2023-07-03 00:25:36 +03:00
mungai-njoroge
1a4da2d89d port bottom bar to mobile
+ refactors
2023-07-02 20:04:47 +03:00
mungai-njoroge
b9583c5b9c a lot of stuff tiny changes but overall ... 👇👇
- start opmizing view for mobile (user demand)
- configure installable PWA
2023-07-02 18:46:52 +03:00
mungai-njoroge
538ab159b4 add related albums to album page 2023-07-02 00:11:02 +03:00
mungai-njoroge
846cca8b64 misc 2023-07-01 21:11:17 +03:00
mungai-njoroge
a31083a840 try to fix album wrapper height 2023-06-30 12:43:16 +03:00
mungai-njoroge
f58058eca1 test similar artists 2023-06-30 12:05:34 +03:00
mungai-njoroge
c94b56a3f6 remove recent fav card texture 2023-06-29 15:04:06 +03:00
geoffrey45
2961d852b1 add context action to open file in explorer
+ fix album list and others height calculator function (I think)
2023-05-09 13:57:08 +03:00
geoffrey45
85d44a4eeb use @vueuse/core/useElementSize to set component height
~ the artistlist, artistalbums and favorite recents components
+ hide artists on "other versions" section of the album page
2023-05-08 14:10:15 +03:00
geoffrey45
a3363acf56 set artist albums and aritst list component height dynamically
+ misc
2023-05-07 21:48:30 +03:00
geoffrey45
9b8fb659fb draft recently added items component for the favorites page 2023-04-30 15:37:23 +03:00
geoffrey45
06f7bea02e fix infinite updates loop on album header component 2023-04-23 00:59:08 +03:00
geoffrey45
13e88ba0d9 fix: showing compilations in discogs page
+ show album version flag in album header
+ show other versions in album page
+ misc
2023-04-22 22:29:02 +03:00
geoffrey45
a24d08111c show album version in album card and album header
+ modify master flag to show album versions
2023-04-22 15:17:12 +03:00
geoffrey45
5b51c589da redesign add to fav heart button with dynamic icon color 2023-04-17 22:55:20 +03:00
geoffrey45
cbb7b2bf25 Merge branch 'add-drag,-drop-and-reorder' 2023-04-17 02:32:53 +03:00
geoffrey45
f6e135a28c make songcard less rounded 2023-04-17 02:25:59 +03:00
geoffrey45
e8b7db4d98 add setting to hide master flag
+ show track bitrate on master flag hover
2023-04-14 20:37:12 +03:00
geoffrey45
731d06a35e minor tweaks 2023-04-06 11:59:00 +03:00
geoffrey45
534e163f76 remove console.logs 2023-03-27 16:45:38 +03:00
geoffrey45
3036d019f0 remove drag and drop code: prep for next release 2023-03-27 16:45:38 +03:00
geoffrey45
d8693f187e remove console.log 2023-03-27 16:45:38 +03:00
geoffrey45
8acb9d984e fix ub40 tracks not playing due to use of decodeURIComponent instead of encodeURIComponent 2023-03-27 16:45:38 +03:00
geoffrey45
2edebc8a4d fix artist page appearances see all bug 2023-03-27 16:45:38 +03:00
geoffrey45
5568ffb4ea add button to toggle list mode 2023-03-27 16:45:38 +03:00
geoffrey45
8eee9fe6e9 paint bottom bar artist name with thumbnail cover
+ break bottom bar and playlist header into components
2023-03-27 16:45:38 +03:00
geoffrey45
2274a5b863 add playlist image grid to playlist card
+ add wave animations on nav items, and songcard
2023-03-27 16:45:38 +03:00
geoffrey45
1fcf3658e9 use @nextcss/colortools/shift to make colored headers balanced 2023-03-27 16:45:38 +03:00
geoffrey45
79ca903ee7 add and hide trackbin 2023-03-27 16:45:38 +03:00
geoffrey45
d14567dd3a redesign playlist header
~ to show the playlist contents images in header
2023-03-27 16:45:38 +03:00
geoffrey45
496840794c fix favorite tracks page behaving similar to queue page
+ add icons to root dirs list in settings page
2023-03-27 16:45:38 +03:00
geoffrey45
86e17a979f add v-wave
+ fix console errrors on queue clear
2023-03-27 16:45:38 +03:00
geoffrey45
a3103d212f add padding to context menu
+ misc
2023-03-27 16:45:38 +03:00
geoffrey45
e84673198c a gazzilion refactors 2023-03-27 16:45:38 +03:00
geoffrey45
7ea6c0c27f add draggables and drop zones to songitem component 2023-03-27 16:45:38 +03:00
geoffrey45
7eba9fe307 remove console.logs 2023-03-27 08:01:05 +03:00
geoffrey45
fdb8b9fa31 remove drag and drop code: prep for next release 2023-03-27 03:35:04 +03:00
geoffrey45
766b705f07 remove console.log 2023-03-26 18:35:50 +03:00
geoffrey45
b4e72c77bc fix ub40 tracks not playing due to use of decodeURIComponent instead of encodeURIComponent 2023-03-26 18:34:56 +03:00
geoffrey45
640a7d7830 fix artist page appearances see all bug 2023-03-26 18:06:15 +03:00
geoffrey45
9f8847823e add button to toggle list mode 2023-03-26 11:07:57 +03:00
geoffrey45
93e4db218f paint bottom bar artist name with thumbnail cover
+ break bottom bar and playlist header into components
2023-03-19 23:36:09 +03:00
geoffrey45
101d9496ca add playlist image grid to playlist card
+ add wave animations on nav items, and songcard
2023-03-18 00:39:41 +03:00
geoffrey45
710c6ca91d use @nextcss/colortools/shift to make colored headers balanced 2023-03-17 00:55:54 +03:00
geoffrey45
8beed7f45c add and hide trackbin 2023-03-15 10:02:01 +03:00
geoffrey45
9cb3820c96 redesign playlist header
~ to show the playlist contents images in header
2023-03-14 23:32:47 +03:00
geoffrey45
ed2e1f11e4 fix favorite tracks page behaving similar to queue page
+ add icons to root dirs list in settings page
2023-03-14 20:04:49 +03:00
geoffrey45
8a4b9b1024 add v-wave
+ fix console errrors on queue clear
2023-03-12 10:35:50 +03:00
geoffrey45
bc58a738da add padding to context menu
+ misc
2023-03-04 21:25:28 +03:00
geoffrey45
cf57f915ba a gazzilion refactors 2023-02-26 09:46:41 +03:00
geoffrey45
a7bfb8fe51 add draggables and drop zones to songitem component 2023-02-25 15:24:54 +03:00
geoffrey45
12f8343cd5 update readme 2023-02-24 15:33:08 +03:00
geoffrey45
226e86ce37 add noitems placeholder for playlist page 2023-02-17 18:57:14 +03:00
geoffrey45
e439d14d58 fix: queue page highligting multiple songs 2023-02-17 17:11:37 +03:00
geoffrey45
25c296be90 make "add to fav" button's bg pink 2023-02-15 22:15:47 +03:00
geoffrey45
01f0f8de03 fix: queue last song bug 2023-02-15 17:25:50 +03:00
geoffrey45
e17c498da0 update readme 2023-02-13 20:50:20 +03:00
geoffrey45
37d449b3c4 minor 2023-02-13 20:06:33 +03:00
geoffrey45
ef0265d974 adjust hotkeys spacing 2023-02-13 09:04:30 +03:00
geoffrey45
4944906408 fix: Add track to queue removing track from queue list
+ remove console logs
2023-02-11 14:04:32 +03:00
geoffrey45
51eeee9e16 adjust bottom bar center items margin bottom 2023-02-11 10:32:30 +03:00
geoffrey45
3cde601008 feat: show album date on album card on artist page 2023-02-09 21:03:10 +03:00
geoffrey45
f3137c418a bottom bar improvements 2023-02-08 10:57:38 +03:00
geoffrey45
dbec08fee2 redesign bottom bar 2023-02-08 02:14:17 +03:00
geoffrey45
c500dc6775 feat: show live albums in album header 2023-02-07 12:50:12 +03:00
geoffrey45
6e21908ee2 add light borders to songItem and album card components 2023-02-07 12:21:38 +03:00
geoffrey45
b752ff4bef UI improvements
~ remove gradients from buttons
~ add light borders to modals, buttons
2023-02-07 03:07:30 +03:00
geoffrey45
35e4c2ae8e feat: hide playlist image (placeholder) when none is set 2023-02-04 00:47:16 +03:00
geoffrey45
10c50b5053 fix: highlighting right clicked track
+ make 📁 clickable on set root dirs modal
2023-02-03 22:18:41 +03:00
geoffrey45
7de1bc1ebf feat: add button to remove root dirs on settings page
+ a List component for setting type of list
+ change button text to () => string; to support reactivity
2023-02-03 18:07:48 +03:00
geoffrey45
243e5b8087 fix: extend app to full screen width not working 2023-02-02 11:59:38 +03:00
geoffrey45
7cd828b3cd fix: key error in album apage 2023-02-01 16:06:07 +03:00
geoffrey45
54b1b494fc fix scrolling in right sidebar track search 2023-02-01 13:37:04 +03:00
geoffrey45
3cde77c350 fix: sidebar search loadmore button position
+ add NoItems component to folder page
+ move setRootDirs component button to bottom
+ misc
2023-01-29 13:44:43 +03:00
geoffrey45
65f492945c update dependencies 2023-01-27 05:13:47 +03:00
geoffrey45
67848d02c0 add a "select here" button in the SetRootDirs modal
+ move focus folders breadcrumb to the bread component
2023-01-27 05:05:40 +03:00
geoffrey45
361de1103b fix subpaths for windows 2023-01-26 22:30:11 +03:00
geoffrey45
6c3683b852 add NoItems compont to show when there's no items in page
+ add the above component to playlist, favorite and queue page
2023-01-26 22:13:25 +03:00
geoffrey45
daaa0c48c2 change song card animation from swipe to scale
+ change the "General" button in settings page to "Reset client"
2023-01-25 11:44:10 +03:00
geoffrey45
c6cac53ba7 add setting page item to modify root dirs 2023-01-24 02:13:59 +03:00
geoffrey45
d0caa3b6c4 feat: handle using esc key to hide modals
+ redesign the modal closing button
2023-01-24 00:01:04 +03:00
geoffrey45
861c1beb03 handle showing prompt to set root dirs if none is set
+ animate left sidebar Now playing image
2023-01-23 23:36:39 +03:00
geoffrey45
19289c6c42 feat: increase content width to 2220px for large screen heights 2023-01-23 16:59:44 +03:00
geoffrey45
f877e574af handle navigation in folder page's folderlist component 2023-01-23 10:10:23 +03:00
geoffrey45
9207412c51 increase page banner height for screen height larger than 1080p
+ improve favorite artist and album cards placement calculation
2023-01-23 09:57:59 +03:00
geoffrey45
3871a5ecf8 fix the artist page's top track last track click bug
+ fix SetRootDirs logic
2023-01-23 09:03:28 +03:00
geoffrey45
8b35ad415b build first version of root directory setter modal
with the core functionality
2023-01-21 18:02:09 +03:00
geoffrey45
ad0c6e6580 add modal to set IP adress when client is running on netlify
and IP adress is not set
2023-01-21 11:53:26 +03:00
geoffrey45
790a6fcaf6 remove lazy loading route components 2023-01-20 13:12:58 +03:00
geoffrey45
b2c292b531 change prod base url to dev_url for deploy tests 2023-01-20 12:39:44 +03:00
geoffrey45
6b12e23cd5 update package.json build path 2023-01-20 12:34:18 +03:00
364 changed files with 18406 additions and 6852 deletions

View File

@@ -3,9 +3,25 @@ module.exports = {
env: { env: {
es2021: true, 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: { rules: {
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off", "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-debugger": 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
View File

@@ -23,4 +23,8 @@ pnpm-debug.log*
*.sln *.sln
*.sw? *.sw?
__pycache__ # TODO
TODO.md
__pycache__
dev-dist/*

View File

@@ -1,6 +1,6 @@
### Swing music client ### 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 ### Setup
@@ -26,15 +26,14 @@ yarn dev
yarn build 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 ```sh
│  yarn generate-pwa-assets
├── swing-client
│  └── # client code here
├── swingmusic
│   └── # server code here
``` ```
---
### Contributing ### Contributing

View File

@@ -4,8 +4,8 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" /> <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> <title>Swing Music</title>
<base href="./">
</head> </head>
<body> <body>
<noscript> <noscript>

View File

@@ -5,7 +5,8 @@
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"serve": "vite preview", "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" "lint": "eslint --ext .js,.vue --ignore-path .gitignore --fix src"
}, },
"dependencies": { "dependencies": {
@@ -14,26 +15,38 @@
"@vueuse/components": "^9.2.0", "@vueuse/components": "^9.2.0",
"@vueuse/core": "^8.5.0", "@vueuse/core": "^8.5.0",
"@vueuse/integrations": "^9.2.0", "@vueuse/integrations": "^9.2.0",
"@vueuse/motion": "^2.0.0",
"axios": "^0.26.1", "axios": "^0.26.1",
"fuse.js": "^6.6.2", "fuse.js": "^6.6.2",
"motion": "^10.15.5",
"node-vibrant": "3.1.6",
"pinia": "^2.0.17", "pinia": "^2.0.17",
"pinia-plugin-persistedstate": "^2.1.1", "pinia-plugin-persistedstate": "^3.2.0",
"sass": "^1.56.1", "v-wave": "^1.5.0",
"sass-loader": "^13.2.0", "vue": "^v3.2.45",
"vite-svg-loader": "^3.4.0",
"vue": "^3.2.37",
"vue-debounce": "^3.0.2", "vue-debounce": "^3.0.2",
"vue-router": "^4.1.3", "vue-router": "^4.1.3",
"vue-template-compiler": "^2.0.0", "vue-template-compiler": "^2.0.0",
"vue-virtual-scroller": "^2.0.0-beta.7", "vue-virtual-scroller": "^2.0.0-beta.7",
"webpack": "^5.74.0" "vue-wrap-balancer": "^1.0.0"
}, },
"devDependencies": { "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", "@vitejs/plugin-vue": "^3.2.0",
"eslint": "^8.7.0", "eslint": "^8.46.0",
"eslint-plugin-vue": "^8.3.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", "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" "packageManager": "yarn@1.22.19"
} }

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
public/favicon.ico Normal file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 591 B

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

View 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
View 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

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
public/pwa-192x192.png Normal file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
public/pwa-512x512.png Normal file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
public/pwa-64x64.png Normal file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 867 B

1
public/site.webmanifest Normal file
View 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"}

View 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
View 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);
};

View File

@@ -2,21 +2,36 @@
<ContextMenu /> <ContextMenu />
<Modal /> <Modal />
<Notification /> <Notification />
<div id="drag-img" class="ellip2" style=""></div>
<section <section
id="app-grid" id="app-grid"
:class="{ :class="{
noSidebar: !settings.use_sidebar || !xl, useSidebar: settings.use_sidebar && xl,
NoSideBorders: !xxl, NoSideBorders: settings.is_alt_layout || !xxl,
extendWidth: settings.extend_width && settings.can_extend_width, 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 /> <NavBar />
<div id="acontent" v-element-size="updateContentElemSize"> <div id="acontent" v-element-size="updateContentElemSize">
<router-view /> <div id="contentresizer" ref="appcontent"></div>
<BalancerProvider>
<RouterView />
</BalancerProvider>
</div> </div>
<RightSideBar v-if="settings.use_sidebar && xl" /> <RightSideBar v-if="settings.use_sidebar && xl" />
<BottomBar /> <BottomBar />
<!-- <BubbleManager /> -->
</section> </section>
</template> </template>
@@ -24,18 +39,25 @@
// @libraries // @libraries
import { vElementSize } from "@vueuse/components"; import { vElementSize } from "@vueuse/components";
import { onStartTyping } from "@vueuse/core"; import { onStartTyping } from "@vueuse/core";
import { onMounted } from "vue"; import { onMounted, Ref, ref } from "vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { BalancerProvider } from "vue-wrap-balancer";
// @stores // @stores
import { content_width } from "@/stores/content-width"; import {
import useContextStore from "@/stores/context"; content_height,
import useModalStore from "@/stores/modal"; content_width,
import useQStore from "@/stores/queue"; isMobile,
import useSettingsStore from "@/stores/settings"; 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 // @utils
import handleShortcuts from "@/composables/useKeyboard"; import handleShortcuts from "@/helpers/useKeyboard";
import { readLocalStorage, writeLocalStorage } from "@/utils"; import { readLocalStorage, writeLocalStorage } from "@/utils";
import { xl, xxl } from "./composables/useBreakpoints"; import { xl, xxl } from "./composables/useBreakpoints";
@@ -45,35 +67,56 @@ import Modal from "@/components/modal.vue";
import Notification from "@/components/Notification.vue"; import Notification from "@/components/Notification.vue";
// @app-grid-components // @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 NavBar from "@/components/nav/NavBar.vue";
import RightSideBar from "@/components/RightSideBar/Main.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 router = useRouter();
const modal = useModalStore(); const settings = useSettings();
const settings = useSettingsStore(); useTracker();
queue.readQueue(); handleShortcuts(useQueue, useModal);
handleShortcuts(useQStore);
router.afterEach(() => { router.afterEach(() => {
(document.getElementById("acontent") as HTMLElement).scrollTo(0, 0); (document.getElementById("acontent") as HTMLElement).scrollTo(0, 0);
}); });
onStartTyping((e) => { onStartTyping(() => {
if (e.ctrlKey) {
console.log("ctrl pressed");
}
const elem = document.getElementById("globalsearch") as HTMLInputElement; const elem = document.getElementById("globalsearch") as HTMLInputElement;
elem.focus(); elem.focus();
elem.value = ""; elem.value = "";
}); });
function updateContentElemSize({ width }: { width: number }) { function getContentSize() {
content_width.value = width; 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() { function handleWelcomeModal() {
@@ -89,29 +132,43 @@ function handleWelcomeModal() {
} }
} }
function handleRootDirsPrompt() {
getRootDirs().then((dirs) => {
if (dirs.length === 0) {
modal.showRootDirsPromptModal();
} else {
settings.setRootDirs(dirs);
}
});
}
onMounted(() => { onMounted(() => {
const { width, height } = getContentSize();
updateContentElemSize({ width, height });
handleWelcomeModal(); 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> </script>
<style lang="scss"> <style lang="scss">
@import "./assets/scss/mixins.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 { .r-sidebar {
&::-webkit-scrollbar { &::-webkit-scrollbar {
display: none; display: none;

View File

Binary file not shown.

View File

@@ -1,3 +1,3 @@
<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="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> </svg>

Before

Width:  |  Height:  |  Size: 931 B

After

Width:  |  Height:  |  Size: 936 B

View 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

View 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

View File

@@ -1,3 +1,4 @@
<svg width="28" height="28" viewBox="0 0 28 28" fill="currentColor" 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="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"/> <path
</svg> 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

View File

@@ -1,3 +1,3 @@
<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">
<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"/> <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> </svg>

Before

Width:  |  Height:  |  Size: 885 B

After

Width:  |  Height:  |  Size: 898 B

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <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"> <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> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View 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

View File

@@ -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"/> <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> </svg>

Before

Width:  |  Height:  |  Size: 521 B

After

Width:  |  Height:  |  Size: 517 B

View File

@@ -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" /> <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> </svg>

Before

Width:  |  Height:  |  Size: 1020 B

After

Width:  |  Height:  |  Size: 1016 B

View 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

View File

@@ -1,4 +1,4 @@
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg"> <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="white"/> <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="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="currentColor"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -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

View File

@@ -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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View File

@@ -1,5 +1,5 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/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="white"/> <circle cx="7.04999" cy="12.0498" r="1.25" fill="currentColor" />
<circle cx="12.05" cy="12.0498" r="1.25" fill="white"/> <circle cx="12.05" cy="12.0498" r="1.25" fill="currentColor" />
<circle cx="17.05" cy="12.0498" r="1.25" fill="white"/> <circle cx="17.05" cy="12.0498" r="1.25" fill="currentColor" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 273 B

After

Width:  |  Height:  |  Size: 316 B

View 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

View File

@@ -1,3 +1,3 @@
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="28" height="29" viewBox="0 0 28 29" fill="currentColor" 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"/> <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> </svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1,3 +1,3 @@
<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">
<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"/> <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> </svg>

Before

Width:  |  Height:  |  Size: 471 B

After

Width:  |  Height:  |  Size: 484 B

View File

@@ -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

View 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

View 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

View File

@@ -1,3 +1,3 @@
<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="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> </svg>

Before

Width:  |  Height:  |  Size: 768 B

After

Width:  |  Height:  |  Size: 773 B

View File

@@ -1,3 +1,3 @@
<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">
<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"/> <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> </svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View 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

View 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

View File

@@ -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)"> <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="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="#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="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="black"/> <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> </g>
<defs> <defs>
<clipPath id="clip0_308_586"> <clipPath id="clip0_308_586">
<rect width="28" height="28" fill="white"/> <rect width="28" height="28" fill="currentColor"/>
</clipPath> </clipPath>
</defs> </defs>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <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"> <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> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <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"> <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> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <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"> <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> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View 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

View 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

View 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

View 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

View 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

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

View File

@@ -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

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -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

View File

@@ -6,7 +6,7 @@
height: 100%; height: 100%;
padding-right: $small; padding-right: $small;
@include phone-only { @include largePhones {
grid-template-columns: 1fr 9.2rem; grid-template-columns: 1fr 9.2rem;
} }

View File

@@ -3,10 +3,10 @@
.scrollable { .scrollable {
display: grid; display: grid;
grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
padding: 0 1rem; padding: 0 1rem;
padding-bottom: 4rem;
overflow: auto; overflow: auto;
max-height: 100%; max-height: 100%;
gap: 2rem 1rem;
} }
} }

View File

@@ -2,55 +2,46 @@ $g-border: solid 1px $gray5;
#app-grid { #app-grid {
display: grid; display: grid;
grid-template-columns: min-content 1fr 29rem; // grid-template-columns: min-content 1fr 29rem;
grid-template-rows: max-content 1fr 5rem; grid-template-columns: min-content 1fr;
grid-template-rows: $navheight 1fr $navheight;
grid-template-areas: grid-template-areas:
"l-sidebar nav r-sidebar" "l-sidebar nav"
"l-sidebar content r-sidebar" "l-sidebar content"
"bottombar bottombar bottombar"; "bottombar bottombar";
// gap: 0 1.5rem;
height: 100%; height: 100%;
border: $g-border; border: $g-border;
border-top: none; border-top: none;
border-bottom: none; border-bottom: none;
margin: 0 auto; 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 { #acontent {
width: 100%; width: 100%;
grid-area: content; grid-area: content;
padding-right: calc($medium);
overflow: hidden; overflow: hidden;
} margin-right: $margright;
.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;
} }
.topnav { .topnav {
grid-area: nav; grid-area: nav;
margin: 1rem 0; height: $navheight;
} padding: 1rem $padleft;
padding-right: $padright;
.l-sidebar {
width: 15rem;
grid-area: l-sidebar;
display: grid;
grid-template-rows: 1fr max-content;
border-right: $g-border;
} }
.b-bar { .b-bar {
@@ -59,59 +50,157 @@ $g-border: solid 1px $gray5;
} }
.content-page { .content-page {
margin-left: 1.25rem;
margin-right: -$medium;
padding-right: $medium;
scrollbar-gutter: stable; 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 ======= // ====== MODIFIERS =======
#app-grid.extendWidth { #app-grid.is_alt_layout {
max-width: 100%; grid-template-columns: 1fr;
padding-right: 0; grid-template-rows: max-content 1fr 5rem;
border-left: none;
border-right: none;
}
#app-grid.noSidebar {
grid-template-columns: min-content 1fr;
grid-template-areas: grid-template-areas:
"l-sidebar nav" "nav"
"l-sidebar content" "content"
"bottombar bottombar"; "bottombar";
#acontent { .vue-recycle-scroller,
margin-right: 0 !important; .content-page,
padding-right: $medium !important; .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 { .topnav {
//reduce width to match #acontent background-color: $gray;
width: calc(100% - 1rem); }
padding-right: 0;
.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 { #app-grid.NoSideBorders {
border-right: none; border-right: none !important;
border-left: none; border-left: none !important;
} }
.v-scroll-page { .v-scroll-page {
width: calc(100% + $medium) !important;
.scroller { .scroller {
padding-right: $padright;
height: 100%; height: 100%;
width: 100%; width: 100%;
padding-right: 1.25rem;
padding-bottom: $content-padding-bottom; padding-bottom: $content-padding-bottom;
padding-bottom: $padbottom;
} }
} }
.isSmall { .isSmall {
.songlist-item { .songlist-item {
grid-template-columns: 1.75rem 2fr 2.5rem 2.5rem; grid-template-columns: 2fr 5.5rem !important;
} }
.song-artists, .song-artists,
@@ -130,7 +219,7 @@ $g-border: solid 1px $gray5;
.isMedium { .isMedium {
// hide album column // hide album column
.songlist-item { .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 { .song-album {

View File

@@ -1,5 +1,8 @@
// TEXT input[type="search"]::-webkit-search-cancel-button {
display: none;
}
// TEXT
.t-center { .t-center {
text-align: center; text-align: center;
} }
@@ -25,7 +28,7 @@
} }
.heading { .heading {
font-size: 2rem; font-size: 1.5rem;
font-weight: bold; font-weight: bold;
} }
@@ -54,12 +57,12 @@ a {
border-radius: $medium; border-radius: $medium;
} }
.circular { .rounded-lg {
border-radius: 10rem; border-radius: 1.25rem;
} }
.border { .circular {
border: 1px solid $gray3; border-radius: 10rem;
} }
.bg-primary { .bg-primary {
@@ -77,9 +80,12 @@ button {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
height: 2.25rem; height: 2.25rem;
background: linear-gradient(70deg, $gray3, $gray2);
padding: 0 $small; padding: 0 $small;
background-color: $gray4;
font-weight: 700;
cursor: pointer;
svg { svg {
transition: all 0.2s; transition: all 0.2s;
} }
@@ -90,13 +96,17 @@ button {
} }
} }
&:focus {
outline: none;
}
&:hover { &:hover {
background-image: linear-gradient($darkestblue, $darkblue); background-color: $darkestblue;
} }
} }
.btn-active { .btn-active {
background-image: linear-gradient($darkestblue, $darkblue); background-color: $darkestblue;
} }
.btn-disabled { .btn-disabled {
@@ -130,7 +140,6 @@ button {
opacity: 0.5; opacity: 0.5;
} }
// NO THIS, NO THAT (OVERRIDES)
.no-border { .no-border {
border: none; border: none;
} }
@@ -146,5 +155,89 @@ button {
.load_disabled { .load_disabled {
pointer-events: all; pointer-events: all;
background: $gray5 !important; background: $gray5 !important;
border-color: $gray5 !important;
opacity: 1; 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;
}
}

View File

@@ -12,9 +12,13 @@
html { html {
cursor: default !important; cursor: default !important;
overflow: hidden;
& > * { & > * {
overflow: visible !important; 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%; width: 100%;
height: 100%; height: 100%;
} }
a {
cursor: default !important;
}
} }

View File

@@ -1,7 +1,6 @@
input[type="number"] { input[type="number"] {
width: 40px; width: 40px;
padding: 4px 5px; padding: 4px 5px;
border: 1px solid #bbb;
border-radius: 3px; border-radius: 3px;
} }

View File

@@ -1,33 +1,20 @@
.tabheaders { .tabheaders {
display: grid; display: flex;
grid-template-columns: repeat(5, max-content); align-items: center;
justify-content: space-around; gap: $medium;
margin: 1rem;
width: max-content;
background-color: $gray4;
height: 2.25rem;
& > * {
border-left: solid 1px $gray3;
}
.tab { .tab {
display: flex; height: 2rem;
align-items: center; text-transform: capitalize;
justify-content: center; background-color: $gray5;
user-select: none; border: none;
transition: all 0.3s ease; transition: all 0.3s ease;
padding: 0 $small; padding: 0 $medium;
&:first-child {
border-left: solid 1px transparent;
}
} }
.activetab { .activetab {
background-color: $darkblue; background-color: white;
transition: all 0.3s ease; color: $gray;
border-left: solid 1px transparent;
} }
} }

View File

@@ -1,11 +1,13 @@
input[type="range"] { input[type="range"] {
-webkit-appearance: none; -webkit-appearance: none;
appearance: none;
margin-right: 15px; margin-right: 15px;
width: calc(100% - 2px); width: calc(100% - 2px);
height: 0.3rem; height: 0.3rem;
border-radius: 5px; 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%; background-size: 100% 100%;
cursor: pointer;
&::-webkit-slider-thumb { &::-webkit-slider-thumb {
-webkit-appearance: none; -webkit-appearance: none;
@@ -13,25 +15,27 @@ input[type="range"] {
height: 0; height: 0;
width: 0.8rem; width: 0.8rem;
border-radius: 50%; border-radius: 50%;
background: $darkestblue; background: white;
} }
&::-moz-range-thumb { &::-moz-range-thumb {
-webkit-appearance: none; -webkit-appearance: none;
appearance: none;
height: 0; height: 0;
border-radius: 50%; border-radius: 50%;
background: $darkestblue; background: white;
border: none; border: none;
} }
&::-ms-thumb { &::-ms-thumb {
-webkit-appearance: none; -webkit-appearance: none;
appearance: none;
height: 0; height: 0;
width: 0.8rem; width: 0.8rem;
border-radius: 50%; border-radius: 50%;
background: $darkestblue; background: white;
border: none; border: none;
} }
} }
@@ -58,6 +62,7 @@ input[type="range"]::-webkit-slider-runnable-track {
} }
input[type="range"]::-moz-range-track { input[type="range"]::-moz-range-track {
appearance: none;
-webkit-appearance: none; -webkit-appearance: none;
box-shadow: none; box-shadow: none;
border: none; border: none;
@@ -65,6 +70,7 @@ input[type="range"]::-moz-range-track {
} }
input[type="range"]::-ms-track { input[type="range"]::-ms-track {
appearance: none;
-webkit-appearance: none; -webkit-appearance: none;
box-shadow: none; box-shadow: none;
border: none; border: none;

View File

@@ -5,8 +5,27 @@
} }
// media query mixins // media query mixins
@mixin phone-only { @mixin smallPhone {
@media (max-width: 599px) { @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; @content;
} }
} }
@@ -18,7 +37,7 @@
} }
@mixin tablet-portrait { @mixin tablet-portrait {
@media (max-width: 810) { @media (max-width: 810px) {
@content; @content;
} }
} }
@@ -34,3 +53,13 @@
@content; @content;
} }
} }
// hide scrollbar
@mixin hideScrollbars {
scrollbar-width: none !important;
-ms-overflow-style: none !important;
&::-webkit-scrollbar {
display: none !important;
}
}

View File

@@ -1,6 +1,5 @@
// colors // colors
$separator: #ffffff2f;
$highlight-blue: #006eff; $highlight-blue: #006eff;
$darkestblue: #234ece; $darkestblue: #234ece;
$bbb: #161616; //bottom controls background $bbb: #161616; //bottom controls background
@@ -27,14 +26,14 @@ $gray2: rgb(99, 99, 102);
$gray3: rgb(72, 72, 74); $gray3: rgb(72, 72, 74);
$gray4: rgb(58, 58, 60); $gray4: rgb(58, 58, 60);
$gray5: rgb(44, 44, 46); $gray5: rgb(44, 44, 46);
$body: rgba(0, 0, 0, 0.95); $body: #111111;
$red: #ff453a; $red: #ff453a;
$blue: #0a84ff; $blue: #0a84ff;
$darkblue: #055ee2; $darkblue: #055ee2;
$green: rgb(20, 160, 55); $green: rgb(94, 247, 132);
$yellow: rgb(255, 214, 10); $yellow: rgb(255, 214, 10);
$orange: rgb(255, 159, 10); $orange: #ff9f0a;
$pink: rgb(255, 55, 95); $pink: rgb(255, 55, 95);
$purple: #bf5af2; $purple: #bf5af2;
$brown: rgb(172, 142, 104); $brown: rgb(172, 142, 104);
@@ -46,7 +45,7 @@ $accent: $gray1;
$secondary: $gray5; $secondary: $gray5;
$danger: $red; $danger: $red;
$track-hover: $gray4; $track-hover: $gray4;
$context: black; $context: $gray5;
$playlist-card-bg: $gray4; $playlist-card-bg: $gray4;
// SVG COLORS // SVG COLORS
@@ -54,3 +53,29 @@ $default: $accent;
$side-nav-svg: $red; $side-nav-svg: $red;
$overshoot: cubic-bezier(0.68, -0.55, 0.265, 1.55); $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);

View File

@@ -3,13 +3,13 @@
"./variables", "./variables",
"./ProgressBar.scss", "./ProgressBar.scss",
"./BottomBar/BottomBar.scss", "./BottomBar/BottomBar.scss",
"./Global", "./Global"
"./moz.scss"
; ;
@font-face { @font-face {
font-family: "SFCompactDisplay"; font-family: "SFCompactDisplay";
src: url("../sf-compact.woff") format("woff"); src: url("../sf-compact.woff") format("woff");
font-display: swap;
} }

View File

@@ -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;
}
}

View File

@@ -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>

View File

@@ -1,7 +1,7 @@
<template> <template>
<div <div
class="album_disc_header no-select"
v-if="album_disc.is_album_disc_number" 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 class="disc_number">Disc {{ album_disc.album_page_disc_number }}</div>
<div></div> <div></div>

View File

@@ -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>

View File

@@ -1,68 +1,96 @@
<template> <template>
<div <div
class="genres-banner" class="genres-banner"
:class="{ :style="{
nocontrast: album.info.colors ? isLight(album.info.colors[0]) : false, color: color ? getShift(color, [100, -100]) : '',
}" }"
> >
<div class="rounded pad-sm"> <div class="scrollable">
{{ album.info.genres.length ? "Genres" : "No genres" }} <div class="rounded pad-sm genre-pill">
</div> {{ genres.length ? "Genres" : "No genres" }}
<div </div>
v-for="genre in album.info.genres" <div
class="rounded pad-sm" v-for="genre in genres"
:style="{ backgroundColor: album.info.colors[0] }" :key="genre"
> class="genre-pill rounded pad-sm"
{{ genre }} :style="{
backgroundColor: color,
}"
>
{{ genre }}
</div>
</div> </div>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { onMounted } from "vue"; import { computed, onMounted } from "vue";
import useAlbumStore from "@/stores/pages/album"; 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 album = useAlbumStore();
const store = useArtistStore();
onMounted(async () => { const props = defineProps<{
// onMounted, fetch data to be used in the component below this one. source: string;
const album = useAlbumStore(); }>();
await album.fetchArtistAlbums();
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> </script>
<style lang="scss"> <style lang="scss">
.genres-banner.nocontrast {
color: $black;
}
.genres-banner { .genres-banner {
display: flex;
gap: 1rem;
margin-top: 2rem; margin-top: 2rem;
padding-bottom: 2rem;
font-size: 0.9rem; font-size: 0.9rem;
padding-left: $medium; padding-left: $medium;
text-transform: capitalize; text-transform: capitalize;
user-select: none; 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; background-color: $gray5;
min-width: 4rem; min-width: 4rem;
text-align: center; text-align: center;
outline: solid 1px $gray;
padding: $small 1rem; padding: $small 1rem;
font-weight: 700;
&:first-child { &:first-child {
background-color: white; background-color: white;
color: black; color: black;
outline-color: white;
pointer-events: none; pointer-events: none;
} }
&:hover { &:hover {
background-color: $darkestblue !important; background-color: $pink !important;
outline-color: $darkestblue;
color: $white; color: $white;
} }
} }

View File

@@ -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"
/>&nbsp; {{ 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View File

@@ -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>

View File

@@ -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>

View 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>

View File

@@ -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>

View File

@@ -1,49 +1,51 @@
<template> <template>
<div <div
class="artist-header-ambient rounded" v-if="!on_sidebar"
class="artist-header-ambient rounded-lg"
:class="{ isSmallPhone }"
style="height: 100%; width: 100%" style="height: 100%; width: 100%"
:style="{ :style="{
boxShadow: artist.info.colors.length boxShadow: !useCircularImage
? `0 .5rem 2rem ${artist.info.colors[0]}` ? colors.bg.length
? `0 .5rem 2rem ${colors.bg}`
: undefined
: undefined, : undefined,
}" }"
></div> ></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 <div
class="artist-info" class="artist-img no-select"
:class="{ :style="{
nocontrast: artist.info.colors ? isLight(artist.info.colors[0]) : false, height: containerHeight,
}" }"
> >
<section class="text"> <img
<div class="card-title">Artist</div> id="artist-avatar"
<div class="artist-name ellip2">{{ artist.info.name }}</div> :src="paths.images.artist.large + artist.image"
<div class="stats"> @load="store.setBgColor"
{{ 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" />
</div> </div>
<div <div
v-if="!useCircularImage"
class="gradient" class="gradient"
:style="{ :style="{
backgroundImage: artist.info.colors[0] backgroundImage: colors.bg
? `linear-gradient(to left, transparent 30%, ? `linear-gradient(${gradientDirection}, transparent ${
${artist.info.colors[0]} 50%, isSmall
${artist.info.colors[0]} 100%)` ? 60
: gradientTransparentWidth -
(width < 700 ? 40 : width < 900 ? 20 : 10)
}%,
${colors.bg} ${gradientWidth}%,
${colors.bg} 100%)`
: '', : '',
}" }"
></div> ></div>
@@ -51,27 +53,60 @@
</template> </template>
<script setup lang="ts"> <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 { paths } from "@/config";
import useArtistPageStore from "@/stores/pages/artist"; import updatePageTitle from "@/utils/updatePageTitle";
import formatSeconds from "@/utils/useFormatSeconds";
import { isLight } from "@/composables/colors/album";
import { favType, playSources } from "@/composables/enums";
import favoriteHandler from "@/composables/favoriteHandler";
import PlayBtnRect from "../shared/PlayBtnRect.vue"; import Info from "./HeaderComponents/Info.vue";
import HeartSvg from "@/components/shared/HeartSvg.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() { const props = defineProps<{
favoriteHandler( on_sidebar?: boolean;
artist.info.is_favorite, }>();
favType.artist,
artist.info.artisthash, const { info: artist, colors } = storeToRefs(store);
artist.makeFavorite,
artist.removeFavorite 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> </script>
<style lang="scss"> <style lang="scss">
@@ -81,16 +116,16 @@ function handleFav() {
opacity: 0.25; opacity: 0.25;
margin-right: -1rem; margin-right: -1rem;
} }
.artist-page-header { .artist-page-header {
height: 18rem;
display: grid; display: grid;
grid-template-columns: 50% 50%; grid-template-columns: 1fr 450px;
position: relative; position: relative;
.artist-img { .artist-img {
// border: solid red; display: flex;
height: 18rem; align-items: flex-end;
width: 100%; order: 1;
img { img {
height: 100%; 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 { .gradient {
position: absolute; position: absolute;
background-image: linear-gradient( background-image: linear-gradient(
@@ -111,48 +163,36 @@ function handleFav() {
); );
height: 100%; height: 100%;
width: 100%; width: 100%;
&.isSmallPhone {
background-image: linear-gradient(
210deg,
transparent 20%,
$gray 80%,
$gray 100%
);
}
} }
.artist-info { &.isSmallPhone {
z-index: 1;
padding: 1rem;
padding-right: 0;
display: flex; display: flex;
flex-direction: column; flex-direction: column-reverse;
justify-content: flex-end; position: relative;
gap: 1rem; .artist-img {
position: absolute;
width: 100%;
top: 0;
height: 100% !important;
.text { img {
display: flex; height: 100%;
flex-direction: column; width: 100%;
gap: $small; 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> </style>

View 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>

View 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>

View File

@@ -7,35 +7,41 @@
<div class="tracks" :class="{ isSmall, isMedium }"> <div class="tracks" :class="{ isSmall, isMedium }">
<SongItem <SongItem
v-for="(song, index) in tracks" v-for="(song, index) in tracks"
:key="index"
:track="song" :track="song"
:index="index + 1" :index="total ? total - index : index + 1"
:source="source"
@playThis="playHandler(index)" @playThis="playHandler(index)"
/> />
</div> </div>
<div class="error" v-if="!tracks.length">No tracks</div> <div v-if="!tracks.length" class="error">No tracks</div>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import SongItem from "../shared/SongItem.vue"; import { dropSources } from "@/enums";
import { Track } from "@/interfaces"; import { Track } from "@/interfaces";
import { isMedium, isSmall } from "@/stores/content-width"; import { isMedium, isSmall } from "@/stores/content-width";
import SeeAll from "../shared/SeeAll.vue"; import SeeAll from "../shared/SeeAll.vue";
import SongItem from "../shared/SongItem.vue";
defineProps<{ defineProps<{
tracks: Track[]; tracks: Track[];
route: string; route: string;
title: string; title: string;
playHandler: (index: number) => void; playHandler: (index: number) => void;
source: dropSources;
total?: number;
}>(); }>();
</script> </script>
<style lang="scss"> <style lang="scss">
.artist-top-tracks { .artist-top-tracks {
margin-top: 2rem; padding-top: 1rem;
.section-title { .section-title {
margin-left: 0; margin-left: 0;
align-items: baseline;
} }
.error { .error {

Some files were not shown because too many files have changed in this diff Show More