Various fixes and changes based on tester feedback

This commit is contained in:
2026-03-17 13:50:32 +01:00
parent 92ba9c3501
commit 000bf348a6
29 changed files with 1450 additions and 192 deletions

View File

@@ -76,7 +76,7 @@
border: 1px solid @color-olive;
border-radius: 3px;
background: rgba(0,0,0,0.15);
font-size: @font-size-sm;
font-size: @font-size-xs;
min-width: 6rem;
min-height: 1.6rem;
@@ -97,13 +97,13 @@
.identity-name {
flex: 1;
font-family: @font-secondary;
font-size: @font-size-sm;
font-size: @font-size-xs;
}
.slot-icon { font-size: @font-size-sm; opacity: 0.6; }
.slot-placeholder { font-size: @font-size-sm; }
.slot-icon { font-size: @font-size-xs; opacity: 0.8; }
.slot-placeholder { font-size: @font-size-xs; }
a { font-size: @font-size-sm; opacity: 0.7; &:hover { opacity: 1; } }
a { font-size: @font-size-xs; opacity: 0.85; &:hover { opacity: 1; } }
}
.identity-xp {
@@ -111,21 +111,22 @@
align-items: center;
gap: 3px;
margin-left: auto;
font-size: @font-size-sm;
font-size: @font-size-xs;
.xp-label {
font-family: @font-secondary;
font-size: @font-size-sm;
color: @color-olive;
font-size: @font-size-xs;
font-weight: bold;
color: @color-dark;
margin-left: 4px;
}
.xp-sep { opacity: 0.6; }
.xp-sep { opacity: 0.8; }
input {
width: 3rem;
text-align: center;
font-size: @font-size-sm;
font-size: @font-size-xs;
padding: 1px 2px;
}
}
@@ -161,17 +162,18 @@
input {
width: 2.4rem;
text-align: center;
font-size: @font-size-sm;
font-size: @font-size-xs;
padding: 1px 2px;
}
.res-sep { opacity: 0.5; font-size: @font-size-xs; }
.res-sep { opacity: 0.7; font-size: @font-size-xs; }
}
.resource-label {
min-width: 3.8rem;
min-width: 4.2rem;
font-family: @font-secondary;
font-size: @font-size-xs;
font-size: @font-size-base;
font-weight: bold;
color: @color-dark;
}
}
@@ -204,7 +206,8 @@
label {
font-family: @font-secondary;
font-size: @font-size-sm;
font-size: @font-size-xs;
font-weight: bold;
color: @color-dark;
text-align: center;
}
@@ -311,7 +314,7 @@
width: 2.8rem;
text-align: center;
}
span { opacity: 0.6; }
span { opacity: 0.8; }
}
// Defense display

View File

@@ -39,7 +39,7 @@
.oathhammer .npc-content {
font-family: @font-body; // Calibri — standard text per design_rules.md
font-size: @font-size-base;
color: var(--color-dark-1);
color: @color-dark;
.sheet-background();
overflow: auto;
padding: 10px 20px; // Inner margin so content clears the parchment border
@@ -53,7 +53,7 @@
select:disabled {
background-color: @color-disabled-bg;
border-color: transparent;
color: var(--color-dark-3);
color: @color-dark;
}
input,
@@ -208,7 +208,8 @@
margin-bottom: 2px;
label.skill-name-col {
font-size: @font-size-sm;
font-size: @font-size-xs;
font-weight: bold;
}
.skill-rank-col select,

View File

@@ -56,7 +56,7 @@
.item-detail {
font-size: @font-size-xs;
color: @color-olive;
color: @color-dark;
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
@@ -65,7 +65,7 @@
.item-group {
font-size: @font-size-xs;
color: @color-olive;
color: @color-dark;
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
@@ -117,13 +117,13 @@
.item-list--weapon {
.item-list-header, .item-entry {
grid-template-columns: @item-img-size 1fr 4.5rem 3.5rem 2rem 1.5rem 1.8rem 5.5rem;
grid-template-columns: @item-img-size 1fr 4.5rem 3.5rem 2rem 1.5rem 1.8rem 9rem;
}
}
.item-list--armor {
.item-list-header, .item-entry {
grid-template-columns: @item-img-size 1fr 3.5rem 2.5rem 3.5rem 1.5rem 1.8rem 3.5rem;
grid-template-columns: @item-img-size 1fr 3.5rem 2.5rem 3.5rem 1.5rem 1.8rem 5.5rem;
}
}
@@ -145,6 +145,11 @@
}
}
.miracles-blocked {
opacity: 0.45;
pointer-events: none;
}
.item-list--equipment {
.item-list-header, .item-entry {
grid-template-columns: @item-img-size 1fr 5rem 3rem 3.5rem;
@@ -177,7 +182,7 @@
.item-usage {
font-size: @font-size-xs;
color: @color-olive;
color: @color-dark;
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
@@ -197,7 +202,7 @@
}
.no-items {
color: var(--color-dark-5);
color: @color-olive;
font-style: italic;
font-size: @font-size-xs;
padding: 4px;
@@ -209,3 +214,62 @@
.transition-opacity();
}
}
// Miracle blocked banner on the Magic tab
.miracle-blocked-banner {
display: flex;
align-items: center;
gap: 6px;
background: fade(#c0392b, 10%);
border: 1px solid fade(#c0392b, 45%);
border-radius: 4px;
padding: 4px 10px;
margin-bottom: 4px;
color: #c0392b;
font-size: @font-size-xs;
font-weight: bold;
span { flex: 1; }
a {
color: @color-dark;
font-weight: normal;
font-size: @font-size-sm;
.transition-opacity();
white-space: nowrap;
i { color: @color-gold; }
}
}
// Slots counter on the Combat tab
.slots-counter {
display: flex;
gap: 6px;
padding: 2px 6px 4px;
.slots-label {
font-size: @font-size-xs;
font-weight: bold;
color: @color-dark;
text-transform: uppercase;
letter-spacing: 0.03em;
}
.slots-value {
font-size: @font-size-xs;
font-weight: bold;
color: @color-dark;
background: fade(@color-gold, 15%);
border: 1px solid fade(@color-gold, 40%);
border-radius: 4px;
padding: 1px 8px;
min-width: 3.5rem;
text-align: center;
&.slots-over {
color: #c0392b;
background: fade(#c0392b, 10%);
border-color: fade(#c0392b, 40%);
}
}
}

View File

@@ -133,55 +133,72 @@
}
}
// ——— Options block ———
// ——— Option rows — applies to all fieldsets in any roll dialog ———
.roll-option-row {
display: flex;
flex-wrap: nowrap;
align-items: center;
gap: 4px 8px;
padding: 5px 0;
&:not(:last-child) {
border-bottom: 1px solid fade(@color-olive, 10%);
}
label {
flex: 0 0 140px;
font-size: @font-size-xs;
color: @color-dark;
white-space: nowrap;
font-family: @font-body;
}
select, input[type="text"], input[type="number"] {
flex: 0 0 110px;
padding: 3px 6px;
border: 1px solid darken(@color-olive-faint, 10%);
border-radius: 3px;
background: rgba(255, 255, 255, 0.85);
color: @color-dark;
font-family: @font-body;
font-size: @font-size-xs;
}
.roll-option-hint {
flex: 1 1 auto;
font-size: calc(@font-size-xs * 0.85);
color: @color-olive;
font-style: italic;
padding-left: 6px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
.roll-option-luck {
label { color: @color-gold; font-weight: bold; }
select { border-color: @color-gold; }
.luck-icon { color: @color-gold; font-size: 0.8em; }
}
.roll-option-check {
input[type="checkbox"] {
flex: 0 0 auto;
width: 16px;
height: 16px;
accent-color: @color-blue;
cursor: pointer;
}
label {
cursor: pointer;
flex: 1 1 auto;
}
}
// ——— Options block (legacy scope kept for skill roll dialog) ———
.roll-options-block {
.roll-option-row {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 4px 8px;
padding: 5px 0;
&:not(:last-child) {
border-bottom: 1px solid fade(@color-olive, 10%);
}
label {
flex: 1 1 120px;
font-size: @font-size-xs;
color: @color-dark;
white-space: nowrap;
font-family: @font-body;
}
select {
flex: 0 0 90px;
padding: 3px 6px;
border: 1px solid darken(@color-olive-faint, 10%);
border-radius: 3px;
background: rgba(255, 255, 255, 0.85);
color: @color-dark;
font-family: @font-body;
font-size: @font-size-xs;
}
.roll-option-hint {
flex: 1 1 100%;
font-size: calc(@font-size-xs * 0.85);
color: @color-olive;
font-style: italic;
padding-left: 4px;
white-space: normal;
overflow: hidden;
text-overflow: ellipsis;
}
}
.roll-option-luck {
label { color: @color-gold; font-weight: bold; }
select { border-color: @color-gold; }
.luck-icon { color: @color-gold; font-size: 0.8em; }
}
// inherits .roll-option-row styles from parent scope
}
// ——— Visibility block ———
@@ -390,19 +407,24 @@
}
// Attack/damage buttons in weapon list
.item-list--weapon .item-actions {
gap: 8px;
.item-list--weapon .item-entry .item-actions {
gap: 14px;
a[data-action="attackWeapon"] {
color: @color-blue;
font-size: 1.1em;
.transition-opacity();
}
a[data-action="defendWeapon"] {
color: @color-olive;
font-size: 1.1em;
.transition-opacity();
}
a[data-action="damageWeapon"] {
color: #8b0000;
font-size: 1.1em;
.transition-opacity();
}
a[data-action="edit"] { margin-left: 6px; }
a[data-action="edit"] { margin-left: 4px; }
}
// ============================================================
@@ -550,3 +572,83 @@
a[data-action="castMiracle"] .miracle-cast-icon { color: #5a3000; font-size: 1.05em; }
a[data-action="edit"] { margin-left: 6px; }
}
// ============================================================
// DEFENSE / ARMOR DIALOG STYLES
// ============================================================
.oh-defense-dialog,
.oh-armor-dialog {
.oh-trait-info {
display: flex;
align-items: center;
gap: 6px;
padding: 5px 10px;
margin: 4px 0;
background: fade(@color-blue, 8%);
border: 1px solid fade(@color-blue, 25%);
border-radius: 4px;
font-size: 0.84em;
color: darken(@color-blue, 10%);
i { flex-shrink: 0; }
}
}
// Defense card in chat
.oh-defense-card,
.oh-armor-card {
.oh-roll-header {
display: flex;
align-items: center;
gap: 8px;
}
.oh-defense-icon {
font-size: 1.1em;
color: @color-blue;
flex-shrink: 0;
}
.oh-card-weapon-img {
width: 28px;
height: 28px;
object-fit: contain;
border-radius: 3px;
border: 1px solid @color-olive-faint;
flex-shrink: 0;
}
}
// Defense roll button in combat tab
.defense-row {
align-items: flex-end;
.defense-roll-group {
flex: 0 0 auto;
}
}
.defense-roll-btn {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 4px 10px;
background: @color-blue;
color: #fff;
border-radius: 4px;
font-family: @font-secondary;
font-size: @font-size-sm;
cursor: pointer;
text-decoration: none;
.transition-opacity();
i { font-size: 0.9em; }
&:hover { opacity: 0.85; color: #fff; text-decoration: none; }
}
// Armor roll icon in armor list
.item-list--armor .item-actions {
gap: 8px;
a[data-action="rollArmorSave"] .armor-roll-icon {
color: @color-blue;
font-size: 1.05em;
}
a[data-action="edit"] { margin-left: 6px; }
}

View File

@@ -77,6 +77,11 @@
background: fade(#e74c3c, 15%);
color: #c0392b;
}
.roll-opposed {
background: fade(#3498db, 15%);
color: #1a6fa8;
}
}
// Rollable rarity button on item sheets

View File

@@ -47,7 +47,7 @@
}
.transition-opacity() {
opacity: 0.6;
opacity: 0.85;
transition: opacity 0.2s;
&:hover { opacity: 1; }
}