[Feature] 613 - Countdown Improvements (#1184)

* Added CountdownEdit view

* Added countdowns UI element

* .

* Fixed migration of countdowns

* .

* .

* style countdown interface, application and ownership dialog

* fix buttons height in ownsership selection

* .

* Added coloured pips to UI cooldowns to signify player visibility if not every player has it

* .

* Added max-height and overflow

* Sync countdown current with max when equal (#1221)

* Update module/applications/ui/countdownEdit.mjs

Co-authored-by: Carlos Fernandez <CarlosFdez@users.noreply.github.com>

* .

---------

Co-authored-by: moliloo <dev.murilobrito@gmail.com>
Co-authored-by: Carlos Fernandez <CarlosFdez@users.noreply.github.com>
This commit is contained in:
WBHarry 2025-10-27 22:24:38 +01:00 committed by GitHub
parent 07cdcf2d78
commit 906c7ac853
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
24 changed files with 1024 additions and 498 deletions

View file

@ -0,0 +1,142 @@
@import '../../utils/colors.less';
@import '../../utils/fonts.less';
.theme-light .daggerheart.application.dh-style.countdown-edit {
background-image: url('../assets/parchments/dh-parchment-light.png');
}
.daggerheart.application.dh-style.countdown-edit {
color: light-dark(@dark, @beige);
background-image: url('../assets/parchments/dh-parchment-dark.png');
.edit-container {
display: flex;
flex-direction: column;
gap: 8px;
h2 {
text-align: center;
color: light-dark(@dark, @golden);
}
.header-tools {
display: grid;
grid-template-columns: 2fr 1fr 144px;
gap: 8px;
.hide-tools {
white-space: nowrap;
flex-wrap: nowrap;
display: flex;
align-items: center;
input {
position: relative;
top: 2px;
}
}
.header-main-button {
height: 32px;
flex: 1;
}
.default-ownership-tools {
display: flex;
align-items: center;
gap: 8px;
select {
flex: 1;
background: light-dark(@beige, @dark-blue);
}
}
}
.edit-content {
display: flex;
flex-direction: column;
gap: 8px;
overflow-y: auto;
overflow-x: hidden;
max-height: 500px;
scrollbar-width: thin;
scrollbar-color: light-dark(@dark-blue, @golden) transparent;
.countdown-edit-container {
display: grid;
grid-template-columns: 48px 1fr 64px;
align-items: center;
gap: 8px;
img {
width: 52px;
height: 52px;
border-radius: 6px;
}
.countdown-edit-text {
display: flex;
flex-direction: column;
justify-content: center;
gap: 8px;
.countdown-edit-subtext {
display: flex;
gap: 10px;
.countdown-edit-sub-tag {
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;
}
}
}
.countdown-edit-tools {
display: flex;
gap: 8px;
&.same-row {
margin-top: 17.5px;
}
a {
font-size: 16px;
}
}
}
.countdown-edit-subrow {
display: flex;
gap: 16px;
margin: 0 72px 0 56px;
}
.countdown-edit-input {
flex: 1;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 2px;
&.tiny {
flex: 0;
input {
min-width: 2.5rem;
}
}
input,
select {
background: light-dark(@beige, @dark-blue);
color: light-dark(@dark, @beige);
}
}
}
}
}

View file

@ -1,60 +1,130 @@
@import '../../utils/colors.less';
@import '../../utils/fonts.less';
.daggerheart.dh-style.countdown {
fieldset {
align-items: center;
margin-top: 5px;
border-radius: 6px;
border-color: light-dark(@dark-blue, @golden);
.theme-dark {
.daggerheart.dh-style.countdowns {
background-image: url(../assets/parchments/dh-parchment-dark.png);
legend {
font-weight: bold;
color: light-dark(@dark-blue, @golden);
a {
text-shadow: none;
}
.window-header {
background-image: url(../assets/parchments/dh-parchment-dark.png);
}
}
}
.daggerheart.dh-style.countdowns {
z-index: var(--z-index-ui) !important;
border: 0;
border-radius: 4px;
box-shadow: none;
width: 300px;
top: 16px;
right: 64px;
transition:
right ease 250ms,
opacity var(--ui-fade-duration) ease,
opacity var(--ui-fade-duration);
.window-title {
font-family: @font-body;
}
&.expanded {
right: 364px;
}
&.icon-only {
width: 180px;
min-width: 180px;
}
.window-header {
cursor: default;
border-bottom: 0;
}
.window-content {
padding-top: 4px;
padding-bottom: 16px;
overflow: auto;
max-height: 312px;
.countdowns-container {
display: flex;
flex-direction: column;
gap: 8px;
.countdown-container {
display: flex;
justify-content: space-between;
&.icon-only {
gap: 8px;
.countdown-main-container {
.countdown-content {
justify-content: center;
.countdown-tools {
gap: 8px;
}
}
}
}
.countdown-main-container {
display: flex;
align-items: center;
gap: 16px;
img {
width: 44px;
height: 44px;
border-radius: 6px;
}
.countdown-content {
display: flex;
flex-direction: column;
justify-content: space-between;
.countdown-tools {
display: flex;
align-items: center;
gap: 16px;
.progress-tag {
border: 1px solid;
border-radius: 4px;
padding: 2px 4px;
background-color: light-dark(@beige, @dark-blue);
}
}
}
}
.countdown-access-container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-auto-rows: min-content;
width: 38px;
gap: 4px;
.countdown-access {
height: 10px;
width: 10px;
border-radius: 50%;
border: 1px solid light-dark(@dark-blue, @beige-80);
content: '';
}
}
.countdown-no-access-container {
width: 38px;
display: flex;
align-items: center;
justify-content: center;
}
}
}
}
.minimized-view {
display: flex;
gap: 8px;
flex-wrap: wrap;
.mini-countdown-container {
width: fit-content;
display: flex;
align-items: center;
gap: 8px;
border: 2px solid light-dark(@dark-blue, @golden);
border-radius: 6px;
padding: 0 4px 0 0;
background-image: url('../assets/parchments/dh-parchment-light.png');
color: light-dark(@beige, @dark);
cursor: pointer;
&.disabled {
cursor: initial;
}
img {
width: 30px;
height: 30px;
border-radius: 6px 0 0 6px;
}
.mini-countdown-name {
white-space: nowrap;
}
.mini-countdown-value {
}
}
}
.hidden {
display: none;
}
}

View file

@ -13,6 +13,7 @@
@import './item-browser/item-browser.less';
@import './countdown/countdown.less';
@import './countdown/countdown-edit.less';
@import './countdown/sheet.less';
@import './ownership-selection/ownership-selection.less';

View file

@ -6,9 +6,15 @@
flex-direction: column;
gap: 8px;
.ownership-list {
display: flex;
flex-direction: column;
gap: 10px;
margin-top: 10px;
}
.ownership-container {
display: flex;
border: 2px solid light-dark(@dark-blue, @golden);
border-radius: 6px;
padding: 0 4px 0 0;
align-items: center;
@ -17,12 +23,24 @@
img {
height: 40px;
width: 40px;
border-radius: 6px 0 0 6px;
border-radius: 50%;
}
span {
flex: 3;
}
select {
flex: 1;
margin: 4px 0;
}
}
footer {
margin-top: 10px;
button {
height: 32px;
}
}
}
}

View file

@ -1,5 +1,17 @@
.tab.sidebar-tab.daggerheartMenu-sidebar {
padding: 0 4px;
padding: 4px;
div[data-application-part] {
display: flex;
flex-direction: column;
gap: 8px;
}
h2 {
margin-top: 8px;
text-align: center;
font-weight: bold;
}
.menu-refresh-container {
display: flex;