add character features page

This commit is contained in:
Arthur Lu 2023-04-13 19:16:43 -07:00
parent 85fa03260a
commit aebcd7575e
3 changed files with 223 additions and 57 deletions

View File

@ -9,10 +9,23 @@
box-sizing: border-box; box-sizing: border-box;
} }
h1, h2 {
line-height: 54px;
}
p { p {
margin: 0px; margin: 0px;
} }
main {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 10px;
padding: 0px;
justify-content: center;
}
div.flex { div.flex {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
@ -31,10 +44,24 @@ div.nowrap {
flex-wrap: nowrap; flex-wrap: nowrap;
} }
hr {
width: 1px;
height: 100%;
border-left: 1px solid var(--text-color);
margin: 0px;
}
@media (max-width: 600px) { @media (max-width: 600px) {
div.mobile { div.mobile {
display: block; display: block;
} }
hr {
width: 100%;
height: 1px;
border-top: 1px solid var(--text-color);
margin-top: 10px;
margin-bottom: 10px;
}
} }
body { body {
@ -43,21 +70,21 @@ body {
padding: 20px; padding: 20px;
} }
main { .page {
margin-left: auto;
margin-right: auto;
background-color: var(--page-color); background-color: var(--page-color);
color: var(--text-color); color: var(--text-color);
border-radius: 10px; border-radius: 10px;
max-width: 80ch;
width: 80ch;
} }
main > form > * { .page > form > * {
border-bottom: 1px solid var(--text-color); border-bottom: 1px solid var(--text-color);
padding-top: 10px; padding-top: 10px;
padding-bottom: 10px; padding-bottom: 10px;
} }
main > form > *:last-child { .page > form > *:last-child {
border-bottom: none; border-bottom: none;
} }
@ -68,8 +95,13 @@ input, select {
width: 100%; width: 100%;
} }
input[type="number"] { input::-webkit-outer-spin-button, input::-webkit-inner-spin-button {
min-width: 4ch; -webkit-appearance: none;
margin: 0;
}
input[type=number] {
-moz-appearance: textfield;
} }
input[type="checkbox"] { input[type="checkbox"] {
@ -89,3 +121,26 @@ h1 {
.none { .none {
display: none; display: none;
} }
.grow-wrap {
display: grid;
}
.grow-wrap::after {
content: attr(data-replicated-value) " ";
white-space: pre-wrap;
visibility: hidden;
}
.grow-wrap > textarea {
resize: none;
overflow: hidden;
}
.grow-wrap > textarea, .grow-wrap::after {
border: 1px dashed black;
padding: 0.5rem;
font: inherit;
background-color: var(--page-color);
grid-area: 1 / 1 / 2 / 2;
}

View File

@ -256,5 +256,5 @@ function setModifierVal (category, name, value) {
e.training = Number(document.querySelector(`#${category}-${name}-training`).value); e.training = Number(document.querySelector(`#${category}-${name}-training`).value);
e.mb = Number(document.querySelector(`#${category}-${name}-mb`).checked); e.mb = Number(document.querySelector(`#${category}-${name}-mb`).checked);
e.mastery = Number(document.querySelector("#mastery").value); e.mastery = Number(document.querySelector("#mastery").value);
document.querySelector(`#${category}-${name}-result`).innerText = value(e); document.querySelector(`#${category}-${name}-result`).innerText = ` = ${value(e)}`;
} }

View File

@ -9,7 +9,8 @@
<script src="sheet.js" type="module"></script> <script src="sheet.js" type="module"></script>
</head> </head>
<body style="padding: 16px;"> <body style="padding: 16px;">
<main class="w3-container w3-card-4 w3-padding" style="max-width: 80ch; margin-left: auto; margin-right: auto;"> <main>
<div class="page w3-container w3-card-4 w3-padding-16">
<h1 class="w3-center">Songs of the Second Age: Character Sheet</h1> <h1 class="w3-center">Songs of the Second Age: Character Sheet</h1>
<form class="w3-container"> <form class="w3-container">
<div class="mobile grid" style="grid-template-columns: auto auto auto;"> <div class="mobile grid" style="grid-template-columns: auto auto auto;">
@ -54,11 +55,121 @@
</div> </div>
</label> </label>
</div> </div>
<div class="w3-row w3-mobile w3-row-padding w3-stretch" style="margin-top: 10px; margin-bottom: 10px;"> <div class="grid mobile" style="grid-template-columns: 1fr auto 1fr; align-items: start;">
<div class="w3-half mobile grid" style="grid-template-columns: auto auto auto auto;" id="combat-modifiers"></div> <div class="grid" style="grid-template-columns: auto auto auto auto;" id="combat-modifiers"></div>
<div class="w3-half mobile grid" style="grid-template-columns: auto auto auto auto;" id="rp-modifiers"></div> <hr>
<div class="grid" style="grid-template-columns: auto auto auto auto;" id="rp-modifiers"></div>
</div>
<div class="grow-wrap">
<textarea placeholder="Notes" onInput="this.parentNode.dataset.replicatedValue = this.value"></textarea>
</div> </div>
</form> </form>
</div>
<div class="page w3-container w3-card-4 w3-padding-16">
<h2 class="w3-center">Character Features</h2>
<div class="grid" style="grid-template-columns: auto auto 1fr; column-gap: 20px; padding: 0px 16px;">
<p>Core Species</p>
<p>1</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Species</p>
<p>1</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Cornerstone</p>
<p>1</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Cornerstone</p>
<p>1</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Novice</p>
<p>1</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Novice</p>
<p>2</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Novice</p>
<p>3</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Novice</p>
<p>4</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Apprentice</p>
<p>5</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Apprentice</p>
<p>6</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Apprentice</p>
<p>7</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Journeyman</p>
<p>9</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Journeyman</p>
<p>10</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Journeyman</p>
<p>11</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Expert</p>
<p>13</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Expert</p>
<p>14</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Expert</p>
<p>15</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Master</p>
<p>17</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Master</p>
<p>18</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
<p>Capstone</p>
<p>20</p>
<div class="grow-wrap">
<textarea placeholder="Feature Name & Description" onInput="this.parentNode.dataset.replicatedValue = this.value" rows="1"></textarea>
</div>
</div>
</div>
</main> </main>
</body> </body>
</html> </html>