lidarr-spotify-frontend/public/styles.css

290 lines
4.3 KiB
CSS
Raw Permalink Normal View History

:root {
--bg: #0f172a;
--bg-soft: #1e293b;
--card: #111827;
--text: #e2e8f0;
--muted: #94a3b8;
--accent: #22d3ee;
--accent-2: #f59e0b;
--danger: #fb7185;
--border: #334155;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
font-family: 'Space Grotesk', sans-serif;
color: var(--text);
background:
radial-gradient(circle at 10% 10%, #0ea5e9 0%, transparent 30%),
radial-gradient(circle at 80% 0%, #f97316 0%, transparent 25%),
var(--bg);
min-height: 100vh;
}
.layout {
width: min(1100px, 92vw);
margin: 2rem auto 3rem;
display: grid;
gap: 1rem;
}
.hero h1 {
margin: 0 0 0.3rem;
font-size: clamp(1.8rem, 2.4vw, 2.8rem);
}
.hero p {
margin: 0;
color: var(--muted);
}
.panel {
background: color-mix(in srgb, var(--card) 88%, black);
border: 1px solid var(--border);
border-radius: 16px;
padding: 1rem;
}
.settings .hint {
color: var(--muted);
margin: 0.4rem 0 0;
}
.toggle {
display: inline-flex;
align-items: center;
gap: 0.6rem;
}
.search-row {
display: flex;
gap: 0.8rem;
}
input,
select,
button {
border: 1px solid var(--border);
border-radius: 10px;
padding: 0.7rem 0.9rem;
font-family: inherit;
font-size: 1rem;
}
input {
background: #0b1220;
color: var(--text);
flex: 1;
}
select {
background: #0b1220;
color: var(--text);
min-width: 140px;
}
button {
background: linear-gradient(120deg, var(--accent), var(--accent-2));
color: #001018;
font-weight: 700;
cursor: pointer;
}
button:hover {
filter: brightness(1.07);
}
.results {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
gap: 0.9rem;
}
.album-card {
border: 1px solid var(--border);
border-radius: 14px;
overflow: hidden;
background: var(--bg-soft);
display: grid;
}
.album-cover {
width: 100%;
aspect-ratio: 1;
object-fit: cover;
}
.album-body {
padding: 0.8rem;
display: grid;
gap: 0.5rem;
}
.album-body h3 {
margin: 0;
font-size: 1rem;
}
.album-body p {
margin: 0;
color: var(--muted);
font-size: 0.9rem;
}
.pill {
display: inline-block;
border-radius: 999px;
padding: 0.2rem 0.5rem;
font-size: 0.75rem;
font-weight: 700;
}
.pill.exists {
background: #14532d;
color: #bbf7d0;
}
.pill.missing {
background: #1e3a8a;
color: #bfdbfe;
}
#jobList {
display: grid;
gap: 0.5rem;
}
.job-row {
border: 1px solid var(--border);
border-radius: 8px;
padding: 0.5rem 0.7rem;
font-size: 0.9rem;
}
dialog {
border: 1px solid var(--border);
border-radius: 16px;
background: #0b1220;
color: var(--text);
width: min(760px, 96vw);
padding: 0;
}
.dialog-content {
display: grid;
gap: 0.8rem;
padding: 1rem;
}
.track-list {
max-height: min(58vh, 640px);
overflow: auto;
border: 1px solid var(--border);
border-radius: 12px;
padding: 0.6rem;
display: grid;
gap: 0.45rem;
background: #0a1323;
}
.track-row {
display: grid;
grid-template-columns: 32px minmax(0, 1fr) auto;
align-items: center;
gap: 0.65rem;
border: 1px solid #1f2f49;
border-radius: 10px;
padding: 0.5rem 0.6rem;
background: #0d1a2e;
}
.track-row:hover {
border-color: #34517a;
background: #10203a;
}
.track-check {
width: 22px;
height: 22px;
margin: 0;
cursor: pointer;
}
.track-main {
min-width: 0;
display: grid;
gap: 0.1rem;
}
.track-title {
font-size: 1.02rem;
font-weight: 600;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.track-meta {
color: var(--muted);
font-size: 0.85rem;
}
.track-status {
justify-self: end;
}
.dialog-actions {
display: flex;
justify-content: flex-end;
gap: 0.5rem;
position: sticky;
bottom: 0;
background: linear-gradient(180deg, rgba(11, 18, 32, 0.7), rgba(11, 18, 32, 1));
padding-top: 0.6rem;
}
@media (max-width: 680px) {
.search-row {
flex-direction: column;
}
dialog {
width: 98vw;
}
.dialog-content {
padding: 0.8rem;
}
.track-row {
grid-template-columns: 28px minmax(0, 1fr);
grid-template-areas:
"check title"
"check status";
align-items: start;
}
.track-check {
grid-area: check;
margin-top: 0.15rem;
}
.track-main {
grid-area: title;
}
.track-title {
white-space: normal;
line-height: 1.25;
}
.track-status {
grid-area: status;
justify-self: start;
}
}