animate navigation list and logo

- move search main into right-sidebar > search
-
This commit is contained in:
geoffrey45
2022-05-25 16:36:04 +03:00
parent 99533b2baa
commit a99ea78118
14 changed files with 82 additions and 32 deletions
+5 -1
View File
@@ -84,7 +84,7 @@ function updateQueue(track: Track) {
.table {
width: 100%;
height: 100%;
overflow-y: auto;
overflow-y: hidden;
.current {
a {
@@ -141,6 +141,10 @@ function updateQueue(track: Track) {
}
.songlist {
scrollbar-width: none;
&::-webkit-scrollbar {
display: none;
}
.context-on {
background-color: $gray4;
color: $white !important;
+1 -1
View File
@@ -4,7 +4,7 @@
type="range"
:value="q.track.current_time"
min="0"
:max="q.track.duration"
max="100"
step="0.1"
@change="seek()"
/>
+6 -3
View File
@@ -5,7 +5,12 @@
:key="menu.name"
:to="{ name: menu.route_name, params: menu.params }"
>
<div class="nav-button" id="home-button">
<div
class="nav-button"
id="home-button"
v-motion-slide-from-left-100
>
<div class="in">
<div class="nav-icon image" :id="`${menu.name}-icon`"></div>
<span>{{ menu.name }}</span>
@@ -46,11 +51,9 @@ const menus = [
route_name: "SettingsView",
},
];
</script>
<style lang="scss">
.side-nav-container {
color: #fff;
margin: 1rem 0;
+3 -1
View File
@@ -1,5 +1,7 @@
<template>
<div id="logo-container">
<div id="logo-container"
v-motion-slide-from-top
>
<router-link :to="{ name: 'Home' }">
<div id="logo" class="rounded"></div
></router-link>
+5 -5
View File
@@ -1,7 +1,6 @@
<template>
<div
class="p-header image"
:style="[
{
backgroundImage: `url(${imguri + props.info.image})`,
@@ -12,7 +11,7 @@
<div class="carddd">
<div class="info">
<div class="btns">
<PlayBtnRect :source="playSources.playlist" v-motion-slide-visible-once-bottom/>
<PlayBtnRect :source="playSources.playlist" />
<Option @showDropdown="showDropdown" :src="context.src" />
</div>
<div class="duration">
@@ -26,10 +25,10 @@
{{ props.info.description }}
</div>
<div class="title ellip">{{ props.info.name }}</div>
<div class="type" >Playlist</div>
<div class="type">Playlist</div>
</div>
</div>
<div class="last-updated">
<div class="last-updated" v-motion-slide-from-right>
<span class="status"
>Last updated {{ props.info.lastUpdated }} &#160;|&#160;&#160;</span
>
@@ -47,8 +46,9 @@ import Option from "../shared/Option.vue";
import pContext from "../../contexts/playlist";
import useContextStore from "../../stores/context";
import { paths } from "../../config";
import { onBeforeUnmount } from "vue";
const imguri = paths.images.playlist
const imguri = paths.images.playlist;
const context = useContextStore();
const modal = useModalStore();
+1 -1
View File
@@ -18,7 +18,7 @@
</template>
<script setup lang="ts">
import Search from "./Search.vue";
import Search from "./Search/Main.vue";
import UpNext from "./Queue.vue";
import Main from "./Home/Main.vue";
import useTabStore from "../../stores/tabs";
@@ -1,7 +1,7 @@
<template>
<div class="right-search">
<TabsWrapper>
<Tab name="tracks" v-motion-slide-visible-left>
<Tab name="tracks">
<TracksGrid />
</Tab>
<Tab name="albums">
@@ -11,16 +11,20 @@
<ArtistGrid />
</Tab>
</TabsWrapper>
<component :is="s.currentTab" />
</div>
</template>
<script setup lang="ts">
import TabsWrapper from "./TabsWrapper.vue";
import Tab from "./Tab.vue";
import TracksGrid from "./Search/TracksGrid.vue";
import AlbumGrid from "./Search/AlbumGrid.vue";
import TracksGrid from "./TracksGrid.vue";
import AlbumGrid from "./AlbumGrid.vue";
import ArtistGrid from "./ArtistGrid.vue";
import "@/assets/css/Search/Search.scss";
import ArtistGrid from "./Search/ArtistGrid.vue";
import useSearchStore from "@/stores/search";
const s = useSearchStore();
</script>
<style lang="scss">
@@ -1,11 +1,11 @@
<template>
<div v-show="name == s.currentTab">
<div v-show="name == s.currentTab" v-motion-slide-visible-top>
<slot />
</div>
</template>
<script setup lang="ts">
import useSearchStore from "../../stores/search";
import useSearchStore from "@/stores/search";
const s = useSearchStore();
defineProps<{
name: string;
@@ -18,7 +18,7 @@
</template>
<script setup lang="ts">
import useSearchStore from "../../stores/search";
import useSearchStore from "@/stores/search";
const s = useSearchStore();
</script>
@@ -40,16 +40,23 @@ const s = useSearchStore();
padding: $small;
text-transform: capitalize;
cursor: pointer;
display: flex;
justify-content: center;
transition: all 0.3s ease;
width: 4rem;
}
.activetab {
background-color: $accent;
width: 6rem;
transition: all 0.3s ease;
}
}
#tab-content {
height: 100%;
overflow: auto;
overflow-x: hidden;
border-radius: $small;
background-color: $gray;
// overflow: hidden;
+37 -4
View File
@@ -6,12 +6,45 @@
</div>
<div class="info">
<div class="title" v-if="$route.name == 'Playlists'">Playlists</div>
<div class="folder" v-else-if="$route.name == 'FolderView'" >
<div
class="title"
v-show="$route.name == 'Playlists'"
v-motion
:initial="{
opacity: 0,
x: -20,
}"
:visible="{
opacity: 1,
x: 0,
transition: {
delay: 100,
},
}"
>
Playlists
</div>
<div
class="folder"
v-show="$route.name == 'FolderView'"
v-motion
:initial="{
opacity: 0,
x: -20,
}"
:visible="{
opacity: 1,
x: 0,
transition: {
delay: 100,
},
}"
>
<div class="fname">
<div class="icon image"></div>
<div class="ellip">
{{ $route.params.path.split("/").splice(-1)[0] }}
<!-- {{ $route.params.path.split("/").splice(-1)[0] }} -->
{{ $route.params.path }}
</div>
</div>
</div>
@@ -28,7 +61,7 @@
</div>
</template>
<script setup>
<script setup lang="ts">
import NavButtons from "./NavButtons.vue";
import Loader from "../shared/Loader.vue";
import Search from "./Search.vue";
-1
View File
@@ -4,7 +4,6 @@
:class="[{ current: props.isCurrent }, { 'context-on': context_on }]"
@dblclick="emitUpdate(props.song)"
@contextmenu="showContextMenu"
v-motion-slide-visible-once-right
>
<div class="index">{{ props.index }}</div>
<div class="flex">