Files
Psychotoxical-psysonic/src/styles/components/artist-card-grid-view.css
T
Frank Stellmacher 4b4cf42167 refactor(styles): split components.css into per-section files (#657)
components.css (14205 LOC) → 84 per-section files in src/styles/components/ +
an index.css that imports them in original cascade order.

Same approach as the theme.css split: top-level sections are detected by
single-dash or 3+ dash header decoration (/^\/\* ─(?: |─{2,})/), 2-dash
sub-sections stay inside their parent. Concatenating in @import order
reproduces the original byte stream (+1 trailing newline, cosmetic).

Each section is now self-contained — touching Tracklist, Modal, Hero,
Sidebar, etc. only opens one focused file.

Generated via /tmp/split-components-css.mjs.
2026-05-13 19:10:11 +02:00

83 lines
1.7 KiB
CSS

/* ─ Artist Card (Grid View) ─ */
.artist-card {
display: flex;
flex-direction: column;
background: var(--bg-card);
border-radius: var(--radius-lg);
border: 1px solid var(--border-subtle);
cursor: pointer;
overflow: hidden;
transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
}
.artist-card:hover {
box-shadow: var(--shadow-md);
border-color: var(--border);
}
.artist-card-avatar {
position: relative;
aspect-ratio: 1;
overflow: hidden;
background: var(--bg-hover);
display: flex;
align-items: center;
justify-content: center;
color: var(--text-muted);
}
.artist-card-avatar img {
width: 100%;
height: 100%;
object-fit: cover;
transform-origin: center center;
transform: scale(1);
transition: opacity 0.15s ease, transform 350ms cubic-bezier(0.16, 1, 0.3, 1);
}
.artist-card:hover .artist-card-avatar img {
transform: scale(1.02);
}
.artist-card-avatar-initial {
aspect-ratio: 1;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
border-radius: 50% !important;
border: 2px solid;
width: calc(100% - 2 * var(--space-4));
margin: var(--space-3) auto var(--space-3);
}
.artist-card-avatar-initial span {
font-size: 3rem;
font-weight: 800;
font-family: var(--font-display);
line-height: 1;
user-select: none;
}
.artist-card-info {
padding: var(--space-3) var(--space-3) var(--space-2);
display: flex;
flex-direction: column;
gap: 2px;
}
.artist-card-name {
font-weight: 600;
font-size: 13px;
color: var(--text-primary);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.artist-card-meta {
font-size: 12px;
color: var(--text-secondary);
}