mirror of
https://github.com/tcsenpai/swingmusic.git
synced 2025-06-09 12:37:22 +00:00
handle page resize: to resize track component columns
+ revert banner-height from 23rem to 18rem + change font to Google Sans
This commit is contained in:
parent
a9f8cc63ea
commit
d95b5c6910
BIN
src/assets/googlesans.ttf
Normal file
BIN
src/assets/googlesans.ttf
Normal file
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
@import "./app-grid.scss", "./controls.scss", "./inputs.scss",
|
@import "./app-grid.scss", "./controls.scss", "./inputs.scss",
|
||||||
"./scrollbars.scss", "./state.scss", "./variants.scss", "./basic.scss",
|
"./scrollbars.scss", "./state.scss", "./variants.scss", "./basic.scss",
|
||||||
"./search-tabheaders.scss";
|
"./search-tabheaders.scss";
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--separator: #ffffff46;
|
--separator: #ffffff46;
|
||||||
@ -23,9 +23,9 @@ html.loading * {
|
|||||||
body {
|
body {
|
||||||
background-color: $body;
|
background-color: $body;
|
||||||
color: $white;
|
color: $white;
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica,
|
font-family: "SFCompactDisplay", -apple-system, BlinkMacSystemFont, "Segoe UI",
|
||||||
Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
|
||||||
font-family: "SFCompactDisplay" !important;
|
"Segoe UI Symbol";
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
image-rendering: -webkit-optimize-contrast;
|
image-rendering: -webkit-optimize-contrast;
|
||||||
width: calc(100vw - 1rem);
|
width: calc(100vw - 1rem);
|
||||||
|
@ -13,7 +13,7 @@ $medium: 0.75rem;
|
|||||||
$large: 1.5rem;
|
$large: 1.5rem;
|
||||||
$larger: 2rem;
|
$larger: 2rem;
|
||||||
|
|
||||||
$banner-height: 23rem;
|
$banner-height: 18rem;
|
||||||
|
|
||||||
// apple human design guideline colors
|
// apple human design guideline colors
|
||||||
$black: #181a1c;
|
$black: #181a1c;
|
||||||
|
@ -10,5 +10,6 @@
|
|||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "SFCompactDisplay";
|
font-family: "SFCompactDisplay";
|
||||||
src: url("../sf-compact.woff") format("woff");
|
src: url("../googlesans.ttf");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
{{ formatSeconds(info.duration, true) }}
|
{{ formatSeconds(info.duration, true) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="title ellip">{{ info.name }}</div>
|
<div class="title ellip">{{ info.name }}</div>
|
||||||
<div class="type">Playlist</div>
|
<div class="type">PLAYLIST</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="last-updated" :class="{ lightbg: !info.image }">
|
<div class="last-updated" :class="{ lightbg: !info.image }">
|
||||||
@ -77,12 +77,12 @@ function editPlaylist() {
|
|||||||
left: 0;
|
left: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background-image: linear-gradient(
|
// background-image: linear-gradient(
|
||||||
20deg,
|
// rgba(0, 0, 0, 0.514),
|
||||||
rgba(0, 0, 0, 0.25) 40%,
|
// rgba(0, 0, 0, 0.651)
|
||||||
rgba(0, 0, 0, 0.1),
|
// );
|
||||||
rgba(0, 0, 0, 0.1) 70%
|
background-color: $black;
|
||||||
);
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
.last-updated {
|
.last-updated {
|
||||||
@ -141,12 +141,14 @@ function editPlaylist() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.type {
|
.type {
|
||||||
|
font-size: small;
|
||||||
|
font-weight: bold;
|
||||||
color: rgba(255, 255, 255, 0.692);
|
color: rgba(255, 255, 255, 0.692);
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
font-size: 2.5rem;
|
font-size: 4rem;
|
||||||
font-weight: 900;
|
font-weight: 1000;
|
||||||
text-transform: capitalize;
|
text-transform: capitalize;
|
||||||
cursor: text;
|
cursor: text;
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,11 @@
|
|||||||
></div>
|
></div>
|
||||||
</div>
|
</div>
|
||||||
<div v-tooltip class="song-title">
|
<div v-tooltip class="song-title">
|
||||||
<div class="title ellip" @click.pre@dblclick.prevent="emitUpdate" ref="artisttitle">
|
<div
|
||||||
|
class="title ellip"
|
||||||
|
@click.pre@dblclick.prevent="emitUpdate"
|
||||||
|
ref="artisttitle"
|
||||||
|
>
|
||||||
{{ track.title }}
|
{{ track.title }}
|
||||||
</div>
|
</div>
|
||||||
<div class="isSmallArtists" style="display: none">
|
<div class="isSmallArtists" style="display: none">
|
||||||
@ -41,6 +45,7 @@
|
|||||||
<ArtistName :artists="track.artist" :albumartist="track.albumartist" />
|
<ArtistName :artists="track.artist" :albumartist="track.albumartist" />
|
||||||
</div>
|
</div>
|
||||||
<router-link
|
<router-link
|
||||||
|
v-if="!no_album"
|
||||||
class="song-album ellip"
|
class="song-album ellip"
|
||||||
v-tooltip
|
v-tooltip
|
||||||
:to="{
|
:to="{
|
||||||
@ -52,9 +57,7 @@
|
|||||||
>
|
>
|
||||||
{{ track.album }}
|
{{ track.album }}
|
||||||
</router-link>
|
</router-link>
|
||||||
<div class="song-duration">
|
<div class="song-duration">{{ formatSeconds(track.duration) }}</div>
|
||||||
<div class="text ellip">{{ formatSeconds(track.duration) }}</div>
|
|
||||||
</div>
|
|
||||||
<div
|
<div
|
||||||
class="options-icon circular"
|
class="options-icon circular"
|
||||||
:class="{ options_button_clicked }"
|
:class="{ options_button_clicked }"
|
||||||
@ -67,7 +70,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { onUpdated, ref } from "vue";
|
import { ref } from "vue";
|
||||||
|
|
||||||
import { showTrackContextMenu as showContext } from "@/composables/context";
|
import { showTrackContextMenu as showContext } from "@/composables/context";
|
||||||
import { paths } from "@/config";
|
import { paths } from "@/config";
|
||||||
@ -89,6 +92,7 @@ const props = defineProps<{
|
|||||||
index: number | string;
|
index: number | string;
|
||||||
isCurrent: Boolean;
|
isCurrent: Boolean;
|
||||||
isCurrentPlaying: Boolean;
|
isCurrentPlaying: Boolean;
|
||||||
|
no_album?: Boolean;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
@ -107,7 +111,7 @@ function showMenu(e: Event) {
|
|||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.songlist-item {
|
.songlist-item {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1.5rem 2fr 1fr 1.5fr 2rem 2.5rem;
|
grid-template-columns: 1.5rem 2fr 1fr 1.5fr 2.5rem 2.5rem;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
height: 3.75rem;
|
height: 3.75rem;
|
||||||
@ -178,10 +182,6 @@ function showMenu(e: Event) {
|
|||||||
.song-duration {
|
.song-duration {
|
||||||
font-size: small;
|
font-size: small;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
|
|
||||||
.ellip {
|
|
||||||
word-break: keep-all !important;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.options-icon {
|
.options-icon {
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
ref="scrollable"
|
ref="scrollable"
|
||||||
:class="{
|
:class="{
|
||||||
isSmall: isSmall,
|
isSmall: isSmall,
|
||||||
isMedium: isMedium,
|
isMedium: isMedium || on_album_page,
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<div class="header rounded" style="height: 64px" v-if="!no_header">
|
<div class="header rounded" style="height: 64px" v-if="!no_header">
|
||||||
@ -29,6 +29,7 @@
|
|||||||
v-for="t in tracks"
|
v-for="t in tracks"
|
||||||
:key="t.data.trackid"
|
:key="t.data.trackid"
|
||||||
:track="t.data"
|
:track="t.data"
|
||||||
|
:no_album="on_album_page"
|
||||||
:index="
|
:index="
|
||||||
on_album_page
|
on_album_page
|
||||||
? t.data.track
|
? t.data.track
|
||||||
@ -58,16 +59,16 @@ import useQStore from "@/stores/queue";
|
|||||||
|
|
||||||
import SongItem from "@/components/shared/SongItem.vue";
|
import SongItem from "@/components/shared/SongItem.vue";
|
||||||
|
|
||||||
|
const emit = defineEmits<{
|
||||||
|
(e: "playFromPage", index: number): void;
|
||||||
|
}>();
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
tracks: Track[];
|
tracks: Track[];
|
||||||
on_album_page?: boolean;
|
on_album_page?: boolean;
|
||||||
no_header?: boolean;
|
no_header?: boolean;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const emit = defineEmits<{
|
|
||||||
(e: "playFromPage", index: number): void;
|
|
||||||
}>();
|
|
||||||
|
|
||||||
const queue = useQStore();
|
const queue = useQStore();
|
||||||
const source = computed(() => props.tracks);
|
const source = computed(() => props.tracks);
|
||||||
|
|
||||||
@ -121,8 +122,9 @@ function handleScroll(e: Event) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.scrollable.isSmall {
|
.scrollable.isSmall {
|
||||||
|
// hide album and artists columns
|
||||||
.songlist-item {
|
.songlist-item {
|
||||||
grid-template-columns: 1.5rem 2fr 2rem 2.5rem;
|
grid-template-columns: 1.5rem 2fr 2.5rem 2.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.song-artists,
|
.song-artists,
|
||||||
@ -139,8 +141,9 @@ function handleScroll(e: Event) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.scrollable.isMedium {
|
.scrollable.isMedium {
|
||||||
|
// hide album column
|
||||||
.songlist-item {
|
.songlist-item {
|
||||||
grid-template-columns: 1.5rem 2fr 1fr 2rem 2.5rem;
|
grid-template-columns: 1.5rem 1.5fr 1fr 2.5rem 2.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.song-album {
|
.song-album {
|
||||||
|
@ -24,7 +24,7 @@ const pStore = usePStore();
|
|||||||
scrollbar-color: $gray2 transparent;
|
scrollbar-color: $gray2 transparent;
|
||||||
|
|
||||||
.grid {
|
.grid {
|
||||||
grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
|
grid-template-columns: repeat(auto-fill, minmax(9.25rem, 1fr));
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user