420 lines
12 KiB
Plaintext
420 lines
12 KiB
Plaintext
<rml>
|
|
<head>
|
|
<link type="text/rcss" href="../../ui/html.rcss"/>
|
|
<link type="text/rcss" href="../../ui/theme.rcss"/>
|
|
<link type="text/rcss" href="../../ui/components.rcss"/>
|
|
<script src="../../scripts/navigation.lua"></script>
|
|
<title>Music</title>
|
|
<style>
|
|
.music-screen {
|
|
width: 100%;
|
|
height: 100%;
|
|
background-color: #121212;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.music-content {
|
|
flex: 1;
|
|
overflow: auto;
|
|
}
|
|
|
|
/* Now Playing Mini Bar */
|
|
.mini-player {
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 8px 16px;
|
|
background-color: #282828;
|
|
border-top: 1px solid #333333;
|
|
}
|
|
|
|
.mini-player-art {
|
|
width: 48px;
|
|
height: 48px;
|
|
border-radius: 4px;
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
margin-right: 12px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 20px;
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
.mini-player-info {
|
|
flex: 1;
|
|
}
|
|
|
|
.mini-player-title {
|
|
font-size: 18px;
|
|
color: #FFFFFF;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.mini-player-artist {
|
|
font-size: 16px;
|
|
color: #B3B3B3;
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.mini-player-controls {
|
|
display: flex;
|
|
gap: 8px;
|
|
}
|
|
|
|
.mini-control-btn {
|
|
width: 56px;
|
|
height: 56px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
cursor: pointer;
|
|
border-radius: 28px;
|
|
}
|
|
|
|
.mini-control-btn:hover {
|
|
background-color: rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.mini-control-btn img {
|
|
width: 32px;
|
|
height: 32px;
|
|
}
|
|
|
|
/* Section Headers */
|
|
.section-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 24px 16px 12px 16px;
|
|
}
|
|
|
|
.section-title {
|
|
font-size: 22px;
|
|
font-weight: 700;
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
.section-action {
|
|
font-size: 16px;
|
|
font-weight: 600;
|
|
color: #B3B3B3;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.section-action:hover {
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
/* Recently Played Row */
|
|
.recent-row {
|
|
display: flex;
|
|
overflow-x: auto;
|
|
padding: 0 16px;
|
|
gap: 16px;
|
|
}
|
|
|
|
.recent-item {
|
|
min-width: 130px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.recent-art {
|
|
width: 130px;
|
|
height: 130px;
|
|
border-radius: 8px;
|
|
margin-bottom: 12px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 40px;
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
.recent-title {
|
|
font-size: 18px;
|
|
color: #FFFFFF;
|
|
font-weight: 500;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.recent-subtitle {
|
|
font-size: 16px;
|
|
color: #B3B3B3;
|
|
}
|
|
|
|
/* Quick Access Cards */
|
|
.quick-access {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 8px;
|
|
padding: 0 16px;
|
|
}
|
|
|
|
.quick-card {
|
|
display: flex;
|
|
align-items: center;
|
|
background-color: #282828;
|
|
border-radius: 4px;
|
|
padding: 0;
|
|
height: 56px;
|
|
overflow: hidden;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.quick-card:hover {
|
|
background-color: #333333;
|
|
}
|
|
|
|
.quick-card-art {
|
|
width: 56px;
|
|
height: 56px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 20px;
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
.quick-card-title {
|
|
font-size: 16px;
|
|
font-weight: 600;
|
|
color: #FFFFFF;
|
|
padding: 0 12px;
|
|
}
|
|
|
|
/* Playlist Row */
|
|
.playlist-item {
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 12px 16px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.playlist-item:hover {
|
|
background-color: #1E1E1E;
|
|
}
|
|
|
|
.playlist-art {
|
|
width: 56px;
|
|
height: 56px;
|
|
border-radius: 4px;
|
|
margin-right: 12px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 20px;
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
.playlist-info {
|
|
flex: 1;
|
|
}
|
|
|
|
.playlist-title {
|
|
font-size: 16px;
|
|
color: #FFFFFF;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.playlist-meta {
|
|
font-size: 16px;
|
|
color: #B3B3B3;
|
|
margin-top: 4px;
|
|
}
|
|
|
|
/* Bottom Navigation */
|
|
.music-bottom-nav {
|
|
display: flex;
|
|
height: 56px;
|
|
background-color: #1E1E1E;
|
|
border-top: 1px solid #282828;
|
|
}
|
|
|
|
.nav-item {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
cursor: pointer;
|
|
color: #B3B3B3;
|
|
}
|
|
|
|
.nav-item.active {
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
.nav-item img {
|
|
width: 32px;
|
|
height: 32px;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.nav-item span {
|
|
font-size: 16px;
|
|
}
|
|
|
|
/* Color palette for album arts */
|
|
.bg-gradient-1 { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); }
|
|
.bg-gradient-2 { background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); }
|
|
.bg-gradient-3 { background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%); }
|
|
.bg-gradient-4 { background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%); }
|
|
.bg-gradient-5 { background: linear-gradient(135deg, #fa709a 0%, #fee140 100%); }
|
|
.bg-gradient-6 { background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%); }
|
|
.bg-solid-purple { background-color: #7c3aed; }
|
|
.bg-solid-red { background-color: #dc2626; }
|
|
.bg-solid-green { background-color: #16a34a; }
|
|
.bg-solid-blue { background-color: #2563eb; }
|
|
</style>
|
|
</head>
|
|
<body class="music-screen">
|
|
<!-- App Bar -->
|
|
<div class="app-bar">
|
|
<div class="app-bar-nav btn-icon" onclick="goBack()">
|
|
<img src="../../icons/back.tga" style="width: 32px; height: 32px;"/>
|
|
</div>
|
|
<span class="app-bar-title">Music</span>
|
|
<div class="btn-icon">
|
|
<img src="../../icons/search.tga" style="width: 32px; height: 32px;"/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Content -->
|
|
<div class="music-content">
|
|
<!-- Good Morning Section -->
|
|
<div class="section-header">
|
|
<span class="section-title">Good afternoon</span>
|
|
</div>
|
|
|
|
<!-- Quick Access Grid -->
|
|
<div class="quick-access">
|
|
<div class="quick-card">
|
|
<div class="quick-card-art bg-solid-red">L</div>
|
|
<span class="quick-card-title">Liked Songs</span>
|
|
</div>
|
|
<div class="quick-card">
|
|
<div class="quick-card-art bg-gradient-1">D</div>
|
|
<span class="quick-card-title">Daily Mix 1</span>
|
|
</div>
|
|
<div class="quick-card">
|
|
<div class="quick-card-art bg-solid-green">R</div>
|
|
<span class="quick-card-title">Release Radar</span>
|
|
</div>
|
|
<div class="quick-card">
|
|
<div class="quick-card-art bg-gradient-2">C</div>
|
|
<span class="quick-card-title">Chill Vibes</span>
|
|
</div>
|
|
<div class="quick-card">
|
|
<div class="quick-card-art bg-solid-blue">W</div>
|
|
<span class="quick-card-title">Workout Mix</span>
|
|
</div>
|
|
<div class="quick-card">
|
|
<div class="quick-card-art bg-gradient-3">F</div>
|
|
<span class="quick-card-title">Focus Flow</span>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Recently Played -->
|
|
<div class="section-header">
|
|
<span class="section-title">Recently Played</span>
|
|
<span class="section-action">SEE ALL</span>
|
|
</div>
|
|
|
|
<div class="recent-row">
|
|
<div class="recent-item">
|
|
<div class="recent-art bg-gradient-4">P</div>
|
|
<div class="recent-title">Pop Hits</div>
|
|
<div class="recent-subtitle">Playlist</div>
|
|
</div>
|
|
<div class="recent-item">
|
|
<div class="recent-art bg-gradient-5">E</div>
|
|
<div class="recent-title">Electronic</div>
|
|
<div class="recent-subtitle">Playlist</div>
|
|
</div>
|
|
<div class="recent-item">
|
|
<div class="recent-art bg-gradient-1">J</div>
|
|
<div class="recent-title">Jazz Classics</div>
|
|
<div class="recent-subtitle">Playlist</div>
|
|
</div>
|
|
<div class="recent-item">
|
|
<div class="recent-art bg-gradient-2">R</div>
|
|
<div class="recent-title">Rock Legends</div>
|
|
<div class="recent-subtitle">Playlist</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Made For You -->
|
|
<div class="section-header">
|
|
<span class="section-title">Made For You</span>
|
|
<span class="section-action">SEE ALL</span>
|
|
</div>
|
|
|
|
<div class="playlist-item">
|
|
<div class="playlist-art bg-gradient-3">1</div>
|
|
<div class="playlist-info">
|
|
<div class="playlist-title">Daily Mix 1</div>
|
|
<div class="playlist-meta">Based on your listening</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="playlist-item">
|
|
<div class="playlist-art bg-gradient-4">2</div>
|
|
<div class="playlist-info">
|
|
<div class="playlist-title">Daily Mix 2</div>
|
|
<div class="playlist-meta">Electronic, Ambient, Chill</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="playlist-item">
|
|
<div class="playlist-art bg-gradient-5">D</div>
|
|
<div class="playlist-info">
|
|
<div class="playlist-title">Discover Weekly</div>
|
|
<div class="playlist-meta">Your weekly mixtape</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="playlist-item">
|
|
<div class="playlist-art bg-solid-green">R</div>
|
|
<div class="playlist-info">
|
|
<div class="playlist-title">Release Radar</div>
|
|
<div class="playlist-meta">New music from artists you follow</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Mini Player -->
|
|
<div class="mini-player">
|
|
<div class="mini-player-art">M</div>
|
|
<div class="mini-player-info">
|
|
<div class="mini-player-title">Midnight City</div>
|
|
<div class="mini-player-artist">M83</div>
|
|
</div>
|
|
<div class="mini-player-controls">
|
|
<div class="mini-control-btn">
|
|
<img src="../../icons/heart.tga"/>
|
|
</div>
|
|
<div class="mini-control-btn">
|
|
<img src="../../icons/play.tga"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Bottom Navigation -->
|
|
<div class="music-bottom-nav">
|
|
<div class="nav-item active">
|
|
<img src="../../icons/home.tga"/>
|
|
<span>Home</span>
|
|
</div>
|
|
<div class="nav-item">
|
|
<img src="../../icons/search.tga"/>
|
|
<span>Search</span>
|
|
</div>
|
|
<div class="nav-item">
|
|
<img src="../../icons/library.tga"/>
|
|
<span>Library</span>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</rml>
|