Initial data model migration
This commit is contained in:
8
less/actor-sheet.less
Normal file
8
less/actor-sheet.less
Normal file
@@ -0,0 +1,8 @@
|
||||
// Actor sheet styles
|
||||
|
||||
.actor-sheet {
|
||||
min-width: 720px;
|
||||
min-height: 680px;
|
||||
}
|
||||
|
||||
// Placeholder - to be expanded based on actor-sheet.html
|
||||
90
less/base.less
Normal file
90
less/base.less
Normal file
@@ -0,0 +1,90 @@
|
||||
// Base styles
|
||||
|
||||
* {
|
||||
scrollbar-color: initial;
|
||||
}
|
||||
|
||||
.hawkmoon {
|
||||
font-family: @font-family-base;
|
||||
}
|
||||
|
||||
// Utility classes
|
||||
.flexrow {
|
||||
.flex-row();
|
||||
gap: @spacing-base;
|
||||
}
|
||||
|
||||
.flexcol {
|
||||
.flex-column();
|
||||
gap: @spacing-base;
|
||||
}
|
||||
|
||||
// Item lists
|
||||
.item-list {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
.item {
|
||||
padding: @spacing-small @spacing-base;
|
||||
border-bottom: 1px solid lighten(@color-border, 20%);
|
||||
|
||||
&:hover {
|
||||
background: lighten(@color-secondary, 65%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.alternate-list {
|
||||
.item:nth-child(even) {
|
||||
background: lighten(@color-secondary, 70%);
|
||||
}
|
||||
}
|
||||
|
||||
// Form elements
|
||||
input[type="text"],
|
||||
input[type="number"],
|
||||
textarea,
|
||||
select {
|
||||
.input-base();
|
||||
}
|
||||
|
||||
button {
|
||||
.button-base();
|
||||
}
|
||||
|
||||
// Labels
|
||||
label {
|
||||
.label-base();
|
||||
}
|
||||
|
||||
.generic-label {
|
||||
.label-base();
|
||||
margin: 0 @spacing-base;
|
||||
}
|
||||
|
||||
// Field sizes
|
||||
.item-field-label-short {
|
||||
flex: 0 0 40px;
|
||||
}
|
||||
|
||||
.item-field-label-medium {
|
||||
flex: 0 0 80px;
|
||||
}
|
||||
|
||||
.item-field-label-long {
|
||||
flex: 0 0 120px;
|
||||
}
|
||||
|
||||
.item-field-label-very-long {
|
||||
flex: 0 0 150px;
|
||||
}
|
||||
|
||||
// Padd classes
|
||||
.padd-right {
|
||||
padding-right: @spacing-medium;
|
||||
}
|
||||
|
||||
.padd-left {
|
||||
padding-left: @spacing-medium;
|
||||
}
|
||||
8
less/cellule-sheet.less
Normal file
8
less/cellule-sheet.less
Normal file
@@ -0,0 +1,8 @@
|
||||
// Cellule sheet styles
|
||||
|
||||
.cellule-sheet {
|
||||
min-width: 720px;
|
||||
min-height: 680px;
|
||||
}
|
||||
|
||||
// Placeholder - to be expanded based on cellule-sheet.html
|
||||
23
less/chat.less
Normal file
23
less/chat.less
Normal file
@@ -0,0 +1,23 @@
|
||||
// Chat message styles
|
||||
|
||||
.chat-message {
|
||||
.message-header {
|
||||
.flex-row();
|
||||
gap: @spacing-base;
|
||||
margin-bottom: @spacing-small;
|
||||
}
|
||||
|
||||
.dice-roll {
|
||||
.flex-center();
|
||||
padding: @spacing-base;
|
||||
background: lighten(@color-secondary, 70%);
|
||||
border-radius: @input-border-radius;
|
||||
|
||||
.dice-total {
|
||||
font-size: 1.2rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Placeholder - to be expanded based on chat templates
|
||||
3
less/combat.less
Normal file
3
less/combat.less
Normal file
@@ -0,0 +1,3 @@
|
||||
// Combat styles
|
||||
|
||||
// Placeholder - combat tracker styles
|
||||
8
less/creature-sheet.less
Normal file
8
less/creature-sheet.less
Normal file
@@ -0,0 +1,8 @@
|
||||
// Creature sheet styles
|
||||
|
||||
.creature-sheet {
|
||||
min-width: 720px;
|
||||
min-height: 680px;
|
||||
}
|
||||
|
||||
// Placeholder - to be expanded based on creature-sheet.html
|
||||
17
less/dialogs.less
Normal file
17
less/dialogs.less
Normal file
@@ -0,0 +1,17 @@
|
||||
// Dialog styles
|
||||
|
||||
.dialog {
|
||||
.dialog-buttons {
|
||||
.flex-row();
|
||||
justify-content: flex-end;
|
||||
gap: @spacing-base;
|
||||
padding-top: @spacing-medium;
|
||||
border-top: 1px solid @color-border;
|
||||
|
||||
button {
|
||||
min-width: 80px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Placeholder - to be expanded based on roll-dialog-generic.html
|
||||
13
less/fonts.less
Normal file
13
less/fonts.less
Normal file
@@ -0,0 +1,13 @@
|
||||
// Font definitions
|
||||
|
||||
@font-face {
|
||||
font-family: "Pfeffer";
|
||||
src: url("../assets/fonts/pfeffer-simpelgotisch.regular2.otf")
|
||||
format("opentype");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Montserrat";
|
||||
src: url("../assets/fonts/Montserrat-Medium.woff") format("woff");
|
||||
font-weight: normal;
|
||||
}
|
||||
27
less/forms.less
Normal file
27
less/forms.less
Normal file
@@ -0,0 +1,27 @@
|
||||
// Form elements specific styles
|
||||
|
||||
form {
|
||||
input[type="checkbox"] {
|
||||
width: auto;
|
||||
margin: 0 @spacing-base;
|
||||
}
|
||||
|
||||
input[disabled],
|
||||
select[disabled],
|
||||
textarea[disabled] {
|
||||
opacity: 0.6;
|
||||
cursor: not-allowed;
|
||||
background: lighten(@color-border, 25%);
|
||||
}
|
||||
}
|
||||
|
||||
.editor {
|
||||
min-height: 100px;
|
||||
border: @input-border;
|
||||
border-radius: @input-border-radius;
|
||||
padding: @spacing-base;
|
||||
|
||||
.editor-content {
|
||||
min-height: 80px;
|
||||
}
|
||||
}
|
||||
4
less/hawkmoon.less
Normal file
4
less/hawkmoon.less
Normal file
@@ -0,0 +1,4 @@
|
||||
// Main LESS file for Hawkmoon system
|
||||
// Temporarily importing the full converted simple.css while we refactor
|
||||
|
||||
@import "simple-converted";
|
||||
3
less/hud.less
Normal file
3
less/hud.less
Normal file
@@ -0,0 +1,3 @@
|
||||
// HUD styles
|
||||
|
||||
// Placeholder - to be expanded based on hud-adversites.html
|
||||
109
less/item-sheets.less
Normal file
109
less/item-sheets.less
Normal file
@@ -0,0 +1,109 @@
|
||||
// Item sheets styles
|
||||
|
||||
.item-sheet {
|
||||
min-width: 500px;
|
||||
min-height: 400px;
|
||||
|
||||
.sheet-header {
|
||||
.flex-row();
|
||||
gap: @spacing-medium;
|
||||
padding: @spacing-medium;
|
||||
background: lighten(@color-secondary, 65%);
|
||||
border-bottom: 2px solid @color-primary;
|
||||
|
||||
img.item-sheet-img {
|
||||
flex: 0 0 48px;
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
object-fit: cover;
|
||||
border: 2px solid @color-border;
|
||||
border-radius: @input-border-radius;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
border-color: @color-primary;
|
||||
}
|
||||
}
|
||||
|
||||
.header-fields {
|
||||
flex: 1;
|
||||
|
||||
h1 {
|
||||
margin: 0 0 @spacing-base 0;
|
||||
font-size: 1.2rem;
|
||||
font-weight: bold;
|
||||
border: none;
|
||||
|
||||
input {
|
||||
font-size: 1.2rem;
|
||||
font-weight: bold;
|
||||
border: none;
|
||||
background: transparent;
|
||||
|
||||
&:focus {
|
||||
background: white;
|
||||
border: @input-border;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.header-actions {
|
||||
.flex-row();
|
||||
gap: @spacing-base;
|
||||
|
||||
button {
|
||||
padding: @spacing-small @spacing-base;
|
||||
font-size: @font-size-small;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.sheet-body {
|
||||
padding: @spacing-medium;
|
||||
}
|
||||
|
||||
// Predilections section
|
||||
.predilections-list {
|
||||
.predilection-item {
|
||||
padding: @spacing-base;
|
||||
margin-bottom: @spacing-small;
|
||||
border: 1px solid lighten(@color-border, 15%);
|
||||
border-radius: @input-border-radius;
|
||||
|
||||
.predilection-header {
|
||||
.flex-row();
|
||||
margin-bottom: @spacing-small;
|
||||
|
||||
input[type="text"] {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
input[type="checkbox"] {
|
||||
margin: 0 @spacing-small;
|
||||
}
|
||||
}
|
||||
|
||||
.predilection-description {
|
||||
textarea {
|
||||
width: 100%;
|
||||
min-height: 40px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Automation section
|
||||
.automation-item {
|
||||
padding: @spacing-base;
|
||||
margin-bottom: @spacing-small;
|
||||
background: lighten(@color-secondary, 70%);
|
||||
border-radius: @input-border-radius;
|
||||
|
||||
hr {
|
||||
margin: @spacing-small 0;
|
||||
border: none;
|
||||
border-top: 1px solid @color-border;
|
||||
}
|
||||
}
|
||||
}
|
||||
47
less/items.less
Normal file
47
less/items.less
Normal file
@@ -0,0 +1,47 @@
|
||||
// Item-related styles
|
||||
|
||||
.item-control {
|
||||
flex: 0 0 24px;
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
background: transparent;
|
||||
|
||||
i {
|
||||
font-size: @font-size-base;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: @color-primary;
|
||||
}
|
||||
}
|
||||
|
||||
.item-image {
|
||||
flex: 0 0 36px;
|
||||
height: 36px;
|
||||
cursor: pointer;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
border: 1px solid @color-border;
|
||||
border-radius: @input-border-radius;
|
||||
}
|
||||
}
|
||||
|
||||
.item-name {
|
||||
flex: 1;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
color: @color-primary;
|
||||
}
|
||||
}
|
||||
|
||||
.item-value {
|
||||
flex: 0 0 60px;
|
||||
text-align: center;
|
||||
}
|
||||
58
less/mixins.less
Normal file
58
less/mixins.less
Normal file
@@ -0,0 +1,58 @@
|
||||
// Mixins for Hawkmoon system
|
||||
|
||||
// Flexbox helpers
|
||||
.flex-row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.flex-column {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.flex-center {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
// Common input styling
|
||||
.input-base {
|
||||
padding: @input-padding;
|
||||
border: @input-border;
|
||||
border-radius: @input-border-radius;
|
||||
font-size: @font-size-base;
|
||||
|
||||
&:focus {
|
||||
outline: none;
|
||||
border-color: @color-primary;
|
||||
}
|
||||
}
|
||||
|
||||
// Button styling
|
||||
.button-base {
|
||||
padding: @button-padding;
|
||||
border: @input-border;
|
||||
border-radius: @button-border-radius;
|
||||
background: @color-background;
|
||||
cursor: pointer;
|
||||
font-family: @font-family-base;
|
||||
|
||||
&:hover {
|
||||
background: lighten(@color-secondary, 60%);
|
||||
}
|
||||
|
||||
&:active {
|
||||
background: lighten(@color-secondary, 50%);
|
||||
}
|
||||
}
|
||||
|
||||
// Label styling
|
||||
.label-base {
|
||||
font-family: @font-family-base;
|
||||
font-size: @font-size-base;
|
||||
font-weight: 700;
|
||||
color: @color-text-dark;
|
||||
}
|
||||
1665
less/simple-converted.less
Normal file
1665
less/simple-converted.less
Normal file
File diff suppressed because it is too large
Load Diff
39
less/tabs.less
Normal file
39
less/tabs.less
Normal file
@@ -0,0 +1,39 @@
|
||||
// Tabs navigation
|
||||
|
||||
.tabs {
|
||||
.flex-row();
|
||||
gap: 0;
|
||||
border-bottom: 2px solid @color-border;
|
||||
margin-bottom: @spacing-medium;
|
||||
|
||||
.item {
|
||||
padding: @spacing-base @spacing-large;
|
||||
font-family: @font-family-base;
|
||||
font-size: @font-size-large;
|
||||
font-weight: 700;
|
||||
color: @color-secondary;
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
border-bottom: 3px solid transparent;
|
||||
background: transparent;
|
||||
transition: all 0.2s;
|
||||
|
||||
&:hover {
|
||||
color: @color-primary;
|
||||
background: lighten(@color-secondary, 70%);
|
||||
}
|
||||
|
||||
&.active {
|
||||
color: @color-primary;
|
||||
border-bottom-color: @color-primary;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tab {
|
||||
display: none;
|
||||
|
||||
&.active {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
36
less/variables.less
Normal file
36
less/variables.less
Normal file
@@ -0,0 +1,36 @@
|
||||
// Variables for Hawkmoon system
|
||||
|
||||
// =================== Fonts ===================
|
||||
@font-family-base: Montserrat;
|
||||
@font-family-decorative: Pfeffer;
|
||||
|
||||
// =================== Colors ===================
|
||||
@color-primary: #4a0404;
|
||||
@color-secondary: #403f3e;
|
||||
@color-text-light: #f5f5f5;
|
||||
@color-text-dark: #464331c4;
|
||||
@color-border: #7a7971;
|
||||
@color-background: #fff;
|
||||
|
||||
// =================== Sizes ===================
|
||||
@font-size-small: 0.8rem;
|
||||
@font-size-base: 0.9rem;
|
||||
@font-size-medium: 0.95rem;
|
||||
@font-size-large: 1rem;
|
||||
|
||||
@spacing-small: 2px;
|
||||
@spacing-base: 4px;
|
||||
@spacing-medium: 8px;
|
||||
@spacing-large: 12px;
|
||||
|
||||
// =================== Form Elements ===================
|
||||
@input-padding: 2px 4px;
|
||||
@input-border-radius: 3px;
|
||||
@input-border: 1px solid @color-border;
|
||||
|
||||
// =================== Buttons ===================
|
||||
@button-padding: 4px 8px;
|
||||
@button-border-radius: 3px;
|
||||
|
||||
// =================== Windows ===================
|
||||
@window-header-height: 28px;
|
||||
70
less/windows.less
Normal file
70
less/windows.less
Normal file
@@ -0,0 +1,70 @@
|
||||
// Window and sheet styles
|
||||
|
||||
.window-app {
|
||||
.window-header {
|
||||
font-family: @font-family-base;
|
||||
|
||||
.window-title {
|
||||
font-size: @font-size-medium;
|
||||
font-weight: normal;
|
||||
color: @color-text-light;
|
||||
}
|
||||
}
|
||||
|
||||
.window-content {
|
||||
background: @color-background;
|
||||
padding: @spacing-medium;
|
||||
}
|
||||
}
|
||||
|
||||
// Sheet sections
|
||||
.sheet-header {
|
||||
.flex-row();
|
||||
padding: @spacing-medium;
|
||||
border-bottom: 2px solid @color-primary;
|
||||
margin-bottom: @spacing-medium;
|
||||
|
||||
img.profile-img {
|
||||
flex: 0 0 100px;
|
||||
height: 100px;
|
||||
object-fit: cover;
|
||||
border: 2px solid @color-border;
|
||||
border-radius: @input-border-radius;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
border-color: @color-primary;
|
||||
}
|
||||
}
|
||||
|
||||
.header-fields {
|
||||
flex: 1;
|
||||
padding-left: @spacing-medium;
|
||||
}
|
||||
}
|
||||
|
||||
.sheet-body {
|
||||
overflow-y: auto;
|
||||
|
||||
section {
|
||||
margin-bottom: @spacing-large;
|
||||
}
|
||||
}
|
||||
|
||||
// Edit/Play mode toggle
|
||||
.sheet-mode-toggle {
|
||||
position: absolute;
|
||||
top: @spacing-base;
|
||||
right: 80px;
|
||||
z-index: 10;
|
||||
|
||||
button {
|
||||
padding: @spacing-small @spacing-base;
|
||||
font-size: @font-size-small;
|
||||
|
||||
&.active {
|
||||
background: @color-primary;
|
||||
color: @color-text-light;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user