From 5476575d10e526acbb101d64842685438ca99657 Mon Sep 17 00:00:00 2001 From: geoffrey45 Date: Thu, 18 Aug 2022 02:55:46 +0300 Subject: [PATCH] major redesign: move to rounded and extra spaceous UI + fix `play next` bug + add new folder banner image + add new now playing component + move to gray4 for accent color + increase image sizes, for clean UI --- package.json | 1 + src/App.vue | 6 +- src/assets/images/folderbg.svg | 98 ++++++++++++++++++ src/assets/images/folderbg.webp | Bin 0 -> 19128 bytes src/assets/scss/BottomBar/BottomBar.scss | 1 - src/assets/scss/Global/app-grid.scss | 15 +-- src/assets/scss/Global/basic.scss | 14 ++- src/assets/scss/Global/variants.scss | 2 +- src/assets/scss/ProgressBar.scss | 10 +- src/assets/scss/_variables.scss | 4 +- src/components/AlbumView/Header.vue | 2 +- src/components/BottomBar/BottomBar.vue | 75 ++++++++++---- src/components/LeftSidebar/nowPlaying.vue | 4 +- src/components/PlaylistView/Header.vue | 9 +- src/components/RightSideBar/Queue.vue | 6 +- src/components/RightSideBar/Queue/upNext.vue | 7 +- .../RightSideBar/Search/ArtistGrid.vue | 2 +- .../RightSideBar/Search/TabsWrapper.vue | 5 +- src/components/RightSideBar/SearchInput.vue | 59 ++++------- src/components/modal.vue | 6 +- src/components/modals/NewPlaylist.vue | 6 +- src/components/modals/updatePlaylist.vue | 6 +- src/components/nav/NavBar.vue | 19 +--- src/components/nav/NavButtons.vue | 41 ++++---- src/components/nav/Titles/APTitle.vue | 2 + src/components/playlists/NewPlaylistCard.vue | 45 ++------ src/components/playlists/PlaylistCard.vue | 7 +- src/components/shared/AlbumCard.vue | 1 - src/components/shared/ArtistCard.vue | 27 +---- src/components/shared/Loader.vue | 6 +- src/components/shared/Option.vue | 58 +++-------- src/components/shared/PlayBtn.vue | 25 ++--- src/components/shared/PlayBtnRect.vue | 29 ++---- src/components/shared/SongItem.vue | 2 +- src/components/shared/TrackItem.vue | 2 +- src/stores/modal.ts | 21 ++-- src/stores/queue.ts | 22 ++-- src/views/FolderView.vue | 13 +-- src/views/Playlists.vue | 4 +- yarn.lock | 5 + 40 files changed, 339 insertions(+), 328 deletions(-) create mode 100644 src/assets/images/folderbg.svg create mode 100644 src/assets/images/folderbg.webp diff --git a/package.json b/package.json index 11703de..7878d6b 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "@vueuse/core": "^8.5.0", "axios": "^0.26.1", "pinia": "^2.0.17", + "pinia-plugin-persistedstate": "^2.1.1", "sass": "^1.49.0", "sass-loader": "^10", "vite-svg-loader": "^3.4.0", diff --git a/src/App.vue b/src/App.vue index cdc0ce1..84f9065 100644 --- a/src/App.vue +++ b/src/App.vue @@ -14,9 +14,10 @@
+ - + @@ -33,13 +34,14 @@ import handleShortcuts from "@/composables/useKeyboard"; import Logo from "@/components/Logo.vue"; import Modal from "@/components/modal.vue"; import NavBar from "@/components/nav/NavBar.vue"; -import Tabs from "@/components/RightSideBar/Tabs.vue"; +// import Tabs from "@/components/RightSideBar/Tabs.vue"; import ContextMenu from "@/components/contextMenu.vue"; import Notification from "@/components/Notification.vue"; import Navigation from "@/components/LeftSidebar/Navigation.vue"; import nowPlaying from "@/components/LeftSidebar/nowPlaying.vue"; import RightSideBar from "@/components/RightSideBar/Main.vue"; import SearchInput from "@/components/RightSideBar/SearchInput.vue"; +import BottomBar from "@/components/BottomBar/BottomBar.vue"; import { readLocalStorage, writeLocalStorage } from "@/utils"; diff --git a/src/assets/images/folderbg.svg b/src/assets/images/folderbg.svg new file mode 100644 index 0000000..dbcb62f --- /dev/null +++ b/src/assets/images/folderbg.svg @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/folderbg.webp b/src/assets/images/folderbg.webp new file mode 100644 index 0000000000000000000000000000000000000000..75b948dbb9b2cb962d6c65398acd6e8f9543798f GIT binary patch literal 19128 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 puURz!DPtT