Merged with main

This commit is contained in:
WBHarry 2025-07-09 02:45:29 +02:00
commit b08a7be88a
89 changed files with 1922 additions and 11009 deletions

View file

@ -120,6 +120,7 @@ Hooks.once('init', () => {
CONFIG.ChatMessage.documentClass = documents.DhChatMessage; CONFIG.ChatMessage.documentClass = documents.DhChatMessage;
CONFIG.Canvas.rulerClass = placeables.DhRuler; CONFIG.Canvas.rulerClass = placeables.DhRuler;
CONFIG.Canvas.layers.templates.layerClass = placeables.DhTemplateLayer;
CONFIG.Combat.documentClass = documents.DhpCombat; CONFIG.Combat.documentClass = documents.DhpCombat;
CONFIG.ui.combat = applications.ui.DhCombatTracker; CONFIG.ui.combat = applications.ui.DhCombatTracker;
CONFIG.ui.chat = applications.ui.DhChatLog; CONFIG.ui.chat = applications.ui.DhChatLog;

View file

@ -20,6 +20,9 @@
"environment": "Environment" "environment": "Environment"
} }
}, },
"CONTROLS": {
"inFront": "In Front"
},
"DAGGERHEART": { "DAGGERHEART": {
"ACTIONS": { "ACTIONS": {
"Config": { "Config": {

View file

@ -128,7 +128,7 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2)
context.tabs.advancements.progress = { selected: selections, max: currentLevel.maxSelections }; context.tabs.advancements.progress = { selected: selections, max: currentLevel.maxSelections };
context.showTabs = this.tabGroups.primary !== 'summary'; context.showTabs = this.tabGroups.primary !== 'summary';
break; break;
const { current: currentActorLevel, changed: changedActorLevel } = this.actor.system.levelData.level;
const actorArmor = this.actor.system.armor; const actorArmor = this.actor.system.armor;
const levelKeys = Object.keys(this.levelup.levels); const levelKeys = Object.keys(this.levelup.levels);
let achivementProficiency = 0; let achivementProficiency = 0;

View file

@ -1,3 +1,4 @@
export { default as DhMeasuredTemplate } from './measuredTemplate.mjs'; export { default as DhMeasuredTemplate } from './measuredTemplate.mjs';
export { default as DhRuler } from './ruler.mjs'; export { default as DhRuler } from './ruler.mjs';
export { default as DhTemplateLayer } from './templateLayer.mjs';
export { default as DhTokenRuler } from './tokenRuler.mjs'; export { default as DhTokenRuler } from './tokenRuler.mjs';

View file

@ -0,0 +1,116 @@
export default class DhTemplateLayer extends foundry.canvas.layers.TemplateLayer {
static prepareSceneControls() {
const sc = foundry.applications.ui.SceneControls;
return {
name: 'templates',
order: 2,
title: 'CONTROLS.GroupMeasure',
icon: 'fa-solid fa-ruler-combined',
visible: game.user.can('TEMPLATE_CREATE'),
onChange: (event, active) => {
if (active) canvas.templates.activate();
},
onToolChange: () => canvas.templates.setAllRenderFlags({ refreshState: true }),
tools: {
circle: {
name: 'circle',
order: 1,
title: 'CONTROLS.MeasureCircle',
icon: 'fa-regular fa-circle',
toolclip: {
src: 'toolclips/tools/measure-circle.webm',
heading: 'CONTROLS.MeasureCircle',
items: sc.buildToolclipItems(['create', 'move', 'edit', 'hide', 'delete'])
}
},
cone: {
name: 'cone',
order: 2,
title: 'CONTROLS.MeasureCone',
icon: 'fa-solid fa-angle-left',
toolclip: {
src: 'toolclips/tools/measure-cone.webm',
heading: 'CONTROLS.MeasureCone',
items: sc.buildToolclipItems(['create', 'move', 'edit', 'hide', 'delete', 'rotate'])
}
},
inFront: {
name: 'inFront',
order: 3,
title: 'CONTROLS.inFront',
icon: 'fa-solid fa-eye',
toolclip: {
src: 'toolclips/tools/measure-cone.webm',
heading: 'CONTROLS.inFront',
items: sc.buildToolclipItems(['create', 'move', 'edit', 'hide', 'delete', 'rotate'])
}
},
rect: {
name: 'rect',
order: 4,
title: 'CONTROLS.MeasureRect',
icon: 'fa-regular fa-square',
toolclip: {
src: 'toolclips/tools/measure-rect.webm',
heading: 'CONTROLS.MeasureRect',
items: sc.buildToolclipItems(['create', 'move', 'edit', 'hide', 'delete', 'rotate'])
}
},
ray: {
name: 'ray',
order: 5,
title: 'CONTROLS.MeasureRay',
icon: 'fa-solid fa-up-down',
toolclip: {
src: 'toolclips/tools/measure-ray.webm',
heading: 'CONTROLS.MeasureRay',
items: sc.buildToolclipItems(['create', 'move', 'edit', 'hide', 'delete', 'rotate'])
}
},
clear: {
name: 'clear',
order: 6,
title: 'CONTROLS.MeasureClear',
icon: 'fa-solid fa-trash',
visible: game.user.isGM,
onChange: () => canvas.templates.deleteAll(),
button: true
}
},
activeTool: 'circle'
};
}
_onDragLeftStart(event) {
const interaction = event.interactionData;
// Snap the origin to the grid
if (!event.shiftKey) interaction.origin = this.getSnappedPoint(interaction.origin);
// Create a pending MeasuredTemplateDocument
const tool = game.activeTool === 'inFront' ? 'cone' : game.activeTool;
const previewData = {
user: game.user.id,
t: tool,
x: interaction.origin.x,
y: interaction.origin.y,
sort: Math.max(this.getMaxSort() + 1, 0),
distance: 1,
direction: 0,
fillColor: game.user.color || '#FF0000',
hidden: event.altKey
};
const defaults = CONFIG.MeasuredTemplate.defaults;
if (game.activeTool === 'cone') previewData.angle = defaults.angle;
else if (game.activeTool === 'inFront') previewData.angle = 180;
else if (game.activeTool === 'ray') previewData.width = defaults.width * canvas.dimensions.distance;
const cls = foundry.utils.getDocumentClass('MeasuredTemplate');
const doc = new cls(previewData, { parent: canvas.scene });
// Create a preview MeasuredTemplate object
const template = new this.constructor.placeableClass(doc);
doc._object = template;
interaction.preview = this.preview.addChild(template);
template.draw();
}
}

View file

@ -1,5 +1,4 @@
import { burden } from '../../config/generalConfig.mjs'; import { burden } from '../../config/generalConfig.mjs';
import ActionField from '../fields/actionField.mjs';
import ForeignDocumentUUIDField from '../fields/foreignDocumentUUIDField.mjs'; import ForeignDocumentUUIDField from '../fields/foreignDocumentUUIDField.mjs';
import DhLevelData from '../levelData.mjs'; import DhLevelData from '../levelData.mjs';
import BaseDataActor from './base.mjs'; import BaseDataActor from './base.mjs';
@ -29,7 +28,7 @@ export default class DhCharacter extends BaseDataActor {
return foundry.utils.mergeObject(super.metadata, { return foundry.utils.mergeObject(super.metadata, {
label: 'TYPES.Actor.character', label: 'TYPES.Actor.character',
type: 'character', type: 'character',
isNPC: false, isNPC: false
}); });
} }

View file

@ -43,7 +43,12 @@ export default class DhLevelData extends foundry.abstract.DataModel {
data: new fields.ArrayField(new fields.StringField({ required: true })), data: new fields.ArrayField(new fields.StringField({ required: true })),
secondaryData: new fields.TypedObjectField(new fields.StringField({ required: true })), secondaryData: new fields.TypedObjectField(new fields.StringField({ required: true })),
itemUuid: new fields.DocumentUUIDField({ required: true }), itemUuid: new fields.DocumentUUIDField({ required: true }),
featureIds: new fields.ArrayField(new fields.StringField()) features: new fields.ArrayField(
new fields.SchemaField({
onPartner: new fields.BooleanField(),
id: new fields.StringField()
})
)
}) })
) )
}) })
@ -51,10 +56,6 @@ export default class DhLevelData extends foundry.abstract.DataModel {
}; };
} }
get actions() {
return Object.values(this.levelups).flatMap(level => level.selections.flatMap(s => s.actions));
}
get canLevelUp() { get canLevelUp() {
return this.level.current < this.level.changed; return this.level.current < this.level.changed;
} }

View file

@ -70,7 +70,8 @@ export const CompanionLevelOptionType = {
{ {
name: 'DAGGERHEART.APPLICATIONS.Levelup.actions.creatureComfort.name', name: 'DAGGERHEART.APPLICATIONS.Levelup.actions.creatureComfort.name',
img: 'icons/magic/life/heart-cross-purple-orange.webp', img: 'icons/magic/life/heart-cross-purple-orange.webp',
description: 'DAGGERHEART.APPLICATIONS.Levelup.actions.creatureComfort.description' description: 'DAGGERHEART.APPLICATIONS.Levelup.actions.creatureComfort.description',
toPartner: true
} }
] ]
}, },
@ -81,7 +82,8 @@ export const CompanionLevelOptionType = {
{ {
name: 'DAGGERHEART.APPLICATIONS.Levelup.actions.armored.name', name: 'DAGGERHEART.APPLICATIONS.Levelup.actions.armored.name',
img: 'icons/equipment/shield/kite-wooden-oak-glow.webp', img: 'icons/equipment/shield/kite-wooden-oak-glow.webp',
description: 'DAGGERHEART.APPLICATIONS.Levelup.actions.armored.description' description: 'DAGGERHEART.APPLICATIONS.Levelup.actions.armored.description',
toPartner: true
} }
] ]
}, },
@ -100,7 +102,8 @@ export const CompanionLevelOptionType = {
{ {
name: 'DAGGERHEART.APPLICATIONS.Levelup.actions.bonded.name', name: 'DAGGERHEART.APPLICATIONS.Levelup.actions.bonded.name',
img: 'icons/magic/life/heart-red-blue.webp', img: 'icons/magic/life/heart-red-blue.webp',
description: 'DAGGERHEART.APPLICATIONS.Levelup.actions.bonded.description' description: 'DAGGERHEART.APPLICATIONS.Levelup.actions.bonded.description',
toPartner: true
} }
] ]
}, },

View file

@ -139,6 +139,7 @@ export default class DHRoll extends Roll {
export const registerRollDiceHooks = () => { export const registerRollDiceHooks = () => {
Hooks.on(`${CONFIG.DH.id}.postRollDuality`, async (config, message) => { Hooks.on(`${CONFIG.DH.id}.postRollDuality`, async (config, message) => {
if ( if (
!config.source?.actor ||
!game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).hope || !game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).hope ||
config.roll.type === 'reaction' config.roll.type === 'reaction'
) )

View file

@ -62,7 +62,7 @@ export default class DhpActor extends Actor {
return acc; return acc;
}, {}); }, {});
const featureIds = []; const features = [];
const domainCards = []; const domainCards = [];
const experiences = []; const experiences = [];
const subclassFeatureState = { class: null, multiclass: null }; const subclassFeatureState = { class: null, multiclass: null };
@ -75,7 +75,7 @@ export default class DhpActor extends Actor {
const advancementCards = level.selections.filter(x => x.type === 'domainCard').map(x => x.itemUuid); const advancementCards = level.selections.filter(x => x.type === 'domainCard').map(x => x.itemUuid);
domainCards.push(...achievementCards, ...advancementCards); domainCards.push(...achievementCards, ...advancementCards);
experiences.push(...Object.keys(level.achievements.experiences)); experiences.push(...Object.keys(level.achievements.experiences));
featureIds.push(...level.selections.flatMap(x => x.featureIds)); features.push(...level.selections.flatMap(x => x.features));
const subclass = level.selections.find(x => x.type === 'subclass'); const subclass = level.selections.find(x => x.type === 'subclass');
if (subclass) { if (subclass) {
@ -89,8 +89,11 @@ export default class DhpActor extends Actor {
multiclass = level.selections.find(x => x.type === 'multiclass'); multiclass = level.selections.find(x => x.type === 'multiclass');
}); });
for (let featureId of featureIds) { for (let feature of features) {
this.items.get(featureId).delete(); if (feature.onPartner && !this.system.partner) continue;
const document = feature.onPartner ? this.system.partner : this;
document.items.get(feature.id)?.delete();
} }
if (experiences.length > 0) { if (experiences.length > 0) {
@ -154,7 +157,6 @@ export default class DhpActor extends Actor {
} }
async levelUp(levelupData) { async levelUp(levelupData) {
const actions = [];
const levelups = {}; const levelups = {};
for (var levelKey of Object.keys(levelupData)) { for (var levelKey of Object.keys(levelupData)) {
const level = levelupData[levelKey]; const level = levelupData[levelKey];
@ -238,7 +240,9 @@ export default class DhpActor extends Actor {
...featureData, ...featureData,
description: game.i18n.localize(featureData.description) description: game.i18n.localize(featureData.description)
}); });
const embeddedItem = await this.createEmbeddedDocuments('Item', [
const document = featureData.toPartner && this.system.partner ? this.system.partner : this;
const embeddedItem = await document.createEmbeddedDocuments('Item', [
{ {
...featureData, ...featureData,
name: game.i18n.localize(featureData.name), name: game.i18n.localize(featureData.name),
@ -246,9 +250,13 @@ export default class DhpActor extends Actor {
system: feature system: feature
} }
]); ]);
addition.checkbox.featureIds = !addition.checkbox.featureIds const newFeature = {
? [embeddedItem[0].id] onPartner: Boolean(featureData.toPartner && this.system.partner),
: [...addition.checkbox.featureIds, embeddedItem[0].id]; id: embeddedItem[0].id
};
addition.checkbox.features = !addition.checkbox.features
? [newFeature]
: [...addition.checkbox.features, newFeature];
} }
selections.push(addition.checkbox); selections.push(addition.checkbox);
@ -318,7 +326,6 @@ export default class DhpActor extends Actor {
await this.update({ await this.update({
system: { system: {
actions: [...this.system.actions, ...actions],
levelData: { levelData: {
level: { level: {
current: this.system.levelData.level.changed current: this.system.levelData.level.changed

View file

@ -1,7 +1,7 @@
export default class DhTooltipManager extends foundry.helpers.interaction.TooltipManager { export default class DhTooltipManager extends foundry.helpers.interaction.TooltipManager {
async activate(element, options = {}) { async activate(element, options = {}) {
let html = options.html; let html = options.html;
if (element.dataset.tooltip.startsWith('#item#')) { if (element.dataset.tooltip?.startsWith('#item#')) {
const item = await foundry.utils.fromUuid(element.dataset.tooltip.slice(6)); const item = await foundry.utils.fromUuid(element.dataset.tooltip.slice(6));
if (item) { if (item) {
html = await foundry.applications.handlebars.renderTemplate( html = await foundry.applications.handlebars.renderTemplate(

View file

@ -1,561 +0,0 @@
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 {
.downtime-header {
margin: 0;
color: light-dark(@dark-blue, @golden);
text-align: center;
}
.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: 80px;
position: relative;
display: flex;
justify-content: center;
margin-right: 8px;
border: 2px solid black;
border-radius: 50%;
cursor: pointer;
.activity-select-label {
position: absolute;
top: -9px;
font-size: 14px;
border: 1px solid light-dark(@dark-blue, @golden);
border-radius: 6px;
color: light-dark(@beige, @dark);
background-image: url(../assets/parchments/dh-parchment-light.png);
padding: 0 8px;
line-height: 1;
font-weight: bold;
}
img {
border-radius: 50%;
}
&: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-selection-costSelection footer {
display: none;
}
.roll-dialog-container {
.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);
}
}
}
}
}
}
}
&.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;
}
}
.hint-group {
display: flex;
flex-direction: column;
align-items: end;
.form-fields {
width: 100%;
display: flex;
align-items: center;
label {
flex: 1;
}
input,
select {
flex: 3;
}
}
.hint {
margin: 4px 0 0 0;
font-size: 12px;
font-style: italic;
opacity: 0.6;
}
}
.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;
}
}
}
}
}
}
}

View file

@ -1,5 +0,0 @@
.daggerheart.sheet.class {
.editor {
height: 500px;
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,203 +1,13 @@
@import './variables/variables.less'; @import './less/sheets/index.less';
@import './variables/colors.less'; @import './less/sheets-settings/index.less';
@import './class.less';
@import './pc.less';
@import './ui.less';
@import './chat.less';
@import './item.less';
@import './application.less';
@import './sheets/sheets.less';
@import './dialog.less';
@import './characterCreation.less';
@import './levelup.less';
@import './ownershipSelection.less';
@import './damageReduction.less';
@import './resources.less';
@import './countdown.less';
@import './settings.less';
// new styles imports @import './less/dialog/index.less';
@import './less/actors/character/header.less';
@import './less/actors/character/sidebar.less';
@import './less/actors/character/sheet.less';
@import './less/actors/character/inventory.less';
@import './less/actors/character/loadout.less';
@import './less/actors/character/biography.less';
@import './less/actors/character/features.less';
@import './less/actors/adversary/header.less';
@import './less/actors/adversary/sheet.less';
@import './less/actors/adversary/sidebar.less';
@import './less/actors/environment/header.less';
@import './less/actors/environment/sheet.less';
@import './less/applications/header.less';
@import './less/applications/adversary-settings/sheet.less';
@import './less/applications/adversary-settings/experiences.less';
@import './less/applications/adversary-settings/features.less';
@import './less/applications/environment-settings/features.less';
@import './less/applications/environment-settings/adversaries.less';
@import './less/applications//beastform.less';
@import './less/actors/companion/header.less';
@import './less/actors/companion/details.less';
@import './less/actors/companion/sheet.less';
@import './less/actors/adversary.less';
@import './less/actors/environment.less';
@import './less/items/feature.less';
@import './less/items/domainCard.less';
@import './less/items/class.less';
@import './less/dialog/dice-roll/roll-selection.less';
@import './less/utils/colors.less'; @import './less/utils/colors.less';
@import './less/utils/fonts.less'; @import './less/utils/fonts.less';
@import './less/global/sheet.less'; @import './less/global/index.less';
@import './less/global/dialog.less';
@import './less/global/elements.less'; @import './less/ui/index.less';
@import './less/global/tab-navigation.less';
@import './less/global/tab-form-footer.less';
@import './less/global/tab-actions.less';
@import './less/global/tab-features.less';
@import './less/global/tab-effects.less';
@import './less/global/item-header.less';
@import './less/global/feature-section.less';
@import './less/global/inventory-item.less';
@import './less/global/inventory-fieldset-items.less';
@import './less/global/prose-mirror.less';
@import './less/global/filter-menu.less';
@import '../node_modules/@yaireo/tagify/dist/tagify.css'; @import '../node_modules/@yaireo/tagify/dist/tagify.css';
.daggerheart {
.vertical-separator {
border-left: 2px solid black;
height: 56px;
flex: 0;
align-self: center;
}
/* Flex */
.flex-centered {
display: flex;
align-items: center;
justify-content: center;
}
.flex-col-centered {
display: flex;
flex-direction: column;
align-items: center;
}
.flex-spaced {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
}
.flex-min {
display: flex;
flex: 0;
}
/****/
img[data-edit='img'] {
min-width: 64px;
min-height: 64px;
}
.editor {
height: 200px;
}
button {
i {
margin: 0;
}
}
.icon-button {
&.spaced {
margin-left: @halfMargin;
}
&.disabled {
opacity: 0.6;
}
&:hover:not(.disabled) {
cursor: pointer;
}
}
}
#players {
h3 {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: nowrap;
.players-container {
display: flex;
align-items: center;
}
.fear-control {
font-size: 10px;
&.disabled {
opacity: 0.4;
}
&:hover:not(.disabled) {
cursor: pointer;
filter: drop-shadow(0 0 3px @mainShadow);
}
}
}
}
.unlist {
list-style: none;
padding-inline-start: 0;
}
.list-select {
margin: 1rem;
li {
&:not(:last-child) {
border-bottom: 1px solid #bbb;
}
label {
padding: 4px 8px;
display: flex;
align-items: center;
gap: 1rem;
cursor: pointer;
> span {
flex: 1;
font-weight: bold;
font-size: var(--font-size-16);
}
}
}
}
dh-icon,
dh-icon > img {
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
font-size: x-large;
}

View file

@ -1,12 +0,0 @@
.item-button {
&.checked {
background: green;
}
.item-icon {
opacity: 0;
transition: opacity 0.2s;
&.checked {
opacity: 1;
}
}
}

View file

@ -1,59 +0,0 @@
.daggerheart.sheet {
&.feature {
.editable {
display: flex;
flex-direction: column;
}
.sheet-body {
flex: 1;
display: flex;
flex-direction: column;
}
.feature-description {
flex: 1;
display: flex;
flex-direction: column;
}
}
&.class {
.class-feature {
display: flex;
img {
width: 40px;
}
button {
width: 40px;
}
}
}
.domain-card-description {
.editor {
height: 300px;
}
}
.item-container {
margin-top: @halfMargin;
gap: @halfMargin;
align-items: baseline;
}
.item-sidebar {
// border-right: @thinBorder groove darkgray;
min-width: 160px;
flex: 0;
padding: @fullPadding;
label {
margin-right: @fullMargin;
font-weight: bold;
}
input[type='checkbox'] {
margin: 0;
}
}
}

View file

@ -1,5 +0,0 @@
.application.sheet.daggerheart.actor.dh-style.adversary {
.window-content {
overflow: auto;
}
}

View file

@ -1,11 +0,0 @@
@import '../utils/colors.less';
@import '../utils/fonts.less';
.application.sheet.daggerheart.actor.dh-style.character {
.window-content {
display: flex;
flex-direction: row;
height: 100%;
width: 100%;
}
}

View file

@ -1,27 +0,0 @@
.daggerheart.sheet.actor.environment {
.potential-adversary-container {
width: 100%;
height: 50px;
.adversary-placeholder {
font-style: italic;
text-align: center;
opacity: 0.6;
}
.adversaries-container {
display: flex;
gap: 8px;
.adversary-container {
border: 1px solid var(--color-dark-5);
border-radius: 6px;
padding: 0 2px;
font-weight: bold;
cursor: pointer;
background-image: url(../assets/parchments/dh-parchment-dark.png);
color: var(--color-light-3);
}
}
}
}

View file

@ -1,8 +1,4 @@
.theme-light .application.daggerheart.dh-style.views.beastform-selection { @import '../../utils/colors.less';
.beastforms-container .beastforms-tier .beastform-container .beastform-title {
background-image: url('../assets/parchments/dh-parchment-dark.png');
}
}
.application.daggerheart.dh-style.views.beastform-selection { .application.daggerheart.dh-style.views.beastform-selection {
.beastforms-container { .beastforms-container {
@ -47,13 +43,4 @@
} }
} }
} }
footer {
margin-top: 8px;
display: flex;
button {
flex: 1;
}
}
} }

View file

@ -0,0 +1,21 @@
@import '../../utils/colors.less';
@import '../../utils/mixin.less';
.appTheme({
&.beastform-selection {
.beastforms-container .beastforms-tier .beastform-container .beastform-title {
background-image: url('../assets/parchments/dh-parchment-dark.png');
}
}
}, {});
.application.daggerheart.dh-style.views.beastform-selection {
footer {
margin-top: 8px;
display: flex;
button {
flex: 1;
}
}
}

View file

@ -0,0 +1,13 @@
.daggerheart.dh-style.dialog.character-creation {
.creation-action-footer {
display: flex;
align-items: center;
gap: 32px;
button {
flex: 1;
height: 100%;
white-space: nowrap;
}
}
}

View file

@ -1,86 +1,6 @@
@import './less/utils/colors.less'; @import '../../utils/colors.less';
.theme-light .daggerheart.dh-style.dialog.character-creation {
.tab-navigation nav a .descriptor {
background-image: url('../assets/parchments/dh-parchment-dark.png');
}
.main-selections-container {
.traits-container .suggested-traits-container .suggested-trait-container,
.creation-action-footer .footer-section nav a .descriptor,
.equipment-selection .simple-equipment-container .simple-equipment label {
background-image: url('../assets/parchments/dh-parchment-dark.png');
}
}
}
.daggerheart.dh-style.dialog.character-creation { .daggerheart.dh-style.dialog.character-creation {
.window-content {
gap: 16px;
.tab {
overflow-y: auto;
}
}
.tab-navigation {
nav {
flex: 1;
a {
flex: 1;
text-align: center;
display: flex;
justify-content: center;
position: relative;
&.disabled {
opacity: 0.4;
}
.nav-section-text {
position: relative;
display: flex;
align-items: center;
}
.finish-marker {
position: absolute;
align-self: center;
top: -8px;
padding: 4px;
border: 1px solid;
border-radius: 50%;
height: 16px;
width: 16px;
font-size: 12px;
display: flex;
align-items: center;
justify-content: center;
background-color: var(--color-cool-4);
content: '';
&.active {
background-color: var(--color-warm-2);
}
}
.descriptor {
position: absolute;
bottom: -8px;
font-size: 12px;
border-radius: 8px;
width: 56px;
text-align: center;
line-height: 1;
border: 1px solid light-dark(@dark-blue, @golden);
border-radius: 6px;
color: light-dark(@beige, @dark);
background-image: url(../assets/parchments/dh-parchment-light.png);
}
}
}
}
.main-selections-container { .main-selections-container {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -402,16 +322,4 @@
} }
} }
} }
.creation-action-footer {
display: flex;
align-items: center;
gap: 32px;
button {
flex: 1;
height: 100%;
white-space: nowrap;
}
}
} }

View file

@ -0,0 +1,27 @@
@import '../../utils/colors.less';
@import '../../utils/mixin.less';
.appTheme({
.character-creation {
.tab-navigation nav a .descriptor {
background-image: url('../assets/parchments/dh-parchment-dark.png');
}
.main-selections-container {
.traits-container .suggested-traits-container .suggested-trait-container,
.creation-action-footer .footer-section nav a .descriptor,
.equipment-selection .simple-equipment-container .simple-equipment label {
background-image: url('../assets/parchments/dh-parchment-dark.png');
}
}
}
}, {});
.daggerheart.dh-style.dialog.character-creation {
.window-content {
gap: 16px;
.tab {
overflow-y: auto;
}
}
}

View file

@ -0,0 +1,62 @@
@import '../../utils/colors.less';
.daggerheart.dh-style.dialog.character-creation {
.tab-navigation {
nav {
flex: 1;
a {
flex: 1;
text-align: center;
display: flex;
justify-content: center;
position: relative;
&.disabled {
opacity: 0.4;
}
.nav-section-text {
position: relative;
display: flex;
align-items: center;
}
.finish-marker {
position: absolute;
align-self: center;
top: -8px;
padding: 4px;
border: 1px solid;
border-radius: 50%;
height: 16px;
width: 16px;
font-size: 12px;
display: flex;
align-items: center;
justify-content: center;
background-color: var(--color-cool-4);
content: '';
&.active {
background-color: var(--color-warm-2);
}
}
.descriptor {
position: absolute;
bottom: -8px;
font-size: 12px;
border-radius: 8px;
width: 56px;
text-align: center;
line-height: 1;
border: 1px solid light-dark(@dark-blue, @golden);
border-radius: 6px;
color: light-dark(@beige, @dark);
background-image: url(../assets/parchments/dh-parchment-light.png);
}
}
}
}
}

View file

@ -1,8 +1,6 @@
.daggerheart.views.damage-reduction { @import '../../utils/colors.less';
.window-content {
padding: 8px 0;
}
.daggerheart.views.damage-reduction {
.damage-reduction-container { .damage-reduction-container {
display: flex; display: flex;
flex-direction: column; flex-direction: column;

View file

@ -0,0 +1,7 @@
@import '../../utils/colors.less';
.daggerheart.views.damage-reduction {
.window-content {
padding: 8px 0;
}
}

View file

@ -0,0 +1,81 @@
@import '../../utils/spacing.less';
@import '../../utils/colors.less';
.daggerheart.views {
.downtime-container {
.downtime-header {
margin: 0;
color: light-dark(@dark-blue, @golden);
text-align: center;
}
.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: 80px;
position: relative;
display: flex;
justify-content: center;
margin-right: 8px;
border: 2px solid black;
border-radius: 50%;
cursor: pointer;
.activity-select-label {
position: absolute;
top: -9px;
font-size: 14px;
border: 1px solid light-dark(@dark-blue, @golden);
border-radius: 6px;
color: light-dark(@beige, @dark);
background-image: url(../assets/parchments/dh-parchment-light.png);
padding: 0 8px;
line-height: 1;
font-weight: bold;
}
img {
border-radius: 50%;
}
&: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;
}
}
}

View file

@ -0,0 +1,19 @@
@import './level-up/navigation-container.less';
@import './level-up/selections-container.less';
@import './level-up/sheet.less';
@import './level-up/summary-container.less';
@import './level-up/tiers-container.less';
@import './downtime/downtime-container.less';
@import './beastform/beastform-container.less';
@import './beastform/sheet.less';
@import './character-creation/creation-action-footer.less';
@import './character-creation/selections-container.less';
@import './character-creation/sheet.less';
@import './character-creation/tab-navigation.less';
@import './dice-roll/roll-selection.less';
@import './damage-reduction/damage-reduction-container.less';
@import './damage-reduction/sheets.less';

View file

@ -0,0 +1,30 @@
.daggerheart.levelup {
.levelup-navigation-container {
display: flex;
align-items: center;
gap: 22px;
height: 36px;
nav {
flex: 1;
.levelup-tab-container {
display: flex;
align-items: center;
gap: 4px;
}
}
.levelup-navigation-actions {
width: 306px;
display: flex;
justify-content: end;
gap: 16px;
margin-right: 4px;
* {
width: calc(50% - 8px);
}
}
}
}

View file

@ -0,0 +1,108 @@
.daggerheart.levelup {
.levelup-selections-container {
.achievement-experience-cards {
display: flex;
gap: 8px;
.achievement-experience-card {
border: 1px solid;
border-radius: 4px;
padding-right: 4px;
font-size: 18px;
display: flex;
justify-content: space-between;
align-items: center;
gap: 4px;
.achievement-experience-marker {
border: 1px solid;
border-radius: 50%;
height: 18px;
width: 18px;
display: flex;
align-items: center;
justify-content: center;
font-size: 12px;
}
}
}
.levelup-card-selection {
display: flex;
flex-wrap: wrap;
gap: 40px;
.card-preview-container {
width: calc(100% * (1 / 5));
}
.levelup-domains-selection-container {
display: flex;
flex-direction: column;
gap: 8px;
.levelup-domain-selection-container {
display: flex;
flex-direction: column;
align-items: center;
flex: 1;
position: relative;
cursor: pointer;
&.disabled {
pointer-events: none;
opacity: 0.4;
}
.levelup-domain-label {
position: absolute;
text-align: center;
top: 4px;
background: grey;
padding: 0 12px;
border-radius: 6px;
}
img {
height: 124px;
}
.levelup-domain-selected {
position: absolute;
height: 54px;
width: 54px;
border-radius: 50%;
border: 2px solid;
font-size: 48px;
display: flex;
align-items: center;
justify-content: center;
background-image: url(../assets/parchments/dh-parchment-light.png);
color: var(--color-dark-5);
top: calc(50% - 29px);
i {
position: relative;
right: 2px;
}
}
}
}
}
.levelup-selections-title {
display: flex;
align-items: center;
gap: 4px;
}
.levelup-radio-choices {
display: flex;
gap: 8px;
label {
flex: 0;
}
}
}
}

View file

@ -0,0 +1,37 @@
@import '../../utils/mixin.less';
.appTheme({}, {
&.levelup {
.tiers-container {
.tier-container {
background-image: url('../assets/parchments/dh-parchment-light.png');
}
}
}
});
.daggerheart.levelup {
.window-content {
max-height: 960px;
overflow: auto;
}
div[data-application-part='form'] {
display: flex;
flex-direction: column;
gap: 8px;
}
section {
.section-container {
display: flex;
flex-direction: column;
gap: 8px;
margin-top: 8px;
}
}
.levelup-footer {
display: flex;
}
}

View file

@ -0,0 +1,37 @@
.daggerheart.levelup {
.levelup-summary-container {
.level-achievements-container,
.level-advancements-container {
display: flex;
flex-direction: column;
gap: 8px;
h2,
h3,
h4,
h5 {
margin: 0;
color: var(--color-text-secondary);
}
}
.increase-container {
display: flex;
align-items: center;
gap: 4px;
font-size: 20px;
}
.summary-selection-container {
display: flex;
gap: 8px;
.summary-selection {
border: 2px solid;
border-radius: 6px;
padding: 0 4px;
font-size: 18px;
}
}
}
}

View file

@ -0,0 +1,65 @@
.daggerheart.levelup {
.tiers-container {
display: flex;
gap: 16px;
.tier-container {
flex: 1;
display: flex;
flex-direction: column;
gap: 8px;
background-image: url('../assets/parchments/dh-parchment-dark.png');
&.inactive {
opacity: 0.4;
pointer-events: none;
}
legend {
margin-left: auto;
margin-right: auto;
font-size: 22px;
font-weight: bold;
padding: 0 12px;
}
.checkbox-group-container {
display: grid;
grid-template-columns: 1fr 3fr;
gap: 4px;
.checkboxes-container {
display: flex;
justify-content: end;
gap: 4px;
.checkbox-grouping-coontainer {
display: flex;
height: min-content;
&.multi {
border: 2px solid grey;
padding: 2.4px 2.5px 0;
border-radius: 4px;
gap: 2px;
.selection-checkbox {
margin-left: 0;
margin-right: 0;
}
}
.selection-checkbox {
margin: 0;
}
}
}
.checkbox-group-label {
font-size: 14px;
font-style: italic;
}
}
}
}
}

View file

@ -0,0 +1,14 @@
@import './sheet.less';
@import './dialog.less';
@import './elements.less';
@import './tab-navigation.less';
@import './tab-form-footer.less';
@import './tab-actions.less';
@import './tab-features.less';
@import './tab-effects.less';
@import './item-header.less';
@import './feature-section.less';
@import './inventory-item.less';
@import './inventory-fieldset-items.less';
@import './prose-mirror.less';
@import './filter-menu.less';

View file

@ -1,132 +0,0 @@
@font-face {
font-family: 'Cinzel';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url(https://fonts.gstatic.com/s/cinzel/v23/8vIU7ww63mVu7gtR-kwKxNvkNOjw-tbnTYo.ttf) format('truetype');
}
@font-face {
font-family: 'Cinzel';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url(https://fonts.gstatic.com/s/cinzel/v23/8vIU7ww63mVu7gtR-kwKxNvkNOjw-jHgTYo.ttf) format('truetype');
}
@font-face {
font-family: 'Cinzel Decorative';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url(https://fonts.gstatic.com/s/cinzeldecorative/v17/daaHSScvJGqLYhG8nNt8KPPswUAPniZoaelD.ttf)
format('truetype');
}
@font-face {
font-family: 'Montserrat';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url(https://fonts.gstatic.com/s/montserrat/v30/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Ew-.ttf) format('truetype');
}
@font-face {
font-family: 'Montserrat';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url(https://fonts.gstatic.com/s/montserrat/v30/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCu170w-.ttf) format('truetype');
}
.application.sheet.daggerheart.dh-style h1 {
font-family: 'Cinzel Decorative', serif;
margin: 0;
border: none;
font-weight: normal;
}
.application.sheet.daggerheart.dh-style h2,
.application.sheet.daggerheart.dh-style h3 {
font-family: 'Cinzel', serif;
margin: 0;
border: none;
font-weight: normal;
}
.application.sheet.daggerheart.dh-style h4 {
font-family: 'Montserrat', sans-serif;
font-size: 14px;
border: none;
font-weight: 700;
margin: 0;
text-shadow: none;
color: #f3c267;
font-weight: normal;
}
.application.sheet.daggerheart.dh-style h5 {
font-size: 14px;
color: #f3c267;
margin: 0;
font-weight: normal;
}
.application.sheet.daggerheart.dh-style p,
.application.sheet.daggerheart.dh-style span {
font-family: 'Montserrat', sans-serif;
}
.application.sheet.daggerheart.dh-style small {
font-family: 'Montserrat', sans-serif;
opacity: 0.8;
}
.application.sheet.daggerheart.dh-style.class .tagify {
background: light-dark(transparent, transparent);
border: 1px solid light-dark(#222, #efe6d8);
height: 34px;
border-radius: 3px;
margin-right: 1px;
}
.application.sheet.daggerheart.dh-style.class .tagify tag div {
display: flex;
justify-content: space-between;
align-items: center;
height: 22px;
}
.application.sheet.daggerheart.dh-style.class .tagify tag div span {
font-weight: 400;
}
.application.sheet.daggerheart.dh-style.class .tagify tag div img {
margin-left: 8px;
height: 20px;
width: 20px;
}
.application.sheet.daggerheart.dh-style.class .tab.settings .fieldsets-section {
display: grid;
gap: 10px;
grid-template-columns: 1fr 1.5fr 1.5fr;
}
.application.sheet.daggerheart.dh-style.class .tab.settings .list-items {
margin-bottom: 10px;
width: 100%;
}
.application.sheet.daggerheart.dh-style.class .tab.settings .list-items:last-child {
margin-bottom: 0px;
}
.application.sheet.daggerheart.dh-style.class .tab.settings .list-items .item-line {
display: grid;
align-items: center;
gap: 10px;
grid-template-columns: 1fr 3fr 1fr;
}
.application.sheet.daggerheart.dh-style.class .tab.settings .list-items .item-line h4 {
font-family: 'Montserrat', sans-serif;
font-weight: lighter;
color: light-dark(#222, #efe6d8);
}
.application.sheet.daggerheart.dh-style.class .tab.settings .list-items .item-line .image {
height: 40px;
width: 40px;
object-fit: cover;
border-radius: 6px;
border: none;
}
.application.sheet.daggerheart.dh-style.class .tab.settings .list-items .item-line .controls {
display: flex;
justify-content: center;
gap: 10px;
}
.application.sheet.daggerheart.dh-style.class .tab.settings .list-items .item-line .controls a {
text-shadow: none;
}

View file

@ -0,0 +1,7 @@
@import './header.less';
@import './adversary-settings/sheet.less';
@import './adversary-settings/experiences.less';
@import './adversary-settings/features.less';
@import './environment-settings/features.less';
@import './environment-settings/adversaries.less';

View file

@ -1,5 +1,5 @@
@import '../../utils/colors.less'; @import '../../../utils/colors.less';
@import '../../utils/fonts.less'; @import '../../../utils/fonts.less';
.application.sheet.daggerheart.actor.dh-style.adversary { .application.sheet.daggerheart.actor.dh-style.adversary {
.tab.features { .tab.features {

View file

@ -1,5 +1,5 @@
@import '../../utils/colors.less'; @import '../../../utils/colors.less';
@import '../../utils/fonts.less'; @import '../../../utils/fonts.less';
.application.sheet.daggerheart.actor.dh-style.adversary { .application.sheet.daggerheart.actor.dh-style.adversary {
.adversary-header-sheet { .adversary-header-sheet {

View file

@ -1,5 +1,5 @@
@import '../../utils/colors.less'; @import '../../../utils/colors.less';
@import '../../utils/fonts.less'; @import '../../../utils/fonts.less';
.application.sheet.daggerheart.actor.dh-style.adversary { .application.sheet.daggerheart.actor.dh-style.adversary {
.window-content { .window-content {

View file

@ -1,16 +1,26 @@
@import '../../utils/colors.less'; @import '../../../utils/colors.less';
@import '../../utils/fonts.less'; @import '../../../utils/fonts.less';
@import '../../../utils/mixin.less';
.appTheme({
&.adversary {
.adversary-sidebar-sheet {
background-image: url('../assets/parchments/dh-parchment-dark.png');
}
}
}, {
&.adversary {
.adversary-sidebar-sheet {
background: transparent;
}
}
});
.application.sheet.daggerheart.actor.dh-style.adversary { .application.sheet.daggerheart.actor.dh-style.adversary {
.adversary-sidebar-sheet { .adversary-sidebar-sheet {
width: 275px; width: 275px;
min-width: 275px; min-width: 275px;
border-right: 1px solid light-dark(@dark-blue, @golden); border-right: 1px solid light-dark(@dark-blue, @golden);
background-image: url('../assets/parchments/dh-parchment-dark.png');
.theme-light & {
background: transparent;
}
.portrait { .portrait {
position: relative; position: relative;

View file

@ -1,5 +1,5 @@
@import '../../utils/colors.less'; @import '../../../utils/colors.less';
@import '../../utils/fonts.less'; @import '../../../utils/fonts.less';
.application.sheet.daggerheart.actor.dh-style.character { .application.sheet.daggerheart.actor.dh-style.character {
.tab.biography { .tab.biography {

View file

@ -1,5 +1,5 @@
@import '../../utils/colors.less'; @import '../../../utils/colors.less';
@import '../../utils/fonts.less'; @import '../../../utils/fonts.less';
.application.sheet.daggerheart.actor.dh-style.character { .application.sheet.daggerheart.actor.dh-style.character {
.tab.features { .tab.features {

View file

@ -1,5 +1,6 @@
@import '../../utils/colors.less'; @import '../../../utils/colors.less';
@import '../../utils/fonts.less'; @import '../../../utils/fonts.less';
@import '../../../utils/mixin.less';
// Theme header backgrounds // Theme header backgrounds
.appTheme({ .appTheme({

View file

@ -1,5 +1,5 @@
@import '../../utils/colors.less'; @import '../../../utils/colors.less';
@import '../../utils/fonts.less'; @import '../../../utils/fonts.less';
.application.sheet.daggerheart.actor.dh-style.character { .application.sheet.daggerheart.actor.dh-style.character {
.tab.inventory { .tab.inventory {

View file

@ -1,5 +1,5 @@
@import '../../utils/colors.less'; @import '../../../utils/colors.less';
@import '../../utils/fonts.less'; @import '../../../utils/fonts.less';
.application.sheet.daggerheart.actor.dh-style.character { .application.sheet.daggerheart.actor.dh-style.character {
.tab.loadout { .tab.loadout {

View file

@ -1,5 +1,5 @@
@import '../../utils/colors.less'; @import '../../../utils/colors.less';
@import '../../utils/fonts.less'; @import '../../../utils/fonts.less';
.application.sheet.daggerheart.actor.dh-style.character { .application.sheet.daggerheart.actor.dh-style.character {
.window-content { .window-content {

View file

@ -1,5 +1,6 @@
@import '../../utils/colors.less'; @import '../../../utils/colors.less';
@import '../../utils/fonts.less'; @import '../../../utils/fonts.less';
@import '../../../utils/mixin.less';
// Theme sidebar backgrounds // Theme sidebar backgrounds
.appTheme({ .appTheme({

View file

@ -1,5 +1,5 @@
@import '../../utils/colors.less'; @import '../../../utils/colors.less';
@import '../../utils/fonts.less'; @import '../../../utils/fonts.less';
.application.sheet.daggerheart.actor.dh-style.companion { .application.sheet.daggerheart.actor.dh-style.companion {
.partner-section, .partner-section,

View file

@ -1,5 +1,5 @@
@import '../../utils/colors.less'; @import '../../../utils/colors.less';
@import '../../utils/fonts.less'; @import '../../../utils/fonts.less';
.application.sheet.daggerheart.actor.dh-style.companion { .application.sheet.daggerheart.actor.dh-style.companion {
.companion-header-sheet { .companion-header-sheet {

View file

@ -1,3 +1,5 @@
@import '../../../utils/mixin.less';
// Theme header backgrounds // Theme header backgrounds
.appTheme({ .appTheme({
&.companion { &.companion {
@ -8,15 +10,3 @@
background: url('../assets/parchments/dh-parchment-light.png'); background: url('../assets/parchments/dh-parchment-light.png');
} }
}); });
.application.sheet.daggerheart.actor.dh-style.companion {
// .profile {
// height: 80px;
// width: 80px;
// }
// .temp-container {
// position: relative;
// top: 32px;
// }
}

View file

@ -1,5 +1,5 @@
@import '../../utils/colors.less'; @import '../../../utils/colors.less';
@import '../../utils/fonts.less'; @import '../../../utils/fonts.less';
.application.sheet.daggerheart.actor.dh-style.environment { .application.sheet.daggerheart.actor.dh-style.environment {
.environment-header-sheet { .environment-header-sheet {

View file

@ -1,5 +1,6 @@
@import '../../utils/colors.less'; @import '../../../utils/colors.less';
@import '../../utils/fonts.less'; @import '../../../utils/fonts.less';
@import '../../../utils/mixin.less';
.appTheme({ .appTheme({
&.environment { &.environment {

View file

@ -0,0 +1,23 @@
@import './actors/adversary/actions.less';
@import './actors/adversary/header.less';
@import './actors/adversary/sheet.less';
@import './actors/adversary/sidebar.less';
@import './actors/character/biography.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/environment/header.less';
@import './actors/environment/sheet.less';
@import './items/class.less';
@import './items/domain-card.less';
@import './items/feature.less';

View file

@ -1,5 +1,5 @@
@import '../utils/colors.less'; @import '../../utils/colors.less';
@import '../utils/fonts.less'; @import '../../utils/fonts.less';
.application.sheet.daggerheart.dh-style.class { .application.sheet.daggerheart.dh-style.class {
.tab.settings { .tab.settings {

View file

@ -1,5 +1,5 @@
@import '../utils/colors.less'; @import '../../utils/colors.less';
@import '../utils/fonts.less'; @import '../../utils/fonts.less';
.application.sheet.daggerheart.dh-style.domain-card { .application.sheet.daggerheart.dh-style.domain-card {
section.tab { section.tab {

View file

@ -1,5 +1,5 @@
@import '../utils/colors.less'; @import '../../utils/colors.less';
@import '../utils/fonts.less'; @import '../../utils/fonts.less';
.application.sheet.daggerheart.dh-style.feature { .application.sheet.daggerheart.dh-style.feature {
.item-sheet-header { .item-sheet-header {

View file

@ -1,36 +1,5 @@
.chat-message { @import '../../utils/colors.less';
.duality-modifiers, @import '../../utils/spacing.less';
.duality-result,
.dice-title {
display: none;
}
}
fieldset.daggerheart.chat {
padding: 0;
border-left-width: 0;
border-right-width: 0;
border-bottom-width: 0;
legend {
display: flex;
align-items: center;
gap: 5px;
&:before,
&:after {
content: '\f0d8';
font-family: 'Font Awesome 6 Pro';
}
}
&.expanded {
legend:before,
legend:after {
content: '\f0d7';
}
}
.daggerheart.chat {
margin-top: 5px;
}
}
.daggerheart.chat { .daggerheart.chat {
&.downtime { &.downtime {
@ -408,194 +377,3 @@ fieldset.daggerheart.chat {
} }
} }
} }
.theme-colorful {
.chat-message.duality {
border-color: black;
padding: 8px 0 0 0;
fieldset.daggerheart.chat {
border-top-width: 0;
display: contents;
legend {
&:before,
&:after {
display: none;
}
}
}
.message-header {
color: var(--color-light-3);
padding: 0 8px;
}
&.hope {
background: linear-gradient(0, rgba(165, 42, 42, 0.6) 40px, rgba(0, 0, 0, 0.6));
}
&.fear {
background: linear-gradient(0, @fearBackgroundEnd, @fearBackgroundStart);
}
&.critical {
background: linear-gradient(0, @criticalBackgroundEnd, @criticalBackgroundStart);
}
.chat-message header {
color: var(--color-light-3);
}
> * {
padding: 0 8px;
}
.message-content {
.duality-modifiers,
.duality-result,
.dice-title {
display: flex;
}
.duality-modifiers {
display: flex;
gap: 2px;
margin-bottom: 4px;
.duality-modifier {
padding: 2px;
border-radius: 6px;
border: 1px solid;
background: var(--color-dark-6);
font-size: 12px;
}
}
.dice-flavor {
color: var(--color-light-1);
text-shadow: 0 0 1px black;
border-bottom: 1px solid;
display: flex;
align-items: end;
justify-content: space-between;
padding: 0 8px;
margin: 0 -8px 2px;
font-weight: unset;
}
.dice-result {
.duality-modifiers {
display: flex; // Default => display: none;
gap: 2px;
margin-bottom: 4px;
.duality-modifier {
padding: 2px;
border-radius: 6px;
border: 1px solid;
background: var(--color-dark-6);
font-size: 12px;
}
}
.dice-formula,
> .dice-total,
.part-header {
display: none;
}
.dice-tooltip {
grid-template-rows: 1fr;
.wrapper {
.tooltip-part {
display: flex;
align-items: end;
gap: 0.25rem;
.dice {
.dice-rolls {
margin-bottom: 0;
&.duality {
li {
display: flex;
align-items: center;
justify-content: center;
position: relative;
background: unset;
line-height: unset;
font-weight: unset;
}
}
}
}
.duality-modifier {
display: flex;
margin-bottom: 6px;
color: var(--color-light-1);
text-shadow: 0 0 1px black;
font-size: var(--font-size-16);
}
}
}
}
.target-selection {
label {
color: var(--color-light-1);
}
}
.target-section {
margin: 4px 0;
border: 2px solid;
margin-top: 5px;
.dice-total {
box-shadow: unset;
border: unset;
border-radius: unset;
font-size: var(--font-size-18);
}
}
.dice-actions {
justify-content: space-between;
&.duality-alone {
justify-content: end;
margin-top: -20px;
}
> * {
display: flex;
color: var(--color-light-1);
text-shadow: 0 0 1px black;
font-weight: bold;
background: var(--color-dark-1);
padding: 4px;
border-color: black;
min-height: unset;
height: 26px;
flex: unset;
margin: 0;
}
.duality-action {
border-radius: 0 6px 0 0;
margin-left: -8px;
&.duality-action-effect {
border-top-left-radius: 6px;
margin-left: initial;
}
}
.duality-result {
border-radius: 6px 0 0 0;
margin-right: -8px;
}
}
.duality-result {
display: flex;
color: var(--color-light-1);
text-shadow: 0 0 1px black;
font-weight: bold;
background: var(--color-dark-1);
padding: 4px;
border-color: black;
min-height: unset;
height: 26px;
flex: unset;
margin: 0;
margin-left: auto;
align-self: center;
border-radius: 6px;
}
}
}
button {
&.inner-button {
color: var(--color-light-1);
text-shadow: 0 0 1px black;
font-weight: bold;
background: var(--color-dark-1);
border-color: black;
}
}
}
}

View file

@ -0,0 +1,33 @@
.chat-message {
.duality-modifiers,
.duality-result,
.dice-title {
display: none;
}
}
fieldset.daggerheart.chat {
padding: 0;
border-left-width: 0;
border-right-width: 0;
border-bottom-width: 0;
legend {
display: flex;
align-items: center;
gap: 5px;
&:before,
&:after {
content: '\f0d8';
font-family: 'Font Awesome 6 Pro';
}
}
&.expanded {
legend:before,
legend:after {
content: '\f0d7';
}
}
.daggerheart.chat {
margin-top: 5px;
}
}

View file

@ -0,0 +1,193 @@
@import '../../utils/colors.less';
@import '../../utils/spacing.less';
.theme-colorful {
.chat-message.duality {
border-color: black;
padding: 8px 0 0 0;
fieldset.daggerheart.chat {
border-top-width: 0;
display: contents;
legend {
&:before,
&:after {
display: none;
}
}
}
.message-header {
color: var(--color-light-3);
padding: 0 8px;
}
&.hope {
background: linear-gradient(0, rgba(165, 42, 42, 0.6) 40px, rgba(0, 0, 0, 0.6));
}
&.fear {
background: linear-gradient(0, @fearBackgroundEnd, @fearBackgroundStart);
}
&.critical {
background: linear-gradient(0, @criticalBackgroundEnd, @criticalBackgroundStart);
}
.chat-message header {
color: var(--color-light-3);
}
> * {
padding: 0 8px;
}
.message-content {
.duality-modifiers,
.duality-result,
.dice-title {
display: flex;
}
.duality-modifiers {
display: flex;
gap: 2px;
margin-bottom: 4px;
.duality-modifier {
padding: 2px;
border-radius: 6px;
border: 1px solid;
background: var(--color-dark-6);
font-size: 12px;
}
}
.dice-flavor {
color: var(--color-light-1);
text-shadow: 0 0 1px black;
border-bottom: 1px solid;
display: flex;
align-items: end;
justify-content: space-between;
padding: 0 8px;
margin: 0 -8px 2px;
font-weight: unset;
}
.dice-result {
.duality-modifiers {
display: flex; // Default => display: none;
gap: 2px;
margin-bottom: 4px;
.duality-modifier {
padding: 2px;
border-radius: 6px;
border: 1px solid;
background: var(--color-dark-6);
font-size: 12px;
}
}
.dice-formula,
> .dice-total,
.part-header {
display: none;
}
.dice-tooltip {
grid-template-rows: 1fr;
.wrapper {
.tooltip-part {
display: flex;
align-items: end;
gap: 0.25rem;
.dice {
.dice-rolls {
margin-bottom: 0;
&.duality {
li {
display: flex;
align-items: center;
justify-content: center;
position: relative;
background: unset;
line-height: unset;
font-weight: unset;
}
}
}
}
.duality-modifier {
display: flex;
margin-bottom: 6px;
color: var(--color-light-1);
text-shadow: 0 0 1px black;
font-size: var(--font-size-16);
}
}
}
}
.target-selection {
label {
color: var(--color-light-1);
}
}
.target-section {
margin: 4px 0;
border: 2px solid;
margin-top: 5px;
.dice-total {
box-shadow: unset;
border: unset;
border-radius: unset;
font-size: var(--font-size-18);
}
}
.dice-actions {
justify-content: space-between;
&.duality-alone {
justify-content: end;
margin-top: -20px;
}
> * {
display: flex;
color: var(--color-light-1);
text-shadow: 0 0 1px black;
font-weight: bold;
background: var(--color-dark-1);
padding: 4px;
border-color: black;
min-height: unset;
height: 26px;
flex: unset;
margin: 0;
}
.duality-action {
border-radius: 0 6px 0 0;
margin-left: -8px;
&.duality-action-effect {
border-top-left-radius: 6px;
margin-left: initial;
}
}
.duality-result {
border-radius: 6px 0 0 0;
margin-right: -8px;
}
}
.duality-result {
display: flex;
color: var(--color-light-1);
text-shadow: 0 0 1px black;
font-weight: bold;
background: var(--color-dark-1);
padding: 4px;
border-color: black;
min-height: unset;
height: 26px;
flex: unset;
margin: 0;
margin-left: auto;
align-self: center;
border-radius: 6px;
}
}
}
button {
&.inner-button {
color: var(--color-light-1);
text-shadow: 0 0 1px black;
font-weight: bold;
background: var(--color-dark-1);
border-color: black;
}
}
}
}

View file

@ -0,0 +1,6 @@
.combat-sidebar {
h4 {
margin: 0;
text-align: center;
}
}

View file

@ -0,0 +1,5 @@
.combat-sidebar {
.combatant-controls {
flex: 0;
}
}

View file

@ -0,0 +1,48 @@
.combat-sidebar {
.encounter-controls.combat {
justify-content: space-between;
.encounter-fear-controls {
display: flex;
align-items: center;
gap: 8px;
.encounter-fear-dice-container {
display: flex;
gap: 2px;
.encounter-control-fear-container {
display: flex;
position: relative;
align-items: center;
justify-content: center;
color: black;
.dice {
height: 22px;
width: 22px;
}
.encounter-control-fear {
position: absolute;
font-size: 16px;
}
.encounter-control-counter {
position: absolute;
right: -10px;
color: var(--color-text-secondary);
}
}
}
.encounter-countdowns {
color: var(--content-link-icon-color);
}
}
.control-buttons {
width: min-content;
}
}
}

View file

@ -0,0 +1,19 @@
.combat-sidebar {
.spotlight-control {
font-size: 26px;
&:focus {
outline: none;
box-shadow: none;
}
&.discrete:hover {
background: inherit;
}
&.requesting {
filter: drop-shadow(0 0 3px gold);
color: var(--button-hover-text-color);
}
}
}

View file

@ -0,0 +1,48 @@
.combat-sidebar {
.token-actions {
align-self: stretch;
display: flex;
align-items: top;
justify-content: center;
gap: 16px;
.action-tokens {
display: flex;
gap: 4px;
.action-token {
height: 22px;
width: 22px;
border: 1px solid;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
padding: 8px;
--button-size: 0;
&.used {
opacity: 0.5;
background: transparent;
}
}
}
button {
font-size: 22px;
height: 24px;
width: 24px;
&.main {
background: var(--button-hover-background-color);
color: var(--button-hover-text-color);
border-color: var(--button-hover-border-color);
&:hover {
filter: drop-shadow(0 0 3px var(--button-hover-text-color));
}
}
}
}
}

View file

@ -0,0 +1,61 @@
@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);
legend {
font-family: @font-body;
font-weight: bold;
color: light-dark(@dark-blue, @golden);
a {
text-shadow: none;
}
}
}
.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

@ -1,71 +1,18 @@
.theme-light { @import '../../utils/colors.less';
.daggerheart.dh-style.countdown { @import '../../utils/fonts.less';
@import '../../utils/mixin.less';
.appTheme({}, {
&.countdown {
.minimized-view .mini-countdown-container { .minimized-view .mini-countdown-container {
background-image: url('../assets/parchments/dh-parchment-dark.png'); background-image: url('../assets/parchments/dh-parchment-dark.png');
} }
} }
} });
.daggerheart.dh-style.countdown { .daggerheart.dh-style.countdown {
overflow: hidden; overflow: hidden;
fieldset {
align-items: center;
margin-top: 5px;
border-radius: 6px;
border-color: light-dark(@dark-blue, @golden);
legend {
font-family: @font-body;
font-weight: bold;
color: light-dark(@dark-blue, @golden);
a {
text-shadow: none;
}
}
}
.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;
}
.window-content { .window-content {
> div { > div {
height: 100%; height: 100%;

18
styles/less/ui/index.less Normal file
View file

@ -0,0 +1,18 @@
@import './chat/chat.less';
@import './chat/sheet.less';
@import './chat/theme-colorful.less';
@import './combat-sidebar/combat-sidebar.less';
@import './combat-sidebar/combatant-controls.less';
@import './combat-sidebar/encounter-controls.less';
@import './combat-sidebar/spotlight-control.less';
@import './combat-sidebar/token-actions.less';
@import './countdown/countdown.less';
@import './countdown/sheet.less';
@import './ownership-selection/ownership-selection.less';
@import './resources/resources.less';
@import './settings/settings.less';

View file

@ -1,3 +1,5 @@
@import '../../utils/colors.less';
.daggerheart.views.ownership-selection { .daggerheart.views.ownership-selection {
.ownership-outer-container { .ownership-outer-container {
display: flex; display: flex;

View file

@ -1,3 +1,5 @@
@import '../../utils/colors.less';
.daggerheart.dh-style.setting { .daggerheart.dh-style.setting {
fieldset { fieldset {
display: flex; display: flex;

View file

@ -45,6 +45,21 @@
@gradient-hp: linear-gradient(15deg, rgb(70, 20, 10) 0%, rgb(190, 0, 0) 42%, rgb(252, 176, 69) 100%); @gradient-hp: linear-gradient(15deg, rgb(70, 20, 10) 0%, rgb(190, 0, 0) 42%, rgb(252, 176, 69) 100%);
@gradient-stress: linear-gradient(15deg, rgb(130, 59, 1) 0%, rgb(252, 142, 69) 65%, rgb(190, 0, 0) 100%); @gradient-stress: linear-gradient(15deg, rgb(130, 59, 1) 0%, rgb(252, 142, 69) 65%, rgb(190, 0, 0) 100%);
// TODO: Remove this colors section once new chat layout is done
@miss: rgb(255, 0, 0);
@hit: rgb(0, 128, 0);
@positive: #699969;
@secondaryShadow: gold;
@primaryAccent: #778899;
@hope: #ffe760;
@fear: #0032b1;
@fearBackgroundStart: rgba(15, 15, 97, 0.6);
@fearBackgroundEnd: rgba(0, 0, 255, 0.6);
@critical: #430070;
@criticalBackgroundStart: rgba(37, 8, 37, 0.6);
@criticalBackgroundEnd: rgba(128, 0, 128, 0.6);
@primary-color-fear: rgba(9, 71, 179, 0.75);
@keyframes glow { @keyframes glow {
0% { 0% {
box-shadow: 0 0 1px 1px @golden; box-shadow: 0 0 1px 1px @golden;

View file

@ -1,271 +0,0 @@
.theme-light {
.daggerheart.levelup {
.tiers-container {
.tier-container {
background-image: url('../assets/parchments/dh-parchment-light.png');
}
}
}
}
.daggerheart.levelup {
.window-content {
max-height: 960px;
overflow: auto;
}
div[data-application-part='form'] {
display: flex;
flex-direction: column;
gap: 8px;
}
section {
.section-container {
display: flex;
flex-direction: column;
gap: 8px;
margin-top: 8px;
}
}
.levelup-navigation-container {
display: flex;
align-items: center;
gap: 22px;
height: 36px;
nav {
flex: 1;
.levelup-tab-container {
display: flex;
align-items: center;
gap: 4px;
}
}
.levelup-navigation-actions {
width: 306px;
display: flex;
justify-content: end;
gap: 16px;
margin-right: 4px;
* {
width: calc(50% - 8px);
}
}
}
.tiers-container {
display: flex;
gap: 16px;
.tier-container {
flex: 1;
display: flex;
flex-direction: column;
gap: 8px;
background-image: url('../assets/parchments/dh-parchment-dark.png');
&.inactive {
opacity: 0.4;
pointer-events: none;
}
legend {
margin-left: auto;
margin-right: auto;
font-size: 22px;
font-weight: bold;
padding: 0 12px;
}
.checkbox-group-container {
display: grid;
grid-template-columns: 1fr 3fr;
gap: 4px;
.checkboxes-container {
display: flex;
justify-content: end;
gap: 4px;
.checkbox-grouping-coontainer {
display: flex;
height: min-content;
&.multi {
border: 2px solid grey;
padding: 2.4px 2.5px 0;
border-radius: 4px;
gap: 2px;
.selection-checkbox {
margin-left: 0;
margin-right: 0;
}
}
.selection-checkbox {
margin: 0;
}
}
}
.checkbox-group-label {
font-size: 14px;
font-style: italic;
}
}
}
}
.levelup-selections-container {
.achievement-experience-cards {
display: flex;
gap: 8px;
.achievement-experience-card {
border: 1px solid;
border-radius: 4px;
padding-right: 4px;
font-size: 18px;
display: flex;
justify-content: space-between;
align-items: center;
gap: 4px;
.achievement-experience-marker {
border: 1px solid;
border-radius: 50%;
height: 18px;
width: 18px;
display: flex;
align-items: center;
justify-content: center;
font-size: 12px;
}
}
}
.levelup-card-selection {
display: flex;
flex-wrap: wrap;
gap: 40px;
.card-preview-container {
width: calc(100% * (1 / 5));
}
.levelup-domains-selection-container {
display: flex;
flex-direction: column;
gap: 8px;
.levelup-domain-selection-container {
display: flex;
flex-direction: column;
align-items: center;
flex: 1;
position: relative;
cursor: pointer;
&.disabled {
pointer-events: none;
opacity: 0.4;
}
.levelup-domain-label {
position: absolute;
text-align: center;
top: 4px;
background: grey;
padding: 0 12px;
border-radius: 6px;
}
img {
height: 124px;
}
.levelup-domain-selected {
position: absolute;
height: 54px;
width: 54px;
border-radius: 50%;
border: 2px solid;
font-size: 48px;
display: flex;
align-items: center;
justify-content: center;
background-image: url(../assets/parchments/dh-parchment-light.png);
color: var(--color-dark-5);
top: calc(50% - 29px);
i {
position: relative;
right: 2px;
}
}
}
}
}
.levelup-selections-title {
display: flex;
align-items: center;
gap: 4px;
}
.levelup-radio-choices {
display: flex;
gap: 8px;
label {
flex: 0;
}
}
}
.levelup-summary-container {
.level-achievements-container,
.level-advancements-container {
display: flex;
flex-direction: column;
gap: 8px;
h2,
h3,
h4,
h5 {
margin: 0;
color: var(--color-text-secondary);
}
}
.increase-container {
display: flex;
align-items: center;
gap: 4px;
font-size: 20px;
}
.summary-selection-container {
display: flex;
gap: 8px;
.summary-selection {
border: 2px solid;
border-radius: 6px;
padding: 0 4px;
font-size: 18px;
}
}
}
.levelup-footer {
display: flex;
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,5 +0,0 @@
.application.sheet.daggerheart.dh-style.active-effect-config {
label {
white-space: nowrap;
}
}

View file

@ -1,65 +0,0 @@
.daggerheart.sheet.class .guide .drop-section {
width: 100%;
}
.daggerheart.sheet.class .guide .drop-section legend {
margin-left: auto;
margin-right: auto;
font-size: 12px;
}
.daggerheart.sheet.class .guide .drop-section .drop-section-body {
min-height: 40px;
display: flex;
flex-direction: column;
align-items: center;
}
.daggerheart.sheet.class .guide .trait-input {
text-align: center;
min-width: 24px;
}
.daggerheart.sheet.class .guide .suggested-item {
border-radius: 6px;
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
}
.daggerheart.sheet.class .guide .suggested-item img {
width: 30px;
}
.daggerheart.sheet.class .guide .suggested-item div {
text-align: center;
}
.daggerheart.sheet.class .guide .suggested-item i {
border-radius: 50%;
margin-right: 4px;
font-size: 11px;
}
.daggerheart.sheet.class .guide .extra-section {
display: flex;
flex-direction: column;
align-items: center;
}
.daggerheart.sheet.class .guide .extra-section .extra-title {
font-size: 14px;
font-weight: bold;
}
.daggerheart.sheet.class .guide-section-title-centered {
font-weight: bold;
font-size: 18px;
}
.daggerheart.sheet.class .inventory-section {
width: 100%;
border: 2px solid black;
border-style: dotted;
min-height: 80px;
}
.daggerheart.sheet.class .inventory-section .inventory-title {
font-weight: bold;
font-size: 14px;
text-align: center;
}
.daggerheart.sheet.class .domain-section {
display: flex;
align-items: center;
gap: 5px;
}

View file

@ -1,5 +0,0 @@
.daggerheart.sheet.heritage {
.editor {
height: 200px;
}
}

View file

@ -1,185 +0,0 @@
@import './heritage.less';
@import './class.less';
@import './activeEffect.less';
.daggerheart.sheet {
.title-container {
display: flex;
gap: @fullMargin;
div {
flex: 1;
align-items: baseline;
}
}
.editor-form-group {
display: flex;
flex-direction: column;
label {
font-weight: bold;
text-align: center;
}
}
.option-select {
position: absolute;
top: calc(50% - 10px);
right: 8px;
height: 20px;
width: 20px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
padding: 8px;
&.deeper {
right: 32px;
}
&:hover:not(:disabled) {
filter: drop-shadow(0px 0px 3px @mainShadow);
cursor: pointer;
}
i {
margin: 0;
font-size: 11px;
}
}
.ability-title {
width: 100%;
display: flex;
h2 {
flex: 1;
}
i {
cursor: pointer;
&:hover {
filter: drop-shadow(0px 0px 3px @mainShadow);
}
}
}
.ability-choices {
display: flex;
align-items: center;
flex-wrap: wrap;
}
.ability-chip {
border: 2px solid @secondaryAccent;
border-radius: 6px;
display: flex;
align-items: center;
padding: 4px;
margin-bottom: 6px;
flex: calc(33% - 4px);
max-width: calc(33% - 4px);
&.selected {
filter: drop-shadow(0px 0px 3px @mainShadow);
}
&:nth-of-type(3n-1) {
margin-left: 6px;
margin-right: 6px;
}
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;
}
}
}
.object-select-display {
position: relative;
width: calc(100% - 2px);
background: rgba(0, 0, 0, 0.05);
height: var(--form-field-height);
display: flex;
border: 1px solid rgb(122, 121, 113);
border-radius: 3px;
.object-select-title {
position: absolute;
left: 4px;
text-align: center;
font-weight: bold;
text-transform: uppercase;
}
.object-select-text {
align-self: center;
}
.object-select-item {
cursor: pointer;
&:hover {
filter: drop-shadow(0px 0px 3px red);
}
}
}
.feature-container {
display: flex;
align-items: center;
justify-content: space-between;
background: @primaryAccent;
padding: 8px;
border: 2px solid black;
border-radius: 6px;
&:not(:last-child) {
margin-bottom: 8px;
}
.feature-inner-container {
display: flex;
align-items: center;
img {
height: 40px;
width: 40px;
margin-right: 8px;
}
.feature-title {
font-size: 22px;
font-weight: bold;
font-style: italic;
}
}
button {
height: 40px;
width: 40px;
background: inherit;
border: 0;
i {
}
}
}
}

View file

@ -1,122 +0,0 @@
.combat-sidebar {
.encounter-controls.combat {
justify-content: space-between;
.encounter-fear-controls {
display: flex;
align-items: center;
gap: 8px;
.encounter-fear-dice-container {
display: flex;
gap: 2px;
.encounter-control-fear-container {
display: flex;
position: relative;
align-items: center;
justify-content: center;
color: black;
.dice {
height: 22px;
width: 22px;
}
.encounter-control-fear {
position: absolute;
font-size: 16px;
}
.encounter-control-counter {
position: absolute;
right: -10px;
color: var(--color-text-secondary);
}
}
}
.encounter-countdowns {
color: var(--content-link-icon-color);
}
}
.control-buttons {
width: min-content;
}
}
.combatant-controls {
flex: 0;
}
.token-actions {
align-self: stretch;
display: flex;
align-items: top;
justify-content: center;
gap: 16px;
.action-tokens {
display: flex;
gap: 4px;
.action-token {
height: 22px;
width: 22px;
border: 1px solid;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
padding: 8px;
--button-size: 0;
&.used {
opacity: 0.5;
background: transparent;
}
}
}
button {
font-size: 22px;
height: 24px;
width: 24px;
&.main {
background: var(--button-hover-background-color);
color: var(--button-hover-text-color);
border-color: var(--button-hover-border-color);
&:hover {
filter: drop-shadow(0 0 3px var(--button-hover-text-color));
}
}
}
}
.spotlight-control {
font-size: 26px;
&:focus {
outline: none;
box-shadow: none;
}
&.discrete:hover {
background: inherit;
}
&.requesting {
filter: drop-shadow(0 0 3px gold);
color: var(--button-hover-text-color);
}
}
h4 {
margin: 0;
text-align: center;
}
}

View file

@ -1,37 +0,0 @@
/* General */
@advantage: #008000;
@disadvantage: #b30000;
@miss: rgb(255, 0, 0);
@hit: rgb(0, 128, 0);
@positive: #699969;
@negative: #ff7f7f;
@borderPrimary: #b5b3a4;
@borderTertiary: #7a7971;
/* Drop Shadows */
@mainShadow: red;
@secondaryShadow: gold;
/* Background */
@secondaryBackground: #7a7971;
@primaryAccent: #778899;
@secondaryAccent: #708090;
@formBackground: #782e22;
@hoverBackground: #2f4f4f40;
/* Duality */
@hope: #ffe760;
@hopeBackgroundStart: rgba(0, 0, 0, 0.6);
@hopeBackgroundEnd: rgba(165, 42, 42, 0.6);
@fear: #0032b1;
@fearAccent: #2555cd;
@fearBackgroundStart: rgba(15, 15, 97, 0.6);
@fearBackgroundEnd: rgba(0, 0, 255, 0.6);
@critical: #430070;
@criticalAccent: #66159c;
@criticalBackgroundStart: rgba(37, 8, 37, 0.6);
@criticalBackgroundEnd: rgba(128, 0, 128, 0.6);
/* Fear */
@primary-color-fear: rgba(9, 71, 179, 0.75);

View file

@ -1,2 +0,0 @@
@import './colors.less';
@import './values.less';