Merge branch 'epic/granular-action-outcomes' into feature/granular-action-outcomes

This commit is contained in:
WBHarry 2026-06-02 12:31:06 +02:00
commit 56b2688fc4
187 changed files with 2881 additions and 2059 deletions

View file

@ -43,7 +43,7 @@
text-align: center;
font-size: var(--font-size-16);
margin: 0 4px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
color: light-dark(@dark, @beige);
background-image: url('../assets/parchments/dh-parchment-dark.png');
@ -58,7 +58,7 @@
position: relative;
display: flex;
justify-content: center;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
cursor: pointer;
width: 120px;
@ -164,7 +164,7 @@
.hybrid-data {
padding: 0 2px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
color: light-dark(@dark, @beige);
background-image: url('../assets/parchments/dh-parchment-dark.png');
@ -191,7 +191,7 @@
flex-direction: column;
gap: 4px;
padding: 0 4px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
color: light-dark(@dark, @beige);
background-image: url('../assets/parchments/dh-parchment-dark.png');
@ -226,7 +226,7 @@
gap: 4px;
.trait-card {
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
padding: 2px;
opacity: 0.4;

View file

@ -79,7 +79,7 @@
font-weight: bold;
padding: 0 2px;
background-image: url(../assets/parchments/dh-parchment-light.png);
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
color: light-dark(@beige, @dark);
opacity: 0.4;
@ -203,7 +203,7 @@
height: 16px;
width: 110px;
min-height: unset;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
color: light-dark(@beige, @beige);
background-color: light-dark(var(--color-warm-3), var(--color-warm-3));
@ -230,7 +230,7 @@
.suggested-trait-container {
width: 56px;
white-space: nowrap;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
color: light-dark(@beige, @dark);
background-image: url('../assets/parchments/dh-parchment-light.png');
@ -345,7 +345,7 @@
display: flex;
justify-content: center;
position: relative;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
.nav-section-text {
@ -383,7 +383,7 @@
width: 56px;
text-align: center;
line-height: 1;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
color: light-dark(@beige, @dark);
background-image: url(../assets/parchments/dh-parchment-light.png);
@ -447,7 +447,7 @@
height: 100%;
.simple-equipment {
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 8px;
position: relative;
display: flex;
@ -466,7 +466,7 @@
top: -8px;
font-size: var(--font-size-12);
white-space: nowrap;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
color: @dark;
background-image: url('../assets/parchments/dh-parchment-light.png');

View file

@ -7,7 +7,7 @@
border-top: 0;
a {
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
&[disabled] {
opacity: 0.4;

View file

@ -67,7 +67,6 @@
i {
font-size: 18px;
// color: light-dark(@dark-blue, @golden);
}
}
}

View file

@ -81,7 +81,7 @@
.mark-container {
cursor: pointer;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
height: 26px;
padding: 0 1px;
@ -126,7 +126,7 @@
width: 100%;
.chip-inner-container {
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
height: 26px;
padding: 0 4px;

View file

@ -56,7 +56,7 @@
cursor: pointer;
padding: 5px;
background: light-dark(@dark-blue-10, @golden-10);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
.label {
font-style: normal;
@ -129,7 +129,7 @@
cursor: pointer;
padding: 5px;
background: light-dark(@dark-blue-10, @golden-10);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
.label {
font-style: normal;

View file

@ -37,7 +37,7 @@
.activity-marker {
font-size: 0.5rem;
flex: none;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
margin-right: 4px;
}
@ -55,7 +55,7 @@
.activity-selected-marker {
font-size: var(--font-size-14);
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
color: light-dark(@dark, @beige);
background-image: url(../assets/parchments/dh-parchment-dark.png);
@ -78,7 +78,7 @@
}
.refreshable-container {
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
color: light-dark(@dark, @beige);
background-image: url('../assets/parchments/dh-parchment-dark.png');

View file

@ -1,5 +1,5 @@
h1 {
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
font: 700 var(--font-size-24) var(--dh-font-subtitle);
text-align: center;
}

View file

@ -110,7 +110,7 @@
display: flex;
flex-direction: row;
button {
--button-text-color: var(--color-text-primary);
--button-text-color: @color-text-primary;
--button-size: 1.5em;
padding: 0 var(--spacer-4);
img {

View file

@ -12,7 +12,7 @@
img {
width: 136px;
height: 136px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
opacity: 0.4;

View file

@ -24,8 +24,6 @@
@import './multiclass-choice/sheet.less';
@import './reroll-dialog/sheet.less';
@import './tag-team-dialog/initialization.less';
@import './tag-team-dialog/sheet.less';

View file

@ -19,7 +19,7 @@
a,
span {
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
}
}
}

View file

@ -14,8 +14,7 @@
.tab.active {
flex: 1;
overflow: auto;
scrollbar-width: thin;
scrollbar-color: light-dark(@dark-blue, @golden) transparent;
.with-scroll-shadows();
}
div[data-application-part='form'] {

View file

@ -18,7 +18,7 @@
overflow: auto;
padding: 10px 0;
max-height: 700px;
mask-image: linear-gradient(0deg, transparent 0%, black 5%, black 95%, transparent 100%);
.with-scroll-shadows();
.level-achievements-container,
.level-advancements-container {

View file

@ -35,7 +35,7 @@
width: 120px;
height: 120px;
background: light-dark(@dark-blue-10, @golden-10);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
&.selected {
background: light-dark(@dark-blue-40, @golden-40);
@ -57,7 +57,7 @@
display: flex;
flex-wrap: wrap;
font-style: italic;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
padding: 4px 4px;
}

View file

@ -1,125 +0,0 @@
.daggerheart.dialog.dh-style.views.reroll-dialog {
.window-content {
max-width: 648px;
}
.reroll-outer-container {
h2 {
margin: 0;
}
.dices-container {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.dice-outer-container {
width: 300px;
legend {
display: flex;
align-items: center;
gap: 4px;
i {
margin-right: 4px;
}
}
.dice-container {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
.result-container {
position: relative;
aspect-ratio: 1;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.375rem;
opacity: 0.8;
&.selected {
opacity: 1;
border: 1px solid;
border-radius: 6px;
border-color: light-dark(@dark-blue, @golden);
filter: drop-shadow(0 0 3px @golden);
}
&:before {
content: ' ';
position: absolute;
width: 100%;
height: 100%;
z-index: -1;
mask: var(--svg-die) no-repeat center;
mask-size: contain;
background: linear-gradient(139.01deg, #efe6d8 3.51%, #372e1f 96.49%);
}
&.d4:before {
--svg-die: url(../assets/icons/dice/default/d4.svg);
}
&.d6:before {
--svg-die: url(../assets/icons/dice/default/d6.svg);
}
&.d8:before {
--svg-die: url(../assets/icons/dice/default/d8.svg);
}
&.d10:before {
--svg-die: url(../assets/icons/dice/default/d10.svg);
}
&.d12:before {
--svg-die: url('../assets/icons/dice/default/d12.svg');
}
&.d20:before {
--svg-die: url(../assets/icons/dice/default/d20.svg);
}
.to-reroll-result {
position: absolute;
bottom: -7px;
gap: 2px;
border: 1px solid;
border-radius: 6px;
background-image: url(../assets/parchments/dh-parchment-dark.png);
display: flex;
align-items: center;
padding: 2px 6px;
input {
margin: 0;
height: 12px;
line-height: 0px;
position: relative;
top: 1px;
&:before,
&:after {
line-height: 12px;
font-size: var(--font-size-12);
}
}
i {
font-size: var(--font-size-10);
}
}
}
}
}
}
footer {
margin-top: 8px;
display: flex;
justify-content: space-between;
.controls {
display: flex;
gap: 8px;
}
}
}

View file

@ -1,3 +1,5 @@
@import '../../utils/mixin.less';
.theme-light .daggerheart.dialog.dh-style.views.tag-team-dialog {
.initialization-container .members-container .member-container {
.member-name {
@ -34,7 +36,7 @@
align-items: stretch;
justify-content: center;
border-radius: 6px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
overflow: hidden;
height: 11.5rem;
width: 122px;
@ -60,19 +62,9 @@
padding: 5rem 4px var(--spacer-8) 4px;
text-align: center;
color: var(--color-text-primary);
color: @color-text-primary;
text-shadow: 1px 1px 2px var(--shadow-color), 0 0 10px var(--shadow-color);
// Basic "scrim" gradient
background-image: linear-gradient(
to top,
var(--shadow-color),
rgba(from var(--shadow-color) r g b / 0.834) 10.6%,
rgba(from var(--shadow-color) r g b / 0.541) 34%,
rgba(from var(--shadow-color) r g b / 0.382) 47%,
rgba(from var(--shadow-color) r g b / 0.194) 65%,
transparent 100%
);
.smooth-gradient-ease-in-out(background-image, to bottom, var(--shadow-color), 100%);
}
img {

View file

@ -1,6 +1,6 @@
.daggerheart.dialog.dh-style.views.tag-team-dialog .window-content {
h1 {
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
font: 700 var(--font-size-24) var(--dh-font-subtitle);
text-align: center;
}
@ -42,7 +42,7 @@
img {
height: 64px;
border-radius: 6px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
}
.member-name {
@ -64,7 +64,7 @@
.roll-title {
font-size: var(--font-size-20);
font-weight: bold;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
text-align: center;
display: flex;
align-items: center;
@ -72,7 +72,7 @@
&::before,
&::after {
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
content: '';
flex: 1;
height: 2px;
@ -194,6 +194,7 @@
.roll-selection-container {
display: flex;
gap: 16px;
.select-roll-button {
margin-top: 8px;
@ -202,7 +203,7 @@
justify-content: center;
i {
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
font-size: 48px;
&.inactive {

View file

@ -36,8 +36,8 @@
padding: 0;
&:hover {
border: 1px solid light-dark(@dark-blue, @golden);
color: light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
color: @color-text-emphatic;
}
}
}
@ -81,7 +81,7 @@
cursor: pointer;
padding: 5px;
background: light-dark(@dark-blue-10, @golden-10);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
.label {
font-style: normal;

View file

@ -2,24 +2,22 @@
@import '../utils/fonts.less';
.dh-style {
border: 1px solid light-dark(@dark-blue, @golden);
input[type='text'],
input[type='number'],
textarea,
file-picker,
.input[contenteditable] {
background: light-dark(transparent, transparent);
border-radius: 6px;
box-shadow: 0 4px 30px @soft-shadow;
backdrop-filter: blur(9.5px);
-webkit-backdrop-filter: blur(9.5px);
outline: 2px solid transparent;
color: light-dark(@dark-blue, @golden);
border: 1px solid light-dark(@dark, @beige);
color: @input-color-text;
border: 1px solid @input-color-border;
transition: all 0.3s ease;
&::placeholder {
color: light-dark(@dark-40, @beige-50);
color: @color-text-subtle;
}
&:hover,
@ -30,7 +28,7 @@
&:focus[type='number'] {
background: light-dark(@soft-shadow, @semi-transparent-dark-blue);
box-shadow: none;
outline: 2px solid light-dark(@dark, @beige);
outline: 2px solid @input-color-border;
}
&:disabled[type='text'],
@ -47,7 +45,7 @@
.input[contenteditable] {
cursor: var(--cursor-text);
&:empty:before {
color: light-dark(@dark-40, @beige-50);
color: @color-text-subtle;
content: attr(placeholder);
}
}
@ -98,7 +96,7 @@
color: light-dark(@dark, @beige);
}
button:where(:not(.plain)) {
button:where(:not(.plain, color-picker *, file-picker *)) {
background: light-dark(transparent, @golden);
border: 1px solid light-dark(@dark-blue, @dark-blue);
color: light-dark(@dark-blue, @dark-blue);
@ -107,7 +105,7 @@
&:hover {
background: light-dark(@light-black, @dark-blue);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
}
&.glow {
@ -128,7 +126,7 @@
&.reverted {
background: light-dark(@dark-blue-10, @golden-10);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
border: 1px solid light-dark(@dark, transparent);
&:hover {
background: light-dark(transparent, @golden);
@ -175,7 +173,7 @@
height: inherit;
.tag {
padding: 0.3rem 0.5rem;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
background-color: light-dark(@dark-blue-10, @golden-40);
border-radius: 3px;
transition: 0.13s ease-out;
@ -252,11 +250,20 @@
text-shadow: 0 0 1px currentColor, 0 0 1px currentColor, 0 0 8px light-dark(@dark-blue, @golden);
}
file-picker, color-picker {
> input[type=text] {
background: transparent;
border: none;
outline: none;
backdrop-filter: unset;
}
}
fieldset {
align-items: center;
margin-top: 5px;
border-radius: 6px;
border-color: light-dark(@dark-blue, @golden);
border-color: @color-fieldset-border;
&.glassy {
background-color: light-dark(@dark-blue-10, @golden-10);
@ -265,7 +272,7 @@
legend {
padding: 2px 12px;
border-radius: 3px;
background-color: light-dark(@dark-blue, @golden);
background-color: @color-fieldset-border;
color: light-dark(@beige, @dark-blue);
margin-bottom: var(--spacer-4);
}
@ -276,7 +283,7 @@
}
&.fit-height {
height: 95%;
flex: 1;
}
&.flex {
@ -344,7 +351,7 @@
legend {
font-weight: bold;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
&.with-icon {
display: flex;
@ -356,18 +363,6 @@
}
}
input[type='text'],
input[type='number'] {
color: light-dark(@dark, @beige);
transition: all 0.3s ease;
outline: 2px solid transparent;
&:focus,
&:hover {
outline: 2px solid light-dark(@dark, @beige);
}
}
&[disabled],
&.child-disabled .form-group,
select[disabled],
@ -505,7 +500,7 @@
display: block;
height: 1px;
width: 100%;
border-bottom: 1px solid light-dark(@dark-blue, @golden);
border-bottom: 1px solid @color-border;
mask-image: linear-gradient(270deg, transparent 0%, black 50%, transparent 100%);
}
@ -513,7 +508,7 @@
display: block;
height: 1px;
width: 100%;
border-bottom: 1px solid light-dark(@dark-blue, @golden);
border-bottom: 1px solid @color-border;
mask-image: linear-gradient(270deg, transparent 0%, black 100%);
&.invert {
@ -562,7 +557,7 @@
border: 0;
&:hover {
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
}
&:not(:first-child) {
@ -597,59 +592,6 @@
}
}
.application.setting.dh-style {
h2,
h3,
h4 {
margin: 8px 0 4px;
text-align: center;
}
footer {
margin-top: 8px;
display: flex;
gap: 8px;
button {
flex: 1;
}
}
.form-group {
display: flex;
justify-content: space-between;
align-items: center;
gap: 0.25rem 0.5rem;
flex-wrap: wrap;
label {
font-size: var(--font-size-14);
font-weight: normal;
}
.form-fields {
display: flex;
gap: 4px;
align-items: center;
}
&.setting-two-values {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 0.25rem 0.5rem;
.form-group {
justify-content: end;
flex-wrap: nowrap;
}
.hint {
grid-column: 1 / -1;
}
}
}
}
.system-daggerheart {
.tagify {
background: light-dark(transparent, transparent);

View file

@ -13,7 +13,7 @@
legend {
font-weight: bold;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
font-size: var(--font-size-12);
}
@ -25,7 +25,7 @@
button {
background: light-dark(@light-black, @dark-blue);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
outline: none;
box-shadow: none;
border: 1px solid light-dark(@dark-blue, @dark-blue);

View file

@ -38,7 +38,7 @@
}
&:before {
font-family: 'Font Awesome 6 Pro';
font-family: var(--font-awesome);
content: '\f110';
position: absolute;
height: 100%;

View file

@ -287,7 +287,7 @@
position: relative;
height: 120px;
width: 98px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
cursor: pointer;

View file

@ -40,6 +40,11 @@
ul {
list-style: disc;
}
}
// Fixes centering and makes it not render over scrollbar
&:hover button.toggle:enabled {
display: flex;
right: 12px;
}
}
}

View file

@ -50,16 +50,16 @@
flex-wrap: wrap;
gap: 5px;
padding: 5px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
z-index: 1;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
width: fit-content;
.slot {
width: 15px;
height: 10px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
background: light-dark(@dark-blue-10, @golden-10);
border-radius: 3px;
transition: all 0.3s ease;
@ -148,7 +148,7 @@
appearance: none;
width: 100px;
height: 40px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
z-index: 1;
background: @dark-blue;

View file

@ -4,8 +4,8 @@
// Theme handling
.appTheme({
background: @dark-blue-90;
backdrop-filter: blur(8px);
background: @dark-blue-c0;
backdrop-filter: blur(7px);
}, {
background: url('../assets/parchments/dh-parchment-light.png') no-repeat center;
});
@ -43,7 +43,7 @@ body.game:is(.performance-low, .noblur) {
&:hover {
border-color: light-dark(@dark-blue, @golden);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
}
}
}

View file

@ -3,8 +3,7 @@
.daggerheart.dh-style {
.tab-navigation {
margin: 5px 0;
height: 40px;
margin: 5px 0 10px 0;
width: 100%;
.navigation-container {
@ -20,7 +19,11 @@
white-space: nowrap;
a {
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
&.empty:not(.active) {
opacity: 0.4;
}
}
}
}

View file

@ -24,7 +24,7 @@
.palette-category-title {
grid-column: span var(--effect-columns);
font-weight: bold;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
}
}
}
@ -38,6 +38,9 @@
}
.status-effects {
// TODO: Remove when the issue https://github.com/foundryvtt/foundryvtt/issues/14410 is resolved and Foundry handles it cleanly themselves.
grid-template-rows: min-content;
.effect-control-container {
position: relative;

View file

@ -7,7 +7,7 @@
&.attack.active {
display: flex;
flex-direction: column;
gap: 16px;
gap: 12px;
}
.fieldsets-section {

View file

@ -1,17 +1,19 @@
@import '../../utils/colors.less';
.theme-light .application.daggerheart.dh-style.dialog {
.tab.details {
.traits-inner-container .trait-container {
background: url('../assets/svg/trait-shield-light.svg') no-repeat;
.appTheme({}, {
&.dialog.character-settings {
.tab.details {
.traits-inner-container .trait-container {
background: url('../assets/svg/trait-shield-light.svg') no-repeat;
div {
filter: drop-shadow(0 0 3px @beige);
text-shadow: 0 0 3px @beige;
div {
filter: drop-shadow(0 0 3px @beige);
text-shadow: 0 0 3px @beige;
}
}
}
}
}
});
.application.daggerheart.dh-style.dialog {
.tab.details {

View file

@ -13,7 +13,7 @@
font-size: var(--font-size-24);
margin: 0;
text-align: center;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
}
}
}

View file

@ -34,15 +34,27 @@
.attribution-header-label {
font-style: italic;
font-family: @font-body;
color: light-dark(@chat-blue-bg, @beige-50);
color: @color-text-subtle;
}
.tab.inventory {
.search-section {
display: flex;
.gold-section {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
gap: 10px;
align-items: center;
padding: 10px 10px 0;
.input {
color: light-dark(@dark, @beige);
}
}
}
.search-section {
display: flex;
gap: 10px;
align-items: center;
justify-content: space-between;
.search-bar {
position: relative;
color: light-dark(@dark-blue-50, @beige-50);
@ -72,22 +84,11 @@
height: 32px;
position: absolute;
right: 20px;
font-size: 16px;
font-size: var(--font-size-16);
z-index: 1;
color: light-dark(@dark-blue-50, @beige-50);
}
}
.gold-section {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
gap: 10px;
padding: 10px 10px 0;
.input {
color: light-dark(@dark, @beige);
}
}
}
&.limited {
@ -127,7 +128,7 @@
.title-name {
text-align: start;
font-size: var(--font-size-28);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
text-align: center;
}
}
@ -180,9 +181,9 @@
display: flex;
gap: 10px;
background-color: light-dark(transparent, @dark-blue);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
padding: 5px 10px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
align-items: center;
width: fit-content;
@ -194,7 +195,7 @@
font-size: var(--font-size-14);
font-weight: bold;
text-transform: uppercase;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
}
.domain {
@ -206,7 +207,7 @@
font-size: var(--font-size-14);
font-weight: bold;
text-transform: uppercase;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
}
img {
@ -230,7 +231,7 @@
padding: 10px;
border-radius: 5px;
min-width: 90px;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
background-color: light-dark(@dark-blue-10, @golden-40);
}
}

View file

@ -1,4 +1,5 @@
@import '../../../utils/colors.less';
@import '../../../utils/mixin.less';
.application.sheet.daggerheart.actor.dh-style.adversary {
.tab.effects {
@ -7,8 +8,8 @@
flex-direction: column;
gap: 10px;
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%);
padding-bottom: 20px;
.with-scroll-shadows();
}
}
}

View file

@ -1,5 +1,6 @@
@import '../../../utils/colors.less';
@import '../../../utils/fonts.less';
@import '../../../utils/mixin.less';
.application.sheet.daggerheart.actor.dh-style.adversary {
.tab.features {
@ -8,8 +9,8 @@
flex-direction: column;
gap: 10px;
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%);
padding-bottom: 20px;
.with-scroll-shadows();
}
}
}

View file

@ -35,7 +35,7 @@
.tags {
display: flex;
gap: 10px;
padding-bottom: 16px;
padding-bottom: 8px;
.tag {
display: flex;
@ -67,11 +67,5 @@
gap: 12px;
padding: 16px 0;
}
.adversary-navigation {
display: flex;
gap: 8px;
align-items: center;
}
}
}

View file

@ -0,0 +1,7 @@
@import './features.less';
@import './header.less';
@import './sheet.less';
@import './sidebar.less';
@import './effects.less';
@import './notes.less';

View file

@ -0,0 +1,3 @@
.application.sheet.daggerheart.actor.dh-style.adversary .tab.notes.active {
padding-bottom: 20px;
}

View file

@ -65,9 +65,9 @@
display: flex;
gap: 10px;
background-color: light-dark(transparent, @dark-blue);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
padding: 5px 10px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
align-items: center;
width: fit-content;
@ -77,7 +77,7 @@
font-size: var(--font-size-14);
font-weight: bold;
text-transform: uppercase;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
&.threshold-value {
color: light-dark(@dark, @beige);
@ -191,7 +191,7 @@
appearance: none;
width: 100px;
height: 40px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
z-index: 1;
background: @dark-blue;
@ -237,7 +237,7 @@
display: flex;
width: 50px;
height: 30px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-bottom: none;
border-radius: 6px 6px 0 0;
padding: 0 6px;
@ -286,9 +286,8 @@
overflow-y: hidden;
padding-top: 10px;
padding-bottom: 20px;
mask-image: linear-gradient(0deg, transparent 0%, black 5%, black 95%, transparent 100%);
scrollbar-gutter: stable;
.with-scroll-shadows();
&:hover {
overflow-y: auto;

View file

@ -1,5 +1,6 @@
@import '../../../utils/colors.less';
@import '../../../utils/fonts.less';
@import '../../../utils/mixin.less';
.application.sheet.daggerheart.actor.dh-style.character {
.tab.biography {
@ -9,10 +10,10 @@
gap: 10px;
height: 100%;
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%, black 98%, transparent 100%);
padding-top: 8px;
padding-bottom: 20px;
height: 100%;
.with-scroll-shadows();
}
.characteristics-section {

View file

@ -1,5 +1,6 @@
@import '../../../utils/colors.less';
@import '../../../utils/fonts.less';
@import '../../../utils/mixin.less';
.application.sheet.daggerheart.actor.dh-style.character {
.tab.effects {
@ -8,8 +9,8 @@
flex-direction: column;
gap: 10px;
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%);
padding-bottom: 20px;
.with-scroll-shadows();
}
}
}

View file

@ -1,5 +1,6 @@
@import '../../../utils/colors.less';
@import '../../../utils/fonts.less';
@import '../../../utils/mixin.less';
.application.sheet.daggerheart.actor.dh-style.character {
.tab.features {
@ -8,8 +9,8 @@
flex-direction: column;
gap: 10px;
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%);
padding-bottom: 20px;
.with-scroll-shadows();
}
}
}

View file

@ -103,7 +103,7 @@
padding: 5px 0;
margin-bottom: 8px;
font-size: var(--font-size-12);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
.missing-header-feature {
opacity: 0.5;
@ -170,9 +170,9 @@
display: flex;
gap: 4px;
background-color: light-dark(transparent, @dark-blue);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
padding: 5px 10px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
align-items: center;
width: fit-content;
@ -182,7 +182,7 @@
font-size: var(--font-size-14);
font-weight: bold;
text-transform: uppercase;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
margin-right: 4px;
}
@ -195,7 +195,7 @@
font-size: var(--font-size-14);
font-weight: bold;
text-transform: uppercase;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
}
img {
@ -226,7 +226,6 @@
padding-left: 0.5rem;
.trait {
--color-border: light-dark(@semi-transparent-dark-blue, @golden-60);
cursor: pointer;
position: relative;
@ -238,10 +237,10 @@
.trait-name {
position: relative;
background-color: light-dark(@semi-transparent-dark-blue, @golden-40);
border: 1px solid var(--color-border);
background-color: @trait-color-bg;
border: 1px solid @trait-color-border;
border-radius: 3px;
color: light-dark(var(--color-light-1), @golden);
color: @color-text-emphatic;
font-size: var(--font-size-12);
font-weight: 600;
height: 1rem;
@ -250,7 +249,7 @@
width: 100%;
padding: 0 0.1876px 0 0.375rem;
margin-right: 0.125rem; /* makes it center SLIGHTLY */
text-shadow: 1px 1px 2px @light-black;
text-shadow: 1px 1px 3px @color-text-shadow-contrast;
display: flex;
align-items: center;
@ -259,7 +258,7 @@
.tier-mark {
position: absolute;
background-color: @dark-blue;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 50%;
width: 1rem;
height: 1rem;
@ -279,6 +278,7 @@
}
.trait-value-area {
--color-border: @trait-color-border;
--background: light-dark(#e8e6e3, @dark-blue);
display: flex;
position: relative;
@ -298,7 +298,7 @@
.spellcasting-mark {
position: absolute;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
color: @golden;
left: 0;
right: 0;

View file

@ -0,0 +1,8 @@
@import './biography.less';
@import './effects.less';
@import './features.less';
@import './header.less';
@import './inventory.less';
@import './loadout.less';
@import './sheet.less';
@import './sidebar.less';

View file

@ -1,5 +1,6 @@
@import '../../../utils/colors.less';
@import '../../../utils/fonts.less';
@import '../../../utils/mixin.less';
.application.sheet.daggerheart.actor.dh-style.character {
.tab.inventory {
@ -8,8 +9,9 @@
flex-direction: column;
gap: 10px;
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%, black 95%, transparent 100%);
padding: 20px 0;
margin-top: 20px;
padding-bottom: 20px;
.with-scroll-shadows();
}
}
}

View file

@ -1,51 +1,13 @@
@import '../../../utils/colors.less';
@import '../../../utils/fonts.less';
@import '../../../utils/mixin.less';
.application.sheet.daggerheart.actor.dh-style.character {
.tab.loadout {
.search-section {
display: flex;
align-items: center;
justify-content: space-between;
.search-bar {
position: relative;
color: light-dark(@dark-blue-50, @beige-50);
width: 80%;
padding-top: 5px;
input {
border-radius: 50px;
background: light-dark(@dark-blue-10, @golden-10);
border: none;
outline: 2px solid transparent;
transition: all 0.3s ease;
padding: 0 20px;
&:hover {
outline: 2px solid light-dark(@dark, @golden);
}
&::-webkit-search-cancel-button {
-webkit-appearance: none;
display: none;
}
}
.icon {
align-content: center;
height: 32px;
position: absolute;
right: 20px;
font-size: var(--font-size-16);
z-index: 1;
color: light-dark(@dark-blue-50, @beige-50);
}
}
.btn-toggle-view {
background: light-dark(@dark-blue-10, @dark-blue);
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 15px;
padding: 0;
gap: 0;
@ -54,7 +16,7 @@
span {
margin: 1px;
width: 26px;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
&.list-icon {
i {
@ -90,8 +52,9 @@
gap: 10px;
height: 100%;
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 10%, black 98%, transparent 100%);
padding: 20px 0;
margin-top: 20px;
padding-bottom: 20px;
.with-scroll-shadows();
}
}
}

View file

@ -40,7 +40,7 @@
.application.sheet.dh-style .character-sidebar-sheet {
width: 275px;
min-width: 275px;
border-right: 1px solid light-dark(@dark-blue, @golden);
border-right: 1px solid @color-border;
.portrait {
position: relative;
@ -168,7 +168,7 @@
appearance: none;
width: 100px;
height: 40px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
z-index: 1;
background: @dark-blue;
@ -282,11 +282,11 @@
&:hover {
background: light-dark(@light-black, @dark-blue);
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
h4,
i {
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
}
}
}
@ -309,12 +309,12 @@
flex-wrap: wrap;
gap: 4px;
padding: 5px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
z-index: 1;
background: @dark-blue;
justify-content: center;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
.armor-slot {
cursor: pointer;
@ -343,12 +343,12 @@
&:hover {
background: light-dark(@light-black, @dark-blue);
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
.label,
.value,
i {
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
}
}
@ -375,7 +375,7 @@
text-align: center;
z-index: 2;
color: light-dark(@dark-blue, @beige);
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-bottom: none;
border-radius: 6px 6px 0 0;
@ -411,7 +411,7 @@
appearance: none;
width: 80px;
height: 30px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
z-index: 1;
background: light-dark(transparent, @dark-blue);
@ -450,7 +450,7 @@
display: flex;
width: 50px;
height: 30px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-bottom: none;
border-radius: 6px 6px 0 0;
padding: 0 6px;
@ -513,9 +513,9 @@
align-self: center;
gap: 10px;
background-color: light-dark(transparent, @dark-blue);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
padding: 5px 10px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
align-items: center;
width: fit-content;
@ -525,7 +525,7 @@
font-size: var(--font-size-14);
font-weight: bold;
text-transform: uppercase;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
&.threshold-value {
color: light-dark(@dark, @beige);
@ -549,8 +549,8 @@
overflow-y: hidden;
padding-top: 10px;
padding-bottom: 20px;
mask-image: linear-gradient(0deg, transparent 0%, black 5%);
scrollbar-gutter: stable;
.with-scroll-shadows();
&:hover {
overflow-y: auto;

View file

@ -7,8 +7,8 @@
flex-direction: column;
gap: 10px;
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%);
padding-bottom: 20px;
.with-scroll-shadows();
}
}
}

View file

@ -11,7 +11,7 @@
.profile {
height: 235px;
cursor: pointer;
mask-image: linear-gradient(0deg, transparent 0%, black 10%);
.smooth-gradient-ease-in-out(mask-image, to top, black, 2.25rem);
}
.actor-name {
@ -24,15 +24,20 @@
margin-bottom: -30px;
input[type='text'] {
backdrop-filter: none;
border: none;
font-family: @font-title;
font-size: var(--font-size-24);
height: 32px;
text-align: center;
border: 1px solid transparent;
outline: 2px solid transparent;
box-shadow: unset;
text-shadow: 0 0 4px @color-text-shadow-contrast, 0 0 8px @color-text-shadow-contrast, 0 0 14px @color-text-shadow-contrast;
height: 2rem;
text-align: center;
transition: all 0.3s ease;
&:hover {
outline: 2px solid light-dark(@dark, @golden);
outline: 2px solid @color-border;
}
}
}
@ -63,7 +68,7 @@
display: flex;
width: 50px;
height: 40px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-bottom: none;
border-radius: 6px 6px 0 0;
padding: 0 6px;
@ -95,104 +100,6 @@
}
}
// .status-bar {
// display: flex;
// justify-content: center;
// position: relative;
// width: 100px;
// height: 40px;
// .status-label {
// position: relative;
// top: 40px;
// height: 22px;
// width: 79px;
// clip-path: path('M0 0H79L74 16.5L39 22L4 16.5L0 0Z');
// background: light-dark(@dark-blue, @golden);
// h4 {
// font-weight: bold;
// text-align: center;
// line-height: 18px;
// color: light-dark(@beige, @dark-blue);
// }
// }
// .status-value {
// position: absolute;
// display: flex;
// padding: 0 6px;
// font-size: 1.5rem;
// align-items: center;
// width: 100px;
// height: 40px;
// justify-content: center;
// text-align: center;
// z-index: 2;
// color: @beige;
// input[type='number'] {
// background: transparent;
// font-size: 1.5rem;
// width: 40px;
// height: 30px;
// text-align: center;
// border: none;
// outline: 2px solid transparent;
// color: @beige;
// &.bar-input {
// padding: 0;
// color: @beige;
// backdrop-filter: none;
// background: transparent;
// transition: all 0.3s ease;
// &:hover,
// &:focus {
// background: @semi-transparent-dark-blue;
// backdrop-filter: blur(9.5px);
// }
// }
// }
// .bar-label {
// width: 40px;
// }
// }
// .progress-bar {
// position: absolute;
// appearance: none;
// width: 100px;
// height: 40px;
// border: 1px solid light-dark(@dark-blue, @golden);
// border-radius: 6px;
// z-index: 1;
// background: @dark-blue;
// &::-webkit-progress-bar {
// border: none;
// background: @dark-blue;
// border-radius: 6px;
// }
// &::-webkit-progress-value {
// background: @gradient-hp;
// border-radius: 6px;
// }
// &.stress-color::-webkit-progress-value {
// background: @gradient-stress;
// border-radius: 6px;
// }
// &::-moz-progress-bar {
// background: @gradient-hp;
// border-radius: 6px;
// }
// &.stress-color::-moz-progress-bar {
// background: @gradient-stress;
// border-radius: 6px;
// }
// }
// }
.level-div {
white-space: nowrap;
display: flex;
@ -241,10 +148,8 @@
}
.companion-navigation {
display: flex;
gap: 8px;
align-items: center;
width: 100%;
padding: 0 10px;
}
}
}

View file

@ -0,0 +1,4 @@
@import './details.less';
@import './header.less';
@import './sheet.less';
@import './effects.less';

View file

@ -10,3 +10,16 @@
background: url('../assets/parchments/dh-parchment-light.png');
}
});
.application.sheet.daggerheart.actor.dh-style.companion {
.window-content {
display: flex;
}
.tab.active {
flex: 1;
overflow: hidden;
display: flex;
flex-direction: column;
}
}

View file

@ -1,5 +1,6 @@
@import '../../../utils/colors.less';
@import '../../../utils/fonts.less';
@import '../../../utils/mixin.less';
.application.sheet.daggerheart.actor.dh-style.environment {
.tab.features {
@ -8,8 +9,8 @@
flex-direction: column;
gap: 10px;
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%);
padding-bottom: 20px;
padding-bottom: 4px;
.with-scroll-shadows();
}
}
}

View file

@ -1,5 +1,6 @@
@import '../../../utils/colors.less';
@import '../../../utils/fonts.less';
@import '../../../utils/mixin.less';
.application.sheet.daggerheart.actor.dh-style.environment {
.environment-header-sheet {
@ -10,60 +11,82 @@
.profile {
height: 235px;
mask-image: linear-gradient(0deg, transparent 0%, black 10%);
cursor: pointer;
.smooth-gradient-ease-in-out(mask-image, to top, black, 3.5rem);
}
.item-container {
display: flex;
display: grid;
grid-auto-flow: row;
grid-template-columns: 1fr min-content;
align-items: center;
position: relative;
top: -45px;
gap: 20px;
top: -36px;
gap: 0 var(--spacer-12);
padding: 0 20px;
margin-bottom: -30px;
margin-bottom: -26px;
.item-info {
.item-name input[type='text'] {
backdrop-filter: none;
border: none;
font-family: @font-title;
font-size: var(--font-size-32);
text-align: start;
transition: all 0.3s ease;
outline: 2px solid transparent;
box-shadow: none;
text-shadow: 0 0 4px @color-text-shadow-contrast, 0 0 8px @color-text-shadow-contrast, 0 0 14px @color-text-shadow-contrast;
padding-left: 0;
height: 2.625rem;
&:hover[type='text'],
&:focus[type='text'] {
box-shadow: none;
outline: 2px solid @color-border;
}
}
.flexrow {
align-items: baseline;
grid-column: span 2;
}
.tags {
display: flex;
flex-direction: column;
gap: 8px;
gap: 10px;
padding-bottom: 0;
flex: 0;
.tags {
.tag {
display: flex;
gap: 10px;
padding-bottom: 0;
flex-direction: row;
justify-content: center;
align-items: center;
padding: 3px 5px;
font-size: var(--font-size-12);
font: @font-body;
white-space: nowrap;
.tag {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
padding: 3px 5px;
font-size: var(--font-size-12);
font: @font-body;
background: light-dark(@dark-15, @beige-15);
border: 1px solid light-dark(@dark, @beige);
border-radius: 3px;
}
.label {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
font-size: var(--font-size-12);
}
background: light-dark(@dark-15, @beige-15);
border: 1px solid light-dark(@dark, @beige);
border-radius: 3px;
}
.attribution-header-label {
text-align: left;
position: relative;
top: 4px;
margin-bottom: -6px;
.label {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
font-size: var(--font-size-12);
}
}
.attribution-header-label {
text-align: right;
position: relative;
}
.status-number {
display: flex;
align-items: center;
@ -74,14 +97,14 @@
display: flex;
width: 50px;
height: 30px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-bottom: none;
border-radius: 6px 6px 0 0;
padding: 0 6px;
font-size: 1.2rem;
align-items: center;
justify-content: center;
background: light-dark(transparent, @dark-blue);
background: light-dark(#e8e6e3, @dark-blue);
z-index: 2;
&.armor-slots {
@ -93,7 +116,7 @@
.status-label {
padding: 2px 10px;
width: 100%;
border-radius: 3px;
border-radius: 0 0 3px 3px;
background: light-dark(@dark-blue, @golden);
h4 {
@ -105,37 +128,21 @@
}
}
}
.item-name {
input[type='text'] {
font-size: var(--font-size-32);
height: 42px;
text-align: start;
transition: all 0.3s ease;
outline: 2px solid transparent;
border: 1px solid transparent;
&:hover[type='text'],
&:focus[type='text'] {
box-shadow: none;
outline: 2px solid light-dark(@dark-blue, @golden);
}
}
}
}
.environment-info {
display: flex;
flex-direction: column;
gap: 12px;
gap: var(--spacer-8);
padding: 10px 20px;
}
.environment-navigation {
display: flex;
gap: 20px;
align-items: center;
padding: 0 20px;
.tab-navigation {
margin-top: 0;
}
}
}
}

View file

@ -0,0 +1,4 @@
@import './features.less';
@import './header.less';
@import './potentialAdversaries.less';
@import './sheet.less';

View file

@ -7,8 +7,8 @@
flex-direction: column;
gap: 10px;
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%);
padding-bottom: 20px;
padding-bottom: 4px;
.with-scroll-shadows();
}
}
}

View file

@ -5,10 +5,6 @@
.appTheme({
&.environment {
background-image: url('../assets/parchments/dh-parchment-dark.png');
.attribution-header-label {
background-image: url('../assets/parchments/dh-parchment-dark.png');
}
}
}, {
&.environment {

View file

@ -0,0 +1,18 @@
.application.sheet.daggerheart.actor.dh-style.npc {
.tab.features {
&.active {
overflow: hidden;
display: flex;
flex-direction: column;
}
.feature-section {
display: flex;
flex-direction: column;
gap: 10px;
overflow-y: auto;
padding-bottom: 4px;
.with-scroll-shadows();
}
}
}

View file

@ -0,0 +1,83 @@
.application.sheet.daggerheart.actor.dh-style.npc {
.npc-header-sheet {
width: 100%;
display: flex;
.portrait {
cursor: pointer;
max-width: 275px;
img {
height: 275px;
}
}
.tags {
display: flex;
gap: 10px;
padding-bottom: 8px;
.tag {
display: flex;
flex-direction: row;
gap: 4px;
justify-content: center;
align-items: center;
padding: 3px 5px;
font-size: var(--font-size-12);
font: @font-body;
background: light-dark(@dark-15, @beige-15);
border: 1px solid light-dark(@dark, @beige);
border-radius: 3px;
}
.label {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
font-size: var(--font-size-12);
}
}
.info-section {
flex: 1;
padding: 0 15px;
padding-top: var(--header-height);
display: flex;
flex-direction: column;
.name-row {
display: flex;
gap: 5px;
align-items: center;
justify-content: space-between;
padding: 8px 0;
h1 {
display: flex;
flex: 1;
padding: 6px 0 0 0;
font-size: var(--font-size-32);
text-align: start;
border: 1px solid transparent;
outline: 2px solid transparent;
transition: all 0.3s ease;
word-break: break-word;
&:hover {
outline: 2px solid light-dark(@dark, @golden);
}
}
}
.npc-info {
display: flex;
flex-direction: column;
gap: 12px;
padding: 16px 0;
}
}
}
}

View file

@ -0,0 +1,3 @@
@import './sheet.less';
@import './header.less';
@import './features.less';

View file

@ -0,0 +1,10 @@
.application.sheet.daggerheart.actor.dh-style.npc {
.window-content {
display: grid;
grid-template-rows: auto auto 1fr;
}
.npc-navigation {
padding: 0 15px;
}
}

View file

@ -1,5 +1,6 @@
@import '../../../utils/colors.less';
@import '../../../utils/fonts.less';
@import '../../../utils/mixin.less';
.party-header-sheet {
display: flex;
@ -9,26 +10,31 @@
.profile {
height: 235px;
mask-image: linear-gradient(0deg, transparent 0%, black 10%);
cursor: pointer;
.smooth-gradient-ease-in-out(mask-image, to top, black, 3.5rem);
}
.item-container {
.item-name {
padding: 0 20px;
input[type='text'] {
font-size: 32px;
height: 42px;
text-align: center;
transition: all 0.3s ease;
outline: 2px solid transparent;
border: 1px solid transparent;
margin-top: -2rem;
z-index: 1;
input.item-name[type='text'] {
backdrop-filter: none;
border: none;
color: @color-text-emphatic;
font-family: @font-title;
font-size: var(--font-size-32);
outline: 2px solid transparent;
box-shadow: unset;
text-shadow: 0 0 4px @color-text-shadow-contrast, 0 0 8px @color-text-shadow-contrast, 0 0 14px @color-text-shadow-contrast;
&:hover[type='text'],
&:focus[type='text'] {
box-shadow: none;
outline: 2px solid light-dark(@dark-blue, @golden);
}
text-align: center;
transition: all 0.3s ease;
width: calc(100% - 40px);
height: 2.625rem;
&:hover[type='text'],
&:focus[type='text'] {
outline: 2px solid @color-border;
}
}

View file

@ -0,0 +1,4 @@
@import './header.less';
@import './party-members.less';
@import './sheet.less';
@import './inventory.less';

View file

@ -1,5 +1,6 @@
@import '../../../utils/colors.less';
@import '../../../utils/fonts.less';
@import '../../../utils/mixin.less';
.application.sheet.daggerheart.actor.dh-style.party {
.tab.inventory {
@ -8,8 +9,9 @@
flex-direction: column;
gap: 10px;
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%, black 95%, transparent 100%);
padding: 20px 0;
margin-top: 20px;
padding-bottom: 4px;
.with-scroll-shadows();
}
}
}

View file

@ -2,16 +2,6 @@
@import '../../../utils/fonts.less';
@import '../../../utils/mixin.less';
body.game:is(.performance-low, .noblur) {
.application.sheet.daggerheart.actor.dh-style.party .tab.resources .actors-list .actor-resources {
background: light-dark(@dark-blue, @dark-golden);
.actor-name {
background: light-dark(@dark-blue, @dark-golden);
}
}
}
.application.sheet.daggerheart.actor.dh-style.party .tab.partyMembers {
overflow: auto;
@ -58,7 +48,7 @@ body.game:is(.performance-low, .noblur) {
border-radius: 50%;
width: 24px;
height: 24px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
object-fit: cover;
}
}
@ -89,9 +79,9 @@ body.game:is(.performance-low, .noblur) {
display: flex;
gap: 4px;
background-color: light-dark(var(--color-light-1), @dark-blue);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
padding: 4px 6px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 3px;
align-items: baseline;
width: fit-content;
@ -103,7 +93,7 @@ body.game:is(.performance-low, .noblur) {
&.threshold-label {
font-size: var(--font-size-10);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
}
&.threshold-value {
@ -126,7 +116,7 @@ body.game:is(.performance-low, .noblur) {
width: 100%;
z-index: 1;
font-size: var(--font-size-20);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
font-weight: bold;
}
@ -142,9 +132,9 @@ body.game:is(.performance-low, .noblur) {
.hope-section {
display: flex;
background-color: light-dark(transparent, @dark-blue);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
padding: 3px 6px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 3px;
align-items: center;
width: fit-content;
@ -154,7 +144,7 @@ body.game:is(.performance-low, .noblur) {
font-size: var(--font-size-12);
font-weight: bold;
text-transform: uppercase;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
margin-right: 3px;
}
@ -222,9 +212,9 @@ body.game:is(.performance-low, .noblur) {
gap: 4px;
background-color: light-dark(@dark-blue-10, @dark-blue);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
padding: 2px 5px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 0 6px 6px 0;
width: fit-content;
min-height: 22px;
@ -242,7 +232,7 @@ body.game:is(.performance-low, .noblur) {
.slot {
width: 16px;
height: 10px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
background: light-dark(@dark-blue-10, @golden-10);
border-radius: 3px;
transition: all 0.3s ease;
@ -258,7 +248,7 @@ body.game:is(.performance-low, .noblur) {
.traits {
background-color: light-dark(@dark-blue-10, @dark-blue);
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
display: grid;
grid-template-columns: 1fr 1fr;
@ -270,7 +260,7 @@ body.game:is(.performance-low, .noblur) {
justify-content: space-between;
gap: 3px;
.label {
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
}
.value {
font-weight: 600;

View file

@ -2,35 +2,12 @@
@import './actors/actor-sheet-shared.less';
@import './actors/adversary/actions.less';
@import './actors/adversary/header.less';
@import './actors/adversary/sheet.less';
@import './actors/adversary/sidebar.less';
@import './actors/adversary/effects.less';
@import './actors/character/biography.less';
@import './actors/character/effects.less';
@import './actors/character/features.less';
@import './actors/character/header.less';
@import './actors/character/inventory.less';
@import './actors/character/loadout.less';
@import './actors/character/sheet.less';
@import './actors/character/sidebar.less';
@import './actors/companion/details.less';
@import './actors/companion/header.less';
@import './actors/companion/sheet.less';
@import './actors/companion/effects.less';
@import './actors/environment/actions.less';
@import './actors/environment/header.less';
@import './actors/environment/potentialAdversaries.less';
@import './actors/environment/sheet.less';
@import './actors/party/header.less';
@import './actors/party/party-members.less';
@import './actors/party/sheet.less';
@import './actors/party/inventory.less';
@import './actors/adversary/index.less';
@import './actors/character/index.less';
@import './actors/companion/index.less';
@import './actors/environment/index.less';
@import './actors/npc/index.less';
@import './actors/party/index.less';
@import './items/beastform.less';
@import './items/class.less';

View file

@ -31,7 +31,7 @@
}
i {
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
}
}
}
@ -71,7 +71,7 @@
align-items: center;
justify-content: center;
gap: 10px;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
.main-value {
font-size: var(--font-size-24);
@ -153,7 +153,7 @@
cursor: pointer;
padding: 5px;
background: light-dark(@dark-blue-10, @golden-10);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
&.finished {
background-color: initial;

View file

@ -93,7 +93,7 @@
}
a[href] {
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
}
a[href]:hover,
@ -195,7 +195,7 @@ fieldset.daggerheart.chat {
&:before,
&:after {
content: '\f0d8';
font-family: 'Font Awesome 6 Pro';
font-family: var(--font-awesome);
}
}
&.expanded {

View file

@ -17,7 +17,7 @@
position: relative;
border: 0;
box-shadow: none;
color: var(--color-text-primary);
color: @color-text-primary;
width: 300px;
pointer-events: all;
align-self: flex-end;

View file

@ -20,7 +20,7 @@
.effect-container {
position: relative;
pointer-events: all;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 3px;
img {

View file

@ -1,5 +1,6 @@
@import '../../utils/colors.less';
@import '../../utils/fonts.less';
@import '../../utils/mixin.less';
.application.daggerheart.dh-style.compendium-browser {
border: initial;
@ -125,6 +126,7 @@
.form-group {
white-space: nowrap;
gap: 0;
}
.filter-header {
@ -168,6 +170,10 @@
}
}
}
.filter-content {
margin-top: 8px;
}
}
.folder-list {
@ -195,7 +201,7 @@
font-weight: bold;
border-radius: 3px;
background-color: light-dark(@dark-blue-40, @golden-40);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
}
.subfolder-list {
@ -213,7 +219,7 @@
font-weight: bold;
border-radius: 3px;
background-color: light-dark(@dark-blue-10, @golden-10);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
}
.wrapper {
@ -237,10 +243,11 @@
.compendium-sidebar > .folder-list {
overflow-y: auto;
scrollbar-gutter: stable;
.with-scroll-shadows();
}
.item-list-header,
.item-list [data-action='expandContent'] {
.item-list .item-info[data-action] {
display: flex;
> * {
@ -260,8 +267,8 @@
.item-list-header {
align-items: center;
background-color: light-dark(@dark-15, @dark-golden-80);
color: light-dark(@dark-blue, @golden);
border: 1px solid light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
border: 1px solid @color-border;
border-radius: 3px;
min-height: 30px;
font-weight: bold;
@ -272,7 +279,7 @@
div[data-sort-key] {
&:after {
font-family: 'Font Awesome 6 Pro';
font-family: var(--font-awesome);
margin-left: 5px;
}

View file

@ -60,7 +60,7 @@
position: relative;
display: flex;
justify-content: center;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
&.selectable {
@ -76,7 +76,7 @@
.domain-label {
position: absolute;
top: 4px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
padding: 0 2px;
color: light-dark(@dark, @beige);

View file

@ -24,7 +24,7 @@
.resource-icons-container {
display: flex;
justify-content: space-between;
gap: 8px;
gap: 10px;
width: 100%;
.resource-icon-container {
@ -61,7 +61,7 @@
display: flex;
align-items: center;
gap: 4px;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
i {
font-size: 14px;

View file

@ -21,7 +21,7 @@
border: 1px solid;
border-radius: 6px;
padding: 0 8px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
color: light-dark(@dark, @beige);
background-image: url('../assets/parchments/dh-parchment-dark.png');
cursor: pointer;

View file

@ -1,6 +1,67 @@
@import '../../utils/colors.less';
.daggerheart.dh-style.setting {
--color-form-label: @color-text-primary;
h2,
h3,
h4 {
margin: 8px 0 4px;
text-align: center;
}
footer {
margin-top: 8px;
display: flex;
gap: 8px;
button {
flex: 1;
}
}
.standard-form {
gap: var(--spacer-8);
.form-group .form-fields {
width: unset;
}
}
.form-group {
display: flex;
justify-content: space-between;
align-items: center;
gap: 0.25rem 0.5rem;
flex-wrap: wrap;
label {
font-size: var(--font-size-14);
font-weight: normal;
line-height: var(--input-height);
}
.form-fields {
display: flex;
gap: 4px;
align-items: center;
}
&.setting-two-values {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 0.25rem 0.5rem;
.form-group {
justify-content: end;
flex-wrap: nowrap;
}
.hint {
grid-column: 1 / -1;
}
}
}
fieldset {
display: flex;
flex-direction: column;
@ -19,7 +80,10 @@
&.three-columns {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 2px;
gap: 4px;
.form-group label {
line-height: unset;
}
}
&.six-columns {

View file

@ -34,7 +34,7 @@
cursor: pointer;
padding: 5px;
background: light-dark(@dark-blue-10, @golden-10);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
.label {
font-style: normal;

View file

@ -51,6 +51,7 @@
--dark-blue-50: #18162e50;
--dark-blue-60: #18162e60;
--dark-blue-90: #18162e90;
--dark-blue-c0: #18162ec0;
--semi-transparent-dark-blue: rgba(24, 22, 46, 0.33);
--dark: #222222;
@ -70,6 +71,7 @@
--beige-filter: brightness(0) saturate(100%) invert(87%) sepia(25%) saturate(164%) hue-rotate(339deg) brightness(106%) contrast(87%);
--bright-beige-filter: brightness(0) saturate(100%) invert(87%) sepia(15%) saturate(343%) hue-rotate(333deg) brightness(110%) contrast(87%);
--light-white: rgba(255, 255, 255, 0.3);
--soft-white-shadow: rgba(255, 255, 255, 0.05);
--light-black: rgba(0, 0, 0, 0.3);
@ -84,6 +86,47 @@
--primary-color-fear: rgba(9, 71, 179, 0.75);
}
/**
* Override core foundry color variables in theme scopes, and add some new theme specific variants.
* These are intended to be more representative of its use case, so avoid naming these after the color.
* Some foundry variables are heavily scoped and we need to redefine them (https://github.com/foundryvtt/foundryvtt/issues/12893)
* Convention for the redefined ones is --dh-{element}-color-{thing}
*/
@scope (.theme-light) to (.themed) {
.dh-style :scope,
:scope.dh-style,
.dh-style,
.duality {
--color-border: @dark-blue;
--color-fieldset-border: @dark-blue;
--color-text-emphatic: @dark-blue;
--color-text-subtle: #555;
--dh-color-text-shadow-contrast: #ffffffa0;
--dh-input-color-border: @dark;
--dh-input-color-text: @dark;
--dh-trait-color-bg: #b1afb6;
--dh-trait-color-border: #8e8d96;
}
}
@scope (.theme-dark) to (.themed) {
.dh-style :scope,
:scope.dh-style,
.dh-style,
.duality {
--color-border: @golden;
--color-fieldset-border: @golden;
--color-text-emphatic: @golden;
--color-text-subtle: #a29086;
--dh-color-text-shadow-contrast: @dark-80;
--dh-input-color-border: @beige;
--dh-input-color-text: @beige;
--dh-trait-color-bg: #50433F;
--dh-trait-color-border: #927952;
}
}
@primary-blue: var(--primary-blue, #1488cc);
@secondary-blue: var(--secondary-blue, #2b32b2);
@ -136,6 +179,7 @@
@dark-blue-50: var(--dark-blue-50, #18162e50);
@dark-blue-60: var(--dark-blue-60, #18162e60);
@dark-blue-90: var(--dark-blue-90, #18162e90);
@dark-blue-c0: var(--dark-blue-c0, #18162ec0);
@semi-transparent-dark-blue: var(--semi-transparent-dark-blue, rgba(24, 22, 46, 0.33));
@dark: var(--dark, #222222);
@ -157,6 +201,7 @@
@soft-white-shadow: var(--soft-white-shadow, rgba(255, 255, 255, 0.05));
@light-white: var(--light-white, rgba(255, 255, 255, 0.3));
@light-black: var(--light-black, rgba(0, 0, 0, 0.3));
@soft-shadow: var(--soft-shadow, rgba(0, 0, 0, 0.05));
@ -188,3 +233,15 @@
box-shadow: 0 0 2px 2px @dark-blue;
}
}
// LESS variable versions of core foundry color variables
@color-border: var(--color-border);
@color-fieldset-border: var(--color-fieldset-border);
@color-text-emphatic: var(--color-text-emphatic);
@color-text-primary: var(--color-text-primary);
@color-text-subtle: var(--color-text-subtle);
@color-text-shadow-contrast: var(--dh-color-text-shadow-contrast);
@input-color-border: var(--dh-input-color-border);
@input-color-text: var(--dh-input-color-text);
@trait-color-bg: var(--dh-trait-color-bg);
@trait-color-border: var(--dh-trait-color-border);

View file

@ -5,16 +5,16 @@
*/
.appTheme(@darkRules, @lightRules) {
// Dark theme selectors
.themed.theme-dark .application.daggerheart.sheet.dh-style,
.themed.theme-dark.application.daggerheart.sheet.dh-style,
.themed.theme-dark .application.daggerheart.dh-style,
.themed.theme-dark.application.daggerheart.dh-style,
body.theme-dark .application.daggerheart,
body.theme-dark.application.daggerheart {
@darkRules();
}
// Light theme selectors
.themed.theme-light .application.daggerheart.sheet.dh-style,
.themed.theme-light.application.daggerheart.sheet.dh-style,
.themed.theme-light .application.daggerheart.dh-style,
.themed.theme-light.application.daggerheart.dh-style,
body.theme-light .application.daggerheart,
body.theme-light.application.daggerheart {
@lightRules();
@ -50,14 +50,15 @@
*/
.dh-typography() {
h1 {
--dh-input-color-text: @color-text-emphatic;
font-family: @font-title;
margin: 0;
border: none;
font-weight: normal;
}
h1 input[type='text'] {
font-family: @font-title;
input[type='text'],
.input[contenteditable] {
font-family: @font-title;
}
}
h2,
@ -114,3 +115,92 @@
font-family: @font-body;
}
}
// A simple ease-out mask
.smooth-gradient-ease-out(@param, @to, @destination, @length) {
@{param}+: linear-gradient(
@to,
transparent 0%,
rgb(from @destination r g b / ~"calc(alpha * 0.013)") calc(0.008 * @length),
rgb(from @destination r g b / ~"calc(alpha * 0.049)") calc(0.029 * @length),
rgb(from @destination r g b / ~"calc(alpha * 0.104)") calc(0.064 * @length),
rgb(from @destination r g b / ~"calc(alpha * 0.259)") calc(0.166 * @length),
rgb(from @destination r g b / ~"calc(alpha * 0.45)") calc(0.304 * @length),
rgb(from @destination r g b / ~"calc(alpha * 0.741)") calc(0.554 * @length),
rgb(from @destination r g b / ~"calc(alpha * 0.825)") calc(0.644 * @length),
rgb(from @destination r g b / ~"calc(alpha * 0.896)") calc(0.735 * @length),
rgb(from @destination r g b / ~"calc(alpha * 0.951)") calc(0.825 * @length),
rgb(from @destination r g b / ~"calc(alpha * 0.987)") calc(0.914 * @length),
@destination @length
);
}
/**
* A simple ease in and out mask.
* @param - the parameter to add to
* @param - direction, such as "to top"
* @destination - the color at the destination. The origin is always transparent
* @length - the value at the destination
*/
.smooth-gradient-ease-in-out(@param, @to, @destination, @length: 100%) {
@{param}+: linear-gradient(
@to,
transparent 0%,
rgb(from @destination r g b / ~"calc(alpha * 0.013)") calc(0.081 * @length),
rgb(from @destination r g b / ~"calc(alpha * 0.049)") calc(0.155 * @length),
rgb(from @destination r g b / ~"calc(alpha * 0.104)") calc(0.225 * @length),
rgb(from @destination r g b / ~"calc(alpha * 0.259)") calc(0.353 * @length),
rgb(from @destination r g b / ~"calc(alpha * 0.45)") calc(0.471 * @length),
rgb(from @destination r g b / ~"calc(alpha * 0.741)") calc(0.647 * @length),
rgb(from @destination r g b / ~"calc(alpha * 0.825)") calc(0.71 * @length),
rgb(from @destination r g b / ~"calc(alpha * 0.896)") calc(0.775 * @length),
rgb(from @destination r g b / ~"calc(alpha * 0.951)") calc(0.845 * @length),
rgb(from @destination r g b / ~"calc(alpha * 0.987)") calc(0.914 * @length),
@destination @length
);
}
// Scroll shadows, but only if the browser supports. At the time of writing, this doesn't work on firefox
@supports ((animation-timeline: scroll()) and (animation-range: 0% 100%)) {
@property --fade-start {
syntax: "<length>";
inherits: false;
initial-value: 0;
}
@property --fade-end {
syntax: "<length>";
inherits: false;
initial-value: 0;
}
@keyframes scrollfade {
0% {
--fade-start: 0;
}
10%, 100% {
--fade-start: 12px;
}
0%, 90% {
--fade-end: 12px;
}
100% {
--fade-end: 0;
}
}
}
.with-scroll-shadows() {
animation: scrollfade;
animation-timeline: --scrollfade;
animation-range: entry 0% exit 100%;
scroll-timeline: --scrollfade y;
mask-image: linear-gradient(
0deg,
transparent 0%,
black var(--fade-end),
black calc(100% - var(--fade-start)),
transparent 100%
);
}

View file

@ -83,7 +83,7 @@
appearance: none;
width: 100%;
height: 30px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
z-index: 1;
background: @dark-blue;
@ -118,13 +118,13 @@
flex-wrap: wrap;
gap: 4px;
padding: 5px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
z-index: 1;
background: @dark-blue;
align-items: center;
justify-content: center;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
min-height: 30px;
width: 100%;

View file

@ -9,9 +9,9 @@
display: flex;
gap: 10px;
background-color: light-dark(transparent, @dark-blue);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
padding: 5px 10px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
align-items: center;
width: fit-content;
@ -22,7 +22,7 @@
font-size: var(--font-size-14);
font-weight: bold;
text-transform: uppercase;
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
margin: 0;
}

View file

@ -3,7 +3,7 @@ aside[role='tooltip']:has(div.daggerheart.dh-style.tooltip),
#tooltip.bordered-tooltip {
.tooltip-title {
font-size: var(--font-size-20);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
font-weight: 700;
}

View file

@ -132,7 +132,7 @@ aside[role='tooltip']:has(div.daggerheart.dh-style.tooltip.card-style) {
border-radius: 3px;
padding: 3px;
background: light-dark(@dark-blue-60, @rustic-brown-80);
color: light-dark(@dark-blue, @golden);
color: @color-text-emphatic;
font-size: 12px;
margin-bottom: 10px;
}
@ -238,7 +238,7 @@ aside[role='tooltip'].locked-tooltip:has(div.daggerheart.dh-style.tooltip.card-s
.tooltip-chip {
font-size: var(--font-size-18);
padding: 2px 4px;
border: 1px solid light-dark(@dark-blue, @golden);
border: 1px solid @color-border;
border-radius: 6px;
color: light-dark(@dark, @beige);
background-image: url(../assets/parchments/dh-parchment-dark.png);