Merge branch 'ciderapp:main' into feature/party-fullscreen
This commit is contained in:
commit
d7ed9dda38
12 changed files with 1326 additions and 1267 deletions
|
@ -374,7 +374,8 @@ export class BrowserWindow {
|
||||||
* @yields {object} Electron browser window
|
* @yields {object} Electron browser window
|
||||||
*/
|
*/
|
||||||
async createWindow(): Promise<Electron.BrowserWindow> {
|
async createWindow(): Promise<Electron.BrowserWindow> {
|
||||||
this.clientPort = await getPort({ port: 9000 });
|
const envPort = process.env?.CIDER_PORT || '9000'
|
||||||
|
this.clientPort = await getPort({ port: parseInt(envPort, 10) || 9000 });
|
||||||
BrowserWindow.verifyFiles();
|
BrowserWindow.verifyFiles();
|
||||||
this.StartWatcher(utils.getPath('themes'));
|
this.StartWatcher(utils.getPath('themes'));
|
||||||
|
|
||||||
|
|
|
@ -76,10 +76,6 @@ ipcMain.on("nowPlayingItemDidChange", (_event, attributes) => {
|
||||||
CiderPlug.callPlugins("onNowPlayingItemDidChange", attributes);
|
CiderPlug.callPlugins("onNowPlayingItemDidChange", attributes);
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on("updatePlaybackProgress", (_event, attributes) => {
|
|
||||||
CiderPlug.callPlugins("updatePlaybackProgress", attributes);
|
|
||||||
})
|
|
||||||
|
|
||||||
app.on("before-quit", () => {
|
app.on("before-quit", () => {
|
||||||
CiderPlug.callPlugins("onBeforeQuit");
|
CiderPlug.callPlugins("onBeforeQuit");
|
||||||
console.warn(`${app.getName()} exited.`);
|
console.warn(`${app.getName()} exited.`);
|
||||||
|
|
|
@ -10,8 +10,6 @@ export default class mpris {
|
||||||
* MPRIS Service
|
* MPRIS Service
|
||||||
*/
|
*/
|
||||||
private static player: Player.Player;
|
private static player: Player.Player;
|
||||||
private static globalAttributes: any = {}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base Plugin Details (Eventually implemented into a GUI in settings)
|
* Base Plugin Details (Eventually implemented into a GUI in settings)
|
||||||
*/
|
*/
|
||||||
|
@ -72,10 +70,14 @@ export default class mpris {
|
||||||
player.on('play', () => mpris.utils.playback.play())
|
player.on('play', () => mpris.utils.playback.play())
|
||||||
player.on('pause', () => mpris.utils.playback.pause())
|
player.on('pause', () => mpris.utils.playback.pause())
|
||||||
player.on('quit', () => mpris.utils.getApp().exit())
|
player.on('quit', () => mpris.utils.getApp().exit())
|
||||||
player.on('position', (args: { position: any; }) => mpris.utils.playback.seek(args.position))
|
player.on('position', (args: { position: any; }) => mpris.utils.playback.seek(args.position / 1000 / 1000))
|
||||||
player.on('loopStatus', (status: string) => renderer.executeJavaScript(`app.mk.repeatMode = ${loopType[status.toLowerCase()]}`))
|
player.on('loopStatus', (status: string) => renderer.executeJavaScript(`app.mk.repeatMode = ${loopType[status.toLowerCase()]}`))
|
||||||
player.on('shuffle', () => renderer.executeJavaScript('app.mk.shuffleMode = (app.mk.shuffleMode === 0) ? 1 : 0'))
|
player.on('shuffle', () => renderer.executeJavaScript('app.mk.shuffleMode = (app.mk.shuffleMode === 0) ? 1 : 0'))
|
||||||
|
|
||||||
|
mpris.utils.getIPCMain().on('mpris:playbackTimeDidChange', (event: any, time: number) => {
|
||||||
|
player.getPosition = () => time;
|
||||||
|
})
|
||||||
|
|
||||||
mpris.utils.getIPCMain().on('repeatModeDidChange', (_e: any, mode: number) => {
|
mpris.utils.getIPCMain().on('repeatModeDidChange', (_e: any, mode: number) => {
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -160,7 +162,6 @@ export default class mpris {
|
||||||
*/
|
*/
|
||||||
@mpris.linuxOnly
|
@mpris.linuxOnly
|
||||||
onPlaybackStateDidChange(attributes: any): void {
|
onPlaybackStateDidChange(attributes: any): void {
|
||||||
mpris.globalAttributes = attributes
|
|
||||||
mpris.player.playbackStatus = attributes?.status ? Player.PLAYBACK_STATUS_PLAYING : Player.PLAYBACK_STATUS_PAUSED
|
mpris.player.playbackStatus = attributes?.status ? Player.PLAYBACK_STATUS_PLAYING : Player.PLAYBACK_STATUS_PAUSED
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,14 +171,7 @@ export default class mpris {
|
||||||
*/
|
*/
|
||||||
@mpris.linuxOnly
|
@mpris.linuxOnly
|
||||||
onNowPlayingItemDidChange(attributes: object): void {
|
onNowPlayingItemDidChange(attributes: object): void {
|
||||||
mpris.globalAttributes = attributes
|
|
||||||
mpris.updateMetaData(attributes);
|
mpris.updateMetaData(attributes);
|
||||||
}
|
}
|
||||||
|
|
||||||
@mpris.linuxOnly
|
|
||||||
updatePlaybackProgress(attributes: any): void {
|
|
||||||
mpris.globalAttributes = attributes
|
|
||||||
mpris.player.getPosition = () => attributes.currentPlaybackTime * 1000 * 1000;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,10 +17,13 @@ const MusicKitInterop = {
|
||||||
/** wsapi */
|
/** wsapi */
|
||||||
MusicKit.getInstance().addEventListener(MusicKit.Events.playbackProgressDidChange, () => {
|
MusicKit.getInstance().addEventListener(MusicKit.Events.playbackProgressDidChange, () => {
|
||||||
ipcRenderer.send('wsapi-updatePlaybackState', MusicKitInterop.getAttributes());
|
ipcRenderer.send('wsapi-updatePlaybackState', MusicKitInterop.getAttributes());
|
||||||
ipcRenderer.send('updatePlaybackProgress', MusicKitInterop.getAttributes());
|
|
||||||
});
|
});
|
||||||
/** wsapi */
|
/** wsapi */
|
||||||
|
|
||||||
|
MusicKit.getInstance().addEventListener(MusicKit.Events.playbackTimeDidChange, () => {
|
||||||
|
ipcRenderer.send('mpris:playbackTimeDidChange', (MusicKit.getInstance()?.currentPlaybackTime * 1000 * 1000 ) ?? 0);
|
||||||
|
})
|
||||||
|
|
||||||
MusicKit.getInstance().addEventListener(MusicKit.Events.nowPlayingItemDidChange, async () => {
|
MusicKit.getInstance().addEventListener(MusicKit.Events.nowPlayingItemDidChange, async () => {
|
||||||
console.debug('[cider:preload] nowPlayingItemDidChange')
|
console.debug('[cider:preload] nowPlayingItemDidChange')
|
||||||
const attributes = MusicKitInterop.getAttributes()
|
const attributes = MusicKitInterop.getAttributes()
|
||||||
|
|
7
src/renderer/assets/spatialization.svg
Normal file
7
src/renderer/assets/spatialization.svg
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<svg fill="#fff" viewBox="0 0 20 20" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M10 12.5c-5.92 0-9 3.5-9 5.5v1h18v-1c0-2-3.08-5.5-9-5.5z"/>
|
||||||
|
<circle cx="10" cy="6" r="5"/>
|
||||||
|
<g style="fill:#fff">
|
||||||
|
<path d="M47.788 25.736a19.5 19.5 0 0 1 0 21.4m7.1-28.5a30 30 0 0 1 0 35.6m6.5-42.1a38.8 38.8 0 0 1 0 48.6m105.752-35a19.5 19.5 0 0 0 0 21.4m-7.1-28.5a30 30 0 0 0 0 35.6m-6.5-42.1a38.8 38.8 0 0 0 0 48.6" style="fill:none;stroke:#fff;stroke-width:5;stroke-linecap:round" transform="translate(-7.276 -.048) scale(.16067)"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 562 B |
|
@ -35,6 +35,11 @@
|
||||||
margin : 0px;
|
margin : 0px;
|
||||||
height : 100%;
|
height : 100%;
|
||||||
position : relative;
|
position : relative;
|
||||||
|
white-space: nowrap;
|
||||||
|
|
||||||
|
._svg-icon {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
&:before {
|
&:before {
|
||||||
--dist : 1px;
|
--dist : 1px;
|
||||||
|
|
|
@ -1226,7 +1226,7 @@ const app = new Vue({
|
||||||
} else if (this.cfg.visual.directives[directive]) {
|
} else if (this.cfg.visual.directives[directive]) {
|
||||||
return this.cfg.visual.directives[directive]
|
return this.cfg.visual.directives[directive]
|
||||||
} else {
|
} else {
|
||||||
return ""
|
return false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
unauthorize() {
|
unauthorize() {
|
||||||
|
@ -3196,45 +3196,40 @@ const app = new Vue({
|
||||||
function getMXMTrans(lang, vanity_id) {
|
function getMXMTrans(lang, vanity_id) {
|
||||||
try {
|
try {
|
||||||
if (lang != "disabled" && vanity_id != '') { // Mode 2 -> Trans
|
if (lang != "disabled" && vanity_id != '') { // Mode 2 -> Trans
|
||||||
fetch('https://www.musixmatch.com/lyrics/' + vanity_id +'/translation/' + lang, {
|
let url = "https://api.cider.sh/v1/lyrics?vanityID=" + vanity_id +'&source=mxm&lang=' + lang;
|
||||||
method: 'GET',
|
let req = new XMLHttpRequest();
|
||||||
headers: {
|
req.overrideMimeType("application/json");
|
||||||
'Host': 'musixmatch.com',
|
req.onload = function () {
|
||||||
'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36",
|
if (req.status == 200) { // If it's not 200, 237890127389012 things could go wrong and I don't really care what those things are.
|
||||||
'authority': "www.musixmatch.com"
|
let jsonResponse = JSON.parse(this.responseText);
|
||||||
},
|
|
||||||
})
|
|
||||||
.then(async (res) => {
|
|
||||||
if (res.status != 200) {return}
|
|
||||||
let html = document.createElement('html'); html.innerHTML = await res.text()
|
|
||||||
let lyric_isolated = html.querySelector("#site > div > div > div > main > div > div > div.mxm-track-lyrics-container > div.container > div > div > div > div.col-sm-12.col-md-10.col-ml-9.col-lg-9 > div.mxm-lyrics.translated > div.row > div.col-xs-12.col-sm-12.col-md-12.col-ml-12.col-lg-12")
|
|
||||||
let raw_lines = lyric_isolated.getElementsByClassName("col-xs-6 col-sm-6 col-md-6 col-ml-6 col-lg-6")
|
|
||||||
let applied = 0;
|
let applied = 0;
|
||||||
for (let i = 1; applied < app.lyrics.length; i+=2) { // Start on odd elements because even ones are original.
|
for (let i = 0; applied < app.lyrics.length; i++) {
|
||||||
if (raw_lines[i].childNodes[0].childNodes[0].textContent.trim() == "") {i+=2;}
|
if (app.lyrics[applied].line.trim() === "") {applied+=1;}
|
||||||
if (app.lyrics[applied].line.trim() == "") {applied+=1;}
|
if (app.lyrics[applied].line.trim() === jsonResponse[i]) {
|
||||||
if (app.lyrics[applied].line.trim() === raw_lines[i].childNodes[0].childNodes[0].textContent.trim().replace('′', "'")) {
|
|
||||||
// Do Nothing
|
// Do Nothing
|
||||||
applied +=1;
|
applied +=1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (app.lyrics[applied].line === "lrcInstrumental") {
|
if (app.lyrics[applied].line === "lrcInstrumental") {
|
||||||
if (app.lyrics[applied+1].line.trim() === raw_lines[i].childNodes[0].childNodes[0].textContent.trim()) {
|
if (app.lyrics[applied+1].line.trim() === jsonResponse[i]) {
|
||||||
// Do Nothing
|
// Do Nothing
|
||||||
applied +=2;
|
applied +=2;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
app.lyrics[applied+1].translation = raw_lines[i].childNodes[0].childNodes[0].textContent.trim();
|
app.lyrics[applied+1].translation = jsonResponse[i];
|
||||||
applied +=2;
|
applied +=2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
app.lyrics[applied].translation = raw_lines[i].childNodes[0].childNodes[0].textContent.trim();
|
app.lyrics[applied].translation = jsonResponse[i];
|
||||||
applied +=1;
|
applied +=1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
|
}
|
||||||
|
req.open('POST', url, true);
|
||||||
|
req.send();
|
||||||
}
|
}
|
||||||
} catch (e) {console.debug("Error while parsing MXM Trans: " + e)}
|
} catch (e) {console.debug("Error while parsing MXM Trans: " + e)}
|
||||||
|
|
||||||
|
|
|
@ -208,6 +208,7 @@ body.notransparency::before {
|
||||||
0% {
|
0% {
|
||||||
transform: rotateZ(0deg);
|
transform: rotateZ(0deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
transform: rotateZ(360deg);
|
transform: rotateZ(360deg);
|
||||||
}
|
}
|
||||||
|
@ -217,7 +218,8 @@ body.notransparency::before {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type="text"], input[type="number"] {
|
input[type="text"],
|
||||||
|
input[type="number"] {
|
||||||
background : #1c1c1c;
|
background : #1c1c1c;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
border : 1px solid rgb(200 200 200 / 25%);
|
border : 1px solid rgb(200 200 200 / 25%);
|
||||||
|
@ -248,6 +250,7 @@ a.dropdown-item {
|
||||||
background-color: var(--selected);
|
background-color: var(--selected);
|
||||||
color : var(--textColor);
|
color : var(--textColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:active {
|
&:active {
|
||||||
background-color: var(--selected-click);
|
background-color: var(--selected-click);
|
||||||
}
|
}
|
||||||
|
@ -270,6 +273,7 @@ a.dropdown-item {
|
||||||
0% {
|
0% {
|
||||||
transform: rotate(0deg);
|
transform: rotate(0deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
transform: rotate(360deg);
|
transform: rotate(360deg);
|
||||||
}
|
}
|
||||||
|
@ -443,6 +447,8 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
filter: brightness(80%) blur(180px) saturate(180%) contrast(1);
|
filter: brightness(80%) blur(180px) saturate(180%) contrast(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
transition: .3s var(--appleEase);
|
||||||
}
|
}
|
||||||
|
|
||||||
.search-input-container {
|
.search-input-container {
|
||||||
|
@ -522,6 +528,7 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
|
|
||||||
.app-playback-controls {
|
.app-playback-controls {
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
|
|
||||||
.control-buttons {
|
.control-buttons {
|
||||||
display : flex;
|
display : flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
@ -537,6 +544,7 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
display: flex;
|
display: flex;
|
||||||
padding: 6px;
|
padding: 6px;
|
||||||
border : 0;
|
border : 0;
|
||||||
|
|
||||||
>button {
|
>button {
|
||||||
appearance : none;
|
appearance : none;
|
||||||
width : 100%;
|
width : 100%;
|
||||||
|
@ -544,12 +552,15 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
padding-left: 40px;
|
padding-left: 40px;
|
||||||
text-align : left;
|
text-align : left;
|
||||||
font-family : inherit;
|
font-family : inherit;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: var(--selected);
|
background-color: var(--selected);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:active {
|
&:active {
|
||||||
background-color: var(--selected-click);
|
background-color: var(--selected-click);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:after {
|
&:after {
|
||||||
content : '';
|
content : '';
|
||||||
display : flex;
|
display : flex;
|
||||||
|
@ -683,10 +694,12 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
box-shadow : var(--ciderShadow-Generic);
|
box-shadow : var(--ciderShadow-Generic);
|
||||||
backdrop-filter: var(--glassFilter);
|
backdrop-filter: var(--glassFilter);
|
||||||
animation : cmenuBodyIn .5s var(--appleEase);
|
animation : cmenuBodyIn .5s var(--appleEase);
|
||||||
|
|
||||||
@keyframes cmenuBodyIn {
|
@keyframes cmenuBodyIn {
|
||||||
0% {
|
0% {
|
||||||
background: rgb(30 30 30);
|
background: rgb(30 30 30);
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
background: rgb(30 30 30 / 45%);
|
background: rgb(30 30 30 / 45%);
|
||||||
}
|
}
|
||||||
|
@ -1008,6 +1021,7 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-chrome .app-chrome--center {
|
.app-chrome .app-chrome--center {
|
||||||
|
|
||||||
//width: 40%;
|
//width: 40%;
|
||||||
.app-title-text {
|
.app-title-text {
|
||||||
font-size: 0.8em;
|
font-size: 0.8em;
|
||||||
|
@ -1060,11 +1074,13 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
border-radius : 6px;
|
border-radius : 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.volume-button:active, .volume-button--small:active {
|
.volume-button:active,
|
||||||
|
.volume-button--small:active {
|
||||||
transform: scale(0.9);
|
transform: scale(0.9);
|
||||||
}
|
}
|
||||||
|
|
||||||
.volume-button.active, .volume-button--small.active {
|
.volume-button.active,
|
||||||
|
.volume-button--small.active {
|
||||||
background-image: url("./assets/feather/volume.svg");
|
background-image: url("./assets/feather/volume.svg");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1155,7 +1171,8 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
transform: scale(1.1);
|
transform: scale(1.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:active, &.active {
|
&:active,
|
||||||
|
&.active {
|
||||||
border-radius: 100%;
|
border-radius: 100%;
|
||||||
transform : scale(1.1);
|
transform : scale(1.1);
|
||||||
outline : 2px solid var(--keyColor);
|
outline : 2px solid var(--keyColor);
|
||||||
|
@ -1175,9 +1192,11 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
>div {
|
>div {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width : 32px;
|
width : 32px;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: rgb(200 200 200 / 10%);
|
background: rgb(200 200 200 / 10%);
|
||||||
}
|
}
|
||||||
|
|
||||||
&.close {
|
&.close {
|
||||||
width : 100%;
|
width : 100%;
|
||||||
height : 100%;
|
height : 100%;
|
||||||
|
@ -1190,6 +1209,7 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
background-color: rgb(196, 43, 28)
|
background-color: rgb(196, 43, 28)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.minmax {
|
&.minmax {
|
||||||
background-image : var(--gfx-maxBtn);
|
background-image : var(--gfx-maxBtn);
|
||||||
background-position: center;
|
background-position: center;
|
||||||
|
@ -1198,9 +1218,11 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
width : 100%;
|
width : 100%;
|
||||||
height : 100%;
|
height : 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.minmax.restore {
|
&.minmax.restore {
|
||||||
background-image: var(--gfx-restoreBtn);
|
background-image: var(--gfx-restoreBtn);
|
||||||
}
|
}
|
||||||
|
|
||||||
&.minimize {
|
&.minimize {
|
||||||
background-image : var(--gfx-minBtn);
|
background-image : var(--gfx-minBtn);
|
||||||
background-position: center;
|
background-position: center;
|
||||||
|
@ -1256,6 +1278,7 @@ body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.cl
|
||||||
align-items : center;
|
align-items : center;
|
||||||
width : 100%;
|
width : 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.song-name {
|
.song-name {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
text-align : center;
|
text-align : center;
|
||||||
|
@ -1325,6 +1348,7 @@ body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.cl
|
||||||
z-index : 1;
|
z-index : 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add Music Video Icons to Songs that are Music Videos
|
// Add Music Video Icons to Songs that are Music Videos
|
||||||
div[data-type="library-music-videos"] .info-rect .title::before,
|
div[data-type="library-music-videos"] .info-rect .title::before,
|
||||||
div[data-type="musicVideo"] .info-rect .title::before {
|
div[data-type="musicVideo"] .info-rect .title::before {
|
||||||
|
@ -1460,6 +1484,7 @@ div[data-type="musicVideo"] .info-rect .title::before {
|
||||||
flex : 0 0 auto;
|
flex : 0 0 auto;
|
||||||
margin : 6px;
|
margin : 6px;
|
||||||
image-rendering : -webkit-optimize-contrast;
|
image-rendering : -webkit-optimize-contrast;
|
||||||
|
|
||||||
.mediaitem-artwork {
|
.mediaitem-artwork {
|
||||||
border-radius: var(--mediaItemRadiusSmall);
|
border-radius: var(--mediaItemRadiusSmall);
|
||||||
}
|
}
|
||||||
|
@ -1586,7 +1611,8 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
/* Window is smaller <= 1023px width */
|
/* Window is smaller <= 1023px width */
|
||||||
@media only screen and (max-width: 1120px) {
|
@media only screen and (max-width: 1120px) {
|
||||||
.display--small {
|
.display--small {
|
||||||
display: inherit !important;;
|
display: inherit !important;
|
||||||
|
;
|
||||||
|
|
||||||
.slider {
|
.slider {
|
||||||
width : 100%;
|
width : 100%;
|
||||||
|
@ -1742,6 +1768,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
.lyric-body:hover>.lyric-line:not(.active) {
|
.lyric-body:hover>.lyric-line:not(.active) {
|
||||||
filter: none !important;
|
filter: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lyric-body>.lyric-line:not(.active) {
|
.lyric-body>.lyric-line:not(.active) {
|
||||||
// transition: filter var(--appleEase) 0.5s ease;
|
// transition: filter var(--appleEase) 0.5s ease;
|
||||||
}
|
}
|
||||||
|
@ -1786,7 +1813,8 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
transition : opacity 0.1s var(--appleEase);
|
transition : opacity 0.1s var(--appleEase);
|
||||||
}
|
}
|
||||||
|
|
||||||
.lyric-body:hover + .lyric-footer, .lyric-footer:hover {
|
.lyric-body:hover+.lyric-footer,
|
||||||
|
.lyric-footer:hover {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1937,18 +1965,23 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
margin : 0px 16px 0px 0px;
|
margin : 0px 16px 0px 0px;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.githubBtn {
|
&.githubBtn {
|
||||||
background-color: #211F1F;
|
background-color: #211F1F;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.kofiBtn {
|
&.kofiBtn {
|
||||||
background-color: #FBAA19;
|
background-color: #FBAA19;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.opencollectiveBtn {
|
&.opencollectiveBtn {
|
||||||
background-color: #7fadf2;
|
background-color: #7fadf2;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.discordBtn {
|
&.discordBtn {
|
||||||
background-color: #5865F2;
|
background-color: #5865F2;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.twitterBtn {
|
&.twitterBtn {
|
||||||
background-color: #1D9BF0;
|
background-color: #1D9BF0;
|
||||||
}
|
}
|
||||||
|
@ -2037,9 +2070,11 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
display : flex;
|
display : flex;
|
||||||
flex-flow : wrap;
|
flex-flow : wrap;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|
||||||
.cd-mediaitem-square-container {
|
.cd-mediaitem-square-container {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cd-mediaitem-square {
|
.cd-mediaitem-square {
|
||||||
width : 220px;
|
width : 220px;
|
||||||
height : 260px;
|
height : 260px;
|
||||||
|
@ -2062,6 +2097,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
@media screen and (min-width: 1500px) {
|
@media screen and (min-width: 1500px) {
|
||||||
grid-template-columns: repeat(5, minmax(200px, 1fr));
|
grid-template-columns: repeat(5, minmax(200px, 1fr));
|
||||||
}
|
}
|
||||||
|
|
||||||
// less than 1100px
|
// less than 1100px
|
||||||
@media screen and (max-width: 1150px) {
|
@media screen and (max-width: 1150px) {
|
||||||
grid-template-columns: repeat(3, minmax(200px, 1fr));
|
grid-template-columns: repeat(3, minmax(200px, 1fr));
|
||||||
|
@ -2106,11 +2142,13 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
opacity : 1;
|
opacity : 1;
|
||||||
// animation: micaEnter 1s ease-in-out forwards;
|
// animation: micaEnter 1s ease-in-out forwards;
|
||||||
filter : brightness(1) saturate(320%);
|
filter : brightness(1) saturate(320%);
|
||||||
|
|
||||||
@keyframes micaEnter {
|
@keyframes micaEnter {
|
||||||
0% {
|
0% {
|
||||||
opacity : 0;
|
opacity : 0;
|
||||||
transform: translateY(10px);
|
transform: translateY(10px);
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
opacity : 1;
|
opacity : 1;
|
||||||
transform: translateY(0px);
|
transform: translateY(0px);
|
||||||
|
@ -2138,9 +2176,11 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
z-index : 14 !important;
|
z-index : 14 !important;
|
||||||
backdrop-filter: var(--glassFilter);
|
backdrop-filter: var(--glassFilter);
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-navigation {
|
.app-navigation {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-drawer {
|
.app-drawer {
|
||||||
width : 100%;
|
width : 100%;
|
||||||
right : 0px;
|
right : 0px;
|
||||||
|
@ -2201,6 +2241,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
opacity : 0;
|
opacity : 0;
|
||||||
transform: scale(0.98)
|
transform: scale(0.98)
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
opacity : 1;
|
opacity : 1;
|
||||||
transform: scale(1);
|
transform: scale(1);
|
||||||
|
@ -2333,9 +2374,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
transform: translateX(400px);
|
transform: translateX(400px);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--gfx-closeBtn : url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAIn2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgZGM6Zm9ybWF0PSJpbWFnZS9wbmciCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTAiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iMTAiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLjAiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLjAiCiAgIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAyLTE3VDEyOjU1OjM3WiIKICAgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMTAtMDVUMTQ6Mjc6MzYtMDc6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTEwLTA1VDE0OjI3OjM2LTA3OjAwIgogICB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZTk5OWM2NWYtNDhhOS0wNjQyLWI2MTktZmJlYTExMmUxOGZiIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5MzMyOWNhLWNkNjctMzY0Zi04MzU1LTY5N2ZmYzI0ZDdlZCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjgyZjQwYmU3LTE0YzItZjc0Ni1hZmE1LWQxYmIxNzAyMjM4OCIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTAiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSI+CiAgIDxwaG90b3Nob3A6VGV4dExheWVycz4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgcGhvdG9zaG9wOkxheWVyTmFtZT0i7qSiIgogICAgICBwaG90b3Nob3A6TGF5ZXJUZXh0PSLupKIiLz4KICAgIDwvcmRmOlNlcT4KICAgPC9waG90b3Nob3A6VGV4dExheWVycz4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0iY3JlYXRlZCIKICAgICAgeG1wTU06aW5zdGFuY2VJRD0ieG1wLmlpZDo4MmY0MGJlNy0xNGMyLWY3NDYtYWZhNS1kMWJiMTcwMjIzODgiCiAgICAgIHhtcE1NOnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIKICAgICAgeG1wTU06d2hlbj0iMjAyMC0wMi0xN1QxMjo1NTozN1oiLz4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0ic2F2ZWQiCiAgICAgIHhtcE1NOmNoYW5nZWQ9Ii8iCiAgICAgIHhtcE1NOmluc3RhbmNlSUQ9InhtcC5paWQ6NjkzMzI5Y2EtY2Q2Ny0zNjRmLTgzNTUtNjk3ZmZjMjRkN2VkIgogICAgICB4bXBNTTpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgICAgIHhtcE1NOndoZW49IjIwMjAtMDItMTdUMTI6NTU6MzdaIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InByb2R1Y2VkIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZmZpbml0eSBQaG90byAxLjEwLjEiCiAgICAgIHN0RXZ0OndoZW49IjIwMjEtMTAtMDVUMTQ6Mjc6MzYtMDc6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PmN2D9EAAAGCaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2lhmGFRQUODhDVZlELU0qD0C6pBDbJa9OWPQO3xnhHRGrQKBVFLv4b6C2oNmoOgKIJoC5qLWkpe56mgRJ7Luedzv/eew73ngiWcVjJ6/QBksjktOOF3zUcWXLZX7DTQQSu+qKKrM6HxMDXt64E6M971mbVqn/vXmpbjugJ1jcKjiqrlhCeFp9dzqsm7wu1KKrosfC7s0eSCwvemHivxm8nJEv+YrIWDAbC0CLuSVRyrYiWlZYTl5bgz6TWlfB/zJY54di4ksVu8C50gE/hxMcUYAYYYZETmIfrw0i8rauQPFPNnWZVcRWaVDTRWSJIih0fUNakel5gQPS4jzYbZ/7991RM+b6m6ww8NL4bx0QO2HSjkDeP72DAKJ2B9hqtsJX/1CIY/Rc9XNPchOLfg4rqixfbgchs6n9SoFi1KVnFLIgHvZ9AcgbZbsC+Welbe5/QRwpvyVTewfwC9ct659At2bGftHD0UJwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAEtJREFUGJWNkMENwDAIA1FGY/8hkn8HOAqPfBsFKvz1yZYtbqwAlUIB6saUAH2NJ4MvL4PLgK/x13LAGTSqEaVa1a0x7XvcmI3D1wbntaRbB2haYwAAAABJRU5ErkJggg==');
|
--gfx-closeBtn : url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAIn2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgZGM6Zm9ybWF0PSJpbWFnZS9wbmciCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTAiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iMTAiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLjAiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLjAiCiAgIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAyLTE3VDEyOjU1OjM3WiIKICAgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMTAtMDVUMTQ6Mjc6MzYtMDc6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTEwLTA1VDE0OjI3OjM2LTA3OjAwIgogICB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZTk5OWM2NWYtNDhhOS0wNjQyLWI2MTktZmJlYTExMmUxOGZiIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5MzMyOWNhLWNkNjctMzY0Zi04MzU1LTY5N2ZmYzI0ZDdlZCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjgyZjQwYmU3LTE0YzItZjc0Ni1hZmE1LWQxYmIxNzAyMjM4OCIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTAiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSI+CiAgIDxwaG90b3Nob3A6VGV4dExheWVycz4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgcGhvdG9zaG9wOkxheWVyTmFtZT0i7qSiIgogICAgICBwaG90b3Nob3A6TGF5ZXJUZXh0PSLupKIiLz4KICAgIDwvcmRmOlNlcT4KICAgPC9waG90b3Nob3A6VGV4dExheWVycz4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0iY3JlYXRlZCIKICAgICAgeG1wTU06aW5zdGFuY2VJRD0ieG1wLmlpZDo4MmY0MGJlNy0xNGMyLWY3NDYtYWZhNS1kMWJiMTcwMjIzODgiCiAgICAgIHhtcE1NOnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIKICAgICAgeG1wTU06d2hlbj0iMjAyMC0wMi0xN1QxMjo1NTozN1oiLz4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0ic2F2ZWQiCiAgICAgIHhtcE1NOmNoYW5nZWQ9Ii8iCiAgICAgIHhtcE1NOmluc3RhbmNlSUQ9InhtcC5paWQ6NjkzMzI5Y2EtY2Q2Ny0zNjRmLTgzNTUtNjk3ZmZjMjRkN2VkIgogICAgICB4bXBNTTpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgICAgIHhtcE1NOndoZW49IjIwMjAtMDItMTdUMTI6NTU6MzdaIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InByb2R1Y2VkIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZmZpbml0eSBQaG90byAxLjEwLjEiCiAgICAgIHN0RXZ0OndoZW49IjIwMjEtMTAtMDVUMTQ6Mjc6MzYtMDc6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PmN2D9EAAAGCaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2lhmGFRQUODhDVZlELU0qD0C6pBDbJa9OWPQO3xnhHRGrQKBVFLv4b6C2oNmoOgKIJoC5qLWkpe56mgRJ7Luedzv/eew73ngiWcVjJ6/QBksjktOOF3zUcWXLZX7DTQQSu+qKKrM6HxMDXt64E6M971mbVqn/vXmpbjugJ1jcKjiqrlhCeFp9dzqsm7wu1KKrosfC7s0eSCwvemHivxm8nJEv+YrIWDAbC0CLuSVRyrYiWlZYTl5bgz6TWlfB/zJY54di4ksVu8C50gE/hxMcUYAYYYZETmIfrw0i8rauQPFPNnWZVcRWaVDTRWSJIih0fUNakel5gQPS4jzYbZ/7991RM+b6m6ww8NL4bx0QO2HSjkDeP72DAKJ2B9hqtsJX/1CIY/Rc9XNPchOLfg4rqixfbgchs6n9SoFi1KVnFLIgHvZ9AcgbZbsC+Welbe5/QRwpvyVTewfwC9ct659At2bGftHD0UJwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAEtJREFUGJWNkMENwDAIA1FGY/8hkn8HOAqPfBsFKvz1yZYtbqwAlUIB6saUAH2NJ4MvL4PLgK/x13LAGTSqEaVa1a0x7XvcmI3D1wbntaRbB2haYwAAAABJRU5ErkJggg==');
|
||||||
|
@ -2388,22 +2427,26 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
transition: 0.2s ease-in-out filter;
|
transition: 0.2s ease-in-out filter;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.playback-info {
|
.playback-info {
|
||||||
position : absolute;
|
position : absolute;
|
||||||
width : 100%;
|
width : 100%;
|
||||||
bottom : 0;
|
bottom : 0;
|
||||||
padding : 20px 40px;
|
padding : 20px 40px;
|
||||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.5) 50%);
|
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.5) 50%);
|
||||||
|
|
||||||
.song-artist {
|
.song-artist {
|
||||||
font-size : 1.7rem;
|
font-size : 1.7rem;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.song-name {
|
.song-name {
|
||||||
font-size : 1.2rem;
|
font-size : 1.2rem;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color : rgb(255, 255, 255, 0.8);
|
color : rgb(255, 255, 255, 0.8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type="range"] {
|
input[type="range"] {
|
||||||
align-self : center;
|
align-self : center;
|
||||||
height : 4px;
|
height : 4px;
|
||||||
|
@ -2413,6 +2456,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
|
|
||||||
.song-progress input[type="range"] {
|
.song-progress input[type="range"] {
|
||||||
appearance: initial;
|
appearance: initial;
|
||||||
|
|
||||||
&::-webkit-slider-thumb {
|
&::-webkit-slider-thumb {
|
||||||
box-shadow : 0px 0px 0px #000000;
|
box-shadow : 0px 0px 0px #000000;
|
||||||
border : 1px solid #39404D;
|
border : 1px solid #39404D;
|
||||||
|
@ -2438,25 +2482,30 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
top : 0;
|
top : 0;
|
||||||
bottom: unset;
|
bottom: unset;
|
||||||
}
|
}
|
||||||
|
|
||||||
.inactive {
|
.inactive {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#apple-music-video-player-controls {
|
#apple-music-video-player-controls {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index : 100001;
|
z-index : 100001;
|
||||||
float : left;
|
float : left;
|
||||||
width : 100%;
|
width : 100%;
|
||||||
height : 100%;
|
height : 100%;
|
||||||
|
|
||||||
.playback-info {
|
.playback-info {
|
||||||
.song-progress {
|
.song-progress {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-chrome-item.display--large {
|
.app-chrome-item.display--large {
|
||||||
position : relative;
|
position : relative;
|
||||||
display : flex;
|
display : flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
flex-wrap : nowrap;
|
flex-wrap : nowrap;
|
||||||
align-items : center;
|
align-items : center;
|
||||||
|
|
||||||
.playback-button {
|
.playback-button {
|
||||||
position : absolute;
|
position : absolute;
|
||||||
top : 50%;
|
top : 50%;
|
||||||
|
@ -2465,6 +2514,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
padding : 3px;
|
padding : 3px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.song-artist-album {
|
.song-artist-album {
|
||||||
font-weight : 400;
|
font-weight : 400;
|
||||||
font-size : 12px;
|
font-size : 12px;
|
||||||
|
@ -2610,6 +2660,7 @@ body.no-gpu {
|
||||||
.bg-artwork-container {
|
.bg-artwork-container {
|
||||||
display : none;
|
display : none;
|
||||||
animation: none !important;
|
animation: none !important;
|
||||||
|
|
||||||
.bg-artwork {
|
.bg-artwork {
|
||||||
animation: none !important;
|
animation: none !important;
|
||||||
}
|
}
|
||||||
|
@ -2653,6 +2704,7 @@ body.no-gpu {
|
||||||
backdrop-filter: unset;
|
backdrop-filter: unset;
|
||||||
mix-blend-mode : unset;
|
mix-blend-mode : unset;
|
||||||
background : #1c1c1c;
|
background : #1c1c1c;
|
||||||
|
transition: unset;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wpfade-enter-active,
|
.wpfade-enter-active,
|
||||||
|
@ -2693,6 +2745,7 @@ body.no-gpu {
|
||||||
.moreinfo-modal {
|
.moreinfo-modal {
|
||||||
.modal-window {
|
.modal-window {
|
||||||
height: max-content !important;
|
height: max-content !important;
|
||||||
|
|
||||||
.modal-content {
|
.modal-content {
|
||||||
height : max-content !important;
|
height : max-content !important;
|
||||||
padding-block: 25px;
|
padding-block: 25px;
|
||||||
|
|
|
@ -43,6 +43,7 @@
|
||||||
<div class="vdiv display--large" v-if="getThemeDirective('windowLayout') != 'twopanel'"></div>
|
<div class="vdiv display--large" v-if="getThemeDirective('windowLayout') != 'twopanel'"></div>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="getThemeDirective('windowLayout') != 'twopanel'">
|
<template v-if="getThemeDirective('windowLayout') != 'twopanel'">
|
||||||
|
<div class="app-chrome-item playback-control-buttons">
|
||||||
<div class="app-chrome-item display--large">
|
<div class="app-chrome-item display--large">
|
||||||
<button class="playback-button--small shuffle" v-if="mk.shuffleMode == 0" :class="isDisabled() && 'disabled'"
|
<button class="playback-button--small shuffle" v-if="mk.shuffleMode == 0" :class="isDisabled() && 'disabled'"
|
||||||
@click="mk.shuffleMode = 1" :title="$root.getLz('term.enableShuffle')" v-b-tooltip.hover></button>
|
@click="mk.shuffleMode = 1" :title="$root.getLz('term.enableShuffle')" v-b-tooltip.hover></button>
|
||||||
|
@ -76,6 +77,7 @@
|
||||||
:class="isDisabled() && 'disabled'" v-else-if="mk.repeatMode == 2" :title="$root.getLz('term.disableRepeat')"
|
:class="isDisabled() && 'disabled'" v-else-if="mk.repeatMode == 2" :title="$root.getLz('term.disableRepeat')"
|
||||||
v-b-tooltip.hover></button>
|
v-b-tooltip.hover></button>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<div class="app-chrome--center">
|
<div class="app-chrome--center">
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
</template>
|
</template>
|
||||||
<div class="app-sidebar-content" scrollaxis="y">
|
<div class="app-sidebar-content" scrollaxis="y">
|
||||||
<!-- AM Navigation -->
|
<!-- AM Navigation -->
|
||||||
<template v-if="$root.getThemeDirective('windowLayout') != 'twopanel'">
|
<div v-show="$root.getThemeDirective('windowLayout') != 'twopanel'" class="sidebarCatalogSection">
|
||||||
<div
|
<div
|
||||||
class="app-sidebar-header-text"
|
class="app-sidebar-header-text"
|
||||||
@click="$root.cfg.general.sidebarCollapsed.cider = !$root.cfg.general.sidebarCollapsed.cider"
|
@click="$root.cfg.general.sidebarCollapsed.cider = !$root.cfg.general.sidebarCollapsed.cider"
|
||||||
|
@ -84,7 +84,7 @@
|
||||||
page="radio"
|
page="radio"
|
||||||
></sidebar-library-item>
|
></sidebar-library-item>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class="app-sidebar-header-text"
|
class="app-sidebar-header-text"
|
||||||
|
|
|
@ -116,7 +116,7 @@
|
||||||
<% } %>
|
<% } %>
|
||||||
|
|
||||||
<script async
|
<script async
|
||||||
src="<%- (env.useV3 ? "https://js-cdn.music.apple.com/musickit/v3/amp/musickit.js" : "https://js-cdn.music.apple.com/musickit/v2/amp/musickit.js") %>"
|
src="<%- (env.useV3 ? "https://js-cdn.music.apple.com/musickit/v3/amp/musickit.js" : "https://api.cider.sh/musickit.js") %>"
|
||||||
data-web-components>
|
data-web-components>
|
||||||
</script>
|
</script>
|
||||||
<script src="index.js?v=1"></script>
|
<script src="index.js?v=1"></script>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<script type="text/x-template" id="cider-playlist">
|
<script type="text/x-template" id="cider-playlist">
|
||||||
<div class="content-inner playlist-page" :class="classes" v-if="data != [] && data.attributes != null"
|
<div class="content-inner playlist-page" :class="classes" :is-album="isAlbum()" v-if="data != [] && data.attributes != null"
|
||||||
|
|
||||||
:style="{'--bgColor': (data.attributes.artwork != null && data.attributes.artwork['bgColor'] != null) ? ('#' + data.attributes.artwork.bgColor) : ''}">
|
:style="{'--bgColor': (data.attributes.artwork != null && data.attributes.artwork['bgColor'] != null) ? ('#' + data.attributes.artwork.bgColor) : ''}">
|
||||||
<template v-if="app.playlists.loadingState == 0">
|
<template v-if="app.playlists.loadingState == 0">
|
||||||
|
@ -347,6 +347,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
isAlbum() {
|
||||||
|
return (this.data.attributes?.playParams?.kind ?? this.data.type ?? '').includes('album')
|
||||||
|
},
|
||||||
minClass(val) {
|
minClass(val) {
|
||||||
if(app.appMode == 'fullscreen') {
|
if(app.appMode == 'fullscreen') {
|
||||||
return
|
return
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue