Redesign adversité section: 3 colored cards layout
Replace vertical list with horizontal card layout matching header style: - BLEUE (blue), ROUGE (red), NOIRE (dark) cards with top-colored borders - Gem image 52px with drop-shadow + hover scale - Large numeric counter (Signika font) - Colored -/+ buttons (red minus, green plus) - Modifier fields compact row below cards - Section title with amber letterhead style Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -790,6 +790,179 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ==================== Adversité Cards ==================== */
|
||||
.adversite-section {
|
||||
padding: 6px 8px 8px;
|
||||
|
||||
.adversite-section-title {
|
||||
font-family: "CentaurMT", "Palatino Linotype", serif;
|
||||
font-size: 0.85rem;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1.5px;
|
||||
color: #c8a060;
|
||||
text-align: center;
|
||||
margin: 0 0 8px 0;
|
||||
padding-bottom: 4px;
|
||||
border-bottom: 1px solid rgba(180, 130, 40, 0.35);
|
||||
text-shadow: 1px 1px 3px rgba(0,0,0,0.8);
|
||||
}
|
||||
|
||||
.adversite-cards {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 8px;
|
||||
|
||||
.adversite-card {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
padding: 6px 4px 8px;
|
||||
border-radius: 5px;
|
||||
border: 1px solid rgba(100,80,40,0.4);
|
||||
border-top: 3px solid rgba(100,80,40,0.6);
|
||||
background: rgba(8,4,0,0.55);
|
||||
transition: box-shadow 0.2s;
|
||||
|
||||
&:hover {
|
||||
box-shadow: 0 0 10px rgba(200,160,60,0.2);
|
||||
}
|
||||
|
||||
// Couleur par type
|
||||
&.adversite-bleue {
|
||||
border-top-color: #2255bb;
|
||||
background: rgba(4, 8, 30, 0.65);
|
||||
.adversite-card-title { color: #88aaff; }
|
||||
}
|
||||
&.adversite-rouge {
|
||||
border-top-color: #aa1818;
|
||||
background: rgba(30, 4, 4, 0.65);
|
||||
.adversite-card-title { color: #ff8888; }
|
||||
}
|
||||
&.adversite-noire {
|
||||
border-top-color: #555555;
|
||||
background: rgba(12, 12, 12, 0.75);
|
||||
.adversite-card-title { color: #aaaaaa; }
|
||||
}
|
||||
|
||||
.adversite-card-title {
|
||||
font-size: 0.62rem;
|
||||
font-weight: 800;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1px;
|
||||
text-shadow: 1px 1px 2px rgba(0,0,0,0.9);
|
||||
}
|
||||
|
||||
.adversite-gem {
|
||||
width: 52px;
|
||||
height: 52px;
|
||||
object-fit: contain;
|
||||
filter: drop-shadow(0 2px 6px rgba(0,0,0,0.7));
|
||||
transition: transform 0.15s, filter 0.15s;
|
||||
|
||||
&:hover {
|
||||
transform: scale(1.06);
|
||||
filter: drop-shadow(0 3px 10px rgba(180,140,60,0.5));
|
||||
}
|
||||
}
|
||||
|
||||
.adversite-value {
|
||||
font-family: "Signika", "Arial Narrow", sans-serif;
|
||||
font-variant-numeric: lining-nums tabular-nums;
|
||||
font-size: 1.6rem;
|
||||
font-weight: 900;
|
||||
color: #f5e0c0;
|
||||
text-shadow: 1px 1px 4px rgba(0,0,0,0.9);
|
||||
line-height: 1;
|
||||
min-height: 1.8rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.adversite-controls {
|
||||
display: flex;
|
||||
gap: 6px;
|
||||
align-items: center;
|
||||
|
||||
.adv-btn {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 1rem;
|
||||
font-weight: 900;
|
||||
border-radius: 4px;
|
||||
border: 1px solid rgba(160,120,40,0.6);
|
||||
background: linear-gradient(to bottom, rgba(60,35,8,0.9), rgba(30,15,3,0.9));
|
||||
color: #d4aa60;
|
||||
cursor: pointer;
|
||||
transition: all 0.12s;
|
||||
text-decoration: none;
|
||||
line-height: 1;
|
||||
user-select: none;
|
||||
|
||||
&:hover {
|
||||
background: linear-gradient(to bottom, rgba(120,60,10,0.95), rgba(80,35,5,0.95));
|
||||
border-color: rgba(220,170,50,0.8);
|
||||
color: #ffe090;
|
||||
transform: scale(1.1);
|
||||
}
|
||||
&:active {
|
||||
transform: scale(0.92);
|
||||
}
|
||||
|
||||
&.adv-minus { color: #ff9999; border-color: rgba(180,40,40,0.5); }
|
||||
&.adv-plus { color: #99ffaa; border-color: rgba(40,160,60,0.5); }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.adversite-modifiers {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 8px;
|
||||
margin-top: 8px;
|
||||
padding-top: 6px;
|
||||
border-top: 1px solid rgba(120,80,20,0.3);
|
||||
|
||||
.adversite-modifier-row {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 2px;
|
||||
|
||||
label {
|
||||
font-size: 0.58rem;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
color: #9a7a50;
|
||||
white-space: nowrap;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
input {
|
||||
width: 40px;
|
||||
height: 20px;
|
||||
text-align: center;
|
||||
font-size: 0.8rem;
|
||||
font-weight: 600;
|
||||
padding: 0 2px;
|
||||
background: rgba(30,15,3,0.85);
|
||||
border: 1px solid rgba(120,75,20,0.5);
|
||||
border-radius: 2px;
|
||||
color: #f0dfc0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ==================== Creature Sheet Specific Styles ==================== */
|
||||
|
||||
@@ -2388,6 +2388,7 @@ li {
|
||||
/* ==================== Actor Sheet Styles ==================== */
|
||||
.fvtt-mournblade-cyd-2-0.actor {
|
||||
background: url("../assets/ui/pc_sheet_bg.webp") repeat;
|
||||
/* ==================== Adversité Cards ==================== */
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .window-content {
|
||||
height: 100%;
|
||||
@@ -3080,6 +3081,171 @@ li {
|
||||
margin: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section {
|
||||
padding: 6px 8px 8px;
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-section-title {
|
||||
font-family: "CentaurMT", "Palatino Linotype", serif;
|
||||
font-size: 0.85rem;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1.5px;
|
||||
color: #c8a060;
|
||||
text-align: center;
|
||||
margin: 0 0 8px 0;
|
||||
padding-bottom: 4px;
|
||||
border-bottom: 1px solid rgba(180, 130, 40, 0.35);
|
||||
text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.8);
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 8px;
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards .adversite-card {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
padding: 6px 4px 8px;
|
||||
border-radius: 5px;
|
||||
border: 1px solid rgba(100, 80, 40, 0.4);
|
||||
border-top: 3px solid rgba(100, 80, 40, 0.6);
|
||||
background: rgba(8, 4, 0, 0.55);
|
||||
transition: box-shadow 0.2s;
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards .adversite-card:hover {
|
||||
box-shadow: 0 0 10px rgba(200, 160, 60, 0.2);
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards .adversite-card.adversite-bleue {
|
||||
border-top-color: #2255bb;
|
||||
background: rgba(4, 8, 30, 0.65);
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards .adversite-card.adversite-bleue .adversite-card-title {
|
||||
color: #88aaff;
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards .adversite-card.adversite-rouge {
|
||||
border-top-color: #aa1818;
|
||||
background: rgba(30, 4, 4, 0.65);
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards .adversite-card.adversite-rouge .adversite-card-title {
|
||||
color: #ff8888;
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards .adversite-card.adversite-noire {
|
||||
border-top-color: #555555;
|
||||
background: rgba(12, 12, 12, 0.75);
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards .adversite-card.adversite-noire .adversite-card-title {
|
||||
color: #aaaaaa;
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards .adversite-card .adversite-card-title {
|
||||
font-size: 0.62rem;
|
||||
font-weight: 800;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1px;
|
||||
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.9);
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards .adversite-card .adversite-gem {
|
||||
width: 52px;
|
||||
height: 52px;
|
||||
object-fit: contain;
|
||||
filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.7));
|
||||
transition: transform 0.15s, filter 0.15s;
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards .adversite-card .adversite-gem:hover {
|
||||
transform: scale(1.06);
|
||||
filter: drop-shadow(0 3px 10px rgba(180, 140, 60, 0.5));
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards .adversite-card .adversite-value {
|
||||
font-family: "Signika", "Arial Narrow", sans-serif;
|
||||
font-variant-numeric: lining-nums tabular-nums;
|
||||
font-size: 1.6rem;
|
||||
font-weight: 900;
|
||||
color: #f5e0c0;
|
||||
text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.9);
|
||||
line-height: 1;
|
||||
min-height: 1.8rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards .adversite-card .adversite-controls {
|
||||
display: flex;
|
||||
gap: 6px;
|
||||
align-items: center;
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards .adversite-card .adversite-controls .adv-btn {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 1rem;
|
||||
font-weight: 900;
|
||||
border-radius: 4px;
|
||||
border: 1px solid rgba(160, 120, 40, 0.6);
|
||||
background: linear-gradient(to bottom, rgba(60, 35, 8, 0.9), rgba(30, 15, 3, 0.9));
|
||||
color: #d4aa60;
|
||||
cursor: pointer;
|
||||
transition: all 0.12s;
|
||||
text-decoration: none;
|
||||
line-height: 1;
|
||||
user-select: none;
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards .adversite-card .adversite-controls .adv-btn:hover {
|
||||
background: linear-gradient(to bottom, rgba(120, 60, 10, 0.95), rgba(80, 35, 5, 0.95));
|
||||
border-color: rgba(220, 170, 50, 0.8);
|
||||
color: #ffe090;
|
||||
transform: scale(1.1);
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards .adversite-card .adversite-controls .adv-btn:active {
|
||||
transform: scale(0.92);
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards .adversite-card .adversite-controls .adv-btn.adv-minus {
|
||||
color: #ff9999;
|
||||
border-color: rgba(180, 40, 40, 0.5);
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-cards .adversite-card .adversite-controls .adv-btn.adv-plus {
|
||||
color: #99ffaa;
|
||||
border-color: rgba(40, 160, 60, 0.5);
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-modifiers {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 8px;
|
||||
margin-top: 8px;
|
||||
padding-top: 6px;
|
||||
border-top: 1px solid rgba(120, 80, 20, 0.3);
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-modifiers .adversite-modifier-row {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 2px;
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-modifiers .adversite-modifier-row label {
|
||||
font-size: 0.58rem;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
color: #9a7a50;
|
||||
white-space: nowrap;
|
||||
cursor: default;
|
||||
}
|
||||
.fvtt-mournblade-cyd-2-0.actor .adversite-section .adversite-modifiers .adversite-modifier-row input {
|
||||
width: 40px;
|
||||
height: 20px;
|
||||
text-align: center;
|
||||
font-size: 0.8rem;
|
||||
font-weight: 600;
|
||||
padding: 0 2px;
|
||||
background: rgba(30, 15, 3, 0.85);
|
||||
border: 1px solid rgba(120, 75, 20, 0.5);
|
||||
border-radius: 2px;
|
||||
color: #f0dfc0;
|
||||
}
|
||||
/* ==================== Creature Sheet Specific Styles ==================== */
|
||||
.fvtt-mournblade-cyd-2-0.actor.creature-sheet .background-sheet-header-creature {
|
||||
background: linear-gradient(135deg, rgba(0, 60, 0, 0.15) 0%, rgba(20, 80, 20, 0.1) 100%);
|
||||
|
||||
@@ -156,34 +156,35 @@
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<div class="sheet-box color-bg-archetype adversite-section">
|
||||
|
||||
<h4 class="item-name-label competence-name">Adversités</h4>
|
||||
<ul class="item-list alternate-list">
|
||||
<h4 class="adversite-section-title">Adversités</h4>
|
||||
<div class="adversite-cards">
|
||||
{{#each system.adversite as |adv key|}}
|
||||
<li class="item flexrow" data-adversite="{{key}}">
|
||||
<a data-action="modifyAdversite" class="plus-minus-button" data-adversite-value="-1">-</a>
|
||||
<div class="icon-adversite-container">
|
||||
<img class="icon-adversite" src="systems/fvtt-mournblade-cyd-2-0/assets/icons/gemme_{{key}}.webp">
|
||||
<div class="adversite-text">{{adv}}</div>
|
||||
<div class="adversite-card adversite-{{key}}" data-adversite="{{key}}">
|
||||
<div class="adversite-card-title">{{upperFirst key}}</div>
|
||||
<img class="adversite-gem" src="systems/fvtt-mournblade-cyd-2-0/assets/icons/gemme_{{key}}.webp">
|
||||
<div class="adversite-value">{{adv}}</div>
|
||||
<div class="adversite-controls">
|
||||
<a data-action="modifyAdversite" class="adv-btn adv-minus" data-adversite-value="-1">−</a>
|
||||
<a data-action="modifyAdversite" class="adv-btn adv-plus" data-adversite-value="1">+</a>
|
||||
</div>
|
||||
<a data-action="modifyAdversite" class="plus-minus-button" data-adversite-value="1">+</a>
|
||||
<div class=""> </div>
|
||||
<div class=""> </div>
|
||||
<div class=""> </div>
|
||||
</li>
|
||||
</div>
|
||||
{{/each}}
|
||||
</ul>
|
||||
{{#if isGM}}
|
||||
<div class="flexrow">
|
||||
<span class="item-name-label competence-name item-field-label-long" data-tooltip="Modificateur de Vigueur">Mod. de Vigueur</span>
|
||||
<input type="text" class="item-field-label-short" name="system.sante.vigueurmodifier"
|
||||
value="{{system.sante.vigueurmodifier}}" data-dtype="Number" />
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
<span class="item-name-label competence-name item-field-label-long" data-tooltip="Modificateur de Seuil de Pouvoir">Mod. de Seuil de Pouvoir</span>
|
||||
<input type="text" class="item-field-label-short" name="system.ame.seuilpouvoirmodifier"
|
||||
value="{{system.ame.seuilpouvoirmodifier}}" data-dtype="Number" />
|
||||
|
||||
{{#if isGM}}
|
||||
<div class="adversite-modifiers">
|
||||
<div class="adversite-modifier-row">
|
||||
<label data-tooltip="Modificateur de Vigueur">Mod. Vigueur</label>
|
||||
<input type="text" name="system.sante.vigueurmodifier"
|
||||
value="{{system.sante.vigueurmodifier}}" data-dtype="Number" />
|
||||
</div>
|
||||
<div class="adversite-modifier-row">
|
||||
<label data-tooltip="Modificateur de Seuil de Pouvoir">Mod. Seuil Pouvoir</label>
|
||||
<input type="text" name="system.ame.seuilpouvoirmodifier"
|
||||
value="{{system.ame.seuilpouvoirmodifier}}" data-dtype="Number" />
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user