added immersive fullscreen experiment
This commit is contained in:
parent
c568bdd26a
commit
b6a730e202
7 changed files with 232 additions and 2 deletions
|
@ -205,6 +205,7 @@
|
||||||
"term.zoomout" : "Zoom Out",
|
"term.zoomout" : "Zoom Out",
|
||||||
"term.zoomreset" : "Reset Zoom",
|
"term.zoomreset" : "Reset Zoom",
|
||||||
"term.fullscreen" : "Fullscreen",
|
"term.fullscreen" : "Fullscreen",
|
||||||
|
"term.nowPlaying": "Now Playing",
|
||||||
"home.syncFavorites": "Sync Favorites",
|
"home.syncFavorites": "Sync Favorites",
|
||||||
"home.syncFavorites.gettingArtists": "Getting Favorited Artists...",
|
"home.syncFavorites.gettingArtists": "Getting Favorited Artists...",
|
||||||
"home.title": "Home",
|
"home.title": "Home",
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
--chromeHeight1: 60px;
|
||||||
|
|
||||||
.app-content-container {
|
.app-content-container {
|
||||||
width:100%;
|
width:100%;
|
||||||
|
@ -26,11 +27,102 @@
|
||||||
#app-content {
|
#app-content {
|
||||||
width:100%;
|
width:100%;
|
||||||
height:100%;
|
height:100%;
|
||||||
|
|
||||||
|
.fs-search {
|
||||||
|
|
||||||
|
.search-input--icon {
|
||||||
|
width: 4em;
|
||||||
|
background-size: 40%;
|
||||||
|
background-position: center;
|
||||||
|
}
|
||||||
|
input {
|
||||||
|
padding-left: 2em;
|
||||||
|
font-size: 2em;
|
||||||
|
border-radius: var(--mediaItemRadius)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.fs-header {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
height: var(--chromeHeight1);
|
||||||
|
background: var(--color1);
|
||||||
|
backdrop-filter: var(--glassFilter);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
z-index: 9999;
|
||||||
|
|
||||||
|
.top-nav-group {
|
||||||
|
background : #1e1e1e99;
|
||||||
|
border : 1px solid lighten(@baseColor, 8);
|
||||||
|
border-radius: 12px;
|
||||||
|
display : flex;
|
||||||
|
height : 42px;
|
||||||
|
width: 90%;
|
||||||
|
|
||||||
|
.app-sidebar-item {
|
||||||
|
background-color: #1e1e1e00;
|
||||||
|
border-radius : 10px !important;
|
||||||
|
border : 0px;
|
||||||
|
min-width : 120px;
|
||||||
|
padding : 6px;
|
||||||
|
justify-content : center;
|
||||||
|
align-items : center;
|
||||||
|
margin : 0px;
|
||||||
|
height : 100%;
|
||||||
|
position : relative;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
--dist : 1px;
|
||||||
|
content : '';
|
||||||
|
position : absolute;
|
||||||
|
top : var(--dist);
|
||||||
|
left : var(--dist);
|
||||||
|
right : var(--dist);
|
||||||
|
bottom : var(--dist);
|
||||||
|
background-color: #fff;
|
||||||
|
opacity : 0;
|
||||||
|
border-radius : 10px;
|
||||||
|
transform : scale(0.5);
|
||||||
|
transition : transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: transparent;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
transition: transform 0.1s ease-in-out, opacity 0.1s ease-in-out;
|
||||||
|
opacity : .1;
|
||||||
|
transform : scale(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
background-color: transparent;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
opacity : .2;
|
||||||
|
transform: scale(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.md-btn-primary {
|
||||||
|
box-shadow : 0px 0px 0px 1px lighten(@baseColor, @colorMixRate * 8);
|
||||||
|
background-color: lighten(@baseColor, @colorMixRate * 5);
|
||||||
|
z-index : 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.fs-row {
|
.fs-row {
|
||||||
flex-grow: 0.5;
|
flex-grow: 0.5;
|
||||||
|
@ -389,4 +481,84 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cd-mediaitem-square {
|
||||||
|
font-size: 17px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cd-mediaitem-square .artwork-container .artwork {
|
||||||
|
box-shadow: var(--mediaItemShadow-Shadow);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cd-mediaitem-list-item {
|
||||||
|
height: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cd-mediaitem-list-item .title {
|
||||||
|
font-size: 1.2em;
|
||||||
|
font-weight: 450;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cd-mediaitem-list-item .subtitle {
|
||||||
|
font-size: 1.1em;
|
||||||
|
font-weight: 380;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cd-mediaitem-list-item .artwork {
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-text {
|
||||||
|
font-size: 3em;
|
||||||
|
height: 3em;
|
||||||
|
padding-left: 0.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grouping-container .grouping-btn {
|
||||||
|
font-size: 1.3em;
|
||||||
|
color: var(--textColor);
|
||||||
|
background-color: var(--sidebarColor);
|
||||||
|
font-weight: 600;
|
||||||
|
padding: 32px;
|
||||||
|
//box-shadow: var(--ciderShadow-Generic);
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-inner.playlist-page {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
|
||||||
|
.playlist-page .playlist-display {
|
||||||
|
width: 100%;
|
||||||
|
max-width: 500px;
|
||||||
|
flex:1;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
.playlistInfo {
|
||||||
|
>.row {
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.playlist-controls {
|
||||||
|
div {
|
||||||
|
width:100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.playlist-page .mediaContainer {
|
||||||
|
width: 30vh;
|
||||||
|
height: 30vh;
|
||||||
|
aspect-ratio: 1;
|
||||||
|
}
|
||||||
|
.playlist-page .playlist-display .playlistInfo .playlist-info {
|
||||||
|
gap: 16px;
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.playlist-page .playlist-body {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12074,7 +12074,7 @@ input[type=checkbox][switch]:checked:active::before {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
.playback-button.navigation > svg {
|
.playback-button.navigation > ._svg-icon {
|
||||||
height: 16px;
|
height: 16px;
|
||||||
width: 16px;
|
width: 16px;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
|
@ -14663,6 +14663,9 @@ input[type=checkbox][switch]:checked:active::before {
|
||||||
padding-top: 48px;
|
padding-top: 48px;
|
||||||
border-left: 1px solid var(--borderColor);
|
border-left: 1px solid var(--borderColor);
|
||||||
}
|
}
|
||||||
|
#hid___BV_tab_button__ {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
:root {
|
:root {
|
||||||
--appleEase: cubic-bezier(0.42, 0, 0.58, 1);
|
--appleEase: cubic-bezier(0.42, 0, 0.58, 1);
|
||||||
--borderColor: rgba(200, 200, 200, 0.16);
|
--borderColor: rgba(200, 200, 200, 0.16);
|
||||||
|
|
|
@ -12,6 +12,24 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="fs-header" v-if="immersiveEnabled">
|
||||||
|
<div class="top-nav-group">
|
||||||
|
<sidebar-library-item @click.native="tabMode = 'catalog'" :name="$root.getLz('home.title')" svg-icon="./assets/feather/home.svg" svg-icon-name="home" page="home">
|
||||||
|
</sidebar-library-item>
|
||||||
|
<sidebar-library-item @click.native="tabMode = 'catalog'" :name="$root.getLz('term.listenNow')" svg-icon="./assets/feather/play-circle.svg" svg-icon-name="listenNow"
|
||||||
|
page="listen_now"></sidebar-library-item>
|
||||||
|
<sidebar-library-item @click.native="tabMode = 'catalog'" :name="$root.getLz('term.browse')" svg-icon="./assets/feather/globe.svg" svg-icon-name="browse" page="browse">
|
||||||
|
</sidebar-library-item>
|
||||||
|
<sidebar-library-item @click.native="tabMode = 'catalog'" :name="$root.getLz('term.radio')" svg-icon="./assets/feather/radio.svg" svg-icon-name="radio" page="radio">
|
||||||
|
</sidebar-library-item>
|
||||||
|
<sidebar-library-item @click.native="tabMode = 'catalog'" :name="$root.getLz('term.library')" svg-icon="./assets/feather/radio.svg" svg-icon-name="library" page="library">
|
||||||
|
</sidebar-library-item>
|
||||||
|
<sidebar-library-item @click.native="tabMode = ''" :name="$root.getLz('term.nowPlaying')" svg-icon="./assets/play.svg" svg-icon-name="nowPlaying" page="nowPlaying">
|
||||||
|
</sidebar-library-item>
|
||||||
|
<sidebar-library-item @click.native="tabMode = 'catalog'" :name="$root.getLz('term.search')" svg-icon="./assets/search.svg" svg-icon-name="search" page="search">
|
||||||
|
</sidebar-library-item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="row fs-row" v-if="tabMode != 'catalog'">
|
<div class="row fs-row" v-if="tabMode != 'catalog'">
|
||||||
<div class="col artwork-col">
|
<div class="col artwork-col">
|
||||||
<div class="artwork" @click="app.fullscreen(false)">
|
<div class="artwork" @click="app.fullscreen(false)">
|
||||||
|
@ -180,7 +198,8 @@
|
||||||
return {
|
return {
|
||||||
app: this.$root,
|
app: this.$root,
|
||||||
tabMode: "lyrics",
|
tabMode: "lyrics",
|
||||||
video: null
|
video: null,
|
||||||
|
immersiveEnabled: app.cfg.advanced.experiments.includes("immersive-preview")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async mounted() {
|
async mounted() {
|
||||||
|
|
|
@ -1220,6 +1220,21 @@
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="md-option-line">
|
||||||
|
<div class="md-option-segment">
|
||||||
|
Immersive Fullscreen Test
|
||||||
|
</div>
|
||||||
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
|
<label>
|
||||||
|
<input type="checkbox"
|
||||||
|
v-model="app.cfg.advanced.experiments.includes('immersive-preview')"
|
||||||
|
@click="app.cfg.advanced.experiments.includes('immersive-preview') ? removeExperiment('immersive-preview') : addExperiment('immersive-preview')"
|
||||||
|
switch />
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="md-option-line">
|
<div class="md-option-line">
|
||||||
<div class="md-option-segment">
|
<div class="md-option-segment">
|
||||||
{{$root.getLz('settings.option.experimental.unknownPlugin')}}
|
{{$root.getLz('settings.option.experimental.unknownPlugin')}}
|
||||||
|
|
|
@ -333,6 +333,9 @@
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
minClass(val) {
|
minClass(val) {
|
||||||
|
if(app.appMode == 'fullscreen') {
|
||||||
|
return
|
||||||
|
}
|
||||||
if (val) {
|
if (val) {
|
||||||
this.classes = ["plmin"]
|
this.classes = ["plmin"]
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1,5 +1,22 @@
|
||||||
<script type="text/x-template" id="cider-search">
|
<script type="text/x-template" id="cider-search">
|
||||||
<div class="content-inner search-page">
|
<div class="content-inner search-page">
|
||||||
|
<div class="search-input-container fs-search" v-if="$root.appMode == 'fullscreen'" >
|
||||||
|
<div class="search-input--icon"></div>
|
||||||
|
<input type="search" spellcheck="false" @focus="$root.search.showHints = true"
|
||||||
|
@blur="$root.setTimeout(()=>{$root.search.showHints = false}, 300)"
|
||||||
|
v-on:keyup.enter="$root.searchQuery();$root.search.showHints = false" @input="$root.getSearchHints()"
|
||||||
|
:placeholder="$root.getLz('term.search') + '...'" v-model="$root.search.term"
|
||||||
|
class="search-input" />
|
||||||
|
|
||||||
|
<div class="search-hints-container" v-if="$root.search.showHints && $root.search.hints.length != 0">
|
||||||
|
<div class="search-hints">
|
||||||
|
<button class="search-hint text-overflow-elipsis" v-for="hint in $root.search.hints"
|
||||||
|
@click="$root.search.term = hint;$root.search.showHints = false;$root.searchQuery(hint)">
|
||||||
|
{{ hint }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="btn-group searchToggle">
|
<div class="btn-group searchToggle">
|
||||||
<button
|
<button
|
||||||
@click="searchType = 'catalog'"
|
@click="searchType = 'catalog'"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue