Implement another traits redesign (#1871)
Some checks are pending
Project CI / build (24.x) (push) Waiting to run

* Implement another traits redesign

* Adjust traits shape
This commit is contained in:
Carlos Fernandez 2026-05-08 09:08:25 -04:00 committed by GitHub
parent 40804f3339
commit 9ef4929693
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 105 additions and 49 deletions

View file

@ -212,33 +212,75 @@
display: flex;
padding: 0;
margin-bottom: 15px;
gap: 8px;
justify-content: space-between;
max-width: 38.5rem;
gap: 0.5rem;
padding-left: 0.5rem;
.trait {
height: 3.625rem;
--color-border: light-dark(@semi-transparent-dark-blue, @golden-60);
cursor: pointer;
border: 1px solid light-dark(@dark-blue, @golden);
border-radius: 6px;
flex: 1;
position: relative;
background-color: light-dark(transparent, @dark-blue);
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
min-width: 4.375rem;
.trait-name {
display: flex;
align-items: center;
padding-top: 5px;
color: light-dark(@dark-blue, @golden);
position: relative;
background-color: light-dark(@semi-transparent-dark-blue, @golden-40);
border: 1px solid var(--color-border);
border-radius: 3px;
color: light-dark(var(--color-light-1), @golden);
font-size: var(--font-size-12);
font-weight: 600;
height: 1rem;
line-height: 1rem;
white-space: nowrap;
width: 100%;
padding: 0 0.1876px 0 0.375rem;
margin-right: 0.125rem; /* makes it center SLIGHTLY */
text-shadow: 1px 1px 2px @light-black;
display: flex;
align-items: center;
justify-content: center;
.tier-mark {
position: absolute;
background-color: @dark-blue;
border: 1px solid light-dark(@dark-blue, @golden);
border-radius: 50%;
width: 1rem;
height: 1rem;
right: calc(100% - 0.4375rem);
display: flex;
justify-content: center;
align-items: center;
&.marked::before {
content: ' ';
position: absolute;
width: 0.5rem;
height: 0.5rem;
border-radius: 50%;
background-color: @golden;
}
}
}
.trait-value-area {
--background: light-dark(#e8e6e3, @dark-blue);
display: flex;
position: relative;
.trait-value {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
font-style: normal;
font-weight: 600;
font-size: var(--font-size-20);
@ -246,25 +288,25 @@
margin-bottom: 0.375rem;
}
.tier-mark,
.spellcasting-mark {
position: absolute;
opacity: 0.9;
color: light-dark(@dark-blue, @golden);
i {
line-height: 17px;
font-size: var(--font-size-11);
}
}
border: 1px solid light-dark(@dark-blue, @golden);
color: @golden;
left: 0;
right: 0;
bottom: -0.375rem;
margin-inline: auto;
border-radius: 50%;
width: 1.125rem;
height: 1.125rem;
background: radial-gradient(190.63% 190.63% at 50% -80.63%, #18152E 70%, #4D4494 80%, #A0837E 90%, var(--color-border) 100%);
font-size: var(--font-size-9);
text-shadow: 0 0 2px @light-black;
.tier-mark {
bottom: 1px;
left: 3px;
display: flex;
align-items: center;
justify-content: center;
}
.spellcasting-mark {
bottom: 1px;
right: 3px;
}
&:hover {

View file

@ -5,6 +5,7 @@
--golden: #f3c267;
--golden-10: #f3c26710;
--golden-40: #f3c26740;
--golden-60: #f3c26760;
--golden-90: #f3c26790;
--golden-bg: #f3c2671a;
--golden-secondary: #eaaf42;
@ -89,6 +90,7 @@
@golden: var(--golden, #f3c267);
@golden-10: var(--golden-10, #f3c26710);
@golden-40: var(--golden-40, #f3c26740);
@golden-60: var(--golden-60, #f3c26760);
@golden-90: var(--golden-90, #f3c26790);
@golden-bg: var(--golden-bg, #f3c2671a);
@golden-secondary: var(--golden-secondary, #eaaf42);

View file

@ -7,6 +7,8 @@
--dh-font-body: 'Montserrat';
/* Include missing font sizes */
--font-size-8: 0.5rem;
--font-size-9: 0.5625rem;
--font-size-22: 1.375rem;
}

View file

@ -132,10 +132,24 @@
<div class="character-traits">
{{#each this.attributes as |attribute key|}}
<div class="trait" data-tooltip="<b>{{attribute.label}}:</b><br>{{#each attribute.verbs}}{{this}}<br>{{/each}}" data-action="rollAttribute" data-attribute="{{key}}" data-value="{{attribute.value}}">
{{!-- <div class="trait" data-tooltip="<b>{{attribute.label}}:</b><br>{{#each attribute.verbs}}{{this}}<br>{{/each}}" data-action="rollAttribute" data-attribute="{{key}}" data-value="{{attribute.value}}">
{{#if attribute.tierMarked}}
<div class="tier-mark">
<i class='fa-solid fa-circle' inert></i>
</div>
{{/if}}
</div> --}}
<div class="trait {{#if isSpellcasting}}with-spellcasting{{/if}}" data-tooltip="<b>{{attribute.label}}:</b><br>{{#each attribute.verbs}}{{this}}<br>{{/each}}" data-action="rollAttribute" data-attribute="{{key}}" data-value="{{attribute.value}}">
<div class="trait-name">
<div class="tier-mark {{#if attribute.tierMarked}}marked{{/if}}"></div>
<span>{{attribute.label}}</span>
</div>
<div class="trait-value-area">
<svg width="52" height="46" viewBox="0 0 52 46" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M 0,0 H 52 L 51.0714,18.254 48.781,24.0952 47.5745,39.9596 26,46 4.42553,39.9596 3.219,24.0952 0.928571,18.254 Z" fill="var(--color-border)"/>
<path d="M 3.312,5.357 8.58596,0 H 43.414 l 5.274,5.357 -1.8797,28.846 c -0.2431,2.605 -2.1461,4.7522 -4.7031,5.3064 l -14.8343,3.2151 c -0.8375,0.1816 -1.7043,0.1816 -2.5418,0 L 9.89482,39.5094 C 7.33785,38.9552 5.43478,36.808 5.19169,34.203 Z" fill="var(--background)"/>
</svg>
<div class="trait-value">
{{#if (gt attribute.value 0)}}
<span>+{{attribute.value}}</span>
@ -143,17 +157,13 @@
<span>{{attribute.value}}</span>
{{/if}}
</div>
{{#if attribute.tierMarked}}
<div class="tier-mark">
<i class='fa-solid fa-circle' inert></i>
</div>
{{/if}}
{{#if isSpellcasting}}
<div class="spellcasting-mark" data-tooltip="DAGGERHEART.ITEMS.Subclass.spellcastingTrait">
<i class="fa-solid fa-wand-magic-sparkles" inert></i>
</div>
{{/if}}
</div>
</div>
{{/each}}
</div>