Files
fvtt-celestopol/styles/npc.less
LeRatierBretonnier 44cc07db73
Some checks failed
Release Creation / build (release) Failing after 1m24s
Portraits et corrections sur valeurs des PNJ
2026-04-12 11:52:17 +02:00

532 lines
13 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@import "mixins";
// ─── NPC sheet specifics ─────────────────────────────────────────────────────
.fvtt-celestopol.npc {
// ── Sélecteur type PNJ (en-tête) ────────────────────────────────────────
.npc-type-row {
margin: 3px 0;
.npc-type-select {
background: rgba(12,76,12,0.15);
border: 1px solid var(--cel-border);
color: var(--cel-orange);
border-radius: 3px;
padding: 2px 6px;
font-size: 0.85em;
}
.npc-type-badge {
font-family: var(--cel-font-title);
font-size: 0.8em;
letter-spacing: 0.05em;
text-transform: uppercase;
border-radius: 3px;
padding: 2px 8px;
&.antagoniste {
background: rgba(120, 30, 30, 0.25);
border: 1px solid rgba(200, 60, 60, 0.5);
color: #e06060;
}
}
}
// ── Grille 2×2 des domaines ──────────────────────────────────────────────
.npc-domains-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
padding: 8px 0;
.npc-domain-block {
border: 1px solid var(--cel-border);
border-radius: 4px;
overflow: hidden;
}
.npc-domain-header {
background: var(--cel-green);
background-image: url("../assets/ui/fond_cadrille.jpg");
background-blend-mode: soft-light;
color: var(--cel-orange);
display: flex;
justify-content: space-between;
align-items: center;
padding: 8px 12px;
min-height: 60px;
.npc-domain-labels {
display: flex;
flex-direction: column;
gap: 2px;
.domain-label-primary {
font-family: var(--cel-font-title);
font-weight: bold;
font-size: 1.1em;
text-transform: uppercase;
letter-spacing: 0.06em;
color: var(--cel-orange);
}
.domain-label-secondary {
font-size: 0.75em;
color: rgba(220,170,80,0.7);
font-style: italic;
text-transform: uppercase;
letter-spacing: 0.04em;
}
}
.npc-domain-value-wrap {
display: flex;
align-items: center;
// Mode édition : input nombre
input.domain-value-input {
width: 40px;
.cel-input-std();
font-size: 1.2em;
text-align: center;
font-family: var(--cel-font-title);
}
// Mode jeu : bouton rollable avec dé
.npc-domain-roll-btn {
display: flex;
align-items: center;
gap: 5px;
cursor: pointer;
padding: 4px 8px;
border-radius: 4px;
transition: background 0.15s, box-shadow 0.15s;
&:hover {
background: rgba(224,123,0,0.2);
box-shadow: 0 0 6px rgba(224,123,0,0.4);
.domain-die-icon { color: var(--cel-orange); }
}
.domain-die-icon {
font-size: 1.2em;
color: rgba(220,170,80,0.7);
}
.domain-value {
font-family: var(--cel-font-title);
font-size: 1.4em;
font-weight: bold;
color: var(--cel-orange);
min-width: 20px;
text-align: center;
}
.domain-value-base {
font-size: 0.75em;
color: rgba(220,170,80,0.6);
font-style: italic;
}
}
}
}
}
// ── Section Aspects ──────────────────────────────────────────────────────
.npc-aspects-section {
margin-top: 12px;
border: 1px solid var(--cel-border);
border-radius: 4px;
overflow: hidden;
.section-header {
background: var(--cel-green);
background-image: url("../assets/ui/fond_cadrille.jpg");
background-blend-mode: soft-light;
color: var(--cel-orange);
display: flex;
align-items: center;
gap: 8px;
padding: 5px 10px;
font-family: var(--cel-font-title);
font-weight: bold;
font-size: 0.9em;
text-transform: uppercase;
letter-spacing: 0.06em;
border-bottom: 1px solid rgba(196,154,26,0.4);
a { color: var(--cel-orange-light); margin-left: auto; }
}
.aspect-row {
display: flex;
align-items: center;
padding: 4px 10px;
border-bottom: 1px solid rgba(122,92,32,0.18);
background: var(--cel-cream);
font-size: 0.9em;
gap: 8px;
&:nth-child(even) { background: var(--cel-cream-dark); }
.item-name { flex: 1; }
.aspect-value {
font-family: var(--cel-font-title);
font-weight: bold;
min-width: 28px;
text-align: center;
&.positive { color: #2a8a2a; }
&.negative { color: #c03030; }
}
}
}
// ── Onglet Biographie ────────────────────────────────────────────────────
.bio-section {
margin-bottom: 12px;
.section-header {
display: flex;
align-items: center;
gap: 8px;
padding: 5px 10px;
background: var(--cel-green);
background-image: url("../assets/ui/fond_cadrille.jpg");
background-blend-mode: soft-light;
color: var(--cel-orange);
font-family: var(--cel-font-title);
font-weight: bold;
font-size: 0.9em;
text-transform: uppercase;
letter-spacing: 0.06em;
border-radius: 4px 4px 0 0;
border: 1px solid var(--cel-border);
border-bottom: none;
}
.enriched-html {
font-size: 0.9em;
line-height: 1.6;
}
}
.faction-section {
.faction-display {
padding: 8px 12px;
background: var(--cel-cream);
border: 1px solid var(--cel-border);
border-top: none;
border-radius: 0 0 4px 4px;
.faction-name {
font-family: var(--cel-font-title);
color: var(--cel-orange);
font-size: 0.95em;
}
.faction-none {
font-style: italic;
color: rgba(122,92,32,0.5);
font-size: 0.85em;
}
}
.faction-select-row {
display: flex;
align-items: center;
gap: 10px;
padding: 6px 10px;
background: var(--cel-cream);
border: 1px solid var(--cel-border);
border-top: none;
border-radius: 0 0 4px 4px;
label { font-size: 0.85em; color: var(--cel-brown); }
select { flex: 1; .cel-input-std(); }
}
}
// ── Pistes (Blessures) ───────────────────────────────────────────────────
.track-section {
border: 1px solid var(--cel-border);
border-radius: 4px;
margin-bottom: 12px;
overflow: hidden;
.track-header {
background: var(--cel-green);
background-image: url("../assets/ui/fond_cadrille.jpg");
background-blend-mode: soft-light;
color: var(--cel-orange);
display: flex;
justify-content: space-between;
align-items: center;
padding: 5px 8px;
border-bottom: 1px solid rgba(196,154,26,0.4);
.track-title {
font-family: var(--cel-font-title);
font-weight: bold;
text-transform: uppercase;
font-size: 1.1em;
letter-spacing: 0.04em;
display: flex;
align-items: center;
gap: 5px;
}
.track-help {
display: inline-flex;
align-items: center;
justify-content: center;
width: 14px;
height: 14px;
border-radius: 50%;
border: 1px solid currentColor;
font-size: 0.65em;
font-family: var(--cel-font-body);
font-weight: bold;
text-transform: none;
letter-spacing: 0;
cursor: help;
opacity: 0.7;
transition: opacity 0.15s;
flex-shrink: 0;
&:hover { opacity: 1; }
}
}
.track-boxes {
display: flex;
padding: 8px;
gap: 8px;
flex-wrap: wrap;
background: var(--cel-cream);
.track-box {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 2px;
width: 22px;
min-height: 22px;
border: 2px solid var(--cel-border);
border-radius: 2px;
background: rgba(255,255,255,0.45);
transition: background 0.1s, border-color 0.1s;
&.filled {
background: var(--cel-orange);
border-color: var(--cel-orange);
}
&[data-action] { cursor: pointer; }
.box-label {
font-size: 0.6em;
color: var(--cel-border);
line-height: 1;
}
&.filled .box-label { color: rgba(30,10,0,0.65); }
}
}
.track-level {
display: flex;
align-items: center;
gap: 6px;
padding: 4px 8px;
background: rgba(139,115,85,0.1);
font-size: 0.85em;
label { color: var(--cel-border); }
input[type="number"] { width: 40px; .cel-input-std(); }
}
}
.tab.equipement {
.equip-section {
margin-bottom: 14px;
.section-header {
.cel-section-header();
display: flex;
align-items: center;
gap: 8px;
i { opacity: 0.75; }
span { flex: 1; }
a { color: var(--cel-orange); cursor: pointer; }
}
.item-row {
.cel-item-row();
gap: 10px;
&.is-equipped {
background: rgba(12, 76, 12, 0.12);
border-left: 3px solid var(--cel-green);
padding-left: 5px;
}
.item-tag {
font-size: 0.75em;
padding: 1px 7px;
border-radius: 10px;
background: rgba(12,76,12,0.15);
border: 1px solid rgba(12,76,12,0.3);
color: #3a5a1e;
white-space: nowrap;
&.malus { background: rgba(192,68,68,0.1); border-color: rgba(192,68,68,0.35); color: #922; }
}
.equip-toggle {
color: var(--cel-border);
&.equipped { color: var(--cel-green); }
&:hover { color: var(--cel-orange); }
}
.item-controls {
opacity: 1;
gap: 10px;
flex-shrink: 0;
a {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 20px;
min-height: 20px;
font-size: 1.08rem;
line-height: 1;
}
}
}
.equip-empty {
font-size: 0.85em;
font-style: italic;
color: var(--cel-border);
padding: 4px 8px;
}
}
}
.notes-section {
margin-bottom: 12px;
.section-header { .cel-section-header(); }
}
.tab.biographie {
.biography-layout {
display: grid;
grid-template-columns: minmax(0, 1fr) 220px;
gap: 16px;
align-items: start;
}
.biography-main {
min-width: 0;
}
.biography-portrait-panel {
display: flex;
flex-direction: column;
gap: 8px;
.section-header {
.cel-section-header();
}
}
.biography-portrait-preview {
display: flex;
align-items: center;
justify-content: center;
padding: 8px;
min-height: 340px;
background: rgba(12,76,12,0.08);
border: 1px solid rgba(122,92,32,0.25);
border-radius: 6px;
box-shadow: inset 0 0 0 1px rgba(255,255,255,0.18);
}
.biography-portrait-image {
display: block;
width: 100%;
max-height: 500px;
aspect-ratio: 2 / 3;
object-fit: contain;
object-position: top center;
}
.biography-portrait-empty {
padding: 14px;
color: var(--cel-border);
font-size: 0.82em;
font-style: italic;
text-align: center;
line-height: 1.5;
}
.biography-portrait-field {
display: flex;
file-picker {
flex: 1;
}
file-picker input[type="text"] {
.cel-input-std();
}
}
.biography-portrait-actions {
display: flex;
}
.biography-portrait-send {
display: inline-flex;
align-items: center;
width: 100%;
justify-content: center;
gap: 6px;
padding: 6px 10px;
border: 1px solid rgba(122,92,32,0.35);
border-radius: 4px;
background: linear-gradient(180deg, rgba(255,255,255,0.82), rgba(233,223,201,0.95));
color: var(--cel-green);
font-size: 0.82em;
font-weight: bold;
cursor: pointer;
&:hover {
border-color: var(--cel-orange);
color: var(--cel-orange);
background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(240,229,209,1));
}
&:disabled {
opacity: 0.5;
cursor: default;
color: var(--cel-border);
border-color: rgba(122,92,32,0.2);
background: rgba(220,210,188,0.45);
}
}
.biography-portrait-hint {
margin: 0;
font-size: 0.78em;
font-style: italic;
color: var(--cel-border);
}
}
.description-section, .notes-section {
margin-top: 8px;
.enriched-html { font-size: 0.9em; line-height: 1.6; }
}
}