Items : layout exactement identique à la fiche Anomalie

- Classes .anomaly-body/.anomaly-section/.anomaly-section-title/.anomaly-editor-wrap
  promues au niveau partagé (.fvtt-celestopol.item)
- Templates equipment/weapon/armure/aspect utilisent ces classes exactes
- Suppression des anciens mixins item-body-mixin etc.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-03-29 17:25:40 +02:00
parent 1f7ce03498
commit 7b2662bdd5
5 changed files with 79 additions and 84 deletions

View File

@@ -2,8 +2,10 @@
// ─── Item sheets shared ───────────────────────────────────────────────────────
// ── Mixins : corps de fiche homogène ──────────────────────────────────────────
.item-body-mixin() {
.fvtt-celestopol.item {
// ── Corps de fiche homogène (partagé par tous les types d'items) ───────────
.anomaly-body {
background: var(--cel-cream, #f0e8d4);
padding: 10px 12px;
display: flex;
@@ -11,13 +13,14 @@
gap: 10px;
overflow-y: auto;
max-height: 370px;
}
.item-section-mixin() {
}
.anomaly-section {
display: flex;
flex-direction: column;
gap: 4px;
}
.item-section-title-mixin() {
.anomaly-section-title {
font-family: var(--cel-font-title);
font-size: 0.78em;
text-transform: uppercase;
@@ -27,8 +30,9 @@
border-left: 3px solid var(--cel-orange, #e07b00);
padding: 2px 6px;
margin-bottom: 2px;
}
.item-editor-wrap-mixin() {
}
.anomaly-editor-wrap {
background: white;
border: 1px solid rgba(122,92,32,0.3);
border-radius: 3px;
@@ -39,15 +43,8 @@
line-height: 1.5;
.editor-content, .prosemirror { color: #1a1209; background: transparent; }
p { margin: 0 0 4px 0; color: #1a1209; }
}
.fvtt-celestopol.item {
// Classes partagées entre tous les types d'items
.item-body { .item-body-mixin(); }
.item-section { .item-section-mixin(); }
.item-section-title { .item-section-title-mixin(); }
.item-editor-wrap { .item-editor-wrap-mixin(); }
}
}
.item-header {
display: flex;
@@ -324,13 +321,8 @@
}
}
// Corps principal sans onglets
.anomaly-body { .item-body-mixin(); }
.anomaly-section { .item-section-mixin(); }
.anomaly-section {
.anomaly-section-title { .item-section-title-mixin(); }
.anomaly-editor-wrap { .item-editor-wrap-mixin(); }
// Corps principal sans onglets : les classes .anomaly-body/.anomaly-section
// sont désormais définies au niveau partagé (voir début du fichier)
}
// Equipment-specific

View File

@@ -8,7 +8,7 @@
</div>
</header>
<div class="item-body">
<div class="anomaly-body">
<div class="armure-stats">
<div class="armure-stat-box">
<label>{{localize "CELESTOPOL.Armure.protection"}}</label>
@@ -33,10 +33,9 @@
<div class="armure-stat-hint">{{localize "CELESTOPOL.Armure.malusHint"}}</div>
</div>
</div>
<div class="item-section">
<div class="item-section-title">{{localize "CELESTOPOL.Actor.description"}}</div>
<div class="item-editor-wrap">
<div class="anomaly-section">
<div class="anomaly-section-title">{{localize "CELESTOPOL.Actor.description"}}</div>
<div class="anomaly-editor-wrap">
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
</div>
</div>

View File

@@ -25,20 +25,31 @@
</nav>
<section class="tab active" data-group="item-tabs" data-tab="description">
<div class="form-group">
<div class="anomaly-body">
<div class="anomaly-section">
<div class="anomaly-section-title">{{localize "CELESTOPOL.Tab.description"}}</div>
<div class="anomaly-editor-wrap">
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
</div>
</div>
</div>
</section>
<section class="tab" data-group="item-tabs" data-tab="technique">
<div class="form-group">
<label>{{localize "CELESTOPOL.Item.technique"}}</label>
<div class="anomaly-body">
<div class="anomaly-section">
<div class="anomaly-section-title">{{localize "CELESTOPOL.Item.technique"}}</div>
<div class="anomaly-editor-wrap">
{{formInput systemFields.technique enriched=enrichedTechnique value=system.technique name="system.technique" toggled=true}}
</div>
<div class="form-group">
<label>{{localize "CELESTOPOL.Item.narratif"}}</label>
</div>
<div class="anomaly-section">
<div class="anomaly-section-title">{{localize "CELESTOPOL.Item.narratif"}}</div>
<div class="anomaly-editor-wrap">
{{formInput systemFields.narratif enriched=enrichedNarratif value=system.narratif name="system.narratif" toggled=true}}
</div>
</div>
</div>
</section>
<section class="tab" data-group="item-tabs" data-tab="scores">

View File

@@ -8,10 +8,10 @@
</div>
</header>
<div class="item-body">
<div class="item-section">
<div class="item-section-title">{{localize "CELESTOPOL.Actor.description"}}</div>
<div class="item-editor-wrap">
<div class="anomaly-body">
<div class="anomaly-section">
<div class="anomaly-section-title">{{localize "CELESTOPOL.Actor.description"}}</div>
<div class="anomaly-editor-wrap">
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
</div>
</div>

View File

@@ -10,9 +10,7 @@
<label>{{localize "CELESTOPOL.Weapon.type"}}</label>
<select name="system.type" {{#unless isEditable}}disabled{{/unless}}>
{{#each combatTypes as |ctype key|}}
<option value="{{key}}" {{#if (eq key ../system.type)}}selected{{/if}}>
{{localize ctype.label}}
</option>
<option value="{{key}}" {{#if (eq key ../system.type)}}selected{{/if}}>{{localize ctype.label}}</option>
{{/each}}
</select>
</div>
@@ -20,9 +18,7 @@
<label>{{localize "CELESTOPOL.Weapon.degats"}}</label>
<select name="system.degats" {{#unless isEditable}}disabled{{/unless}}>
{{#each damageTypes as |dtype key|}}
<option value="{{key}}" {{#if (eq key ../system.degats)}}selected{{/if}}>
{{localize dtype.label}}
</option>
<option value="{{key}}" {{#if (eq key ../system.degats)}}selected{{/if}}>{{localize dtype.label}}</option>
{{/each}}
</select>
</div>
@@ -30,9 +26,7 @@
<label>{{localize "CELESTOPOL.Weapon.portee"}}</label>
<select name="system.portee" {{#unless isEditable}}disabled{{/unless}}>
{{#each rangeTypes as |rtype key|}}
<option value="{{key}}" {{#if (eq key ../system.portee)}}selected{{/if}}>
{{localize rtype.label}}
</option>
<option value="{{key}}" {{#if (eq key ../system.portee)}}selected{{/if}}>{{localize rtype.label}}</option>
{{/each}}
</select>
</div>
@@ -40,16 +34,15 @@
</div>
</header>
<div class="item-body">
<div class="anomaly-body">
<div class="weapon-damage-badge">
<span class="damage-label">{{localize "CELESTOPOL.Weapon.degats"}}</span>
<span class="damage-value">{{system.degats}}</span>
<span class="damage-hint">{{localize (lookup (lookup damageTypes system.degats) "hint")}}</span>
</div>
<div class="item-section">
<div class="item-section-title">{{localize "CELESTOPOL.Actor.description"}}</div>
<div class="item-editor-wrap">
<div class="anomaly-section">
<div class="anomaly-section-title">{{localize "CELESTOPOL.Actor.description"}}</div>
<div class="anomaly-editor-wrap">
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
</div>
</div>