Files
RDJ-Viewer-themes/css/Card/card.css
T

165 lines
3.0 KiB
CSS

/* OBS Default Reset & Transparent Canvas */
body {
background-color: rgba(0, 0, 0, 0) !important;
margin: 0 auto;
overflow: visible !important;
display: flex;
justify-content: center;
align-items: flex-start;
min-height: 100vh;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
/* Main widget container */
.widget-container {
position: relative;
display: flex;
flex-direction: column;
width: 100%;
max-width: 400px;
height: auto !important;
border-radius: 20px;
overflow: hidden;
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.95);
margin: 20px;
}
/* Blurred background layer using album art */
.background-blur {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 0;
overflow: hidden;
}
.background-image {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
filter: blur(25px) brightness(0.4); /* Strong blur and dimmed for readability */
transform: scale(1.2); /* Prevents hard/unblurred edges around borders */
z-index: 0;
}
/* Dark overlay to ensure text contrast */
.overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.35);
z-index: 1;
pointer-events: none;
}
/* Content layer */
.widget-content {
position: relative;
display: flex;
flex-direction: column;
gap: 16px;
padding: 24px;
z-index: 2;
width: 100%;
height: auto !important;
align-items: center;
}
/* Album art box & Fallback Image Handler */
.album-art-box {
position: relative;
flex-shrink: 0;
width: 100%;
aspect-ratio: 1 / 1;
height: auto;
border-radius: 15px;
overflow: hidden;
/* REPLACE URL WITH YOUR CUSTOM FALLBACK IMAGE */
background: #1e1e1e url('https://i.imgur.com/8Q9Z4Zm.png') center/cover no-repeat;
display: flex;
justify-content: center;
align-items: center;
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.6);
z-index: 2;
}
.album-art {
width: 100%;
height: 100%;
object-fit: cover;
}
/* Hides broken image icons so background fallback shows cleanly */
.album-art[src=""],
.album-art:not([src]) {
opacity: 0;
}
/* Song info box */
.song-info {
width: 100%;
display: flex !important;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
gap: 6px;
min-width: 0;
padding: 4px 0 8px 0;
z-index: 3;
}
/* Song title */
.song-title {
width: 100%;
font-size: 20px;
font-weight: 600;
color: #ffffff !important;
text-shadow: 1px 1px 6px rgba(0, 0, 0, 0.9);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
line-height: 1.2;
}
/* Song artist */
.song-artist {
width: 100%;
font-size: 15px;
font-weight: 400;
color: #ffffff !important;
opacity: 0.75;
text-shadow: 1px 1px 6px rgba(0, 0, 0, 0.9);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
line-height: 1.2;
}
/* Smooth fade animation for updates */
@keyframes fadeIn {
from {
opacity: 0.5;
}
to {
opacity: 1;
}
}
.song-title.updating,
.song-artist.updating {
animation: fadeIn 0.4s ease-in-out;
}