Datamodel + Appv2 migration, WIP
This commit is contained in:
118
styles/README.md
Normal file
118
styles/README.md
Normal file
@@ -0,0 +1,118 @@
|
||||
# Structure LESS pour BoL
|
||||
|
||||
Ce dossier contient tous les fichiers LESS qui sont compilés en CSS pour le système BoL.
|
||||
|
||||
## Structure des fichiers
|
||||
|
||||
```
|
||||
styles/
|
||||
├── bol.less # Fichier principal (importe tous les autres)
|
||||
├── global/ # Styles globaux
|
||||
│ ├── typography.less # Fonts et styles de texte
|
||||
│ ├── foundry-overrides.less # Overrides Foundry VTT
|
||||
│ ├── flex.less # Utilitaires Flexbox
|
||||
│ ├── forms.less # Styles de formulaires
|
||||
│ ├── item-list.less # Listes d'items
|
||||
│ ├── colors.less # Couleurs pré-définies
|
||||
│ └── chat.less # Messages de chat
|
||||
└── components/ # Composants spécifiques
|
||||
├── common.less # Styles communs aux sheets
|
||||
├── actor.less # Feuilles d'acteurs
|
||||
└── item.less # Feuilles d'items
|
||||
```
|
||||
|
||||
## Compilation
|
||||
|
||||
### Commande unique
|
||||
```bash
|
||||
npm run css
|
||||
```
|
||||
|
||||
### Mode watch (recompile automatiquement)
|
||||
```bash
|
||||
gulp
|
||||
```
|
||||
ou
|
||||
```bash
|
||||
npm start
|
||||
```
|
||||
|
||||
## Modification des styles
|
||||
|
||||
1. **NE PAS modifier** directement `css/bol.css`
|
||||
2. Modifier les fichiers `.less` appropriés dans `styles/`
|
||||
3. Compiler avec `npm run css`
|
||||
4. Le fichier `css/bol.css` sera régénéré automatiquement
|
||||
|
||||
## Organisation
|
||||
|
||||
### Global (`styles/global/`)
|
||||
|
||||
- **typography.less** : Définition des @font-face et styles de texte de base
|
||||
- **foundry-overrides.less** : Overrides des styles Foundry (pause, scrollbar, etc.)
|
||||
- **flex.less** : Classes utilitaires flexbox (.flexrow, .flexcol, etc.)
|
||||
- **forms.less** : Tous les styles de formulaires (inputs, selects, labels, etc.)
|
||||
- **item-list.less** : Styles des listes d'items (.items-list)
|
||||
- **colors.less** : Classes de couleurs pré-définies (.red, .bg-red, etc.)
|
||||
- **chat.less** : Styles des messages de chat et résultats de dés
|
||||
|
||||
### Components (`styles/components/`)
|
||||
|
||||
- **common.less** : Styles communs à toutes les sheets (.bol.sheet)
|
||||
- Window header/content
|
||||
- Sheet header avec banner
|
||||
- Tabs
|
||||
- Sheet body
|
||||
|
||||
- **actor.less** : Styles spécifiques aux feuilles d'acteurs
|
||||
- Dimensions et layout
|
||||
- Images d'attributs (vigor, agility, etc.)
|
||||
- Footer
|
||||
- Stats, resources
|
||||
- HUD et tooltips
|
||||
|
||||
- **item.less** : Styles spécifiques aux feuilles d'items
|
||||
- Dimensions
|
||||
- Properties list
|
||||
- Dialog
|
||||
|
||||
## Avantages de LESS
|
||||
|
||||
1. **Variables** : Réutilisables dans tout le code
|
||||
2. **Nesting** : Code plus lisible et maintenable
|
||||
3. **Mixins** : Réutilisation de blocs de styles
|
||||
4. **Imports** : Organisation modulaire
|
||||
5. **Opérations** : Calculs CSS (calc() amélioré)
|
||||
|
||||
## Exemple d'utilisation
|
||||
|
||||
### Avant (CSS)
|
||||
```css
|
||||
.bol.sheet.actor .window-content form .sidebar .profile-img {
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
}
|
||||
```
|
||||
|
||||
### Après (LESS)
|
||||
```less
|
||||
.bol.sheet.actor {
|
||||
.window-content {
|
||||
form {
|
||||
.sidebar {
|
||||
.profile-img {
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Notes importantes
|
||||
|
||||
- La compilation LESS → CSS se fait automatiquement avec gulp
|
||||
- Le fichier `css/bol.css` est généré et ne doit pas être modifié manuellement
|
||||
- Tous les imports sont dans `styles/bol.less`
|
||||
- Les chemins des images/fonts sont relatifs au fichier CSS final dans `css/`
|
||||
17
styles/bol.less
Normal file
17
styles/bol.less
Normal file
@@ -0,0 +1,17 @@
|
||||
/* ========================================= */
|
||||
/* BoL System LESS Main File */
|
||||
/* ========================================= */
|
||||
|
||||
/* Global Styles */
|
||||
@import "global/typography.less";
|
||||
@import "global/foundry-overrides.less";
|
||||
@import "global/flex.less";
|
||||
@import "global/forms.less";
|
||||
@import "global/item-list.less";
|
||||
@import "global/colors.less";
|
||||
@import "global/chat.less";
|
||||
|
||||
/* Component Styles */
|
||||
@import "components/common.less";
|
||||
@import "components/actor.less";
|
||||
@import "components/item.less";
|
||||
328
styles/components/actor.less
Normal file
328
styles/components/actor.less
Normal file
@@ -0,0 +1,328 @@
|
||||
/* ----------------------------------------- */
|
||||
/* Actor Sheet Styles */
|
||||
/* ----------------------------------------- */
|
||||
|
||||
.bol.sheet.actor {
|
||||
min-width: 820px;
|
||||
min-height: 700px;
|
||||
height: 700px;
|
||||
|
||||
.window-content {
|
||||
.bol-actor-form {
|
||||
background-image: url("/systems/bol/ui/logo.webp");
|
||||
background-repeat: no-repeat;
|
||||
background-size: 190px 115px;
|
||||
}
|
||||
|
||||
form {
|
||||
.sidebar {
|
||||
padding-top: 115px;
|
||||
min-width: 250px;
|
||||
width: 250px;
|
||||
max-width: 250px;
|
||||
|
||||
.profile-img {
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
background-color: #EEE;
|
||||
height: auto;
|
||||
width: calc(250px - 10px);
|
||||
min-width: calc(250px - 10px);
|
||||
max-width: calc(250px - 10px);
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.main {
|
||||
.sheet-body {
|
||||
overflow: hidden;
|
||||
|
||||
.tab {
|
||||
.attribute {
|
||||
&.vigor {
|
||||
background-image: url("/systems/bol/ui/attributes/vigor.webp");
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: 64px 64px;
|
||||
}
|
||||
|
||||
&.agility {
|
||||
background-image: url("/systems/bol/ui/attributes/agility.webp");
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: 64px 64px;
|
||||
}
|
||||
|
||||
&.mind {
|
||||
background-image: url("/systems/bol/ui/attributes/mind.webp");
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: 64px 64px;
|
||||
}
|
||||
|
||||
&.appeal {
|
||||
background-image: url("/systems/bol/ui/attributes/appeal.webp");
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: 64px 64px;
|
||||
}
|
||||
|
||||
.stat-value {
|
||||
margin-top: -10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bol-footer {
|
||||
height: 62px;
|
||||
max-height: 62px;
|
||||
min-height: 62px;
|
||||
|
||||
.footer-left img {
|
||||
border: none;
|
||||
height: 62px;
|
||||
max-height: 62px;
|
||||
min-height: 62px;
|
||||
transform: scaleX(-1);
|
||||
}
|
||||
|
||||
.footer-center {
|
||||
margin-top: 20px;
|
||||
margin-left: calc(-330px * 2);
|
||||
margin-right: calc(-330px * 2);
|
||||
height: 30px;
|
||||
max-height: 30px;
|
||||
min-height: 30px;
|
||||
background-color: black;
|
||||
}
|
||||
|
||||
.footer-right {
|
||||
text-align: right;
|
||||
|
||||
img {
|
||||
border: none;
|
||||
height: 62px;
|
||||
max-height: 62px;
|
||||
min-height: 62px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.stat-max {
|
||||
font-size: 1rem;
|
||||
font-weight: bold;
|
||||
color: #4b4a44;
|
||||
}
|
||||
|
||||
.bonus-text {
|
||||
margin-top: 7px;
|
||||
}
|
||||
|
||||
.stat-value {
|
||||
font-size: 1.5rem;
|
||||
font-weight: bold;
|
||||
color: darkred;
|
||||
}
|
||||
|
||||
.resource-bonus {
|
||||
font-weight: bold;
|
||||
color: darkred;
|
||||
}
|
||||
|
||||
.resources-value {
|
||||
background-color: #2a2a2a30;
|
||||
border-color: #003c1e;
|
||||
margin-top: 4px;
|
||||
border-radius: 0.5rem;
|
||||
}
|
||||
|
||||
.resources-novalue {
|
||||
background-color: #2a2a2a00;
|
||||
border-color: #003c1e;
|
||||
margin-top: 4px;
|
||||
border-radius: 0.5rem;
|
||||
}
|
||||
|
||||
.stat-roll {
|
||||
font-size: 1.5rem;
|
||||
color: #4b4a44;
|
||||
|
||||
&.malus {
|
||||
color: darkred;
|
||||
}
|
||||
|
||||
&.bonus {
|
||||
color: darkgreen;
|
||||
}
|
||||
}
|
||||
|
||||
.header-field-label,
|
||||
.stat-label {
|
||||
font-weight: bold;
|
||||
font-family: "Wolfsbane2Expanded", cursive;
|
||||
font-size: 2rem;
|
||||
font-variant: small-caps;
|
||||
}
|
||||
|
||||
.rounded {
|
||||
border-radius: 100px;
|
||||
width: 4rem;
|
||||
height: 4rem;
|
||||
}
|
||||
|
||||
.rounded-border {
|
||||
border: 3px solid #4b4a44;
|
||||
box-shadow: 5px 5px 5px gray;
|
||||
border-radius: 100px;
|
||||
width: 4rem;
|
||||
height: 4rem;
|
||||
}
|
||||
|
||||
.half-rounded {
|
||||
border-radius: 100px 100px 0px 0px;
|
||||
width: 4rem;
|
||||
height: 4rem;
|
||||
}
|
||||
|
||||
.half-rounded-border {
|
||||
border-radius: 100px 100px 0px 0px;
|
||||
border: 3px solid #4b4a44;
|
||||
width: 4rem;
|
||||
height: 4rem;
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------------------- */
|
||||
/* HUD and Chat Extensions */
|
||||
/* ----------------------------------------- */
|
||||
|
||||
.rollable {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.chat-message .chat-icon {
|
||||
float: right;
|
||||
border: 1px outset lightgray;
|
||||
box-shadow: 3px 3px 3px black;
|
||||
margin: 3px;
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
}
|
||||
|
||||
.dialog-button {
|
||||
max-height: 2rem;
|
||||
}
|
||||
|
||||
.xp-next {
|
||||
color: darkgrey;
|
||||
font-size: 1.0rem;
|
||||
border: 1px solid #4b4a44;
|
||||
box-shadow: 1px 1px 1px gray;
|
||||
border-radius: 100px;
|
||||
width: 1.25rem;
|
||||
height: 1.25rem;
|
||||
}
|
||||
|
||||
.tooltip-container {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
|
||||
.tooltiptext {
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
visibility: hidden;
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s;
|
||||
background-color: #f2f3a2a0;
|
||||
padding: 4px;
|
||||
width: 4rem;
|
||||
border-radius: 25%;
|
||||
border-width: 1px;
|
||||
transform: translate(-40%, -60%);
|
||||
}
|
||||
|
||||
&:hover .tooltiptext {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.tokenhudext {
|
||||
display: flex;
|
||||
flex: 0 !important;
|
||||
font-family: CaslonPro;
|
||||
font-weight: 600;
|
||||
|
||||
&.left {
|
||||
justify-content: flex-start;
|
||||
flex-direction: column;
|
||||
position: absolute;
|
||||
top: 2.75rem;
|
||||
right: 16rem;
|
||||
}
|
||||
|
||||
&.right {
|
||||
justify-content: flex-start;
|
||||
flex-direction: column;
|
||||
position: absolute;
|
||||
top: -4rem;
|
||||
max-width: 250px;
|
||||
left: 4rem;
|
||||
}
|
||||
|
||||
&.right2 {
|
||||
justify-content: flex-start;
|
||||
flex-direction: column;
|
||||
position: absolute;
|
||||
top: -4rem;
|
||||
left: 11rem;
|
||||
}
|
||||
}
|
||||
|
||||
.control-icon.tokenhudicon {
|
||||
width: fit-content;
|
||||
height: fit-content;
|
||||
min-width: 6rem;
|
||||
flex-basis: auto;
|
||||
padding: 0.20rem;
|
||||
line-height: 1.1rem;
|
||||
margin: 0.20rem;
|
||||
|
||||
&.right {
|
||||
margin-left: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
#token-hud .status-effects.active {
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.bol-hud-menu label {
|
||||
font-size: 0.6rem;
|
||||
}
|
||||
|
||||
.bol-margin-tb-2 {
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.character-summary-container {
|
||||
opacity: 0.95;
|
||||
}
|
||||
|
||||
.character-summary-rollable {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.activated-green {
|
||||
color: darkgreen;
|
||||
}
|
||||
|
||||
.compendium-sidebar .directory-item.compendium.locked .compendium-banner {
|
||||
opacity: 0.5;
|
||||
}
|
||||
127
styles/components/common.less
Normal file
127
styles/components/common.less
Normal file
@@ -0,0 +1,127 @@
|
||||
/* ----------------------------------------- */
|
||||
/* Common Sheet Styles */
|
||||
/* ----------------------------------------- */
|
||||
|
||||
body.system-bol img#logo {
|
||||
content: url("/systems/bol/ui/logo2.webp");
|
||||
}
|
||||
|
||||
.journal-page-content {
|
||||
/* Reserved for future use */
|
||||
}
|
||||
|
||||
.bol.sheet {
|
||||
.window-header {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.window-content {
|
||||
height: 100%;
|
||||
padding: 10px;
|
||||
overflow-y: hidden;
|
||||
background: transparent;
|
||||
|
||||
form {
|
||||
border: 10px solid transparent;
|
||||
border-image: url("/systems/bol/ui/box-border-large.webp") 36 repeat;
|
||||
border-image-outset: 1;
|
||||
background: white;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 100%;
|
||||
|
||||
.sheet-header {
|
||||
background-image: url("/systems/bol/ui/banner.webp");
|
||||
background-repeat: no-repeat;
|
||||
background-size: 330px 62px;
|
||||
background-position-y: -15px;
|
||||
background-position-x: right;
|
||||
height: 115px;
|
||||
min-height: 115px;
|
||||
max-height: 115px;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
justify-content: flex-start;
|
||||
align-items: flex-end;
|
||||
padding-bottom: 10px;
|
||||
|
||||
.header-field {
|
||||
.header-field-group {
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
justify-content: flex-start;
|
||||
align-items: baseline;
|
||||
|
||||
.header-field-label {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.charname,
|
||||
.itemname,
|
||||
.header-field-value {
|
||||
color: #4b4a44;
|
||||
font-family: 'Contrail One', cursive;
|
||||
font-size: 1.5rem;
|
||||
background-color: #EEE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.main {
|
||||
.tabs {
|
||||
flex: 0 0 30px;
|
||||
background-color: black;
|
||||
|
||||
.item {
|
||||
line-height: 30px;
|
||||
font-weight: bold;
|
||||
font-family: "CCMeanwhile", cursive;
|
||||
color: white;
|
||||
padding-top: 4px;
|
||||
font-size: 0.8em;
|
||||
|
||||
&.active {
|
||||
text-decoration: underline;
|
||||
text-shadow: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.sheet-body {
|
||||
overflow: hidden;
|
||||
|
||||
.tab {
|
||||
height: 95%;
|
||||
border: none;
|
||||
overflow-y: auto;
|
||||
|
||||
&.description {
|
||||
.editor,
|
||||
.editor-content {
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.sheet-profile-img {
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
background-color: #EEE;
|
||||
height: auto;
|
||||
width: 96px;
|
||||
height: 96px;
|
||||
min-width: 96px;
|
||||
min-height: 96px;
|
||||
max-width: 96px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
56
styles/components/item.less
Normal file
56
styles/components/item.less
Normal file
@@ -0,0 +1,56 @@
|
||||
/* ----------------------------------------- */
|
||||
/* Item Sheet Styles */
|
||||
/* ----------------------------------------- */
|
||||
|
||||
.bol.sheet.item {
|
||||
min-width: 460px;
|
||||
min-height: 400px;
|
||||
|
||||
h1 input.itemname {
|
||||
margin-top: 32px;
|
||||
min-width: 24rem;
|
||||
font-family: "Wolfsbane2Expanded", cursive;
|
||||
}
|
||||
|
||||
.item-properties {
|
||||
flex: 0 0 150px;
|
||||
margin: 5px 5px 5px 0;
|
||||
padding-right: 5px;
|
||||
border-right: 1px groove #eeede0;
|
||||
|
||||
.form-group {
|
||||
margin: 0;
|
||||
|
||||
label {
|
||||
line-height: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.properties-list {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
li {
|
||||
margin: 3px 0;
|
||||
padding: 0 2px;
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
border: 1px groove #eeede0;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bol.dialog .sheet-header h3 {
|
||||
font-family: "Wolfsbane2Expanded", cursive;
|
||||
font-size: 24px;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.editor,
|
||||
.editor-content {
|
||||
height: 100%;
|
||||
}
|
||||
99
styles/global/chat.less
Normal file
99
styles/global/chat.less
Normal file
@@ -0,0 +1,99 @@
|
||||
/* ----------------------------------------- */
|
||||
/* Chat Messages */
|
||||
/* ----------------------------------------- */
|
||||
|
||||
.message-header {
|
||||
h2.damage {
|
||||
color: orangered;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h2.critical {
|
||||
color: green;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h2.fumble {
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h2.success {
|
||||
color: darkgreen;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h2.failure {
|
||||
color: darkred;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h2.roll {
|
||||
color: darkslategrey;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
h2.good {
|
||||
color: darkgreen;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h2.bad {
|
||||
color: darkred;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.chat-message {
|
||||
margin: 3px;
|
||||
padding: 10px;
|
||||
font-size: 14px;
|
||||
border-radius: 0;
|
||||
background-color: white;
|
||||
background-image: url("/systems/bol/ui/box-border-large.webp");
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
|
||||
.message-header {
|
||||
.flavor-text {
|
||||
font-family: "IMFellDWPicaSC-Regular", serif;
|
||||
font-size: 14px;
|
||||
|
||||
h2 {
|
||||
font-family: "Modesto Condensed", "Palatino Linotype", serif;
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.message-content {
|
||||
.dice-roll {
|
||||
.dice-result {
|
||||
.dice-formula {
|
||||
border-radius: 0px;
|
||||
border: 1px inset lightgray;
|
||||
background-color: #282828;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.dice-tooltip {
|
||||
.tooltip-part {
|
||||
.part-total {
|
||||
border-radius: 0px;
|
||||
border: 1px inset lightgray;
|
||||
background-color: #2a2a2a;
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.dice-total {
|
||||
border-radius: 0px;
|
||||
border: 1px inset lightgray;
|
||||
background-color: #2a2a2a;
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
110
styles/global/colors.less
Normal file
110
styles/global/colors.less
Normal file
@@ -0,0 +1,110 @@
|
||||
/* ----------------------------------------- */
|
||||
/* Premade Colors */
|
||||
/* ----------------------------------------- */
|
||||
|
||||
.light {
|
||||
color: lightgray;
|
||||
}
|
||||
|
||||
.bg-light {
|
||||
background: lightgray;
|
||||
}
|
||||
|
||||
.darkgray {
|
||||
color: #23221d;
|
||||
}
|
||||
|
||||
.bg-darkgray {
|
||||
background: #23221d;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.darkbrown {
|
||||
color: #464331c4;
|
||||
}
|
||||
|
||||
.bg-darkbrown {
|
||||
background: #464331c4;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.darkslate {
|
||||
color: darkslategray;
|
||||
}
|
||||
|
||||
.bg-darkslate {
|
||||
background: darkslategray;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.darkgreen {
|
||||
color: #003c1e;
|
||||
}
|
||||
|
||||
.bg-darkgreen {
|
||||
background: #003c1e;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.darkblue {
|
||||
color: midnightblue;
|
||||
}
|
||||
|
||||
.bg-darkblue {
|
||||
background: midnightblue;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.blue {
|
||||
color: #009ee0;
|
||||
}
|
||||
|
||||
.bg-blue {
|
||||
background: #009ee0;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.green {
|
||||
color: #44a12b;
|
||||
}
|
||||
|
||||
.bg-green {
|
||||
background: #44a12b;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.black {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.bg-black {
|
||||
background: #000;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.red {
|
||||
color: #cd071e;
|
||||
}
|
||||
|
||||
.bg-red {
|
||||
background: #cd071e;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.darkred {
|
||||
color: darkred;
|
||||
}
|
||||
|
||||
.bg-darkred {
|
||||
background: darkred;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.purple {
|
||||
color: purple;
|
||||
}
|
||||
|
||||
.bg-purple {
|
||||
background: purple;
|
||||
color: #fff;
|
||||
}
|
||||
98
styles/global/flex.less
Normal file
98
styles/global/flex.less
Normal file
@@ -0,0 +1,98 @@
|
||||
/* ----------------------------------------- */
|
||||
/* Flexbox Utilities */
|
||||
/* ----------------------------------------- */
|
||||
|
||||
.flxrow {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-start;
|
||||
|
||||
> * {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.flex1 { flex: 1; }
|
||||
.flex2 { flex: 2; }
|
||||
.flex3 { flex: 3; }
|
||||
.flex4 { flex: 4; }
|
||||
}
|
||||
|
||||
.flexrow {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
justify-content: flex-start;
|
||||
|
||||
/* Wrong in v13: > * { flex: 1; } */
|
||||
|
||||
.flex1 { flex: 1; }
|
||||
.flex2 { flex: 2; }
|
||||
.flex3 { flex: 3; }
|
||||
.flex4 { flex: 4; }
|
||||
.flex5 { flex: 5; }
|
||||
.flex6 { flex: 6; }
|
||||
.flex7 { flex: 7; }
|
||||
.flex8 { flex: 8; }
|
||||
.flex9 { flex: 9; }
|
||||
}
|
||||
|
||||
.flexcol {
|
||||
.flex1 { flex: 1; }
|
||||
.flex2 { flex: 2; }
|
||||
.flex3 { flex: 3; }
|
||||
.flex4 { flex: 4; }
|
||||
}
|
||||
|
||||
.flex-group-center,
|
||||
.flex-group-left,
|
||||
.flex-group-right {
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.flex-group-left {
|
||||
justify-content: flex-start;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.flex-group-right {
|
||||
justify-content: flex-end;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.center {
|
||||
text-align: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.left {
|
||||
text-align: left;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.right {
|
||||
justify-content: flex-end;
|
||||
text-align: right;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.flex-center {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.flex-between {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.no-wrap {
|
||||
flex-wrap: nowrap !important;
|
||||
}
|
||||
233
styles/global/forms.less
Normal file
233
styles/global/forms.less
Normal file
@@ -0,0 +1,233 @@
|
||||
/* ----------------------------------------- */
|
||||
/* Form Styles */
|
||||
/* ----------------------------------------- */
|
||||
|
||||
.bol {
|
||||
input[readonly="true"] {
|
||||
border: none;
|
||||
color: dimgray;
|
||||
cursor: not-allowed;
|
||||
width: 100%;
|
||||
vertical-align: middle;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
input[type="text"],
|
||||
input[type="number"],
|
||||
input[type="text"]:hover,
|
||||
input[type="number"]:hover,
|
||||
input[type="text"]:focus,
|
||||
input[type="number"]:focus {
|
||||
border-radius: 0;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
input:disabled:hover,
|
||||
select:disabled:hover,
|
||||
textarea:disabled:hover,
|
||||
input:disabled:focus,
|
||||
select:disabled:focus,
|
||||
textarea:disabled:focus {
|
||||
box-shadow: none !important;
|
||||
border: 1px solid transparent !important;
|
||||
outline: none !important;
|
||||
}
|
||||
|
||||
button {
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
select {
|
||||
box-shadow: none;
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
text-align-last: center;
|
||||
-moz-text-align-last: center;
|
||||
width: 100%;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
|
||||
&[multiple] {
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
font-size: 14px;
|
||||
|
||||
&:focus option:checked {
|
||||
background: darkred linear-gradient(0deg, darkred 0%, darkred 100%);
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option {
|
||||
font-size: 14px;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
|
||||
&:hover,
|
||||
&:focus,
|
||||
&:active,
|
||||
&:checked,
|
||||
&[selected] {
|
||||
cursor: pointer;
|
||||
background: darkred linear-gradient(0deg, darkred 0%, darkred 100%);
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
|
||||
label.checkbox {
|
||||
flex: auto;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
font-size: 11px;
|
||||
|
||||
> input[type="checkbox"] {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 0 2px 0 0;
|
||||
position: relative;
|
||||
top: 4px;
|
||||
}
|
||||
|
||||
&.right > input[type="checkbox"] {
|
||||
margin: 0 0 0 2px;
|
||||
}
|
||||
}
|
||||
|
||||
.form-group {
|
||||
label {
|
||||
flex: 2;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.form-fields {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-start;
|
||||
|
||||
> * {
|
||||
flex: 1;
|
||||
margin: 0 3px 0 0;
|
||||
|
||||
&:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.flex1 { flex: 1; }
|
||||
.flex2 { flex: 2; }
|
||||
.flex3 { flex: 3; }
|
||||
.flex4 { flex: 4; }
|
||||
}
|
||||
|
||||
label {
|
||||
flex: 0 0 100%;
|
||||
margin: 0;
|
||||
|
||||
&.checkbox {
|
||||
flex: auto;
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
|
||||
.field-value {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
&.stacked {
|
||||
label {
|
||||
flex: 0 0 100%;
|
||||
margin: 0;
|
||||
|
||||
&.checkbox {
|
||||
flex: auto;
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.form-header {
|
||||
margin: 0.25em 0 0.25em 0;
|
||||
padding: 2px 5px;
|
||||
font-family: "Wolfsbane2Expanded", cursive;
|
||||
color: #4b4a44;
|
||||
background-color: lightgray;
|
||||
}
|
||||
|
||||
h1.form-header {
|
||||
font-size: 2.2em;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
h2.form-header {
|
||||
font-size: 1.8em;
|
||||
font-weight: 500;
|
||||
border-bottom: 1px groove #eeede0;
|
||||
}
|
||||
|
||||
h3.form-header {
|
||||
font-size: 1.2em;
|
||||
font-weight: 500;
|
||||
border-bottom: 1px groove #eeede0;
|
||||
}
|
||||
|
||||
h4.form-header {
|
||||
font-size: 1em;
|
||||
font-weight: 500;
|
||||
font-family: 'Signika', sans-serif;
|
||||
color: black;
|
||||
background-color: transparent;
|
||||
border-top: none;
|
||||
border-bottom: 1px groove #eeede0;
|
||||
}
|
||||
|
||||
.tag {
|
||||
display: inline-block;
|
||||
margin: 0 2px 0 0;
|
||||
padding: 0 3px;
|
||||
font-size: 10px;
|
||||
line-height: 16px;
|
||||
border: 1px solid #999;
|
||||
border-radius: 3px;
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
::placeholder {
|
||||
color: lightgray;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
:-ms-input-placeholder {
|
||||
color: lightgray;
|
||||
}
|
||||
|
||||
::-ms-input-placeholder {
|
||||
color: lightgray;
|
||||
}
|
||||
|
||||
input::placeholder {
|
||||
color: lightgray;
|
||||
}
|
||||
|
||||
.property {
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.inc-dec-btns {
|
||||
color: #4b4a44;
|
||||
}
|
||||
}
|
||||
|
||||
.chat-button {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
.summmary-number {
|
||||
padding-left: 4rem;
|
||||
}
|
||||
71
styles/global/foundry-overrides.less
Normal file
71
styles/global/foundry-overrides.less
Normal file
@@ -0,0 +1,71 @@
|
||||
/* ----------------------------------------- */
|
||||
/* Foundry VTT Overrides */
|
||||
/* ----------------------------------------- */
|
||||
|
||||
#pause {
|
||||
background: none;
|
||||
|
||||
> img {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
top: -50px;
|
||||
left: calc(50% - 100px);
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-family: "IMFellDWPicaSC-Regular", serif;
|
||||
font-size: 32px;
|
||||
text-shadow: 0px 3px 5px #000000;
|
||||
}
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
outline: none;
|
||||
border-radius: 3px;
|
||||
background: #999 !important;
|
||||
border: 1px solid #333 !important;
|
||||
border-color: #333 !important;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
box-shadow: 0 0 3px #005d67 inset !important;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
* {
|
||||
scrollbar-width: thin !important;
|
||||
scrollbar-color: #005d67 #ccc !important;
|
||||
}
|
||||
|
||||
.element-invisible {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
border: 0;
|
||||
padding: 0;
|
||||
clip: rect(0 0 0 0);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.roll-box {
|
||||
border-width: 1px;
|
||||
border-color: #000000;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.hide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
ul.no-bullets {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.nomargin {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
105
styles/global/item-list.less
Normal file
105
styles/global/item-list.less
Normal file
@@ -0,0 +1,105 @@
|
||||
/* ----------------------------------------- */
|
||||
/* Items List */
|
||||
/* ----------------------------------------- */
|
||||
|
||||
.items-list {
|
||||
list-style: none;
|
||||
margin: 7px 0;
|
||||
padding: 0;
|
||||
overflow-y: hidden;
|
||||
|
||||
.item-header {
|
||||
font-family: 'Signika', sans-serif;
|
||||
font-size: 1em;
|
||||
color: #4b4a44;
|
||||
background-color: lightgray;
|
||||
|
||||
.item-name {
|
||||
font-family: "Wolfsbane2Expanded", cursive;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
}
|
||||
|
||||
.item {
|
||||
min-height: 30px;
|
||||
line-height: 24px;
|
||||
padding: 3px 0 3px 3px;
|
||||
border-bottom: 1px solid #BBB;
|
||||
align-items: stretch;
|
||||
|
||||
.item-image {
|
||||
flex: 0 0 30px;
|
||||
padding: 0;
|
||||
margin: 0 5px 0 0;
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
min-height: 30px;
|
||||
min-width: 30px;
|
||||
|
||||
img {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: none;
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
min-height: 30px;
|
||||
min-width: 30px;
|
||||
}
|
||||
|
||||
&.roll-weapon,
|
||||
&.roll-career {
|
||||
background-color: transparent;
|
||||
background-image: url("../../../icons/svg/dice-target.svg") !important;
|
||||
background-size: 30px 30px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
background-color: gray;
|
||||
|
||||
img {
|
||||
visibility: hidden;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.item-name,
|
||||
.item-field {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.item-controls-1 {
|
||||
flex: 0 0 18px;
|
||||
}
|
||||
|
||||
.item-controls,
|
||||
.item-controls-2 {
|
||||
flex: 0 0 36px;
|
||||
}
|
||||
|
||||
.item-controls-3 {
|
||||
flex: 0 0 54px;
|
||||
}
|
||||
|
||||
.item-control {
|
||||
color: #4b4a44;
|
||||
}
|
||||
}
|
||||
|
||||
.item-name-fixed-medium {
|
||||
min-width: 8rem;
|
||||
width: 8rem;
|
||||
}
|
||||
|
||||
.item-field-fixed-short {
|
||||
max-width: 3rem;
|
||||
min-width: 3rem;
|
||||
width: 3rem;
|
||||
}
|
||||
}
|
||||
|
||||
.bougette-dice-img {
|
||||
color: rgba(150, 44, 44, 0.70);
|
||||
}
|
||||
61
styles/global/typography.less
Normal file
61
styles/global/typography.less
Normal file
@@ -0,0 +1,61 @@
|
||||
/* ----------------------------------------- */
|
||||
/* LOCAL FONTS */
|
||||
/* ----------------------------------------- */
|
||||
@font-face {
|
||||
font-family: 'Contrail One';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(https://fonts.gstatic.com/s/contrailone/v10/eLGbP-j_JA-kG0_Zo51noafdZQ.ttf) format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "CCMeanwhile";
|
||||
src: url('../fonts/ccmeanwhile-regular.ttf');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Wolfsbane2";
|
||||
src: url('../fonts/wolfsbane2.ttf');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Wolfsbane2Condensed";
|
||||
src: url('../fonts/wolfsbane2cond.ttf');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Wolfsbane2Expanded";
|
||||
src: url('../fonts/wolfsbane2expand.ttf');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "IMFellDWPicaSC-Regular";
|
||||
src: url('../fonts/IMFellDWPicaSC-Regular.ttf');
|
||||
}
|
||||
|
||||
/* ----------------------------------------- */
|
||||
/* TEXT STYLES */
|
||||
/* ----------------------------------------- */
|
||||
|
||||
a.entity-link,
|
||||
a.inline-roll {
|
||||
border: none;
|
||||
background: transparent;
|
||||
border-bottom: 1px dotted grey;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
a.inline-roll {
|
||||
border: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-shadow: 0 0 5px #a00;
|
||||
}
|
||||
|
||||
.ellipsis {
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
}
|
||||
Reference in New Issue
Block a user