mirror of
https://github.com/Dvorinka/swingmusic-extended.git
synced 2026-06-05 04:53:01 +00:00
Merge branch 'master' into try-folder-banner
~ Merge component spacing edits to the try-folder-banner branch
This commit is contained in:
@@ -37,7 +37,6 @@ class RipAlbumImage:
|
|||||||
|
|
||||||
|
|
||||||
class ValidateAlbumThumbs:
|
class ValidateAlbumThumbs:
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def remove_obsolete():
|
def remove_obsolete():
|
||||||
"""
|
"""
|
||||||
@@ -54,6 +53,10 @@ class ValidateAlbumThumbs:
|
|||||||
|
|
||||||
if e is None:
|
if e is None:
|
||||||
os.remove(entry.path)
|
os.remove(entry.path)
|
||||||
|
break
|
||||||
|
|
||||||
|
if os.path.getsize(entry.path) == 0:
|
||||||
|
os.remove(entry.path)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def find_lost_thumbnails():
|
def find_lost_thumbnails():
|
||||||
@@ -61,9 +64,7 @@ class ValidateAlbumThumbs:
|
|||||||
Re-rip lost album thumbnails
|
Re-rip lost album thumbnails
|
||||||
"""
|
"""
|
||||||
entries = os.scandir(THUMBS_PATH)
|
entries = os.scandir(THUMBS_PATH)
|
||||||
entries = [
|
entries = [Thumbnail(entry.name) for entry in entries if entry.is_file()]
|
||||||
Thumbnail(entry.name) for entry in entries if entry.is_file()
|
|
||||||
]
|
|
||||||
|
|
||||||
albums = helpers.Get.get_all_albums()
|
albums = helpers.Get.get_all_albums()
|
||||||
thumbs = [(album.hash + ".webp") for album in albums]
|
thumbs = [(album.hash + ".webp") for album in albums]
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from mutagen.id3 import ID3
|
|||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
|
|
||||||
def return_album_art(filepath: str):
|
def parse_album_art(filepath: str):
|
||||||
"""
|
"""
|
||||||
Returns the album art for a given audio file.
|
Returns the album art for a given audio file.
|
||||||
"""
|
"""
|
||||||
@@ -36,9 +36,12 @@ def extract_thumb(filepath: str, webp_path: str) -> bool:
|
|||||||
tsize = settings.THUMB_SIZE
|
tsize = settings.THUMB_SIZE
|
||||||
|
|
||||||
if os.path.exists(img_path):
|
if os.path.exists(img_path):
|
||||||
|
img_size = os.path.getsize(filepath)
|
||||||
|
|
||||||
|
if img_size > 0:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
album_art = return_album_art(filepath)
|
album_art = parse_album_art(filepath)
|
||||||
|
|
||||||
if album_art is not None:
|
if album_art is not None:
|
||||||
img = Image.open(BytesIO(album_art))
|
img = Image.open(BytesIO(album_art))
|
||||||
|
|||||||
@@ -96,11 +96,4 @@ onStartTyping(() => {
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.content {
|
|
||||||
padding: 0 $small;
|
|
||||||
margin-top: $small;
|
|
||||||
overflow: auto;
|
|
||||||
padding-right: $small !important;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
|
|
||||||
.grid {
|
.grid {
|
||||||
background-color: $primary;
|
background-color: $primary;
|
||||||
display: grid;
|
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding-right: $small;
|
padding-right: $small;
|
||||||
|
|
||||||
|
|||||||
+32
-24
@@ -1,5 +1,6 @@
|
|||||||
@import "../css/ProgressBar.scss";
|
@import "../css/ProgressBar.scss";
|
||||||
@import "mixins.scss";
|
@import "mixins.scss";
|
||||||
|
// @import "./moz.scss";
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--separator: #ffffff46;
|
--separator: #ffffff46;
|
||||||
@@ -86,26 +87,47 @@ a {
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input[type="search"] {
|
||||||
|
height: 2.25rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
.l-container {
|
.l-container {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: min-content 1fr min-content;
|
grid-template-columns: min-content 1fr min-content;
|
||||||
grid-template-rows: 3.5rem 1fr 1fr;
|
grid-template-rows: max-content 1fr max-content;
|
||||||
grid-auto-flow: row;
|
|
||||||
grid-template-areas:
|
grid-template-areas:
|
||||||
"l-sidebar nav search-input"
|
"l-sidebar nav search-input"
|
||||||
"l-sidebar content r-sidebar"
|
"l-sidebar content r-sidebar"
|
||||||
"l-sidebar content r-sidebar"
|
"l-sidebar content r-sidebar"
|
||||||
"l-sidebar content tabs";
|
"l-sidebar content tabs";
|
||||||
width: 100%;
|
|
||||||
align-content: center;
|
align-content: center;
|
||||||
max-width: 2720px;
|
max-width: 2720px;
|
||||||
height: 100vh;
|
height: calc(100vh - 1rem);
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
|
gap: 1rem;
|
||||||
|
margin: $small;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tabs {
|
||||||
|
grid-area: tabs;
|
||||||
|
height: 3.5rem;
|
||||||
|
margin-top: -$small;
|
||||||
|
}
|
||||||
|
|
||||||
|
#acontent {
|
||||||
|
grid-area: content;
|
||||||
|
max-width: 1955px;
|
||||||
|
overflow: hidden auto;
|
||||||
|
margin-top: -$small;
|
||||||
|
|
||||||
|
.nav {
|
||||||
|
margin: $small;
|
||||||
|
width: calc(100% - 1rem);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tabs {
|
.tabs {
|
||||||
grid-area: tabs;
|
grid-area: tabs;
|
||||||
border-left: solid 1px $gray3;
|
|
||||||
|
|
||||||
@include tablet-landscape {
|
@include tablet-landscape {
|
||||||
display: none;
|
display: none;
|
||||||
@@ -124,7 +146,6 @@ a {
|
|||||||
width: 17rem;
|
width: 17rem;
|
||||||
grid-area: l-sidebar;
|
grid-area: l-sidebar;
|
||||||
background-color: $black;
|
background-color: $black;
|
||||||
margin: $small;
|
|
||||||
padding: 1rem;
|
padding: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,24 +174,10 @@ a {
|
|||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
#acontent {
|
|
||||||
grid-area: content;
|
|
||||||
width: 100%;
|
|
||||||
max-width: 1955px;
|
|
||||||
padding: $small;
|
|
||||||
padding-left: 0;
|
|
||||||
overflow: auto;
|
|
||||||
margin: 0 auto;
|
|
||||||
|
|
||||||
.nav {
|
|
||||||
margin: $small;
|
|
||||||
width: calc(100% - 1rem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.r-sidebar {
|
.r-sidebar {
|
||||||
grid-area: r-sidebar;
|
grid-area: r-sidebar;
|
||||||
border-left: solid 1px $gray3;
|
margin-top: -$small;
|
||||||
|
width: 29rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.image {
|
.image {
|
||||||
@@ -203,13 +210,13 @@ a {
|
|||||||
/* width */
|
/* width */
|
||||||
|
|
||||||
::-webkit-scrollbar {
|
::-webkit-scrollbar {
|
||||||
width: 0.5rem;
|
width: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Track */
|
/* Track */
|
||||||
|
|
||||||
::-webkit-scrollbar-track {
|
::-webkit-scrollbar-track {
|
||||||
background: rgba(51, 51, 51, 0.459);
|
background: transparent;
|
||||||
border-radius: 1rem;
|
border-radius: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -259,6 +266,7 @@ a {
|
|||||||
background-position: 0 38%;
|
background-position: 0 38%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes similarAlbums {
|
@keyframes similarAlbums {
|
||||||
0% {
|
0% {
|
||||||
background-position: 0 38%;
|
background-position: 0 38%;
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
// Styles that only apply on our dear Firefox
|
||||||
|
|
||||||
|
@-moz-document url-prefix() {
|
||||||
|
#acontent {
|
||||||
|
padding-right: 1rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ap-page {
|
||||||
|
width: 100% !important;
|
||||||
|
padding-right: 1rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ap-page-bottom-container {
|
||||||
|
width: calc(100% - 1rem) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="1600"
|
||||||
|
height="900"
|
||||||
|
viewBox="0 0 1600 900"
|
||||||
|
version="1.1"
|
||||||
|
id="svg13"
|
||||||
|
sodipodi:docname="noise-texture.svg"
|
||||||
|
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
|
||||||
|
<metadata
|
||||||
|
id="metadata17">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1366"
|
||||||
|
inkscape:window-height="714"
|
||||||
|
id="namedview15"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.26222222"
|
||||||
|
inkscape:cx="28.104465"
|
||||||
|
inkscape:cy="117.7106"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="28"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg13" />
|
||||||
|
<defs
|
||||||
|
id="defs9">
|
||||||
|
<radialGradient
|
||||||
|
id="a"
|
||||||
|
gradientTransform="matrix(1 1 -1 1 0.5 -0.5)">
|
||||||
|
<stop
|
||||||
|
stop-color="#455A64"
|
||||||
|
stop-opacity="0"
|
||||||
|
offset="0.25"
|
||||||
|
id="stop2"
|
||||||
|
style="stop-color:#222222;stop-opacity:0" />
|
||||||
|
<stop
|
||||||
|
stop-color="#455A64"
|
||||||
|
stop-opacity="0.5"
|
||||||
|
offset="0.75"
|
||||||
|
id="stop4"
|
||||||
|
style="stop-color:#222222;stop-opacity:0.50196081" />
|
||||||
|
<stop
|
||||||
|
stop-color="#455A64"
|
||||||
|
stop-opacity="1"
|
||||||
|
offset="1"
|
||||||
|
id="stop6"
|
||||||
|
style="stop-color:#222222;stop-opacity:1" />
|
||||||
|
</radialGradient>
|
||||||
|
</defs>
|
||||||
|
<rect
|
||||||
|
width="1600"
|
||||||
|
height="900"
|
||||||
|
fill="url(#a)"
|
||||||
|
id="rect11" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -15,6 +15,7 @@
|
|||||||
v-motion-slide-from-left
|
v-motion-slide-from-left
|
||||||
class="rounded shadow-lg"
|
class="rounded shadow-lg"
|
||||||
/>
|
/>
|
||||||
|
<img class="filter rounded" src="../../assets/images/noise-texture.svg" alt="" />
|
||||||
</div>
|
</div>
|
||||||
<div class="info" :class="{ nocontrast: isLight() }">
|
<div class="info" :class="{ nocontrast: isLight() }">
|
||||||
<div class="top" v-motion-slide-from-top>
|
<div class="top" v-motion-slide-from-top>
|
||||||
@@ -187,6 +188,7 @@ function theyContrast(color1: string, color2: string) {
|
|||||||
.art {
|
.art {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: flex-end;
|
align-items: flex-end;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
height: 16rem;
|
height: 16rem;
|
||||||
@@ -194,6 +196,11 @@ function theyContrast(color1: string, color2: string) {
|
|||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
transition: all 0.2s ease-in-out;
|
transition: all 0.2s ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.filter {
|
||||||
|
position: absolute;
|
||||||
|
// display: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.nocontrast {
|
.nocontrast {
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ defineProps<{
|
|||||||
grid-template-columns: max-content 1fr;
|
grid-template-columns: max-content 1fr;
|
||||||
padding-right: 1rem;
|
padding-right: 1rem;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background-color: $gray4;
|
background-color: $gray3;
|
||||||
transition: all 0.2s ease;
|
transition: all 0.2s ease;
|
||||||
border-radius: 0.75rem;
|
border-radius: 0.75rem;
|
||||||
|
|
||||||
|
|||||||
@@ -1,37 +1,31 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="f-container rounded" :class="{ no_f: !props.folders.length }">
|
<div class="f-container rounded">
|
||||||
<div id="f-items" v-if="props.folders.length">
|
<div id="f-items" class="rounded">
|
||||||
<FolderItem
|
<FolderItem
|
||||||
v-for="folder in props.folders"
|
v-for="folder in folders"
|
||||||
:key="folder"
|
:key="JSON.stringify(folder)"
|
||||||
:folder="folder"
|
:folder="folder"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup lang="ts">
|
||||||
|
import { Folder } from "@/interfaces";
|
||||||
import FolderItem from "./FolderItem.vue";
|
import FolderItem from "./FolderItem.vue";
|
||||||
|
|
||||||
const props = defineProps({
|
defineProps<{
|
||||||
folders: {
|
folders: Folder[];
|
||||||
type: Array,
|
}>();
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
|
||||||
.no_f {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#f-items {
|
#f-items {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
|
grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
|
||||||
gap: $medium;
|
gap: $medium;
|
||||||
border-bottom: 1px solid $gray3;
|
padding: $small;
|
||||||
padding-bottom: .55rem;
|
margin-bottom: 1rem;
|
||||||
|
background-color: $gray5;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -130,9 +130,10 @@ function getTracks() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.table {
|
.table {
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow-y: hidden;
|
overflow-y: hidden;
|
||||||
|
background-color: $gray5;
|
||||||
|
padding: $small 0;
|
||||||
|
|
||||||
.current {
|
.current {
|
||||||
a {
|
a {
|
||||||
|
|||||||
@@ -8,8 +8,6 @@
|
|||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.r-home {
|
.r-home {
|
||||||
height: calc(100% - 1rem);
|
height: calc(100% - 1rem);
|
||||||
padding: 0 $small $small 0;
|
|
||||||
margin-top: $small;
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|||||||
@@ -27,9 +27,7 @@ const tabs = useTabStore();
|
|||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.r-sidebar {
|
.r-sidebar {
|
||||||
width: 29em;
|
|
||||||
background-color: rgba(4, 12, 34, 0.103);
|
|
||||||
padding: 0 $small;
|
|
||||||
|
|
||||||
@include phone-only {
|
@include phone-only {
|
||||||
display: none;
|
display: none;
|
||||||
@@ -64,18 +62,6 @@ const tabs = useTabStore();
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab-keys {
|
|
||||||
display: none;
|
|
||||||
width: 3rem;
|
|
||||||
right: 0;
|
|
||||||
height: 100%;
|
|
||||||
position: absolute;
|
|
||||||
grid-area: tabs;
|
|
||||||
border-radius: 0;
|
|
||||||
overflow: hidden;
|
|
||||||
border-left: solid 1px $gray;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ function loadMore() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.grid {
|
.grid {
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
|
grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 0.75rem;
|
gap: 0.75rem;
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ function loadMore() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.grid {
|
.grid {
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(3, 1fr);
|
grid-template-columns: repeat(3, 1fr);
|
||||||
gap: 0.75rem;
|
gap: 0.75rem;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ function loadMore() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.grid {
|
.grid {
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
|
grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 0.75rem;
|
gap: 0.75rem;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
class="rounded"
|
class="rounded"
|
||||||
v-model="search.query"
|
v-model="search.query"
|
||||||
placeholder="Search your library"
|
placeholder="Search your library"
|
||||||
type="text"
|
type="search"
|
||||||
@focus="focusThis()"
|
@focus="focusThis()"
|
||||||
@blur="unfocusThis()"
|
@blur="unfocusThis()"
|
||||||
/>
|
/>
|
||||||
@@ -32,8 +32,9 @@ function unfocusThis() {
|
|||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
#gsearch-input {
|
#gsearch-input {
|
||||||
padding: $small;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
|
height: max-content;
|
||||||
|
// margin-bottom: $smaller;
|
||||||
|
|
||||||
@include tablet-landscape {
|
@include tablet-landscape {
|
||||||
display: none;
|
display: none;
|
||||||
@@ -44,12 +45,12 @@ function unfocusThis() {
|
|||||||
border-radius: 0.4rem;
|
border-radius: 0.4rem;
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: $small;
|
background-color: $red;
|
||||||
background-color: $gray4;
|
background-color: $gray4;
|
||||||
height: 2.25rem;
|
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
width: 2rem;
|
width: 2.25rem;
|
||||||
|
aspect-ratio: 1;
|
||||||
background-image: url("../../assets/icons/search.svg");
|
background-image: url("../../assets/icons/search.svg");
|
||||||
background-size: 1.5rem;
|
background-size: 1.5rem;
|
||||||
margin-left: $smaller;
|
margin-left: $smaller;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="tabs">
|
<div class="tabs" id="tabs">
|
||||||
<div class="cont rounded">
|
<div class="cont rounded">
|
||||||
<div
|
<div
|
||||||
v-for="tab in tabs.tabs"
|
v-for="tab in tabs.tabs"
|
||||||
@@ -22,8 +22,8 @@ const tabs = useTabStore();
|
|||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.tabs {
|
.tabs {
|
||||||
padding: $small;
|
grid-area: tabs;
|
||||||
height: 4.25rem;
|
height: 100%;
|
||||||
|
|
||||||
.cont {
|
.cont {
|
||||||
background-color: $black;
|
background-color: $black;
|
||||||
@@ -58,7 +58,6 @@ const tabs = useTabStore();
|
|||||||
.t-item {
|
.t-item {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.search {
|
.search {
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
<Loader />
|
<Loader />
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="more image"></div>
|
|
||||||
<Search />
|
<Search />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -78,16 +77,12 @@ watch(
|
|||||||
);
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- !!use nav store to sync the title component!! -->
|
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.topnav {
|
.topnav {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr min-content max-content;
|
grid-template-columns: 1fr min-content max-content;
|
||||||
padding-bottom: 1rem;
|
// border-bottom: 1px solid $gray3;
|
||||||
margin: $small $small 0 0;
|
// padding-bottom: $small;
|
||||||
border-bottom: 1px solid $gray3;
|
|
||||||
height: 3rem;
|
|
||||||
|
|
||||||
.left {
|
.left {
|
||||||
display: grid;
|
display: grid;
|
||||||
@@ -115,16 +110,6 @@ watch(
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: $small;
|
gap: $small;
|
||||||
|
|
||||||
.more {
|
|
||||||
width: 2.25rem;
|
|
||||||
aspect-ratio: 1;
|
|
||||||
height: 100%;
|
|
||||||
background-color: $gray5;
|
|
||||||
background-image: url("../../assets/icons/more.svg");
|
|
||||||
transform: rotate(90deg);
|
|
||||||
border-radius: $small;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -14,9 +14,13 @@
|
|||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
#nav-search {
|
#nav-search {
|
||||||
|
// border: solid 1px $gray2;
|
||||||
|
|
||||||
form {
|
form {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: $small;
|
gap: $small;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
input[type="search"] {
|
input[type="search"] {
|
||||||
background-color: $gray5;
|
background-color: $gray5;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div
|
<div
|
||||||
class="songlist-item rounded"
|
class="songlist-item"
|
||||||
:class="[
|
:class="[
|
||||||
{ current: isCurrent },
|
{ current: isCurrent },
|
||||||
{ contexton: context_on },
|
{ contexton: context_on },
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="ap-container noscroll">
|
<div class="ap-container noscroll rounded">
|
||||||
<div id="ap-page">
|
<div id="ap-page">
|
||||||
<header class="ap-page-header" ref="apheader">
|
<header class="ap-page-header" ref="apheader">
|
||||||
<slot name="header"></slot>
|
<slot name="header"></slot>
|
||||||
@@ -101,13 +101,28 @@ function toggleBottom() {
|
|||||||
.ap-container {
|
.ap-container {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
margin-right: -$small;
|
width: calc(100% + 1rem);
|
||||||
|
|
||||||
|
#ap-page {
|
||||||
|
overflow: auto;
|
||||||
|
height: 100%;
|
||||||
|
position: relative;
|
||||||
|
display: grid;
|
||||||
|
grid-template-rows: 18rem 1fr;
|
||||||
|
gap: 1rem;
|
||||||
|
padding-right: $small;
|
||||||
|
width: calc(100% - $small);
|
||||||
|
|
||||||
|
.ap-page-content {
|
||||||
|
padding-bottom: 16rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.ap-page-bottom-container {
|
.ap-page-bottom-container {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
height: 15rem;
|
height: 15rem;
|
||||||
width: calc(100% - $small);
|
width: calc(100% - 1.25rem);
|
||||||
background-color: $gray;
|
background-color: $gray;
|
||||||
transition: all 0.5s ease !important;
|
transition: all 0.5s ease !important;
|
||||||
overscroll-behavior: contain;
|
overscroll-behavior: contain;
|
||||||
@@ -164,21 +179,7 @@ function toggleBottom() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.addbottompadding {
|
.addbottompadding {
|
||||||
padding-bottom: 17rem;
|
padding-bottom: 16rem;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#ap-page {
|
|
||||||
padding-right: $small;
|
|
||||||
height: 100%;
|
|
||||||
position: relative;
|
|
||||||
overflow: auto;
|
|
||||||
display: grid;
|
|
||||||
grid-template-rows: $banner-height 1fr;
|
|
||||||
gap: 1rem;
|
|
||||||
|
|
||||||
.ap-page-content {
|
|
||||||
padding-bottom: calc($banner-height - 1rem);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -63,7 +63,6 @@ onBeforeRouteUpdate((to, from) => {
|
|||||||
|
|
||||||
#scrollable {
|
#scrollable {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
height: calc(100% - $small);
|
|
||||||
scrollbar-color: grey transparent;
|
scrollbar-color: grey transparent;
|
||||||
|
|
||||||
.banner {
|
.banner {
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ const pStore = usePStore();
|
|||||||
scrollbar-color: $gray2 transparent;
|
scrollbar-color: $gray2 transparent;
|
||||||
|
|
||||||
.grid {
|
.grid {
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
|
grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user