daggerheart/styles/application.less
WBHarry 187ee3e1bd
Refactor/84 data models structure (#131)
* - Move all DataModel item files to a new 'items' subfolder for better organization
- Add _module.mjs file to simplify imports
- Update all import paths
- Rename class for use the new acronym DH

* FIX: remove unnecessary import

* FEAT: BaseDataItem class
add TODO comments for future improvements
FIX: Remove effect field on template
FIX: remove unused DhpEffects file

* FEAT: new FormulaField class
FEAT: add getRollData on BaseDataItem Class
FEAT: weapon
FIX: remove inventoryWeapon field on Weapon Data Model

* FEAT: add class prepareBaseData for domains

* FEAT: new ForeignDocumentUUIDField
FIX: Remove unnecessary fields
FEAT: use ForeignDocumentUUIDField in the Item Class DataModel

* FIX: remove wrong option in String Field

* FIX: remove unused import

* FIX: ADD htmlFields description in manifest

* FIX: minor fixes

* REFACTOR: rename folder `data/items` -> `data/item`
REFACTOR: rename folder `data/messages` -> `data/chat-message`.

* FIX: imports
FIX: items sheet new paths
FIX: ItemDataModelMetadata type jsdoc

* FEAT: formatting code
FIX: fix fields used
FEAT: add jsdoc

* 110 - Class Data Model (#111)

* Added PreCreate/Create/Delete logic for Class/Subclass and set it as foreignUUID fields in PC

* Moved methods into TypedModelData

* Simplified Subclass

* Fixed up data model and a basic placeholder template (#117)

* 118 - adversary data model (#119)

* Fixed datamodel and set up basic template in new style

* Added in a temp attack button, because why not

* Restored HitPoints counting up

* 113 - Character Data Model (#114)

* Improved Character datamodel

* Removed additional unneccessary getters

* Preliminary cleanup in the class sheet

* Cleanup of 'pc' references

* Corrected Duality rolling from Character

* Fix to damage roll

* Added a basic BaseDataActor data model

* Gathered exports

* getRollData recursion fix

* Feature/112 items use action datamodel (#127)

* Create new actions classes

* actions types - attack roll

* fixes before merge

* First PR

* Add daggerheart.css to gitignore

* Update ToDo

* Remove console log

* Fixed chat /dr roll

* Remove jQuery

* Fixed so the different chat themes work again

* Fixed duality roll buttons

* Fix to advantage/disadvantage shortcut

* Extand action to other item types

* Roll fixes

* Fixes to adversary rolls

* resources

* Fixed adversary dice

---------

Co-authored-by: WBHarry <williambjrklund@gmail.com>

* Feature/116-implementation-of-pseudo-documents (#125)

* FEAT: add baseDataModel logic

* FEAT: new PseudoDocumentsField
FIX: BasePseudoDocument 's getEmbeddedDocument

* FEAT: PseudoDocument class

* FEAT: add TypedPseudoDocument
REFACTOR: PreudoDocument
FIX: Typos Bug

* FIX: CONFIG types

* FEAT: basic PseudoDocumentSheet

* FIX: remove schema
ADD: input of example

---------

Co-authored-by: Joaquin Pereyra <joaquinpereyra98@users.noreply.github.com>
Co-authored-by: WBHarry <williambjrklund@gmail.com>

* Levelup Followup (#126)

* Levelup applies bonuses to character

* Added visualisation of domain card levels

* Fixed domaincard level max for selections in a tier

* A trait can now only be level up once within the same tier

---------

Co-authored-by: Joaquin Pereyra <joaquinpereyra98@users.noreply.github.com>
Co-authored-by: joaquinpereyra98 <24190917+joaquinpereyra98@users.noreply.github.com>
Co-authored-by: Dapoulp <74197441+Dapoulp@users.noreply.github.com>
2025-06-13 14:17:13 +02:00

600 lines
17 KiB
Text

form.daggerheart.views.downtime {
// Shouldn't be needed, but DEFAULT_OPTIONS doesn't accept Height: 'auto'
height: auto !important;
}
div.daggerheart.views.death-move {
// Shouldn't be needed, but DEFAULT_OPTIONS doesn't accept Height: 'auto'
height: auto !important;
}
div.daggerheart.views.multiclass {
// Shouldn't be needed, but DEFAULT_OPTIONS doesn't accept Height: 'auto'
height: auto !important;
}
.daggerheart.views {
&.levelup {
.levelup-title-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: 32px;
margin-bottom: 4px;
.level-title {
text-decoration: underline;
}
.level-display {
display: flex;
align-items: center;
i {
margin: 0 @halfMargin;
}
}
}
.levelup-section {
display: flex;
align-items: flex-start;
margin-bottom: 8px;
font-size: 11px;
.levelup-container {
flex: 1;
&:nth-of-type(2) {
padding: 0 4px;
}
&.disabled {
opacity: 0.2;
}
.levelup-inner-container {
height: 700px;
padding: 24px 58px 0;
display: flex;
flex-direction: column;
align-items: center;
position: relative;
.levelup-legend {
margin-left: auto;
margin-right: auto;
font-weight: bold;
z-index: 1;
}
.levelup-info {
background: @primaryAccent;
width: 100%;
text-align: center;
position: absolute;
top: -6px;
padding: 8px 0;
}
.levelup-pretext {
padding: 8px 0;
}
.levelup-body {
display: flex;
flex-direction: column;
.levelup-choice-row {
display: flex;
align-items: center;
padding: 4px;
.levelup-choice-row-inner {
display: flex;
align-items: center;
}
.levelup-choice-input-container {
position: relative;
display: flex;
align-items: center;
input {
&:disabled:checked::before {
opacity: 0.4;
color: var(--color-warm-1);
}
}
i.fa-link {
transform: rotate(45deg);
position: relative;
top: 2px;
margin: 0 -3px;
}
i.fa-lock {
position: absolute;
top: 0;
left: 0;
font-size: 8px;
}
}
}
}
.levelup-posttext {
padding: 8px 0;
}
}
}
}
}
.downtime-container {
.activity-container {
display: flex;
align-items: center;
padding: 8px;
.activity-title {
flex: 1;
display: flex;
align-items: center;
.activity-title-text {
font-size: 24px;
font-weight: bold;
}
.activity-image {
width: 120px;
border: 2px solid black;
border-radius: 50%;
margin-right: 8px;
cursor: pointer;
&:hover,
&.selected {
filter: drop-shadow(0 0 6px gold);
}
}
.custom-name-input {
font-size: 24px;
font-weight: bold;
padding: 0;
background: transparent;
color: rgb(239, 230, 216);
}
}
.activity-body {
flex: 1;
font-style: italic;
}
}
}
&.downtime {
.activity-text-area {
resize: none;
}
}
.range-reset {
flex: 0;
width: 21px;
height: 21px;
margin: 3px 4px;
border: 1px solid black;
display: flex;
align-items: center;
justify-content: center;
}
&.roll-selection {
.roll-selection-container {
i {
filter: invert(0%) sepia(100%) saturate(0%) hue-rotate(21deg) brightness(17%) contrast(103%);
}
}
.roll-dialog-container {
.disadvantage,
.advantage {
border: 2px solid @secondaryAccent;
border-radius: 6px;
display: flex;
align-items: center;
padding: 4px;
margin-bottom: 6px;
&.selected {
filter: drop-shadow(0px 0px 3px @mainShadow);
}
input {
border: 0;
}
button {
flex: 0;
border-radius: 50%;
height: 20px;
width: 20px;
display: flex;
align-items: center;
justify-content: center;
margin: 2px 0 2px 4px;
padding: 12px;
i {
margin: 0;
}
}
}
.roll-dialog-experience-container {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: @halfMargin;
.roll-dialog-chip {
border: @thinBorder solid black;
border-radius: 6px;
min-width: calc(33% - 2px);
flex: 1;
display: flex;
align-items: center;
justify-content: center;
gap: @halfMargin;
cursor: pointer;
padding: @fullPadding;
background: grey;
overflow: hidden;
font-weight: bold;
&.hover {
filter: drop-shadow(0 0 3px @mainShadow);
}
span {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
&.selected {
background: green;
span {
filter: drop-shadow(0 0 3px @secondaryShadow);
}
}
}
}
.hope-container {
display: flex;
gap: @fullMargin;
align-items: center;
font-size: 18px;
}
}
}
&.npc-roll-selection {
.npc-roll-dialog-container {
display: flex;
flex-direction: column;
.selection-container {
display: flex;
align-items: center;
margin-bottom: @fullMargin;
gap: 16px;
.dice-container {
display: flex;
align-items: center;
flex: 1;
.dice-inner-container {
position: relative;
display: flex;
align-items: center;
justify-content: center;
i {
font-size: 18px;
}
img {
border: 0;
position: relative;
left: 1px;
}
.dice-number {
position: absolute;
font-size: 24px;
font-weight: bold;
}
}
.advantage-container {
display: flex;
flex-direction: column;
gap: 2px;
flex: 1;
.advantage-button {
&.active,
&:hover {
background: var(--button-hover-background-color);
}
}
}
}
}
.roll-dialog-experience-container {
display: flex;
align-items: flex-start;
flex-wrap: wrap;
gap: @halfMargin;
flex: 1;
height: 100%;
.experience-chip {
opacity: 0.6;
border-radius: 16px;
width: calc(50% - 4px);
white-space: nowrap;
&.active,
&:hover {
opacity: 1;
background: var(--button-hover-background-color);
}
}
}
}
}
&.multiclass {
.multiclass-container {
margin-bottom: @largeMargin;
.multiclass-category-title {
margin-top: @largeMargin;
}
.multiclass-class-choices {
display: flex;
width: 100%;
height: 100%;
flex-wrap: wrap;
}
.multiclass-spaced-choices {
display: flex;
justify-content: space-around;
width: 100%;
height: 100%;
}
.multiclass-class-choice {
display: flex;
align-items: center;
flex-basis: 33.33%;
font-weight: bold;
font-size: 24px;
cursor: pointer;
&.selected:not(.disabled),
&:hover:not(.disabled) {
filter: drop-shadow(0 0 3px gold);
}
&.inactive,
&.disabled {
cursor: initial;
opacity: 0.4;
}
img {
width: 80px;
height: 80px;
margin-right: @largeMargin;
}
}
}
}
&.damage-selection {
.hope-container {
display: flex;
gap: @fullMargin;
align-items: center;
font-size: 18px;
}
}
&.action {
.action-category {
display: flex;
flex-direction: column;
.action-category-label {
display: flex;
align-items: center;
justify-content: space-between;
border-radius: 6px;
cursor: pointer;
padding: 0 @fullPadding;
margin: 0 auto @halfMargin;
&:hover {
background-color: darkgray;
}
}
.action-category-data {
max-height: 0;
transition: max-height 0.2s ease-in-out;
overflow: hidden;
&.open {
max-height: initial;
}
.multi-display {
display: flex;
gap: 1rem;
align-items: center;
.form-group {
flex: 1;
}
}
.form-group {
display: flex;
align-items: center;
margin-bottom: 0.5rem;
label {
flex: 2;
}
.form-fields {
flex: 3;
}
img {
width: 1.5rem;
height: 1.5rem;
}
}
.data-form-array {
border: 1px solid var(--color-fieldset-border);
padding: 0.5rem;
margin-bottom: 0.5rem;
}
}
}
}
&.ancestry-selection {
.ancestry-section {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: @fullMargin;
.ancestry-container {
width: 100%;
display: flex;
flex-wrap: wrap;
.ancestry-inner-container {
flex-basis: 25%;
display: flex;
flex-direction: column;
align-items: center;
.image-container {
img {
width: 120px;
border: 4px solid black;
border-radius: 50%;
&.selected {
border-color: @secondaryShadow;
}
&:hover:not(.selected) {
filter: drop-shadow(0 0 3px @secondaryShadow);
}
&.disabled {
opacity: 0.3;
}
}
}
.name-container {
div {
font-size: 18px;
font-weight: bold;
cursor: help;
}
}
}
}
.mixed-ancestry-container {
width: 100%;
display: flex;
gap: @fullMargin;
> div {
flex: 1;
}
.mixed-ancestry-name {
text-align: center;
div {
font-size: 24px;
}
}
.mixed-ancestry-images {
display: flex;
align-items: center;
gap: @halfMargin;
.mixed-ancestry-image {
position: relative;
max-width: 33%;
&:hover i {
opacity: 1;
}
i {
position: absolute;
font-size: 32px;
top: calc(50% - 20px);
left: calc(50% - 20px);
padding: @fullPadding;
background-color: grey;
opacity: 0;
cursor: pointer;
&:hover {
filter: drop-shadow(0 0 3px @secondaryShadow);
}
}
img {
max-width: 100%;
}
}
img {
max-width: 33%;
border: 4px solid black;
border-radius: 50%;
&.selected {
border-color: @secondaryShadow;
}
}
}
}
}
}
}