added sticky bar to artist page, added .more-btn-round css class

This commit is contained in:
booploops 2022-01-18 05:00:06 -08:00
parent d5013a9c15
commit 0d9e22b711
4 changed files with 99 additions and 81 deletions

View file

@ -1898,6 +1898,36 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
/* Cider */ /* Cider */
.more-btn-round {
border-radius: 100%;
background: rgba(100, 100, 100, 0.5);
box-shadow: var(--ciderShadow-Generic);
width: 32px;
height: 32px;
border: 0px;
cursor: pointer;
z-index: 5;
display: flex;
justify-content: center;
align-items: center;
&:hover {
filter: brightness(125%);
}
&:active {
filter: brightness(75%);
transform: scale(0.98);
transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase);
}
.svg-icon {
width: 100%;
background: #eee;
--url: url("./views/svg/more.svg");
}
}
.about-page { .about-page {
.teamBtn { .teamBtn {
display: flex; display: flex;
@ -2416,7 +2446,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding); padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding);
} }
.playlist-floating-header { .floating-header {
position: sticky; position: sticky;
top: 0; top: 0;
left: 0; left: 0;
@ -2608,25 +2638,6 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
} }
} }
.playlist-more {
border-radius: 100%;
background: var(--keyColor);
box-shadow: var(--ciderShadow-Generic);
width: 36px;
height: 36px;
border: 0px;
cursor: pointer;
z-index: 5;
&:hover {
background: var(--keyColor-rollover);
}
&:active {
background: var(--keyColor-pressed);
}
}
.playlist-time { .playlist-time {
font-size: 0.9em; font-size: 0.9em;
margin: 6px; margin: 6px;
@ -2684,6 +2695,19 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
padding: 0px; padding: 0px;
top: 0; top: 0;
.floating-header {
position: sticky;
top: 0;
left: 0;
border-bottom: 1px solid rgba(200, 200, 200, 0.05);
z-index: 6;
padding: 0px 1em;
backdrop-filter: blur(32px);
background: rgba(24, 24, 24, 0.15);
top: var(--navigationBarHeight);
transition: opacity 0.1s var(--appleEase);
}
.artist-header { .artist-header {
background: linear-gradient(45deg, var(--keyColor), #0e0e0e); background: linear-gradient(45deg, var(--keyColor), #0e0e0e);
color: white; color: white;
@ -2693,26 +2717,10 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
min-height: 400px; min-height: 400px;
position: relative; position: relative;
.artist-more { .more-btn-round {
border-radius: 100%;
background: var(--keyColor);
box-shadow: var(--ciderShadow-Generic);
width: 36px;
height: 36px;
position: absolute; position: absolute;
bottom: 26px; bottom: 26px;
right: 32px; right: 32px;
border: 0px;
cursor: pointer;
z-index: 5;
&:hover {
background: var(--keyColor-rollover);
}
&:active {
background: var(--keyColor-pressed);
}
} }
.animated { .animated {
@ -2779,28 +2787,31 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
} }
} }
.artist-play {
width: 36px;
height: 36px;
background: var(--keyColor);
border-radius: 100%;
box-shadow: var(--mediaItemShadow);
display: none;
cursor: pointer;
appearance: none;
border: 0px;
padding: 0px;
&:hover {
background: var(--keyColor-rollover);
}
&:active {
background: var(--keyColor-pressed);
}
}
.artist-title { .artist-title {
.artist-play { .artist-play {
width: 36px;
height: 36px;
background: var(--keyColor);
border-radius: 100%;
margin: 14px;
box-shadow: var(--mediaItemShadow);
display: none;
cursor: pointer;
appearance: none;
border: 0px;
padding: 0px;
transform: translateY(3px); transform: translateY(3px);
margin: 14px;
&:hover {
background: var(--keyColor-rollover);
}
&:active {
background: var(--keyColor-pressed);
}
} }
&.artist-animation-on { &.artist-animation-on {
@ -2818,7 +2829,8 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
} }
.artist-body { .artist-body {
padding: var(--contentInnerPadding); padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding);
margin-top: -48px;
} }
.showmoreless { .showmoreless {

View file

@ -1,6 +1,6 @@
<script type="text/x-template" id="cider-artist"> <script type="text/x-template" id="cider-artist">
<div class="content-inner artist-page"> <div class="content-inner artist-page">
<div class="artist-header" :style="getArtistPalette(data)" :key="data.id"> <div class="artist-header" :style="getArtistPalette(data)" :key="data.id" v-observe-visibility="{callback: isHeaderVisible}">
<animatedartwork-view <animatedartwork-view
:priority="true" :priority="true"
v-if="data.attributes.editorialVideo && (data.attributes.editorialVideo.motionArtistWide16x9 || data.attributes.editorialVideo.motionArtistFullscreen16x9)" v-if="data.attributes.editorialVideo && (data.attributes.editorialVideo.motionArtistWide16x9 || data.attributes.editorialVideo.motionArtistFullscreen16x9)"
@ -29,14 +29,26 @@
<h1>{{ data.attributes.name }}</h1> <h1>{{ data.attributes.name }}</h1>
</div> </div>
</div> </div>
<button class="artist-more" @click="artistMenu"> <button class="more-btn-round" @click="artistMenu">
<div style=" margin-top: -1px; <div class="svg-icon"></div>
margin-left: -5px; </button>
width: 36px; </div>
height: 36px;"> <div class="floating-header" :style="{opacity: (headerVisible ? 0 : 1),'pointer-events': (headerVisible ? 'none' : '')}">
<%- include("../svg/more.svg") %> <div class="row">
<div class="col-auto flex-center">
<button class="artist-play" style="display:block;" @click="app.mk.setStationQueue({artist:'a-'+data.id}).then(()=>{
app.mk.play()
})"><%- include("../svg/play.svg") %></button>
</div> </div>
</button> <div class="col">
<h3>{{ data.attributes.name }}</h3>
</div>
<div class="col-auto flex-center">
<button class="more-btn-round" @click="artistMenu">
<div class="svg-icon"></div>
</button>
</div>
</div>
</div> </div>
<div class="artist-body"> <div class="artist-body">
<div class="row well"> <div class="row well">
@ -129,10 +141,14 @@
data: function () { data: function () {
return { return {
topSongsExpanded: false, topSongsExpanded: false,
app: this.$root app: this.$root,
headerVisible: true
} }
}, },
methods: { methods: {
isHeaderVisible(visible) {
this.headerVisible = visible
},
artistMenu (event) { artistMenu (event) {
let self = this let self = this
let followAction = "follow" let followAction = "follow"

View file

@ -78,13 +78,8 @@
@click="(!inLibrary) ? addToLibrary(data.attributes.playParams.id.toString()) : removeFromLibrary(data.attributes.playParams.id.toString()) "> @click="(!inLibrary) ? addToLibrary(data.attributes.playParams.id.toString()) : removeFromLibrary(data.attributes.playParams.id.toString()) ">
Confirm? Confirm?
</button> </button>
<button class="playlist-more" style="float:right;" @click="menu"> <button class="more-btn-round" style="float:right;" @click="menu">
<div style=" margin-top: -1px; <div class="svg-icon"></div>
margin-left: -5px;
width: 36px;
height: 36px;">
<%- include("../svg/more.svg") %>
</div>
</button> </button>
</div> </div>
</div> </div>
@ -95,7 +90,7 @@
</div> </div>
</div> </div>
<div class="playlist-floating-header" :style="{opacity: (headerVisible ? 0 : 1),'pointer-events': (headerVisible ? 'none' : '')}"> <div class="floating-header" :style="{opacity: (headerVisible ? 0 : 1),'pointer-events': (headerVisible ? 'none' : '')}">
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<h3>{{data.attributes ? (data.attributes.name ?? <h3>{{data.attributes ? (data.attributes.name ??
@ -122,13 +117,8 @@
</div> </div>
</div> </div>
<div class="col-auto flex-center"> <div class="col-auto flex-center">
<button class="playlist-more" @click="menu"> <button class="more-btn-round" style="float:right;" @click="menu">
<div style=" margin-top: -1px; <div class="svg-icon"></div>
margin-left: -5px;
width: 36px;
height: 36px;">
<%- include("../svg/more.svg") %>
</div>
</button> </button>
</div> </div>
</div> </div>