Merge pull request #9037 from Anduh/barbaric-June

[Barbaric!] Minor Visual update
This commit is contained in:
Miguel Peres
2021-06-07 15:40:08 -03:00
committed by GitHub
13 changed files with 717 additions and 250 deletions
+30 -43
View File
@@ -1,22 +1,4 @@
/*------------------------------------------------*\
#GENERAL
\*------------------------------------------------*/
@import url("https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz|Anton&display=swap");
/* duplicate class to catch import bug */
.charsheet * {
font-family: "Yanone Kaffeesatz";
}
.charsheet {
/* --------- Text ------------- */
/* --------- Inputs ------------- */
/* -----Hides up/down buttons on numberfields that don't need them ---*/
/* ------- Buttons ---------- */
/*-----------------------------------------------------------------*\
#SECTIONS
\*-----------------------------------------------------------------*/
/* --------- General Section Styling ------------- */
}
.charsheet * {
font-family: "Yanone Kaffeesatz";
}
@@ -28,14 +10,23 @@
.charsheet div, .charsheet span, .charsheet label {
flex-shrink: 1;
}
.charsheet h3 {
margin: 0.4em;
}
.charsheet textarea, .charsheet input[type=number], .charsheet input[type=text] {
display: flex;
flex-grow: 6;
flex-shrink: 1;
align-self: center;
}
.charsheet label {
padding-left: 15px;
padding-top: 5px;
text-align: center;
font-size: 1.6em;
}
.charsheet input[type=text] {
font-size: 1.1em;
}
.charsheet input[type=text],
.charsheet input[type=number] {
@@ -91,7 +82,6 @@
text-align: center;
}
.charsheet button[type=roll].d6::before {
/*new die changes die roller to d6*/
font-family: "dicefontd6";
content: "F ";
}
@@ -134,10 +124,8 @@
grid-template-areas: "name name name name " "skills traits combat xp " "equip equip sorcery sorcery";
grid-gap: 4px;
width: 1200px;
/* Defines the width and height of the sheet */
height: 800px;
background-color: whitesmoke;
/* NAME SECTION */
}
.charsheet main section.name {
grid-area: name;
@@ -146,6 +134,9 @@
height: auto;
transform: scale(1.1);
}
.charsheet main section.name input[type=text], .charsheet main section.name input[type=number], .charsheet main section.name span {
font-size: 1.3em;
}
.charsheet main section.name .pad {
padding: 8px;
}
@@ -185,22 +176,28 @@
}
.charsheet main section.combat div.grid-weapon {
display: grid;
grid-template-columns: 30px 180px 42px 42px auto;
grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr;
grid-template-columns: 30px 165px 52px 42px auto;
grid-template-rows: 25px 1fr 1fr 1fr 1fr 1fr;
grid-gap: 5px;
grid-row-gap: 10px;
grid-row-gap: 7px;
flex-grow: 1;
width: 560px;
}
.charsheet main section.combat div.grid-weapon * {
font-size: 1.3em;
}
.charsheet main section.combat div.grid-weapon span {
width: 70px;
font-size: 1.5em;
text-align: center;
justify-self: center;
}
.charsheet main section.combat div.grid-weapon button {
width: 18px;
margin-left: 5px;
}
.charsheet main section.combat div.grid-weapon input[type=text].weapon-name {
width: 170px;
width: 157px;
}
.charsheet main section.combat div.grid-weapon input[type=text].weapon-notes {
width: 235px;
@@ -209,6 +206,10 @@
width: 40px;
text-align: center;
}
.charsheet main section.combat div.grid-weapon input[type=text].range {
width: 52px;
text-align: center;
}
.charsheet main section.equip {
grid-area: equip;
}
@@ -227,15 +228,12 @@
.charsheet main section.xp span {
width: 80px;
text-align: center;
font-size: 1.7em;
}
.charsheet .lang-es div.grid-weapon span.damage {
padding-left: 17px;
}
/*------------------------------------*\
#ROLL TEMPLATES
\*------------------------------------*/
/* Smaller margins - remove these if you want the huge default left margin */
.withoutavatars .sheet-rolltemplate-rolls {
margin-left: -7px;
}
@@ -243,13 +241,6 @@
.sheet-rolltemplate-rolls {
margin-left: -37px;
font-family: "Yanone Kaffeesatz";
/* Header formatting - title and subtitle */
/* example colors */
/* alt template colors */
/* Allprops part */
/* Left column */
/* Make even-numbered rows grey */
/* Description field */
}
.sheet-rolltemplate-rolls .sheet-container {
border: 3px solid black;
@@ -263,7 +254,8 @@
padding: 5px;
border-bottom: 2px solid black;
}
.sheet-rolltemplate-rolls .sheet-title {
.sheet-rolltemplate-rolls .sheet-title,
.sheet-rolltemplate-rolls .sheet-name {
font-size: 1.4em;
font-weight: bold;
}
@@ -271,8 +263,7 @@
font-size: 1em;
}
.sheet-rolltemplate-rolls .sheet-container {
/* the default colors */
--header-bg-color: #a83521;
--header-bg-color: #c87d00;
--header-text-color: #FFF;
}
.sheet-rolltemplate-rolls .sheet-container.sheet-color-green {
@@ -298,9 +289,7 @@
.sheet-rolltemplate-rolls .sheet-content {
display: grid;
background: #FFF;
/* Header formatting - modify the column layout below */
grid-template-columns: auto auto;
/* Line height to match default roll template */
line-height: 1.4em;
}
.sheet-rolltemplate-rolls .sheet-content > div {
@@ -330,5 +319,3 @@
.sheet-rolltemplate-rolls .sheet-fail {
color: red;
}
/*# sourceMappingURL=barbaric.css.map */
+154 -205
View File
@@ -1,225 +1,174 @@
<main>
<!-- name -->
<section class="name flex-row">
<span class="border flex-col">
<span data-i18n="name" >Name</span>
<input class="bold" type="text" name="attr_character_name" />
</span>
<span class="border flex-col">
<span data-i18n="heritage" >heritage</span>
<input name="attr_heritage" type="text" list="heritage" value=""/>
</span>
<span class="border flex-col">
<span data-i18n="endurance" >endurance</span>
<input name="attr_endurance" type="number" value=""/>
</span>
<span class="border flex-col">
<span data-i18n="lifeblood" >lifeblood</span>
<input name="attr_lifeblood" type="number" value=""/>
</span>
<span class="border flex-col pad">
<span data-i18n="fatigued-" >Fatigued?</span>
<input name="attr_fatigue" type="checkbox" value="1"/>
</span>
<span class="border pad">
<span data-i18n="hero-points" >hero points</span>
<input name="attr_heropoints" type="number" value=""/>
</span>
<span class="border flex-col">
<span data-i18n="player">Player</span>
<input name="attr_player_name" type="text" value=""/>
</span>
</section>
<section class="skills flex-col">
<label data-i18n="skills" >skills</label>
<div class="section flex-row">
<input type="number" name="attr_combat" class="txtfield warn-missing" value="" placeholder="0">
<button name="roll_combat" class="blank" type="roll" value="&{template:rolls} {{title=combat}} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}=[[ [[2d6]]+@{combat} ]]}} {{baseroll=$[[0]]}}"><span data-i18n="combat" >combat</span></button>
</div>
<div class="section flex-row">
<input type="number" name="attr_craft" class="txtfield warn-missing" value="" placeholder="0">
<button name="roll_craft" class="blank" type="roll" value="&{template:rolls} {{title=craft}} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}[[ [[2d6]]+@{craft} ]]}} {{baseroll=$[[0]]}}"><span data-i18n="craft" >craft</span></button>
</div>
<div class="section flex-row">
<input type="number" name="attr_lore" class="txtfield warn-missing" value="" placeholder="0">
<button name="roll_lore" class="blank" type="roll" value="&{template:rolls} {{title=lore}} {{color=black}} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}[[ [[2d6]]+@{lore} ]]}} {{baseroll=$[[0]]}}"><span data-i18n="lore" >lore</span></button>
</div>
<div class="section flex-row">
<input type="number" name="attr_physical" class="txtfield" value="" placeholder="0">
<button name="roll_physical" class="blank" type="roll" value="&{template:rolls} {{title=Physical}} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}[[ [[2d6]]+@{physical} ]]}} {{baseroll=$[[0]]}}"><span data-i18n="physical" >physical</span></button>
</div>
<div class="section flex-row">
<input type="number" name="attr_social" class="txtfield warn-missing" value="" placeholder="0">
<button name="roll_social" class="blank" type="roll" value="&{template:rolls} {{title=social}} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}[[ [[2d6]]+@{social} ]]}} {{baseroll=$[[0]]}}"><span data-i18n="social" >social</span></button>
</div>
<div class="section flex-row">
<input type="number" name="attr_sorcery" class="txtfield warn-missing" value="" placeholder="0">
<button name="roll_sorcery" class="blank" type="roll" value="&{template:rolls} {{title=sorcery}} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}[[ [[2d6]]+@{sorcery} ]]}} {{baseroll=$[[0]]}}"><span data-i18n="sorcery" >sorcery</span></button>
</div>
<div class="section flex-row">
<input type="number" name="attr_stealth" class="txtfield warn-missing" value="" placeholder="0">
<button name="roll_stealth" class="blank" type="roll" value="&{template:rolls} {{title=stealth}} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}[[ [[2d6]]+@{stealth} ]]}} {{baseroll=$[[0]]}}"><span data-i18n="stealth" >stealth</span></button>
</div>
</section>
<section class="border traits">
<label for="" data-i18n="traits" >traits</label>
<textarea name="attr_traits" value=""/></textarea>
</section>
<section class="combat">
<div class="flex-row section">
<button name="roll_" class="d6" type="roll" value="&{template:rolls} {{title=^{initiative} }} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}[[2d6+(@{combat} &{tracker}]]}}" ><span data-i18n="initative" >Initiative</span></button>
<div class="armor border">
<label for="" data-i18n="armor" >armor</label>
<input name="attr_armorname" type="text" value=""/>
<input name="attr_armor" type="number" value=""/>
</div>
</div>
<div class="border grid-weapon">
<span></span>
<span data-i18n="weapons" >weapons</span>
<span data-i18n="range" >range</span>
<span data-i18n="damage" class="damage">damage</span>
<span data-i18n="notes" >notes</span>
<button name="roll_weapon1" class="d6" type="roll" value="&{template:rolls} {{title=^{weapon}: @{wpn1name} }} {{color=black}} {{subtitle=@{character_name} }} {{color=black}} {{^{range}= @{wpn1range} }} {{^{roll-i18n}=[[ [[2d6]]+@{combat} ]]}} {{baseroll=$[[0]]}} {{^{damage}= [[@{wpn1dmg}6]] }}"></button>
<input name="attr_wpn1name" class="weapon-name" type="text" value=""/>
<input name="attr_wpn1range" class="dmg" type="text" value=""/>
<input name="attr_wpn1dmg" class="dmg" placeholder="2d" type="text" value=""/>
<input name="attr_wpn1notes" class="weapon-notes" type="text" value=""/>
<button name="roll_weapon2" class="d6" type="roll" value="&{template:rolls} {{title=^{weapon}: @{wpn2name} }} {{color=black}} {{subtitle=@{character_name} }} {{color=black}} {{^{range}= @{wpn2range} }} {{^{roll-i18n}[[ [[2d6]]+@{combat} ]]}} {{baseroll=$[[0]]}} {{^{damage}= [[@{wpn2dmg}6]] }}"></button>
<input name="attr_wpn2name" class="weapon-name" type="text" value=""/>
<input name="attr_wpn2range" class="dmg" type="text" value=""/>
<input name="attr_wpn2dmg" class="dmg" placeholder="2d" type="text" value=""/>
<input name="attr_wpn2notes" class="weapon-notes" type="text" value=""/>
<button name="roll_weapon3" class="d6" type="roll" value="&{template:rolls} {{title=^{weapon}: @{wpn3name} }} {{color=black}} {{subtitle=@{character_name} }} {{color=black}} {{^{range}= @{wpn3range} }} {{^{roll-i18n}[[ [[2d6]]+@{combat} ]]}} {{baseroll=$[[0]]}} {{^{damage}= [[@{wpn3dmg}6]] }}"></button>
<input name="attr_wpn3name" class="weapon-name" type="text" value=""/>
<input name="attr_wpn3range" class="dmg" type="text" value=""/>
<input name="attr_wpn3dmg" class="dmg" placeholder="2d" type="text" value=""/>
<input name="attr_wpn3notes" class="weapon-notes" type="text" value=""/>
<button name="roll_weapon4" class="d6" type="roll" value="&{template:rolls} {{title=^{weapon}: @{wpn4name} }} {{color=black}} {{subtitle=@{character_name} }} {{color=black}} {{^{range}= @{wpn4range} }} {{^{roll-i18n}[[ [[2d6]]+@{combat} ]]}} {{baseroll=$[[0]]}} {{^{damage}= [[@{wpn4dmg}6]] }}"></button>
<input name="attr_wpn4name" class="weapon-name" type="text" value=""/>
<input name="attr_wpn4range" class="dmg" type="text" value=""/>
<input name="attr_wpn4dmg" class="dmg" placeholder="2d" type="text" value=""/>
<input name="attr_wpn4notes" class="weapon-notes" type="text" value=""/>
<button name="roll_weapon5" class="d6" type="roll" value="&{template:rolls} {{title=^{weapon}: @{wpn5name} }} {{color=black}} {{subtitle=@{character_name} }} {{color=black}} {{^{range}= @{wpn5range} }} {{^{roll-i18n}[[ [[2d6]]+@{combat} ]]}} {{baseroll=$[[0]]}} {{^{damage}= [[@{wpn5dmg}6]] }}"></button>
<input name="attr_wpn5name" class="weapon-name" type="text" value=""/>
<input name="attr_wpn5range" class="dmg" type="text" value=""/>
<input name="attr_wpn5dmg" class="dmg" placeholder="2d" type="text" value=""/>
<input name="attr_wpn5notes" class="weapon-notes" type="text" value=""/>
</div>
</section>
<section class="border equip">
<label for="" data-i18n="equipment" >equipment</label>
<textarea name="attr_equipment" value=""/></textarea>
</section>
<section class="border sorcery">
<label for="" data-i18n="sorcery-notes" >sorcery/notes</label>
<textarea name="attr_sorcery" value=""/></textarea>
</section>
<section class="xp flex-col">
<label data-i18n="xp">XP</label>
<span data-i18n="experienced">experienced</span>
<div>
<input type="checkbox" name="attr_experienced1" value="1">
<input type="checkbox" name="attr_experienced2" value="1">
<input type="checkbox" name="attr_experienced3" value="1">
<input type="checkbox" name="attr_experienced4" value="1">
<input type="checkbox" name="attr_experienced5" value="1">
</div>
<span data-i18n="expert">expert</span>
<div>
<input type="checkbox" name="attr_expert1" value="1">
<input type="checkbox" name="attr_expert2" value="1">
<input type="checkbox" name="attr_expert3" value="1">
<input type="checkbox" name="attr_expert4" value="1">
<input type="checkbox" name="attr_expert5" value="1">
</div>
<span data-i18n="master">master</span>
<div>
<input type="checkbox" name="attr_master1" value="1">
<input type="checkbox" name="attr_master2" value="1">
<input type="checkbox" name="attr_master3" value="1">
<input type="checkbox" name="attr_master4" value="1">
<input type="checkbox" name="attr_master5" value="1">
</div>
<span data-i18n="grandmster">grandmster</span>
<div>
<input type="checkbox" name="attr_grandmaster1" value="1">
<input type="checkbox" name="attr_grandmaster2" value="1">
<input type="checkbox" name="attr_grandmaster3" value="1">
<input type="checkbox" name="attr_grandmaster4" value="1">
<input type="checkbox" name="attr_grandmaster5" value="1">
</div>
<span data-i18n="legend">legend</span>
<div>
<input type="checkbox" name="attr_legend1" value="1">
<input type="checkbox" name="attr_legend2" value="1">
<input type="checkbox" name="attr_legend3" value="1">
<input type="checkbox" name="attr_legend4" value="1">
<input type="checkbox" name="attr_legend5" value="1">
</div>
</section>
<!-- variables-->
<!-- mixins-->
<!-- main sheet code-->
<main>
<section class="name flex-row"><span class="border flex-col"><span data-i18n="name">Name</span>
<input class="bold" type="text" name="attr_character_name"/></span><span class="border flex-col"><span data-i18n="heritage">heritage</span>
<input name="attr_heritage" type="text" list="heritage"/></span><span class="border flex-col"><span data-i18n="endurance">endurance</span>
<input name="attr_endurance" type="number"/></span><span class="border flex-col"><span data-i18n="lifeblood">lifeblood</span>
<input name="attr_lifeblood" type="number"/></span><span class="border flex-col pad"><span data-i18n="fatigued-">Fatigued?</span>
<input name="attr_fatigue" type="checkbox" value="1"/></span><span class="border flex-col"><span data-i18n="hero-points">hero points</span>
<input name="attr_heropoints" type="number"/></span><span class="border flex-col"><span data-i18n="player">Player</span>
<input name="attr_player_name" type="text"/></span></section>
<section class="skills flex-col">
<label data-i18n="skills">skills</label>
<div class="section flex-row">
<input class="txtfield warn-missing" type="number" name="attr_combat" placeholder="0"/>
<button class="blank" name="roll_combat" type="roll" value="&amp;{template:rolls} {{title=Combat}} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}=[[ [[2d6]]+@{combat} ]]}} {{baseroll=$[[0]]}}"><span data-i18n="combat">combat</span></button>
</div>
<div class="section flex-row">
<input class="txtfield warn-missing" type="number" name="attr_craft" placeholder="0"/>
<button class="blank" name="roll_craft" type="roll" value="&amp;{template:rolls} {{title=Craft}} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}=[[ [[2d6]]+@{craft} ]]}} {{baseroll=$[[0]]}}"><span data-i18n="craft">craft</span></button>
</div>
<div class="section flex-row">
<input class="txtfield warn-missing" type="number" name="attr_lore" placeholder="0"/>
<button class="blank" name="roll_lore" type="roll" value="&amp;{template:rolls} {{title=Lore}} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}=[[ [[2d6]]+@{lore} ]]}} {{baseroll=$[[0]]}}"><span data-i18n="lore">lore</span></button>
</div>
<div class="section flex-row">
<input class="txtfield warn-missing" type="number" name="attr_physical" placeholder="0"/>
<button class="blank" name="roll_physical" type="roll" value="&amp;{template:rolls} {{title=Physical}} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}=[[ [[2d6]]+@{physical} ]]}} {{baseroll=$[[0]]}}"><span data-i18n="physical">physical</span></button>
</div>
<div class="section flex-row">
<input class="txtfield warn-missing" type="number" name="attr_social" placeholder="0"/>
<button class="blank" name="roll_social" type="roll" value="&amp;{template:rolls} {{title=Social}} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}=[[ [[2d6]]+@{social} ]]}} {{baseroll=$[[0]]}}"><span data-i18n="social">social</span></button>
</div>
<div class="section flex-row">
<input class="txtfield warn-missing" type="number" name="attr_sorcery" placeholder="0"/>
<button class="blank" name="roll_sorcery" type="roll" value="&amp;{template:rolls} {{title=Sorcery}} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}=[[ [[2d6]]+@{sorcery} ]]}} {{baseroll=$[[0]]}}"><span data-i18n="sorcery">sorcery</span></button>
</div>
<div class="section flex-row">
<input class="txtfield warn-missing" type="number" name="attr_stealth" placeholder="0"/>
<button class="blank" name="roll_stealth" type="roll" value="&amp;{template:rolls} {{title=Stealth}} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}=[[ [[2d6]]+@{stealth} ]]}} {{baseroll=$[[0]]}}"><span data-i18n="stealth">stealth</span></button>
</div>
</section>
<section class="border traits">
<label for="for" data-i18n="traits">traits</label>
<textarea class="iflex" name="attr_traits" value="value"></textarea>
</section>
<section class="combat">
<div class="flex-row section">
<button class="d6" name="roll_" type="roll" value="&amp;{template:rolls} {{title=^{initiative} }} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}[[2d6+(@{combat} &amp;{tracker}]]}}"><span data-i18n="initative">Initiative</span></button>
<div class="armor border flex-row">
<h3 data-i18n="armor">armor</h3>
<input class="name" name="attr_armorname" type="text"/>
<input name="attr_armor" type="number"/>
<input name="attr_armorinfo" type="text"/>
</div>
</div>
<div class="border grid-weapon"><span></span><span data-i18n="weapons">weapons</span><span data-i18n="range">range</span><span class="damage" data-i18n="damage">damage</span><span data-i18n="notes">notes</span>
<button class="d6" name="roll_weapon1" type="roll" value="&amp;{template:rolls} {{title=^{weapon}: @{wpn1name} }} {{color=black}} {{subtitle=@{character_name} }} {{color=black}} {{^{range}= @{wpn1range} }} {{^{roll-i18n}=[[ [[2d6]]+@{combat} ]]}} {{baseroll=$[[0]]}} {{^{damage}= [[@{wpn1dmg}6]] }}"></button>
<input class="weapon-name" name="attr_wpn1name" type="text"/>
<input class="range" name="attr_wpn1range" type="text"/>
<input class="dmg" name="attr_wpn1dmg" placeholder="2d" type="text"/>
<input class="weapon-notes" name="attr_wpn1notes" type="text"/>
<button class="d6" name="roll_weapon2" type="roll" value="&amp;{template:rolls} {{title=^{weapon}: @{wpn2name} }} {{color=black}} {{subtitle=@{character_name} }} {{color=black}} {{^{range}= @{wpn2range} }} {{^{roll-i18n}=[[ [[2d6]]+@{combat} ]]}} {{baseroll=$[[0]]}} {{^{damage}= [[@{wpn2dmg}6]] }}"></button>
<input class="weapon-name" name="attr_wpn2name" type="text"/>
<input class="range" name="attr_wpn2range" type="text"/>
<input class="dmg" name="attr_wpn2dmg" placeholder="2d" type="text"/>
<input class="weapon-notes" name="attr_wpn2notes" type="text"/>
<button class="d6" name="roll_weapon3" type="roll" value="&amp;{template:rolls} {{title=^{weapon}: @{wpn3name} }} {{color=black}} {{subtitle=@{character_name} }} {{color=black}} {{^{range}= @{wpn3range} }} {{^{roll-i18n}=[[ [[2d6]]+@{combat} ]]}} {{baseroll=$[[0]]}} {{^{damage}= [[@{wpn3dmg}6]] }}"></button>
<input class="weapon-name" name="attr_wpn3name" type="text"/>
<input class="range" name="attr_wpn3range" type="text"/>
<input class="dmg" name="attr_wpn3dmg" placeholder="2d" type="text"/>
<input class="weapon-notes" name="attr_wpn3notes" type="text"/>
<button class="d6" name="roll_weapon4" type="roll" value="&amp;{template:rolls} {{title=^{weapon}: @{wpn4name} }} {{color=black}} {{subtitle=@{character_name} }} {{color=black}} {{^{range}= @{wpn4range} }} {{^{roll-i18n}=[[ [[2d6]]+@{combat} ]]}} {{baseroll=$[[0]]}} {{^{damage}= [[@{wpn4dmg}6]] }}"></button>
<input class="weapon-name" name="attr_wpn4name" type="text"/>
<input class="range" name="attr_wpn4range" type="text"/>
<input class="dmg" name="attr_wpn4dmg" placeholder="2d" type="text"/>
<input class="weapon-notes" name="attr_wpn4notes" type="text"/>
<button class="d6" name="roll_weapon5" type="roll" value="&amp;{template:rolls} {{title=^{weapon}: @{wpn5name} }} {{color=black}} {{subtitle=@{character_name} }} {{color=black}} {{^{range}= @{wpn5range} }} {{^{roll-i18n}=[[ [[2d6]]+@{combat} ]]}} {{baseroll=$[[0]]}} {{^{damage}= [[@{wpn5dmg}6]] }}"></button>
<input class="weapon-name" name="attr_wpn5name" type="text"/>
<input class="range" name="attr_wpn5range" type="text"/>
<input class="dmg" name="attr_wpn5dmg" placeholder="2d" type="text"/>
<input class="weapon-notes" name="attr_wpn5notes" type="text"/>
</div>
</section>
<section class="border equip">
<label for="for" data-i18n="equipment">equipment</label>
<textarea class="iflex" name="attr_equipment" value="value"></textarea>
</section>
<section class="border sorcery">
<label for="for" data-i18n="sorcery-notes">sorcery/notes</label>
<textarea class="iflex" name="attr_sorcery" value="value"></textarea>
</section>
<section class="xp flex-col">
<label data-i18n="xp">XP</label><span data-i18n="experienced">Experienced</span>
<div>
<input type="checkbox" name="attr_experienced1" value="1"/>
<input type="checkbox" name="attr_experienced2" value="1"/>
<input type="checkbox" name="attr_experienced3" value="1"/>
<input type="checkbox" name="attr_experienced4" value="1"/>
<input type="checkbox" name="attr_experienced5" value="1"/>
</div><span data-i18n="expert">Expert</span>
<div>
<input type="checkbox" name="attr_expert1" value="1"/>
<input type="checkbox" name="attr_expert2" value="1"/>
<input type="checkbox" name="attr_expert3" value="1"/>
<input type="checkbox" name="attr_expert4" value="1"/>
<input type="checkbox" name="attr_expert5" value="1"/>
</div><span data-i18n="master">Master</span>
<div>
<input type="checkbox" name="attr_master1" value="1"/>
<input type="checkbox" name="attr_master2" value="1"/>
<input type="checkbox" name="attr_master3" value="1"/>
<input type="checkbox" name="attr_master4" value="1"/>
<input type="checkbox" name="attr_master5" value="1"/>
</div><span data-i18n="grandmaster">Grandmaster</span>
<div>
<input type="checkbox" name="attr_grandmaster1" value="1"/>
<input type="checkbox" name="attr_grandmaster2" value="1"/>
<input type="checkbox" name="attr_grandmaster3" value="1"/>
<input type="checkbox" name="attr_grandmaster4" value="1"/>
<input type="checkbox" name="attr_grandmaster5" value="1"/>
</div><span data-i18n="legend">Legend</span>
<div>
<input type="checkbox" name="attr_legend1" value="1"/>
<input type="checkbox" name="attr_legend2" value="1"/>
<input type="checkbox" name="attr_legend3" value="1"/>
<input type="checkbox" name="attr_legend4" value="1"/>
<input type="checkbox" name="attr_legend5" value="1"/>
</div>
</section>
</main>
<!--hidden inputs & datalists-->
<datalist id="heritage">
<option value="Human"></option>
<option value="Anunaki"></option>
<option value="Apefolk"></option>
<option value="Dwarf"></option>
<option value="Elf"></option>
<option value="Geckofolk"></option>
<option value="Lizardfolk"></option>
<option data-i18n="human">Human</option>
<option data-i18n="anunaki">Anunaki</option>
<option data-i18n="apefolk">Apefolk</option>
<option data-i18n="dwarf">Dwarf</option>
<option data-i18n="elf">Elf</option>
<option data-i18n="geckofolk">Geckofolk</option>
<option data-i18n="lizardfolk">Lizardfolk</option>
</datalist>
<!-- ROLL TEMPLATE -->
<!--roll templates-->
<rolltemplate class="sheet-rolltemplate-rolls">
<div class="sheet-container sheet-color-{{color}}">
<div class="sheet-header">
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
{{#title}}
<div class="sheet-title">{{title}}</div>
{{/title}}
{{#subtitle}}
<div class="sheet-subtitle">{{subtitle}}</div>
{{/subtitle}}
</div>
<div class="sheet-content">
{{#allprops() title subtitle desc color baseroll}}
<div class="sheet-key">{{key}}</div>
<div class="sheet-value">{{value}}</div>
{{/allprops() title subtitle desc color baseroll}}
{{#rollTotal() baseroll 2}}
<div class="sheet-fail">Critical Fumble!</div>
<div class="sheet-fail">Critical Fumble!</div>
{{/rollTotal() baseroll 2}}
{{#rollTotal() baseroll 12}}
<div class="sheet-crit">Critical Success!</div>
<div class="sheet-crit">Critical Success!</div>
{{/rollTotal() baseroll 12}}
{{#desc}}<div class="sheet-desc">{{desc}}</div>{{/desc}}
{{#desc}}
<div class="sheet-desc">{{desc}}</div>
{{/desc}}
</div>
</div>
</rolltemplate>
<!--
// Translation key replacement, didn't work
<input name="attr_fumble_i18n" type="hidden" value="fumble">
<input name="attr_success_i18n" type="hidden" value="crit success">
<script type="text/worker">
on("sheet:opened", function(eventInfo){
setAttrs({
fumble_i18n: getTranslationByKey("critical-fumble"),
success_i18n: getTranslationByKey("critical-success")
});
});
</script>
-->
<!--sheetworkers-->
+17
View File
@@ -0,0 +1,17 @@
// variables
include src/pug/variables.pug
// mixins
include src/pug/mixins.pug
// main sheet code
include src/pug/core.pug
//hidden inputs & datalists
include src/pug/data.pug
//roll templates
include src/pug/rolltemplate.pug
//sheetworkers
//- script(type="sheet/worker")
+3
View File
@@ -0,0 +1,3 @@
@use 'src/scss/_core.scss';
@use 'src/scss/_rolltemplate.scss';
+60
View File
@@ -0,0 +1,60 @@
//- sheet start
main
//- name
section.name.flex-row
span.border.flex-col
span(data-i18n="name") Name
input.bold(type="text", name="attr_character_name")
span.border.flex-col
span(data-i18n="heritage") heritage
input(name="attr_heritage", type="text", list="heritage")
span.border.flex-col
span(data-i18n="endurance") endurance
input(name="attr_endurance", type="number")
span.border.flex-col
span(data-i18n="lifeblood") lifeblood
input(name="attr_lifeblood", type="number")
span.border.flex-col.pad
span(data-i18n="fatigued-") Fatigued?
input(name="attr_fatigue", type="checkbox", value="1")
span.border.flex-col
span(data-i18n="hero-points") hero points
input(name="attr_heropoints", type="number")
span.border.flex-col
span(data-i18n="player") Player
input(name="attr_player_name", type="text")
//- skills
section.skills.flex-col
label(data-i18n="skills") skills
+skillblock(skill,skills)
section.border.traits
label(for, data-i18n="traits") traits
textarea(name="attr_traits", value).iflex
//- combat
section.combat
.flex-row.section
button(name="roll_", type="roll", value="&{template:rolls} {{title=^{initiative} }} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}[[2d6+(@{combat} &{tracker}]]}}").d6
span(data-i18n="initative") Initiative
.armor.border.flex-row
h3(data-i18n="armor") armor
input(name="attr_armorname", type="text").name
input(name="attr_armor", type="number")
input(name="attr_armorinfo", type="text")
.border.grid-weapon
span
span(data-i18n="weapons") weapons
span(data-i18n="range") range
span(data-i18n="damage").damage damage
span(data-i18n="notes") notes
//- 5 weapons
+weaponblock(num)
section.border.equip
label(for, data-i18n="equipment") equipment
textarea(name="attr_equipment", value).iflex
section.border.sorcery
label(for, data-i18n="sorcery-notes") sorcery/notes
textarea(name="attr_sorcery", value).iflex
//- xp
section.xp.flex-col
label(data-i18n="xp") XP
+xpblock
+6
View File
@@ -0,0 +1,6 @@
- var heritage = ["human","anunaki","apefolk","dwarf","elf","geckofolk","lizardfolk"];
datalist#heritage
each item in heritage
option(data-i18n=`${item}`)= cap(item)
+22
View File
@@ -0,0 +1,22 @@
//- mixin
mixin skillblock(skill, skills)
each skill in skills
.section.flex-row
input(type="number", name=`attr_${skill}`, placeholder="0").txtfield.warn-missing
button(name=`roll_${skill}`, type="roll", value=`&{template:rolls} {{title=${cap(skill)}}} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}=[[ [[2d6]]+@{${skill}} ]]}} {{baseroll=$[[0]]}}`).blank
span(data-i18n=`${skill}`)= skill
mixin weaponblock(num)
each n in N(5)
button(name=`roll_weapon${n}`, type="roll", value=`&{template:rolls} {{title=^{weapon}: @{wpn${n}name} }} {{color=black}} {{subtitle=@{character_name} }} {{color=black}} {{^{range}= @{wpn${n}range} }} {{^{roll-i18n}=[[ [[2d6]]+@{combat} ]]}} {{baseroll=$[[0]]}} {{^{damage}= [[@{wpn${n}dmg}6]] }}`).d6
input(name=`attr_wpn${n}name`, type="text").weapon-name
input(name=`attr_wpn${n}range`, type="text").range
input(name=`attr_wpn${n}dmg`, placeholder="2d", type="text").dmg
input(name=`attr_wpn${n}notes`, type="text").weapon-notes
mixin xpblock
each name in ["experienced", "expert", "master", "grandmaster", "legend"]
span(data-i18n=`${name}`)= cap(name)
div
each n in N(5)
input(type="checkbox", name=`attr_${name}${n}`, value="1")
+31
View File
@@ -0,0 +1,31 @@
rolltemplate.sheet-rolltemplate-rolls
.sheet-container(class="sheet-color-{{color}}")
.sheet-header
|
| {{#title}}
.sheet-title {{title}}
|
| {{/title}}
| {{#subtitle}}
.sheet-subtitle {{subtitle}}
|
| {{/subtitle}}
.sheet-content
|
| {{#allprops() title subtitle desc color baseroll}}
.sheet-key {{key}}
.sheet-value {{value}}
|
| {{/allprops() title subtitle desc color baseroll}}
| {{#rollTotal() baseroll 2}}
.sheet-fail Critical Fumble!
|
| {{/rollTotal() baseroll 2}}
| {{#rollTotal() baseroll 12}}
.sheet-crit Critical Success!
|
| {{/rollTotal() baseroll 12}}
| {{#desc}}
.sheet-desc {{desc}}
|
| {{/desc}}
+5
View File
@@ -0,0 +1,5 @@
//- functions
- var N = number => [...Array(number+1).keys()].slice(1)
- var cap = word => word.charAt(0).toUpperCase() + word.slice(1)
//- variables
- var skills = ["combat", "craft", "lore", "physical", "social", "sorcery", "stealth"];
+282
View File
@@ -0,0 +1,282 @@
// ------------------------------------------------
// #GENERAL
// ------------------------------------------------
@import url('https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz|Anton&display=swap');
.charsheet {
*{
font-family: "Yanone Kaffeesatz";
}
// --------- Text -------------
label, div, span, button[type="roll"] {
text-transform: capitalize;
flex-grow: 0;
align-self: center;
}
div, span, label{
flex-shrink: 1;
}
h3{
margin: 0.4em;
}
textarea, input[type="number"], input[type="text"] {
display: flex;
flex-grow: 6;
flex-shrink: 1;
align-self: center;
}
label{
padding-left: 15px;
padding-top: 5px;
text-align: center;
font-size: 1.6em;
}
// --------- Inputs -------------
input[type="text"]{
font-size: 1.1em;
}
input[type="text"],
input[type="number"]{
background-color: transparent;
border-style: none none solid none;
border-color: black;
border-radius: 0px;
width: fit-content;
padding: 0.5em;
margin: auto 5px 5px 5px;
max-height: 50px;
}
input[type="number"]{
text-align: center;
}
textarea {
background-color: transparent;
width: 95%;
height: max-content;
}
input[type="checkbox"].checkbox {
border-style: solid black;
border-radius: 0px;
height: auto;
}
textarea:focus,
input[type="text"]:focus,
input[type="number"]:focus{
background-color: hsla(0.0, 15.2%, 75.5%, 1.0);
}
textarea.warn-missing:placeholder-shown,
input[type="text"].warn-missing:placeholder-shown,
input[type="number"].warn-missing:placeholder-shown {
background-color: #EAC9D1;
}
// -----Hides up/down buttons on numberfields that don't need them ---
input[type=number].txtfield::-webkit-inner-spin-button,
input[type=number].txtfield::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type=number].txtfield {
-moz-appearance: textfield;
}
// ------- Buttons ----------
button[type=roll], button[type=roll].d6, button[type=roll].blank {
text-shadow: none;
background-position: 0 -40px;
background-color: #d9d9d9;
border: 2px;
}
button[type=roll].blank::before {
content: '';
height: min-content;
text-align: center;
}
button[type=roll].d6::before {
font-family: 'dicefontd6';
content: 'F ';
}
button[type=roll].d6:hover, button[type=roll].blank:hover, button[type=roll]:hover{
border: 2px solid black;
background-color: #7e7d7d;
border-radius: 10px;
text-shadow: none;
}
//-----------------------------------------------------------------
// #SECTIONS
// -----------------------------------------------------------------
// --------- General Section Styling -------------
section, .section{
display: flex;
flex-flow: column nowrap;
align-items:center;
justify-content: space-around;
align-content: space-around;
}
.border{
border: solid 2px black;
}
.flex-center {
display: flex;
align-items: center;
}
.flex-middle {
display: flex;
justify-content: center;
}
.flex-col {
display: flex;
flex-flow: column nowrap;
}
.flex-row {
display: flex;
flex-flow: row nowrap;
}
main {
display: grid;
grid-template-columns: 2fr 4fr 4fr 100px;
grid-template-rows: 1fr 5fr 5fr;
grid-template-areas:"name name name name "
"skills traits combat xp "
"equip equip sorcery sorcery";
grid-gap: 4px;
width: 1200px;
height: 800px;
background-color: whitesmoke;
section.name{
grid-area: name;
input[type="checkbox"]{
height: auto;
transform: scale(1.1);
}
input[type="text"],input[type="number"],span{
font-size: 1.3em;
}
.pad{
padding: 8px;
}
}
section.skills{
grid-area: skills;
.flex-row{
width: 90%;
input{
width: 25%;
margin: 0 10px;
border: 4px solid black;
border-radius: 22px;
font-size: 1.4em;
padding: 6px;
}
button{
width: 55%;
font-size: 1.4em;
}
}
}
section.traits{
grid-area: traits;
}
section.combat{
grid-area: combat;
.flex-row.section{
width: 90%;
height: 90%;
button{
height: 35%;
}
}
div.armor{
flex-grow: 1;
}
div.grid-weapon{
display: grid;
grid-template-columns: 30px 165px 52px 42px auto;
grid-template-rows: 25px 1fr 1fr 1fr 1fr 1fr;
grid-gap: 5px;
grid-row-gap: 7px;
flex-grow: 1;
width: 560px;
* {
font-size: 1.3em;
}
span{
width: 70px;
font-size: 1.5em;
text-align: center;
justify-self: center;
}
button{
width: 18px;
margin-left: 5px;
}
input[type="text"].weapon-name{
width: 157px;
}
input[type="text"].weapon-notes{
width: 235px;
}
input[type="text"].dmg{
width: 40px;
text-align: center;
}
input[type="text"].range{
width: 52px;
text-align: center;
}
}
}
section.equip{
grid-area: equip;
}
section.sorcery{
grid-area: sorcery;
}
section.xp{
grid-area: xp;
display: flex;
align-content: flex-start;
input[type="checkbox"]{
height: 23px;
transform: scale(0.8);
}
span{
width: 80px;
text-align: center;
font-size: 1.7em;
}
}
}
// i18n-fixes
.lang-es div.grid-weapon span.damage{
padding-left: 17px;
}
}
+98
View File
@@ -0,0 +1,98 @@
// ------------------------------------
// #ROLL TEMPLATES
//------------------------------------
// Smaller margins - remove these if you want the huge default left margin
.withoutavatars .sheet-rolltemplate-rolls {
margin-left: -7px;
}
.sheet-rolltemplate-rolls {
margin-left: -37px;
font-family: "Yanone Kaffeesatz";
.sheet-container {
border: 3px solid black;
border-radius: 3px;
}
// Header formatting - title and subtitle
.sheet-header {
background-color: var(--header-bg-color, #a83521);
color: var(--header-text-color, #FFF);
text-align: left;
text-transform: capitalize;
padding: 5px;
border-bottom: 2px solid black;
}
.sheet-title,
.sheet-name{
font-size: 1.4em;
font-weight: bold;
}
.sheet-subtitle {
font-size: 1em;
}
.sheet-container {
--header-bg-color: #c87d00;
--header-text-color: #FFF;
}
// alt template colors
.sheet-container.sheet-color-green {
--header-bg-color: #008000;
}
.sheet-container.sheet-color-blue {
--header-bg-color: #0000e0;
}
.sheet-container.sheet-color-gold {
--header-bg-color: #ffdd1f;
--header-text-color: #000;
}
.sheet-container.sheet-color-purple {
--header-bg-color: #c200c2;
}
.sheet-container.sheet-color-black {
--header-bg-color: #000;
}
.sheet-container.sheet-color-white {
--header-bg-color: #FFF;
--header-text-color: #000;
}
// Allprops part
.sheet-content {
display: grid;
background: #FFF;
grid-template-columns: auto auto;
line-height:1.4em;
}
.sheet-content > div {
padding: 5px;
}
.sheet-content .sheet-key {
font-weight: bold;
padding-right: 10px;
text-align: right;
}
// Make even-numbered rows grey
.sheet-content :nth-child(4n+3),
.sheet-content :nth-child(4n) {
background:#EEE;
}
// Description field wide
.sheet-desc, .sheet-crit, .sheet-fail {
grid-column: span 2;
padding: 5px;
text-align: center;
}
.sheet-crit, .sheet-fail{
font-weight: bold;
font-size: 1.3em;
}
.sheet-crit {
color: green;
}
.sheet-fail {
color: red;
}
}
+9 -2
View File
@@ -28,10 +28,17 @@
"experienced":"experienced",
"expert":"expert",
"master":"master",
"grandmster":"grandmster",
"grandmaster":"grandmaster",
"legend":"legend",
"critical-fumble":"Critical Fumble!",
"critical-success":"Critical Success!",
"roll-i18n":"roll",
"player":"Player"
"player":"Player",
"human":"Human",
"anunaki":"Anunaki",
"apefolk":"Apefolk",
"dwarf":"Dwarf",
"elf":"Elf",
"geckofolk":"Geckofolk",
"lizardfolk":"Lizardfolk"
}