364 lines
No EOL
7.4 KiB
CSS
364 lines
No EOL
7.4 KiB
CSS
/* Hide default Daggerheart countdown tracker */
|
|
.daggerheart.countdowns {
|
|
display: none !important;
|
|
}
|
|
|
|
/* Modern Countdown Tracker Application */
|
|
.dh-improved-countdowns {
|
|
position: fixed;
|
|
pointer-events: none;
|
|
/* Let clicks pass through to child elements */
|
|
z-index: 100;
|
|
}
|
|
|
|
.countdown-tracker-window {
|
|
pointer-events: all;
|
|
background: rgba(20, 20, 25, 0.25);
|
|
backdrop-filter: blur(8px);
|
|
border: 1px solid rgba(255, 255, 255, 0.05);
|
|
border-radius: 12px;
|
|
padding: 8px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
box-shadow: none;
|
|
transition: all 0.3s ease;
|
|
min-width: 120px;
|
|
color: #eee;
|
|
font-family: 'Inter', 'Roboto', sans-serif;
|
|
}
|
|
|
|
.countdown-tracker-window:hover {
|
|
background: rgba(20, 20, 25, 0.85);
|
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
|
|
}
|
|
|
|
.countdown-tracker-window.minimized {
|
|
min-width: fit-content;
|
|
padding: 8px 12px;
|
|
}
|
|
|
|
.countdown-tracker-window.minimized .value-control {
|
|
display: none;
|
|
}
|
|
|
|
.countdown-tracker-window.minimized .countdown-visual {
|
|
gap: 0;
|
|
}
|
|
|
|
.countdown-tracker-window.minimized:hover {
|
|
min-width: 120px;
|
|
}
|
|
|
|
.countdown-tracker-window.minimized:hover .value-control {
|
|
display: flex;
|
|
}
|
|
|
|
.countdown-tracker-window.minimized:hover .countdown-visual {
|
|
gap: 10px;
|
|
}
|
|
|
|
/* Header and Drag Handle */
|
|
.tracker-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
opacity: 0;
|
|
height: 0;
|
|
overflow: hidden;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.countdown-tracker-window:hover .tracker-header {
|
|
opacity: 1;
|
|
height: 24px;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.drag-handle {
|
|
cursor: grab;
|
|
color: rgba(255, 255, 255, 0.5);
|
|
padding: 2px 8px;
|
|
}
|
|
|
|
.countdown-tracker-window.locked .drag-handle {
|
|
display: none;
|
|
}
|
|
|
|
.header-controls {
|
|
display: flex;
|
|
gap: 8px;
|
|
padding-right: 4px;
|
|
}
|
|
|
|
.control-btn {
|
|
color: rgba(255, 255, 255, 0.6);
|
|
cursor: pointer;
|
|
font-size: 14px;
|
|
}
|
|
|
|
.control-btn:hover {
|
|
color: #fff;
|
|
text-shadow: 0 0 8px rgba(255, 255, 255, 0.5);
|
|
}
|
|
|
|
/* Countdowns List */
|
|
.countdowns-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 16px;
|
|
max-height: 60vh;
|
|
overflow-y: auto;
|
|
overflow-x: hidden;
|
|
padding-right: 4px;
|
|
/* Space for scrollbar */
|
|
/* Custom scrollbar for webkit */
|
|
scrollbar-width: thin;
|
|
scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
|
|
}
|
|
|
|
.countdowns-list::-webkit-scrollbar {
|
|
width: 4px;
|
|
}
|
|
|
|
.countdowns-list::-webkit-scrollbar-track {
|
|
background: transparent;
|
|
}
|
|
|
|
.countdowns-list::-webkit-scrollbar-thumb {
|
|
background-color: rgba(255, 255, 255, 0.2);
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.countdown-item {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 6px;
|
|
position: relative;
|
|
}
|
|
|
|
.countdown-name {
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.5px;
|
|
color: rgba(255, 255, 255, 0.8);
|
|
text-align: center;
|
|
/* max-width removed to allow natural width, or increased if needed */
|
|
max-width: 150px;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
/* Allow wrapping */
|
|
line-height: 1.2;
|
|
transition: max-width 0.3s ease;
|
|
}
|
|
|
|
.countdown-tracker-window:not(.minimized):hover .countdown-name {
|
|
max-width: 250px;
|
|
/* Reduced from none to provide some limit, or use none */
|
|
overflow: visible;
|
|
white-space: normal;
|
|
/* Allow wrapping */
|
|
}
|
|
|
|
.countdown-visual {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
}
|
|
|
|
.visual-wrapper {
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
/* Ensure the number overlay is positioned relative to this wrapper */
|
|
}
|
|
|
|
.icon-container {
|
|
position: relative;
|
|
width: 48px;
|
|
height: 48px;
|
|
background: rgba(0, 0, 0, 0.3);
|
|
border: 2px solid rgba(255, 255, 255, 0.1);
|
|
overflow: hidden;
|
|
transition: border-radius 0.3s ease;
|
|
}
|
|
|
|
.icon-container.shape-circle {
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.icon-container.shape-rounded {
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.countdown-icon {
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
display: block;
|
|
}
|
|
|
|
.value-overlay {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
pointer-events: none;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.value-overlay.number {
|
|
font-size: 22px;
|
|
font-weight: 800;
|
|
color: #fff;
|
|
text-shadow: 0 0 4px rgba(0, 0, 0, 0.9), 0 0 8px rgba(0, 0, 0, 0.9);
|
|
width: max-content;
|
|
/* Allow numbers to extend beyond icon width if needed */
|
|
pointer-events: none;
|
|
z-index: 10;
|
|
}
|
|
|
|
.value-overlay.visual {
|
|
width: 100%;
|
|
height: 100%;
|
|
top: 0;
|
|
left: 0;
|
|
transform: none;
|
|
background: rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
/* Clock Visual */
|
|
.clock-visual {
|
|
width: 100%;
|
|
height: 100%;
|
|
border-radius: 50%;
|
|
/* Opacity and Color handled inline via template */
|
|
}
|
|
|
|
/* Bar Visual */
|
|
.bar-visual {
|
|
position: absolute;
|
|
bottom: 0;
|
|
left: 0;
|
|
/* Box shadow removed as it might interfere with custom colors/transparency */
|
|
transition: all 0.3s ease;
|
|
/* Color handled inline via template */
|
|
}
|
|
|
|
/* SVG Border Visual */
|
|
.progress-border-svg {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
pointer-events: none;
|
|
/* Rotation handled inline to start at top */
|
|
}
|
|
|
|
/* Grayscale Filter */
|
|
.grayscale-filter {
|
|
backdrop-filter: grayscale(100%) !important;
|
|
background: transparent !important;
|
|
opacity: 1 !important;
|
|
box-shadow: none !important;
|
|
}
|
|
|
|
.bar-visual.vertical {
|
|
width: 100%;
|
|
/* height is set inline */
|
|
}
|
|
|
|
.bar-visual.horizontal {
|
|
height: 100%;
|
|
/* width is set inline */
|
|
}
|
|
|
|
/* +/- Controls */
|
|
.value-control {
|
|
opacity: 0;
|
|
transition: opacity 0.2s ease;
|
|
width: 24px;
|
|
height: 24px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: rgba(255, 255, 255, 0.1);
|
|
border-radius: 4px;
|
|
cursor: pointer;
|
|
color: #ccc;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.countdown-item:hover .value-control {
|
|
opacity: 1;
|
|
}
|
|
|
|
.value-control:hover {
|
|
background: rgba(255, 255, 255, 0.2);
|
|
color: #fff;
|
|
}
|
|
|
|
.value-control.plus:hover {
|
|
background: rgba(74, 222, 128, 0.2);
|
|
color: #4ade80;
|
|
}
|
|
|
|
.value-control.minus:hover {
|
|
background: rgba(248, 113, 113, 0.2);
|
|
color: #f87171;
|
|
}
|
|
|
|
/* No Countdowns State */
|
|
.no-countdowns {
|
|
font-size: 11px;
|
|
font-style: italic;
|
|
color: rgba(255, 255, 255, 0.4);
|
|
padding: 8px;
|
|
text-align: center;
|
|
}
|
|
|
|
/* Sidebar Injection */
|
|
.dh-improved-countdowns-sidebar {
|
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
border-radius: 8px;
|
|
padding: 8px;
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.dh-improved-countdowns-sidebar .menu-refresh-container {
|
|
display: flex;
|
|
justify-content: center;
|
|
}
|
|
|
|
.dh-improved-countdowns-sidebar .create-countdown-btn {
|
|
background: rgba(255, 255, 255, 0.05);
|
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
border-radius: 4px;
|
|
color: #eee;
|
|
cursor: pointer;
|
|
font-family: inherit;
|
|
font-size: 13px;
|
|
padding: 6px 12px;
|
|
transition: all 0.2s ease;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.dh-improved-countdowns-sidebar .create-countdown-btn:hover {
|
|
background: rgba(255, 255, 255, 0.1);
|
|
border-color: rgba(255, 255, 255, 0.3);
|
|
box-shadow: 0 0 10px rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.dh-improved-countdowns-sidebar i {
|
|
font-size: 12px;
|
|
} |