implement custom hotbar card view for Daggerheart items with dynamic tooltips
This commit is contained in:
commit
373eb12a6d
5 changed files with 359 additions and 0 deletions
179
styles/cardview.css
Normal file
179
styles/cardview.css
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
:root {
|
||||
/* Use standard Foundry/System tooltip background, falling back to dark */
|
||||
--dh-card-bg: var(--color-background-tooltip, rgba(0, 0, 0, 0.9));
|
||||
--dh-card-text: var(--color-text-light-primary, #eeeeee);
|
||||
/* Daggerheart gold */
|
||||
--dh-card-title: var(--color-primary, #f2cf5b);
|
||||
--dh-card-border: #444;
|
||||
--dh-card-banner-border: #222;
|
||||
}
|
||||
|
||||
.theme-dark,
|
||||
.dark-mode {
|
||||
--dh-card-bg: var(--color-background-tooltip, #1a1a1a);
|
||||
--dh-card-text: var(--color-text-light-primary, #dddddd);
|
||||
--dh-card-title: var(--color-primary, #f2cf5b);
|
||||
--dh-card-border: #444;
|
||||
--dh-card-banner-border: #222;
|
||||
}
|
||||
|
||||
/* Base Tooltip Override */
|
||||
.tooltip.dh-hotbar-card-tooltip,
|
||||
#tooltip.dh-hotbar-card-tooltip,
|
||||
.dh-hotbar-card-tooltip {
|
||||
background: transparent !important;
|
||||
border: none !important;
|
||||
box-shadow: none !important;
|
||||
padding: 0 !important;
|
||||
margin-bottom: 12px !important; /* Slightly increase distance to the hotbar */
|
||||
max-width: none !important;
|
||||
white-space: normal !important;
|
||||
}
|
||||
|
||||
.dh-hotbar-card {
|
||||
width: 360px;
|
||||
min-height: 504px; /* ~1:1.4 aspect ratio for playing card */
|
||||
background: var(--dh-card-bg);
|
||||
border: 2px solid var(--dh-card-border);
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
color: var(--dh-card-text);
|
||||
font-family: 'Signika', 'Helvetica Neue', sans-serif;
|
||||
box-shadow: 0 8px 24px rgba(0,0,0,0.8);
|
||||
text-align: left;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.dh-hotbar-card .card-art-container {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 180px;
|
||||
border-bottom: 4px solid #f2cf5b; /* Gold line */
|
||||
background: #333;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
overflow: visible; /* To allow the banner to overlap */
|
||||
}
|
||||
|
||||
.dh-hotbar-card .card-art {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
object-position: top;
|
||||
}
|
||||
|
||||
.dh-hotbar-card .card-ribbon {
|
||||
position: absolute;
|
||||
top: -2px;
|
||||
left: 20px;
|
||||
width: 44px;
|
||||
height: 80px;
|
||||
background: #1a1a1a;
|
||||
border: 2px solid #f2cf5b;
|
||||
border-top: none;
|
||||
clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 85%, 0 100%);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding-top: 5px;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.dh-hotbar-card .card-ribbon .level {
|
||||
font-size: 22px;
|
||||
font-weight: 800;
|
||||
color: white;
|
||||
margin-bottom: 2px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.dh-hotbar-card .card-ribbon img {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
/* brightness(0) invert(1) makes the icon white */
|
||||
filter: brightness(0) invert(1) drop-shadow(0 0 2px rgba(255,255,255,0.3));
|
||||
border: none;
|
||||
}
|
||||
|
||||
.dh-hotbar-card .card-cost {
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
right: 15px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
background: #1a1a1a;
|
||||
border: 2px solid #f2cf5b;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: white;
|
||||
font-weight: 800;
|
||||
font-size: 18px;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.dh-hotbar-card .card-cost i {
|
||||
font-size: 12px;
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.dh-hotbar-card .card-type-banner {
|
||||
position: absolute;
|
||||
bottom: -14px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
background: #1a1a1a;
|
||||
color: white;
|
||||
font-weight: 800;
|
||||
font-size: 14px;
|
||||
letter-spacing: 1px;
|
||||
text-transform: uppercase;
|
||||
padding: 4px 24px;
|
||||
clip-path: polygon(10px 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 10px 100%, 0 50%);
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.dh-hotbar-card .card-type-banner.ancestry {
|
||||
left: auto;
|
||||
right: 20px;
|
||||
transform: none;
|
||||
background: #f2cf5b;
|
||||
color: #000;
|
||||
border: 2px solid var(--dh-card-banner-border);
|
||||
}
|
||||
|
||||
/* Adjust layout so content doesn't collide with the banner */
|
||||
.dh-hotbar-card .card-content {
|
||||
padding: 24px 20px 20px 20px;
|
||||
background: var(--dh-card-bg);
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.dh-hotbar-card .card-title {
|
||||
font-family: 'Cinzel', serif;
|
||||
font-size: 28px;
|
||||
font-weight: 900;
|
||||
margin: 0 0 10px 0;
|
||||
color: var(--dh-card-title);
|
||||
text-transform: uppercase;
|
||||
border: none;
|
||||
line-height: 1.1;
|
||||
}
|
||||
|
||||
.dh-hotbar-card .card-description {
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
color: var(--dh-card-text);
|
||||
}
|
||||
|
||||
.dh-hotbar-card .card-description p {
|
||||
margin: 0 0 8px 0;
|
||||
}
|
||||
|
||||
.dh-hotbar-card .card-description strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue