new kids on bike sheet v1 (#5514)

This commit is contained in:
Cassie Levett
2019-09-30 20:52:53 -05:00
committed by GitHub
parent e3d0883175
commit aee193a4bc
35 changed files with 915 additions and 0 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

+1
View File
@@ -0,0 +1 @@
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

+166
View File
@@ -0,0 +1,166 @@
* {
box-sizing: border-box; }
.charsheet {
background-color: #eee;
padding: 1%;
width: 850px; }
button:before {
display: none; }
button[type='roll'] {
background: #bbb;
border-radius: 0.1em; }
button[type='roll']:focus, button[type='roll']:hover, button[type='roll']:active {
background-color: #770709; }
button[type='roll']:focus > img, button[type='roll']:hover > img, button[type='roll']:active > img {
filter: invert(1); }
label {
margin: 0px;
padding: 0px; }
input[type="text"] {
width: 100%; }
textarea {
font-size: 1.1em;
font-weight: normal;
line-height: 1.5em;
min-height: 150px;
overflow-wrap: break-word;
overflow: scroll;
padding: 2px;
resize: vertical;
text-align: left;
vertical-align: top;
white-space: pre-line; }
h1.sheet-logo {
padding-left: 30%; }
div.sheet-box {
border: thin solid #bbb;
margin: 1%;
padding: 1%;
background-color: #fff; }
div.sheet-box img {
width: 100%; }
div.sheet-grid {
display: inline-grid;
grid-row-gap: 0.5em; }
div.sheet-kob-row {
grid-template-columns: 1fr 1fr;
width: 100%; }
div.sheet-kob-row img.sheet-header {
height: 30px;
width: 200px; }
div.sheet-kob-row div.sheet-biobox {
grid-template-columns: 8em 1fr; }
div.sheet-kob-row div.sheet-biobox input[type='checkbox'] {
height: 15px;
width: 15px; }
div.sheet-kob-row div.sheet-biobox textarea[name='attr_character_description'] {
grid-column: 1 / 3; }
div.sheet-kob-row div.sheet-dicebox {
grid-template-columns: 3em 1fr 1fr 3em; }
div.sheet-kob-row div.sheet-dicebox button:nth-of-type(odd) {
grid-column: 1; }
div.sheet-kob-row div.sheet-dicebox button:nth-of-type(even) {
grid-column: 4; }
div.sheet-kob-row div.sheet-dicebox select {
font-size: 4em;
height: 100%;
margin: 0px;
padding-left: 25%;
width: 100%; }
div.sheet-kob-row div.sheet-dicebox select:nth-of-type(odd) {
grid-column: 2; }
div.sheet-kob-row div.sheet-dicebox select:nth-of-type(even) {
grid-column: 3; }
div.sheet-kob-row div.sheet-dicebox select[name="attr_flight"] {
grid-row: 1; }
div.sheet-kob-row div.sheet-dicebox select[name="attr_brawn"] {
grid-row: 2; }
div.sheet-kob-row div.sheet-dicebox select[name="attr_grit"] {
grid-row: 3; }
div.sheet-kob-row div.sheet-dicebox optgroup {
font-size: 0.5em; }
div.sheet-kob-row div.sheet-dicebox option {
font-size: 0.8em; }
div.sheet-kob-row div.sheet-strenghtsbox,
div.sheet-kob-row div.sheet-flawsbox {
grid-template-columns: 2em 1fr 2em 1fr;
grid-column-gap: 0.2em; }
div.sheet-kob-row div.sheet-strenghtsbox label,
div.sheet-kob-row div.sheet-flawsbox label {
height: 100%; }
div.sheet-kob-row div.sheet-strenghtsbox label.sheet-skilledat,
div.sheet-kob-row div.sheet-flawsbox label.sheet-skilledat {
grid-column: 1 / 2; }
div.sheet-kob-row div.sheet-strenghtsbox label.sheet-skillatcheckbox,
div.sheet-kob-row div.sheet-flawsbox label.sheet-skillatcheckbox {
grid-column: 3 / 5; }
div.sheet-kob-row div.sheet-strenghtsbox input[type='checkbox'],
div.sheet-kob-row div.sheet-flawsbox input[type='checkbox'] {
height: 25px;
width: 25px; }
div.sheet-kob-row div.sheet-strenghtsbox span,
div.sheet-kob-row div.sheet-flawsbox span {
font-weight: bold;
font-variant: small-caps; }
div.sheet-kob-row div.sheet-strenghtsbox {
grid-template-columns: 2em 1fr 2em 1fr; }
div.sheet-kob-row div.sheet-strenghtsbox h2 {
grid-column: 1 / 5; }
div.sheet-kob-row div.sheet-flawsbox {
grid-template-columns: 2em 1fr 2em 1fr 2em 1fr; }
div.sheet-kob-row div.sheet-flawsbox h2 {
grid-column: 1 / 7; }
div.sheet-kob-row div.sheet-boxnotes {
grid-column: 1 / 3; }
/* ROLL TEMPLATE
============================= */
.sheet-rolltemplate-rolls .sheet-template-body {
border: 1px solid #000;
text-align: center; }
.sheet-rolltemplate-rolls .sheet-template-header {
background: #210000;
background: linear-gradient(180deg, #210000 0%, #890b0d 70%, #d5191f 94%);
border: 1px solid #000;
border-bottom: 2px solid #000;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
color: white;
font-size: 20px;
font-variant: small-caps;
font-weight: bold;
letter-spacing: 2px;
padding: 5px;
text-align: center;
text-transform: capitalize; }
.sheet-rolltemplate-rolls .sheet-template-row {
background-color: white;
padding: 5px; }
/* Use this to alternate the background colors for each row */
.sheet-rolltemplate-rolls .sheet-template-row:nth-child(2n+0) {
background-color: #1c1c1c; }
/* Remove some fo the built in styles around rolls */
.sheet-rolltemplate-rolls .inlinerollresult,
.sheet-rolltemplate-rolls .inlinerollresult.importantroll,
.sheet-rolltemplate-rolls .inlinerollresult.fullfail,
.sheet-rolltemplate-rolls .inlinerollresult.fullcrit {
background-color: transparent;
border: none;
color: black;
display: inline-block;
font-size: 25px;
padding: 5px; }
+316
View File
@@ -0,0 +1,316 @@
<h1 class="logo"><img alt="Kids on Bike Character Sheet" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/KOBLogo.png"/></h1>
<div class="grid kob-row">
<div class="grid box biobox"><img alt="Name" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Name.png"/>
<input data-i18n-placeholder="Name" name="attr_character_name" placeholder="Name" title="@{character_name}" type="text" value=""/><img alt="Age" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Age.png"/>
<input data-i18n-placeholder="Age" name="attr_character_age" placeholder="Age" title="@{character_age}" type="text" value=""/><img alt="Fear" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Fear.png"/>
<input data-i18n-placeholder="Fear" name="attr_character_fear" placeholder="Fear" title="@{character_fear}" type="text" value=""/><img alt="Motivation" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Motivation.png"/>
<input data-i18n-placeholder="Motivation" name="attr_character_motivation" placeholder="Motivation" title="@{character_motivation}" type="text" value=""/><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Descriptions.png" alt="Description"/>
<textarea name="attr_character_description" title="@{character_description}"></textarea><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Adversity_updated.png" alt="Adversity"/>
<div class="sheet-biolabelcol"><span class="sheet-adversitytokens"></span>
<input name="attr_token1" title="@{token}" type="checkbox" value="1"/>
<input name="attr_token2" title="@{token}" type="checkbox" value="1"/>
<input name="attr_token3" title="@{token}" type="checkbox" value="1"/>
<input name="attr_token4" title="@{token}" type="checkbox" value="1"/>
<input name="attr_token5" title="@{token}" type="checkbox" value="1"/>
<input name="attr_token6" title="@{token}" type="checkbox" value="1"/>
<input name="attr_token7" title="@{token}" type="checkbox" value="1"/>
<input name="attr_token8" title="@{token}" type="checkbox" value="1"/>
<input name="attr_token9" title="@{token}" type="checkbox" value="1"/>
<input name="attr_token10" title="@{token}" type="checkbox" value="1"/>
<input name="attr_token11" title="@{token}" type="checkbox" value="1"/>
<input name="attr_token12" title="@{token}" type="checkbox" value="1"/>
<input name="attr_token13" title="@{token}" type="checkbox" value="1"/>
<input name="attr_token14" title="@{token}" type="checkbox" value="1"/>
<input name="attr_token15" title="@{token}" type="checkbox" value="1"/>
</div>
</div>
<div class="grid box dicebox">
<button name="Fight" type="roll" value="&{template:rolls}{{header=^{Fight}}} {{dice=[[@{fight}+?{modifier|0}]]}}"> <img alt="Fight" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Fight.png"/></button>
<select name="attr_fight" title="@{fight}" value="d4">
<optgroup label="Dice">Dice
<option value="d4" selectedDie="selectedDie">d4</option>
<option value="d6" selectedDie="selectedDie">d6</option>
<option value="d8" selectedDie="selectedDie">d8</option>
<option value="d10" selectedDie="selectedDie">d10</option>
<option value="d12" selectedDie="selectedDie">d12</option>
<option value="d20" selectedDie="selectedDie">d20</option>
</optgroup>
</select>
<button name="Flight" type="roll" value="&{template:rolls}{{header=^{Flight}}} {{dice=[[@{flight}+?{modifier|0}]]}}"> <img alt="Flight" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Flight.png"/></button>
<select name="attr_flight" title="@{flight}" value="d4">
<optgroup label="Dice">Dice
<option value="d4" selectedDie="selectedDie">d4</option>
<option value="d6" selectedDie="selectedDie">d6</option>
<option value="d8" selectedDie="selectedDie">d8</option>
<option value="d10" selectedDie="selectedDie">d10</option>
<option value="d12" selectedDie="selectedDie">d12</option>
<option value="d20" selectedDie="selectedDie">d20</option>
</optgroup>
</select>
<button name="Brains" type="roll" value="&{template:rolls}{{header=^{Brains}}} {{dice=[[@{brains}+?{modifier|0}]]}}"> <img alt="Brains" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Brains.png"/></button>
<select name="attr_brains" title="@{brains}" value="d4">
<optgroup label="Dice">Dice
<option value="d4" selectedDie="selectedDie">d4</option>
<option value="d6" selectedDie="selectedDie">d6</option>
<option value="d8" selectedDie="selectedDie">d8</option>
<option value="d10" selectedDie="selectedDie">d10</option>
<option value="d12" selectedDie="selectedDie">d12</option>
<option value="d20" selectedDie="selectedDie">d20</option>
</optgroup>
</select>
<button name="Brawn" type="roll" value="&{template:rolls}{{header=^{Brawn}}} {{dice=[[@{brawn}+?{modifier|0}]]}}"> <img alt="Brawn" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Brawn.png"/></button>
<select name="attr_brawn" title="@{brawn}" value="d4">
<optgroup label="Dice">Dice
<option value="d4" selectedDie="selectedDie">d4</option>
<option value="d6" selectedDie="selectedDie">d6</option>
<option value="d8" selectedDie="selectedDie">d8</option>
<option value="d10" selectedDie="selectedDie">d10</option>
<option value="d12" selectedDie="selectedDie">d12</option>
<option value="d20" selectedDie="selectedDie">d20</option>
</optgroup>
</select>
<button name="Charm" type="roll" value="&{template:rolls}{{header=^{Charm}}} {{dice=[[@{charm}+?{modifier|0}]]}}"> <img alt="Charm" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Charm.png"/></button>
<select name="attr_charm" title="@{charm}" value="d4">
<optgroup label="Dice">Dice
<option value="d4" selectedDie="selectedDie">d4</option>
<option value="d6" selectedDie="selectedDie">d6</option>
<option value="d8" selectedDie="selectedDie">d8</option>
<option value="d10" selectedDie="selectedDie">d10</option>
<option value="d12" selectedDie="selectedDie">d12</option>
<option value="d20" selectedDie="selectedDie">d20</option>
</optgroup>
</select>
<button name="Grit" type="roll" value="&{template:rolls}{{header=^{Grit}}} {{dice=[[@{grit}+?{modifier|0}]]}}"> <img alt="Grit" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Grit.png"/></button>
<select name="attr_grit" title="@{grit}" value="d4">
<optgroup label="Dice">Dice
<option value="d4" selectedDie="selectedDie">d4</option>
<option value="d6" selectedDie="selectedDie">d6</option>
<option value="d8" selectedDie="selectedDie">d8</option>
<option value="d10" selectedDie="selectedDie">d10</option>
<option value="d12" selectedDie="selectedDie">d12</option>
<option value="d20" selectedDie="selectedDie">d20</option>
</optgroup>
</select>
</div>
</div>
<div class="grid kob-row">
<div class="grid box strenghtsbox">
<h2><img class="header" alt="Strengths" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Strengths-1.png"/>
</h2>
<label data-i18n-title="COOL UNDER PRESSURE" title="COOL UNDER PRESSURE">
<input name="attr_cool" title="@{cool}" type="checkbox" value="1"/>
</label><span data-i18n="COOL UNDER PRESSURE">COOL UNDER PRESSURE</span>
<label data-i18n-title="EASYGOING" title="EASYGOING">
<input name="attr_easy_going" title="@{easy_going}" type="checkbox" value="1"/>
</label><span data-i18n="EASYGOING">EASYGOING</span>
<label data-i18n-title="GROSS" title="GROSS">
<input name="attr_gross" title="@{gross}" type="checkbox" value="1"/>
</label><span data-i18n="GROSS">GROSS</span>
<label data-i18n-title="HEROIC" title="HEROIC">
<input name="attr_heroic" title="@{heroic}" type="checkbox" value="1"/>
</label><span data-i18n="HEROIC">HEROIC</span>
<label data-i18n-title="INTUITIVE" title="INTUITIVE">
<input name="attr_intuitive" title="@{intuitive}" type="checkbox" value="1"/>
</label><span data-i18n="INTUITIVE">INTUITIVE</span>
<label data-i18n-title="LOYAL" title="LOYAL">
<input name="attr_loyal" title="@{loyal}" type="checkbox" value="1"/>
</label><span data-i18n="LOYAL">LOYAL</span>
<label data-i18n-title="LUCKY" title="LUCKY">
<input name="attr_lucky" title="@{lucky}" type="checkbox" value="1"/>
</label><span data-i18n="LUCKY">LUCKY</span>
<label data-i18n-title="PREPARED" title="PREPARED">
<input name="attr_prepared" title="@{prepared}" type="checkbox" value="1"/>
</label><span data-i18n="PREPARED">PREPARED</span>
<label data-i18n-title="PROTECTIVE" title="PROTECTIVE">
<input name="attr_protective" title="@{protective}" type="checkbox" value="1"/>
</label><span data-i18n="PROTECTIVE">PROTECTIVE</span>
<label data-i18n-title="QUICK HEALING" title="QUICK HEALING">
<input name="attr_quick_healing" title="@{quick_healing}" type="checkbox" value="1"/>
</label><span data-i18n="QUICK HEALING">QUICK HEALING</span>
<label data-i18n-title="REBELLIOUS" title="REBELLIOUS">
<input name="attr_rebellious" title="@{rebellious}" type="checkbox" value="1"/>
</label><span data-i18n="REBELLIOUS">REBELLIOUS</span>
<label data-i18n-title="TOUGH" title="TOUGH">
<input name="attr_tough" title="@{tough}" type="checkbox" value="1"/>
</label><span data-i18n="TOUGH">TOUGH</span>
<label data-i18n-title="TREASURE HUNTER" title="TREASURE HUNTER">
<input name="attr_treasure_hunter" title="@{treasure_hunter}" type="checkbox" value="1"/>
</label><span data-i18n="TREASURE HUNTER">TREASURE HUNTER</span>
<label data-i18n-title="UNASSUMING" title="UNASSUMING">
<input name="attr_unassuming" title="@{unassuming}" type="checkbox" value="1"/>
</label><span data-i18n="UNASSUMING">UNASSUMING</span>
<label data-i18n-title="WEALTHY" title="WEALTHY">
<input name="attr_wealthy" title="@{wealthy}" type="checkbox" value="1"/>
</label><span data-i18n="WEALTHY">WEALTHY</span>
<label class="skilledat" data-i18n-title="SKILLED AT" title="SKILLED AT">
<input name="attr_skilled_at" title="@{skilled_at}" type="checkbox" value="1"/>
</label><span data-i18n="SKILLED AT:">SKILLED AT:</span>
<label class="skillatcheckbox" data-i18n-title="SKILLED AT DESCRIPTION" title="SKILLED AT DESCRIPTION">
<input name="attr_skill_description" title="@{skill_description}" type="text"/>
</label>
</div>
<div class="grid box flawsbox">
<h2><img class="header" alt="Flaws" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Flaws-1.png"/></h2>
<label data-i18n-title="ABSENT MINDED" title="ABSENT MINDED">
<input name="attr_absent_minded" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="ABSENT MINDED">ABSENT MINDED</span>
<label data-i18n-title="BLUNT" title="BLUNT">
<input name="attr_blunt" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="BLUNT">BLUNT</span>
<label data-i18n-title="BOASTFUL" title="BOASTFUL">
<input name="attr_boastful" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="BOASTFUL">BOASTFUL</span>
<label data-i18n-title="CLUMSY" title="CLUMSY">
<input name="attr_clumsy" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="CLUMSY">CLUMSY</span>
<label data-i18n-title="CONCEITED" title="CONCEITED">
<input name="attr_conceited" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="CONCEITED">CONCEITED</span>
<label data-i18n-title="COWARDLY" title="COWARDLY">
<input name="attr_cowardly" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="COWARDLY">COWARDLY</span>
<label data-i18n-title="DECEITFUL" title="DECEITFUL">
<input name="attr_deceitful" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="DECEITFUL">DECEITFUL</span>
<label data-i18n-title="DEMANDING" title="DEMANDING">
<input name="attr_demanding" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="DEMANDING">DEMANDING</span>
<label data-i18n-title="DEMANDING" title="DEMANDING">
<input name="attr_demanding" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="DEMANDING">DEMANDING</span>
<label data-i18n-title="DISLOYAL" title="DISLOYAL">
<input name="attr_disloyal" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="DISLOYAL">DISLOYAL</span>
<label data-i18n-title="DISOBEDIENT" title="DISOBEDIENT">
<input name="attr_disobedient" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="DISOBEDIENT">DISOBEDIENT</span>
<label data-i18n-title="DOGMATIC" title="DOGMATIC">
<input name="attr_dogmatic" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="DOGMATIC">DOGMATIC</span>
<label data-i18n-title="ENVIOUS" title="ENVIOUS">
<input name="attr_envious" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="ENVIOUS">ENVIOUS</span>
<label data-i18n-title="FLIPPANT" title="FLIPPANT">
<input name="attr_flippant" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="FLIPPANT">FLIPPANT</span>
<label data-i18n-title="GLOOMY" title="GLOOMY">
<input name="attr_gloomy" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="GLOOMY">GLOOMY</span>
<label data-i18n-title="GREEDY" title="GREEDY">
<input name="attr_greedy" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="GREEDY">GREEDY</span>
<label data-i18n-title="HOT-TEMPERED" title="HOT-TEMPERED">
<input name="attr_hot_tempered" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="HOT-TEMPERED">HOT-TEMPERED</span>
<label data-i18n-title="IGNORANT" title="IGNORANT">
<input name="attr_ignorant" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="IGNORANT">IGNORANT</span>
<label data-i18n-title="INCONSIDERATE" title="INCONSIDERATE">
<input name="attr_inconsiderate" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="INCONSIDERATE">INCONSIDERATE</span>
<label data-i18n-title="INSECURE" title="INSECURE">
<input name="attr_insecure" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="INSECURE">INSECURE</span>
<label data-i18n-title="IRRATIONAL" title="IRRATIONAL">
<input name="attr_irrational" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="IRRATIONAL">IRRATIONAL</span>
<label data-i18n-title="NEUROTIC" title="NEUROTIC">
<input name="attr_neurotic" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="NEUROTIC">NEUROTIC</span>
<label data-i18n-title="OBNOXIOUS" title="OBNOXIOUS">
<input name="attr_obnoxious" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="OBNOXIOUS">OBNOXIOUS</span>
<label data-i18n-title="PARANOID" title="PARANOID">
<input name="attr_paranoid" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="PARANOID">PARANOID</span>
<label data-i18n-title="PATRONIZING" title="PATRONIZING">
<input name="attr_patronizing" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="PATRONIZING">PATRONIZING</span>
<label data-i18n-title="PERVERSE" title="PERVERSE">
<input name="attr_perverse" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="PERVERSE">PERVERSE</span>
<label data-i18n-title="PETTY" title="PETTY">
<input name="attr_petty" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="PETTY">PETTY</span>
<label data-i18n-title="PICKY" title="PICKY">
<input name="attr_picky" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="PICKY">PICKY</span>
<label data-i18n-title="PREJUDICE" title="PREJUDICE">
<input name="attr_prejudice" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="PREJUDICE">PREJUDICE</span>
<label data-i18n-title="PRIM" title="PRIM">
<input name="attr_prim" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="PRIM">PRIM</span>
<label data-i18n-title="RECKLESS" title="RECKLESS">
<input name="attr_reckless" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="RECKLESS">RECKLESS</span>
<label data-i18n-title="RESENTFUL" title="RESENTFUL">
<input name="attr_resentful" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="RESENTFUL">RESENTFUL</span>
<label data-i18n-title="RESTLESS" title="RESTLESS">
<input name="attr_restless" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="RESTLESS">RESTLESS</span>
<label data-i18n-title="RUDE" title="RUDE">
<input name="attr_rude" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="RUDE">RUDE</span>
<label data-i18n-title="SECRETIVE" title="SECRETIVE">
<input name="attr_secretive" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="SECRETIVE">SECRETIVE</span>
<label data-i18n-title="SELF-CENTERED" title="SELF-CENTERED">
<input name="attr_selfcentered" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="SELF-CENTERED">SELF-CENTERED</span>
<label data-i18n-title="SELF-PITYING" title="SELF-PITYING">
<input name="attr_selfpitying" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="SELF-PITYING">SELF-PITYING</span>
<label data-i18n-title="SLOVENLY" title="SLOVENLY">
<input name="attr_slovenly" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="SLOVENLY">SLOVENLY</span>
<label data-i18n-title="SUPERSTITIOUS" title="SUPERSTITIOUS">
<input name="attr_superstitous" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="SUPERSTITIOUS">SUPERSTITIOUS</span>
<label data-i18n-title="VAIN" title="VAIN">
<input name="attr_vain" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="VAIN">VAIN</span>
<label data-i18n-title="VINDICTIVE" title="VINDICTIVE">
<input name="attr_vindictive" title="@{}" type="checkbox" value="1"/>
</label><span data-i18n="VINDICTIVE">VINDICTIVE</span>
</div>
</div>
<div class="grid kob-row">
<div class="grid box powers">
<h2><img class="header" alt="Powers" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Powers-1.png"/></h2>
<textarea data-i18n-placeholder="Powers" name="attr_powers" placeholder="Powers" title="@{powers}"></textarea>
</div>
<div class="grid box backpack">
<h2><img class="header" alt="Backpack" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Backpack-1.png"/></h2>
<textarea data-i18n-placeholder="Backpack" name="attr_backpack" placeholder="Backpack" title="@{backpack}"></textarea>
</div>
</div>
<div class="grid kob-row">
<div class="grid box boxnotes">
<h2><img class="header" alt="Notes" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Notes-1.png"/></h2>
<textarea data-i18n-placeholder="Notes" name="attr_notes" placeholder="Notes" title="@{notes}"></textarea>
</div>
</div>
<!--include src/pug/_rolltemplate.pug--> <div class="rolltemplates">
<rolltemplate class="sheet-rolltemplate-rolls">
<!--- Display a header on the template --->
<div class="sheet-template-header">
{{#header}}{{header}}{{/header}}
</div>
<!--- Display the dice roll in the template --->
<div class="sheet-template-body">
{{#dice}}
<div class="sheet-template-row">{{dice}}</div>
{{/dice}}
<!--- Display a description. This is great for text included with a roll --->
{{#desc}}
<div class="sheet-template-row">
<span class="sheet-template-desc">
</span>
</div>
{{/desc}}
</div>
</rolltemplate>
</div>
+82
View File
@@ -0,0 +1,82 @@
//- VERSION
//- =============================
input(name='attr_version' type='hidden' value='1')
//- MIXINS
include src/pug/_mixins.pug
h1.logo
img(alt='Kids on Bike Character Sheet', src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/KOBLogo.png')
.grid.kob-row
.grid.box.biobox
each val in ['Name', 'Age', 'Fear', 'Motivation']
- const attrName = val.toLowerCase();
img(alt=val src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-'+val+'.png')
input(data-i18n-placeholder=val name='attr_character_'+attrName placeholder=val title='@{character_'+attrName+'}' type='text' value='')
img(src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Descriptions.png', alt='Description')
textarea(name='attr_character_description' title='@{character_description}')
img(src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Adversity_updated.png' alt='Adversity')
.sheet-biolabelcol
span.sheet-adversitytokens
- let index = 1
while index < 16
input(name='attr_token' + index++ title='@{token}' type='checkbox' value='1')
.grid.box.dicebox
each val in ['Fight', 'Flight', 'Brains', 'Brawn', 'Charm', 'Grit']
- const attrName = val.toLowerCase();
button(name=val type='roll' value!='&{template:rolls}{{header=^{'+val+'}}} {{dice=[[@{'+attrName+'}+?{modifier|0}]]}}')
img(alt=val src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-'+val+'.png')
select(name='attr_'+attrName title='@{'+attrName+'}' value='d4')
+diceSelect()
.grid.kob-row
.grid.box.strenghtsbox
h2
img.header(alt='Strengths' src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Strengths-1.png')
- const strengths =[{'attr' : 'cool', 'name' : 'COOL UNDER PRESSURE'}, {'attr' : 'easy_going', 'name' : 'EASYGOING'}, {'attr' : 'gross', 'name' : 'GROSS'}, {'attr' : 'heroic', 'name' : 'HEROIC'}, {'attr' : 'intuitive', 'name' : 'INTUITIVE'}, {'attr' : 'loyal', 'name' : 'LOYAL'}, {'attr' : 'lucky', 'name' : 'LUCKY'}, {'attr' : 'prepared', 'name' : 'PREPARED'}, {'attr' : 'protective', 'name' : 'PROTECTIVE'}, {'attr' : 'quick_healing', 'name' : 'QUICK HEALING'}, {'attr' : 'rebellious', 'name' : 'REBELLIOUS'}, {'attr' : 'tough', 'name' : 'TOUGH'}, {'attr' : 'treasure_hunter', 'name' : 'TREASURE HUNTER'}, {'attr' : 'unassuming', 'name' : 'UNASSUMING'}, {'attr' : 'wealthy', 'name' : 'WEALTHY'}]
each s,i in strengths
- const attrName = s.attr.split('attr_')[0];
label(data-i18n-title=s.name title=s.name)
input(name='attr_'+s.attr title='@{'+attrName+'}' type='checkbox' value='1')
span(data-i18n=s.name)=s.name
label.skilledat(data-i18n-title='SKILLED AT' title='SKILLED AT')
input(name='attr_skilled_at' title='@{skilled_at}' type='checkbox' value='1')
span(data-i18n='SKILLED AT:') SKILLED AT:
label.skillatcheckbox(data-i18n-title='SKILLED AT DESCRIPTION' title='SKILLED AT DESCRIPTION')
input(name='attr_skill_description' title='@{skill_description}' type='text' )
.grid.box.flawsbox
h2
img.header(alt='Flaws' src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Flaws-1.png')
- const flaws = [{'name': "ABSENT MINDED", "attr":"attr_absent_minded"},{"name": "BLUNT","attr":"attr_blunt" } ,{"name":"BOASTFUL", "attr":"attr_boastful"},{"name":"CLUMSY", "attr" : "attr_clumsy"},{"name":"CONCEITED", "attr":"attr_conceited"} , {"name":"COWARDLY", "attr": "attr_cowardly"},{"name": "DECEITFUL", "attr":"attr_deceitful"} , {"name":"DEMANDING", "attr": "attr_demanding"},{'attr' :'attr_demanding', 'name': 'DEMANDING'}, {'attr' :'attr_disloyal', 'name': 'DISLOYAL'}, {'attr' :'attr_disobedient', 'name' : 'DISOBEDIENT'}, {'attr' :'attr_dogmatic', 'name' :'DOGMATIC'}, {'attr' :'attr_envious', 'name' : 'ENVIOUS'}, {'attr' :'attr_flippant', 'name' :'FLIPPANT'}, {'attr' :'attr_gloomy', 'name' : 'GLOOMY'}, {'attr' :'attr_greedy', 'name' :'GREEDY'}, {'attr' :'attr_hot_tempered', 'name' :'HOT-TEMPERED'}, {'attr' :'attr_ignorant', 'name' :'IGNORANT'}, {'attr' :'attr_inconsiderate', 'name' :'INCONSIDERATE'}, {'attr' :'attr_insecure', 'name' :'INSECURE'}, {'attr' :'attr_irrational', 'name' :'IRRATIONAL'}, {'attr' :'attr_neurotic', 'name' :'NEUROTIC'}, {'attr' :'attr_obnoxious', 'name' :'OBNOXIOUS'}, {'attr' :'attr_paranoid', 'name' :'PARANOID'}, {'attr' :'attr_patronizing', 'name' :'PATRONIZING'}, {'attr' :'attr_perverse', 'name' :'PERVERSE'}, {'attr' :'attr_petty', 'name' :'PETTY'}, {'attr' :'attr_picky', 'name' :'PICKY'}, {'attr' :'attr_prejudice', 'name' :'PREJUDICE'}, {'attr' :'attr_prim', 'name' :'PRIM'}, {'attr' :'attr_reckless', 'name' :'RECKLESS'},{'attr' :'attr_resentful', 'name' :'RESENTFUL'}, {'attr' :'attr_restless', 'name' :'RESTLESS'}, {'attr' :'attr_rude', 'name' :'RUDE'}, {'attr' :'attr_secretive', 'name' :'SECRETIVE'}, {'attr' :'attr_selfcentered', 'name' :'SELF-CENTERED'}, {'attr' :'attr_selfpitying', 'name' :'SELF-PITYING'}, {'attr' :'attr_slovenly', 'name' :'SLOVENLY'}, {'attr' :'attr_superstitous', 'name' :'SUPERSTITIOUS'}, {'attr' :'attr_vain', 'name' :'VAIN'}, {'attr' :'attr_vindictive', 'name' :'VINDICTIVE'} ]
each n in flaws
- const attrName = n.attr.split('attr_')[0];
label(data-i18n-title=n.name title=n.name)
input(name=n.attr title='@{'+attrName+'}' type='checkbox' value='1')
span(data-i18n=n.name)=n.name
.grid.kob-row
.grid.box.powers
h2
img.header(alt='Powers' src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Powers-1.png')
textarea(data-i18n-placeholder='Powers' name='attr_powers' placeholder='Powers' title='@{powers}')
.grid.box.backpack
h2
img.header(alt='Backpack' src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Backpack-1.png')
textarea(data-i18n-placeholder='Backpack' name='attr_backpack' placeholder='Backpack' title='@{backpack}')
.grid.kob-row
.grid.box.boxnotes
h2
img.header(alt='Notes' src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Kids-on-Bikes/images/Label-Notes-1.png')
textarea(data-i18n-placeholder='Notes' name='attr_notes' placeholder='Notes' title='@{notes}')
//- ROLL TEMPLATE
//include src/pug/_rolltemplate.pug
include src/pug/rolltemplate.html
+176
View File
@@ -0,0 +1,176 @@
* { box-sizing: border-box; }
.charsheet {
background-color: #eee;
padding: 1%;
width: 850px;
}
button:before { display: none; }
button[type='roll'] {
background: #bbb;
border-radius: 0.1em;
&:focus, &:hover, &:active {
background-color: #770709;
& > img {
filter: invert(1);
}
}
}
label {
margin: 0px;
padding: 0px;
}
input[type="text"] {
width: 100%;
}
textarea {
font-size: 1.1em;
font-weight: normal;
line-height: 1.5em;
min-height: 150px;
overflow-wrap: break-word;
overflow: scroll;
padding: 2px;
resize: vertical;
text-align: left;
vertical-align: top;
white-space: pre-line;
}
h1.sheet-logo {
padding-left: 30%;
}
div.sheet-box {
border: thin solid #bbb;
margin: 1%;
padding: 1%;
background-color: #fff;
img {
width: 100%;
}
}
div.sheet-grid {
display: inline-grid;
grid-row-gap: 0.5em;
}
div.sheet-kob-row {
grid-template-columns: 1fr 1fr;
width: 100%;
img.sheet-header {
height: 30px;
width: 200px;
}
div.sheet-biobox {
grid-template-columns: 8em 1fr;
input {
&[type='checkbox'] {
height: 15px;
width: 15px;
}
}
textarea[name='attr_character_description'] {
grid-column: 1 / 3;
}
}
div.sheet-dicebox {
grid-template-columns: 3em 1fr 1fr 3em;
button {
&:nth-of-type(odd) { grid-column: 1; }
&:nth-of-type(even) { grid-column: 4; }
}
select {
font-size: 4em;
height: 100%;
margin: 0px;
padding-left: 25%;
width: 100%;
&:nth-of-type(odd) { grid-column: 2; }
&:nth-of-type(even) { grid-column: 3; }
&[name="attr_flight"] { grid-row: 1 }
&[name="attr_brawn"] { grid-row: 2 }
&[name="attr_grit"] { grid-row: 3 }
}
optgroup {
font-size: 0.5em;
}
option {
font-size: 0.8em;
}
}
div.sheet-strenghtsbox,
div.sheet-flawsbox {
grid-template-columns: 2em 1fr 2em 1fr;
grid-column-gap: 0.2em;
label {
height: 100%;
&.sheet-skilledat {
grid-column: 1 / 2;
}
&.sheet-skillatcheckbox {
grid-column: 3 / 5;
}
}
input {
&[type='checkbox'] {
height: 25px;
width: 25px;
}
}
span {
font-weight: bold;
font-variant: small-caps;
}
}
div.sheet-strenghtsbox {
grid-template-columns: 2em 1fr 2em 1fr;
h2 {
grid-column: 1 / 5;
}
}
div.sheet-flawsbox {
grid-template-columns: 2em 1fr 2em 1fr 2em 1fr;
h2 {
grid-column: 1 / 7;
}
}
div.sheet-boxnotes {
grid-column: 1 / 3;
}
}
// ROLL TEMPLATE
//=============================
@import 'src/scss/_rolltemplate';
Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

+8
View File
@@ -0,0 +1,8 @@
{
"html": "kob.html",
"css": "kob.css",
"authors": "Emerald Productions, LLC",
"roll20userid": "26123, 557736",
"preview": "preview.png",
"instructions": "Hunter Entertainment's Kids on Bikes"
}
@@ -0,0 +1,8 @@
//- DICE SELECT
mixin diceSelect(selectedDefault)
- const diceTypes = ['d4', 'd6', 'd8', 'd10', 'd12', 'd20'];
optgroup(label='Dice') Dice
each val in diceTypes
- const selectedDie = val === selectedDefault ? selected : '';
option(value=val selectedDie)=val
@@ -0,0 +1,21 @@
//- ROLL TEMPLATE
//- ============================= -->
.rolltemplates
rolltemplate.sheet-rolltemplate-rolls
.sheet-template-container
//- Display a header on the template -
| {{#header}}
.sheet-template-header
h1 {{header}}
| {{/header}}
//- Display the dice roll in the template -
.sheet-template-body
| {{#dice}}
.sheet-template-row
span.inlinerollresult {{dice}
| {{/dice}}
//- Display a description. This is great for text included with a roll -
| {{#desc}}
.sheet-template-row
span.sheet-template-desc {{desc}}
| {{/desc}}
@@ -0,0 +1,21 @@
<div class="rolltemplates">
<rolltemplate class="sheet-rolltemplate-rolls">
<!--- Display a header on the template --->
<div class="sheet-template-header">
{{#header}}{{header}}{{/header}}
</div>
<!--- Display the dice roll in the template --->
<div class="sheet-template-body">
{{#dice}}
<div class="sheet-template-row">{{dice}}</div>
{{/dice}}
<!--- Display a description. This is great for text included with a roll --->
{{#desc}}
<div class="sheet-template-row">
<span class="sheet-template-desc">
</span>
</div>
{{/desc}}
</div>
</rolltemplate>
</div>
@@ -0,0 +1,44 @@
/* ROLL TEMPLATE
============================= */
.sheet-rolltemplate-rolls {}
.sheet-rolltemplate-rolls .sheet-template-body {
border : 1px solid #000;
text-align: center;}
.sheet-rolltemplate-rolls .sheet-template-header {
background: rgb(33,0,0);
background: linear-gradient(180deg, rgba(33,0,0,1) 0%, rgba(137,11,13,1) 70%, rgba(213,25,31,1) 94%);
border : 1px solid #000;
border-bottom : 2px solid #000;
border-top-left-radius : 10px;
border-top-right-radius: 10px;
color : white;
font-size : 20px;
font-variant : small-caps;
font-weight : bold;
letter-spacing : 2px;
padding : 5px;
text-align : center;
text-transform : capitalize;
}
.sheet-rolltemplate-rolls .sheet-template-row {
background-color: white;
padding: 5px;}
/* Use this to alternate the background colors for each row */
.sheet-rolltemplate-rolls .sheet-template-row:nth-child(2n+0) {
background-color: #1c1c1c;}
/* Remove some fo the built in styles around rolls */
.sheet-rolltemplate-rolls .inlinerollresult,
.sheet-rolltemplate-rolls .inlinerollresult.importantroll,
.sheet-rolltemplate-rolls .inlinerollresult.fullfail,
.sheet-rolltemplate-rolls .inlinerollresult.fullcrit {
background-color: transparent;
border : none;
color : black;
display : inline-block;
font-size : 25px;
padding : 5px;}
+72
View File
@@ -0,0 +1,72 @@
{
"Name":"Name"
,"Age": "Age"
,"Fear":"Fear"
,"Motivation": "Motivation"
,"Fight":"Fight"
,"Flight":"Flight"
,"Brains":"Brains"
,"Brawn":"Brawn"
,"Charm":"Charm"
,"Grit":"Grit"
,"COOL UNDER PRESSURE": "COOL UNDER PRESSURE"
,"EASYGOING":"EASYGOING"
,"GROSS": "GROSS"
,"HEROIC": "HEROIC"
,"INTUITIVE": "INTUITIVE"
,"LOYAL":"LOYAL"
,"LUCKY": "LUCKY"
,"PREPARED": "PREPARED"
,"PROTECTIVE":"PROTECTIVE"
,"QUICK HEALING":"QUICK HEALING"
,"REBELLIOUS": "REBELLIOUS"
,"TOUGH":"TOUGH"
,"TREASURE HUNTER":"TREASURE HUNTER"
,"UNASSUMING":"UNASSUMING"
,"WEALTHY":"WEALTHY"
,"SKILLED AT:":"SKILLED AT:"
,"SKILLED AT DESCRIPTION":"SKILLED AT DESCRIPTION"
,"ABSENT MINDED":"ABSENT MINDED"
,"BLUNT":"BLUNT"
,"BOASTFUL":"BOASTFUL"
,"CLUMSY":"CLUMSY"
,"CONCEITED":"CONCEITED"
,"COWARDLY":"COWARDLY"
,"DECEITFUL":"DECEITFUL"
,"DEMANDING":"DEMANDING"
,"DISLOYAL":"DISLOYAL"
,"DISOBEDIENT":"DISOBEDIENT"
,"DOGMATIC":"DOGMATIC"
,"ENVIOUS":"ENVIOUS"
,"FLIPPANT":"FLIPPANT"
,"GLOOMY":"GLOOMY"
,"GREEDY":"GREEDY"
,"HOT-TEMPERED":"HOT-TEMPERED"
,"IGNORANT":"IGNORANT"
,"INCONSIDERATE":"INCONSIDERATE"
,"INSECURE":"INSECURE"
,"IRRATIONAL":"IRRATIONAL"
,"NEUROTIC":"NEUROTIC"
,"OBNOXIOUS":"OBNOXIOUS"
,"PARANOID":"PARANOID"
,"PATRONIZING":"PATRONIZING"
,"PERVERSE":"PERVERSE"
,"PETTY":"PETTY"
,"PICKY":"PICKY"
,"PREJUDICE":"PREJUDICE"
,"PRIM":"PRIM"
,"RECKLESS":"RECKLESS"
,"RESENTFUL":"RESENTFUL"
,"RESTLESS":"RESTLESS"
,"RUDE":"RUDE"
,"SECRETIVE":"SECRETIVE"
,"SELF-CENTERED":"SELF-CENTERED"
,"SELF-PITYING":"SELF-PITYING"
,"SLOVENLY":"SLOVENLY"
,"SUPERSTITIOUS":"SUPERSTITIOUS"
,"VAIN":"VAIN"
,"VINDICTIVE":"VINDICTIVE"
,"Powers":"Powers"
,"Backpack":"Backpack"
,"Notes":"Notes"
}