328 lines
6.7 KiB
Plaintext
328 lines
6.7 KiB
Plaintext
// ============================================================
|
|
// ACTOR SHEET — Character layout, attributes, resources, etc.
|
|
// ============================================================
|
|
|
|
.oathhammer {
|
|
|
|
.actor-img {
|
|
border: 2px solid @color-blue;
|
|
border-radius: 4px;
|
|
cursor: pointer;
|
|
object-fit: cover;
|
|
}
|
|
|
|
.character-main {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
|
|
// Portrait + right column layout
|
|
.character-pc {
|
|
display: flex;
|
|
gap: 10px;
|
|
align-items: flex-start;
|
|
flex: 1;
|
|
}
|
|
|
|
// Portrait alone on the left, fixed square
|
|
.character-portrait {
|
|
flex-shrink: 0;
|
|
width: @portrait-height;
|
|
|
|
.actor-img {
|
|
width: @portrait-height;
|
|
height: @portrait-height;
|
|
object-fit: cover;
|
|
}
|
|
}
|
|
|
|
// Right column: stacks name, identity bar, stats band
|
|
.character-right {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 5px;
|
|
min-width: 0;
|
|
}
|
|
|
|
// Row 1: character name
|
|
.character-name {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
border-bottom: 1px solid @color-olive;
|
|
padding-bottom: 4px;
|
|
|
|
input {
|
|
flex: 1;
|
|
font-family: @font-primary;
|
|
font-size: @font-size-lg;
|
|
}
|
|
}
|
|
|
|
// Row 2: identity bar (lineage + class + level/xp)
|
|
.character-identity-bar {
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
gap: 6px;
|
|
flex-wrap: wrap;
|
|
|
|
.identity-slot {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
padding: 2px 6px;
|
|
border: 1px solid @color-olive;
|
|
border-radius: 3px;
|
|
background: rgba(0,0,0,0.15);
|
|
font-size: @font-size-xs;
|
|
min-width: 6rem;
|
|
min-height: 1.6rem;
|
|
|
|
&.empty {
|
|
opacity: 0.6;
|
|
font-style: italic;
|
|
border-style: dashed;
|
|
}
|
|
|
|
.identity-img {
|
|
width: 18px;
|
|
height: 18px;
|
|
object-fit: cover;
|
|
border-radius: 2px;
|
|
border: none;
|
|
}
|
|
|
|
.identity-name {
|
|
flex: 1;
|
|
font-family: @font-secondary;
|
|
font-size: @font-size-xs;
|
|
}
|
|
|
|
.slot-icon { font-size: @font-size-xs; opacity: 0.8; }
|
|
.slot-placeholder { font-size: @font-size-xs; }
|
|
|
|
a { font-size: @font-size-xs; opacity: 0.85; &:hover { opacity: 1; } }
|
|
}
|
|
|
|
.identity-xp {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 3px;
|
|
margin-left: auto;
|
|
font-size: @font-size-xs;
|
|
|
|
.xp-label {
|
|
font-family: @font-secondary;
|
|
font-size: @font-size-xs;
|
|
font-weight: bold;
|
|
color: @color-dark;
|
|
margin-left: 4px;
|
|
}
|
|
|
|
.xp-sep { opacity: 0.8; }
|
|
|
|
input {
|
|
width: 3rem;
|
|
text-align: center;
|
|
font-size: @font-size-xs;
|
|
padding: 1px 2px;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Row 3: unified stats band — resources | attributes | arcane stress
|
|
.character-stats-band {
|
|
display: flex;
|
|
align-items: stretch;
|
|
gap: 6px;
|
|
flex: 1;
|
|
|
|
// Vital resources: Grit / Luck / Defense / Movement
|
|
.character-resources {
|
|
flex-shrink: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-evenly;
|
|
gap: 2px;
|
|
padding: 3px 6px;
|
|
border: 1px solid @color-olive;
|
|
border-radius: 3px;
|
|
background: rgba(0,0,0,0.08);
|
|
|
|
.character-resource {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 3px;
|
|
white-space: nowrap;
|
|
|
|
div.form-group { display: contents; }
|
|
|
|
input {
|
|
width: 2.4rem;
|
|
text-align: center;
|
|
font-size: @font-size-xs;
|
|
padding: 1px 2px;
|
|
}
|
|
|
|
.res-sep { opacity: 0.7; font-size: @font-size-xs; }
|
|
}
|
|
|
|
.resource-label {
|
|
min-width: 4.2rem;
|
|
font-family: @font-secondary;
|
|
font-size: @font-size-base;
|
|
font-weight: bold;
|
|
color: @color-dark;
|
|
}
|
|
}
|
|
|
|
// Attributes fieldset
|
|
.character-attributes {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
// Arcane stress compact
|
|
.character-arcane-stress {
|
|
flex-shrink: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Attributes grid (6 columns)
|
|
.attributes-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(6, 1fr);
|
|
gap: 4px;
|
|
}
|
|
|
|
.attribute-box {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 2px;
|
|
|
|
label {
|
|
font-family: @font-secondary;
|
|
font-size: @font-size-xs;
|
|
font-weight: bold;
|
|
color: @color-dark;
|
|
text-align: center;
|
|
}
|
|
|
|
input {
|
|
width: 2.5rem;
|
|
text-align: center;
|
|
font-size: @font-size-lg;
|
|
}
|
|
}
|
|
|
|
// Currency bar
|
|
.currency-bar {
|
|
margin-top: 4px;
|
|
|
|
.currency-item {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 2px;
|
|
flex: 1;
|
|
|
|
input {
|
|
width: 4rem;
|
|
text-align: center;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Lineage / Class item slots in Identity tab
|
|
.identity-lineage-class {
|
|
gap: 8px;
|
|
margin-bottom: 8px;
|
|
|
|
.item-slot {
|
|
flex: 1;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
padding: 6px 8px;
|
|
border: 2px solid @color-gold;
|
|
border-radius: 4px;
|
|
background: rgba(212, 160, 23, 0.08);
|
|
min-height: 40px;
|
|
|
|
&.empty {
|
|
border-style: dashed;
|
|
opacity: 0.7;
|
|
cursor: default;
|
|
|
|
.slot-icon {
|
|
font-size: 1.2rem;
|
|
color: @color-gold;
|
|
}
|
|
.slot-placeholder {
|
|
font-family: @font-body;
|
|
font-style: italic;
|
|
color: @color-gold;
|
|
font-size: 0.9rem;
|
|
}
|
|
}
|
|
|
|
.item-img {
|
|
width: 32px;
|
|
height: 32px;
|
|
object-fit: contain;
|
|
border: none;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.item-name {
|
|
flex: 1;
|
|
font-family: @font-primary;
|
|
font-size: 1rem;
|
|
color: @color-dark;
|
|
}
|
|
|
|
a[data-action] {
|
|
color: @color-gold;
|
|
&:hover { color: @color-blue; }
|
|
}
|
|
}
|
|
}
|
|
|
|
// Biodata
|
|
.biodata-col {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
}
|
|
|
|
// Arcane Stress compact
|
|
.character-arcane-stress {
|
|
.stress-inputs {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 4px;
|
|
}
|
|
// formInput renders a <div class="form-group"> — flatten it
|
|
div.form-group { display: contents; }
|
|
input {
|
|
width: 2.8rem;
|
|
text-align: center;
|
|
}
|
|
span { opacity: 0.8; }
|
|
}
|
|
|
|
// Defense display
|
|
.defense-display {
|
|
min-width: 3rem;
|
|
max-width: 3rem;
|
|
text-align: center;
|
|
font-weight: bold;
|
|
}
|
|
}
|