Files
roll20-character-sheets/MythicD6/src/_core.scss
T

999 lines
20 KiB
SCSS

/**
* CONTENTS
*
* GENERAL..............All universal configs
* ..Text...............Static text(Label, span etc.)
* ..Inputs.............Input field styling(text,number)
* ..Radio Etc..........Radio and checkboxes
* ..Button.............Roll & Action buttons
*
* SECTIONS.............Adjustments for specific sections of content
* ..Universal............Universal section CSS
* ..Page 1...............Player character page sections
* ..Page 2...............Notes page sections
* ..Page 3...............Settings page sections
*
* PAGE TABS/BUTTONS......CSS for switching tabs/pages and their buttons
*
* ROLL TEMPLATES.........Styling the rolls in the chat
*
* SPECIAL..............special CSS tricks applied last
*/
/*------------------------------------*\
#GENERAL
\*------------------------------------*/
@import url('https://fonts.googleapis.com/css?family=Zilla+Slab|Anton|Noto+Sans+TC|Bebas+Neue&display=swap');
.charsheet {
* {
font-family: "Noto Sans TC";
--mythic-dark-red: #4a0004;
--mythic-light-red: #ac3f2b;
--mythic-red: #a83521;
}
.version{
color: black;
font-weight: bold;
float: right;
margin: -16px 20px;
}
.capital,
:not(textarea){
font-family: "Bebas Neue";
}
/* ---------- Colors ---------- */
label,
.label,
span {
color: var(--mythic-dark-red);
}
/* --------- Text ------------- */
span.bold{
font-weight: 800;
font-size: medium;
}
div.border-label label {
border-style: solid;
max-width: 80%;
border-radius: 13px;
}
.small-font{
font-size: xx-small;
height:18px;
}
/* --------- Inputs ------------- */
input[type="text"],
input[type="number"]{
background-color: transparent;
border-style: none none solid none;
border-color: var(--mythic-light-red);
border-radius: 0px;
}
input[type="number"]{
border: 1px solid var(--mythic-light-red);
text-align: center;
}
input[type="number"].bubble {
border: 2px solid var(--mythic-light-red);
border-radius: 13px;
}
input[type="checkbox"].checkbox {
border: solid var(--mythic-light-red);
border-radius: 0px;
}
/* -----Hides up/down buttons on numberfields that don't need them ---*/
input[type="number"].ref {
border-style: none none solid none;
border-color: black;
border-radius: 0px;
}
input[type=number].ref::-webkit-inner-spin-button,
input[type=number].ref::-webkit-outer-spin-button,
input[type=number].txtfield::-webkit-inner-spin-button,
input[type=number].txtfield::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type=number].ref,
input[type=number].txtfield {
-moz-appearance: textfield;
}
textarea {
width: 90%;
height: 85%;
background-color: transparent;
}
/* highlights empty fields with Light grayish red */
textarea:placeholder-shown,
input[type="text"]:placeholder-shown,
input[type="number"]:placeholder-shown{
background-color: #EAC9D1;
}
/* higlight selected input */
textarea:focus,
input[type="text"]:focus,
input[type="number"]:focus{
background-color: #ccc;
}
/* ------- Buttons ---------- */
/* text buttons with dice icon removed */
button[type="roll"].txt-btn:before,
button[type="roll"].skills:before{
content: ' ';
}
button[type=roll].d6-dice::before { /*new die changes die roller to d6*/
font-family: 'dicefontd6',arial;
content: 'F ';
color: white;
}
button[type=roll].sendtext::before { /*new die changes die roller to d6*/
font-family: 'Pictos';
content: 'w ';
color: black;
}
button[type="roll"].txt-btn{
height: 22px;
border: 2px solid black;
background-color: transparent;
margin-left: 5px;
font-weight: bold;
padding: 2px 5px 4px 5px;
text-shadow: none;
}
button[type="roll"].txt-btn:hover{
background-color: #d9d9d9;
border-radius: 10px;
text-shadow: none;
}
button[type="roll"].red{
background-color: #a83521;
background-position: 0 -30px;
color: white;
}
button[type="roll"].red:hover{
background-color: #a83521;
background-position: 0 -30px;
color: white;
font-size: 1.7em;
}
/*------------------------------------*\
#SECTIONS
\*------------------------------------*/
/* --------------- Universal Section ------------------- */
.border{
border-style: solid;
border-radius: 13px;
}
:is(div.section section) hr{
display: block;
margin-top: 0.5em;
margin-bottom: 0.5em;
margin-left: auto;
margin-right: auto;
border-style: solid;
border-width: 2px;
border-color: black;
}
.section,
section {
display: flex;
padding: 5px;
border: none;
background: white;
opacity: 0.9;
min-height: 90%;
max-width: 800px;
}
.flex-row {
display: flex;
flex-flow: row wrap;
}
.flex-col{
display: flex;
flex-flow: column;
}
.flex-center {
place-items: center;
}
.gap{
gap: 10px;
}
.columnflex {
display: flex;
flex-direction: column;
}
.rowflex {
display: flex;
flex-direction: row;
}
.wrap {
flex-wrap: wrap;
}
.nowrap {
flex-wrap: nowrap;
}
.center {
align-items: center;
}
.middle {
justify-content: center;
}
.spaced {
justify-content: space-evenly;
}
label.title{
text-transform: capitalize;
max-width: 150px;
text-align: center;
font-size: 25px;
}
div.halfsection{
max-width: 400px;
}
/* -------------------------- Page 1 ----------------------- */
/* ------ Common Info section ------- */
main.character{
div.common {
grid-area: common;
width: 790px;
div label{
font-size: 1.2em;
max-width: 80px;
margin: 5px 0px 5px 0px;
text-align: right;
}
input[type="text"]{
font-size: 2em;
height: 26px;
padding-bottom: 0px;
}
input[type="text"].playername{
font-size: 1em;
}
.namecol label{
width: 81px;
}
:not(.namecol) label{
width: 66px;
}
div.input[type="number"]{
font-size: 1.6em;
height: 26px;
width: 51px;
padding-bottom: 0px;
margin-top: 10px;
}
div.img{
height: 80px;
}
}
/* ------ Archetype section ------- */
div.archetype {
grid-area: archetype;
background: transparent;
width: 730px;
label{
height: 15px;
}
select{
width: 126px;
height: 27px;
}
textarea{
font-size: 0.8em;
resize: none;
overflow-y: scroll;
}
textarea.featuredesc{
height: 120px;
width: 46%;
margin-right: 8px;
}
textarea.feature{
height: 53px;
width: 380px;
margin-bottom: 2px;
}
}
/* ------ Attributes section ------- */
div.attributes {
grid-area: attributes;
margin-top: -10px;
label.title{
text-align: center;
min-width: 800px;
width:600px;
}
span,
input[type="number"]{
height: 30px;
font-size: 28px;
font-weight: bold;
text-align: center;
}
span.dice{
font-size: 23px;
padding-top: 10px;
}
input[type="number"]{
width: 45px;
margin-top: 10px;
}
button[type="roll"]{
font-size: 1.7em;
}
}
/* ------ skills section ------- */
div.skills {
grid-area: skills;
background-color: transparent;
label{
width: 100px;
margin-bottom: 0px;
margin-top: 7px;
}
div.skillgrid{
display: grid;
padding: 5px;
grid-template-rows: repeat(7, 1fr);
grid-template-columns: 3fr 2fr 3fr 2fr 3fr 2fr;
width: 750px;
height: 215px;
margin-left: 15px;
}
div.skillgrid div{
width:50px;
height: 24px;
}
span{
text-transform: capitalize;
font-size: 17px;
max-width: 130px;
color: var(--mythic-light-red);
}
input[type="number"]{
font-size: 17px;
padding: 2px;
width: 26px;
border-style: none none solid none;
color: var(--mythic-light-red);
}
input[type="number"].small{
width: 22px;
}
input[type="text"]{
width: 65px;
padding: 1px 4px;
font-size: 14px;
color: var(--mythic-light-red);
}
select{
width: 46px;
height: 22px;
padding: 0px;
margin-top: 4px;
margin-left: 3px;
}
button[type="roll"].skills{
font-size: 14px;
padding: 0px;
margin: 0px;
width: 95px;
height: 25px;
border: 2px solid white;
color: var(--mythic-light-red);
text-shadow: none;
flex-shrink: 0;
}
button[type="roll"].skills:hover{
font-size: 14px;
padding: 0px;
margin: 0px;
width: 95px;
height: 25px;
border: 2px solid black;
border-radius: 9px;
color: var(--mythic-light-red);
text-shadow: none;
flex-shrink: 0;
}
button[type="roll"].skills:hover::after{
font-family: 'dicefontd6';
content: ' F';
color: var(--mythic-red);
}
button[type="roll"].special{
width: 25px;
color: var(--mythic-light-red);
}
button[type="roll"].special:hover{
width: 25px;
color: var(--mythic-light-red);
}
button[type="roll"].special::after{
font-family: 'dicefontd6';
content: 'F';
color: var(--mythic-red);
}
}
/* ------ advantage section ------- */
div.advantage {
grid-area: advantage;
padding-left: 20px;
label{
margin-top: 10px;
}
input[type="text"],
input[type="number"]{
height: 20px;
}
span{
color: var(--mythic-light-red);
}
input[type="text"]{
width: 185px;
}
span input[type="text"]{
width: 120px;
}
input[type="number"]{
width: 40px;
}
.rowflex{
margin: 4px 0px;
}
}
/* ------ powers section ------- */
div.powers {
grid-area: powers;
.labels{
justify-content: flex-end;
}
label{
padding-right: 100px;
}
span{
width: 53px;
font-size: 17px;
}
span:nth-of-type(1){
padding-right: 68px;
}
input[type="text"].name{
width: 130px;
}
input[type="text"],
input[type="numbers"]{
margin: 2px;
border-width: 2px;
}
}
/* ------ stress section ------- */
div.stress {
grid-area: stress;
font-size: 15px;
width: 215px;
height: 162px;
div {
margin:5px;
}
span{
display: inline-block;
padding-right: 5px;
min-width: 60px;
}
input[type="text"]{
width: 44px;
border-style: solid;
}
}
/* ------ weapons section ------- */
div.weapons {
grid-area: weapons;
display: grid;
grid-template-columns: 3fr repeat(11, 1fr);
grid-template-rows: repeat(3, 1fr);
span{
text-align: center;
}
input[type="text"]{
width: 120px;
}
input[type="number"]{
width: 30px;
}
input[type="number"].ammo{
width: 42px;
}
input[type="text"],
input[type="number"]{
border: 1px solid var(--mythic-light-red);
border-radius: 0px;
}
select{
width: 50px;
}
button[type="roll"].d6-dice:before{
width: 30px;
font-family: 'dicefontd6';
content: 'F';
color: var(--mythic-red);
}
button[type="roll"].d6-dice:before:hover{
border: 2px solid black;
border-radius: 9px;
}
}
/* ------ armor section ------- */
div.armor {
grid-area: armor;
}
div.armor div{
padding: 2px;
}
div.armor label{
margin-bottom: 0px;
}
/* ------ equipment section ------- */
div.equipment {
grid-area:equipment;
}
div.equipment textarea{
width: 95%;
}
/* ------ rules section ------- */
div.rules {
grid-area: rules;
}
}
/* -------------------------- Page 2/Notes --------------------- */
main.notes {
textarea{
height: 140px;
}
}
/* -------------------------- Page 3/Settings ------------------ */
main.settings {
input[type="number"]{
height: 24px;
}
span.dice{
margin-top: 5px;
}
}
/* -------------------------- Page 4/NPC ------------------ */
main.npc{
* {
overflow: hidden;
text-overflow: ellipsis;
text-align: center;
}
h3{
text-align: center;
}
div.mookdice{
display: inline-block;
font-family: 'dicefontd6';
font-size:0.8em;
color: black;
}
.mookgrid{
display: grid;
grid-template-columns: repeat(5, 1fr);
grid-template-rows: repeat(4, 1fr) 3fr;
place-items: center;
.orange {
background-color: orange;
font-size: 1.8em;
place-self: stretch;
padding-top: 4px;
}
.name {
grid-column: span 5;
label{
width: 40px;
}
input{
font-size: 1.7em;
text-align: center;
margin-bottom: 5px;
}
}
.al{
grid-column: span 2;
}
.notes{
grid-column: span 5;
background-color: LemonChiffon;
}
}
}
/*------------------------------------*\
#PAGE LAYOUT/ PAGE BUTTONS
\*------------------------------------*/
/* Defines core layout of each page */
main.character {
display: grid;
grid-gap: 4px;
grid-template-columns: 13fr 5fr 4fr;
grid-template-rows: 1fr minmax(0.2fr, 2.5fr) 1.5fr 4fr 3fr 2fr 2fr 1fr;
grid-template-areas:"common common common "
"archetype archetype archetype "
"attributes attributes attributes"
"skills skills skills "
"powers stress stress "
"weapons armor armor "
"equipment equipment advantage"
"rules rules rules ";
width: 800px;
height: 1300px;
position: relative;
}
main.notes {
display: grid;
width: 750px;
position: relative;
}
main.settings {
display: grid;
grid-template-columns: 1fr 1fr;
width: 750px;
position: relative;
}
main.npc {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 50px auto;
width: 750px;
position: relative;
}
/* -------------- page buttons ------------- */
main.character,
main.notes,
main.npc,
button[type="action"].npc,
button[type="action"].pc,
main.settings {
display: none;
}
/* show the selected page */
input.tabstoggle[value="character"] ~ main.character,
input.tabstoggle[value="notes"] ~ main.notes,
input.tabstoggle[value="npc"] ~ main.npc,
input.tabstoggle[value="settings"] ~ main.settings {
display: grid;
}
/* shows/hides page buttons */
input.npctoggle[value="0"] ~ button[type="action"].pc,
input.npctoggle[value="1"] ~ button[type="action"].npc{
display: flex;
}
div.tab-buttons{
display: flex;
gap: 10px;
button{
font-size: 1.5em;
}
}
/*------------------------------------*\
#SPECIAL
\*------------------------------------*/
/* Hide actual radio */
input[type="radio"].checkbox {
opacity: 0;
width: 16px;
height: 16px;
position: relative;
top: 2px;
left: 4px;
margin: -12px;
cursor: pointer;
z-index: 1;
}
/* Fake radio */
input[type="radio"].checkbox + span.checkbox::before {
margin-right: 4px;
border: solid 1px black;
line-height: 14px;
text-align: center;
display: inline-block;
vertical-align: middle;
box-shadow: 0 0 2px #ccc;
background: #f6f6f6;
background: radial-gradient(#f6f6f6, #dfdfdf);
font-family: "Pictos";
content: "3";
width: 12px;
height: 12px;
font-size: 15px;
}
/* Remove dot from all radios _after_ selected one */
input[type="radio"].checkbox:checked ~ input[type="radio"].checkbox + span.checkbox::before {
content: "";
}
input[type="radio"].zero:checked + span.checkbox::before
{
opacity: 0;
}
input[type="radio"].zero:hover + span.checkbox::before
{
opacity: 0.25;
font-size: 12px;
content: "✖";
text-indent: 0.5px;
}
input[type="radio"].zero + span.checkbox::before
{
opacity: 0;
}
}
/*------------------------------------*\
#MOBILE
\*------------------------------------*/
@media only screen and (max-width: 480px) {
.charsheet{
button[type=roll].d6-dice::before { /*new die changes die roller to d6*/
content: '';
}
main.character {
display: grid;
grid-gap: 4px;
grid-template-columns: 13fr 9fr;
grid-template-rows: 1fr minmax(0.3fr, 2.5fr) 1.5fr 8fr 3fr 2fr 2fr 2fr 2fr 1fr;
grid-template-areas:"common common "
"archetype archetype "
"attributes attributes"
"skills skills "
"powers powers "
"weapons weapons "
"armor armor "
"stress stress "
"equipment equipment "
"rules rules ";
width: 480px;
height: 1800px;
position: relative;
}
div.archetype {
width: 400px;
details div{
flex-direction: column;
}
textarea.featuredesc{
width: 90%;
}
}
div.attributes {
flex-wrap: wrap;
label.title{
text-align: center;
min-width: 450px;
width: 450px;
}
div.rowflex.nowrap.middle{
flex-wrap: wrap;
width: 350px;
}
}
div.skills {
div.rowflex{
flex-direction: column;
}
div.skillgrid{
display: grid;
padding: 5px;
grid-template-rows: repeat(21, 1fr);
grid-template-columns: 3fr 2fr;
width: 400px;
height: 800px;
}
button[type="roll"].red{
width: 170px;
}
}
button[type="roll"].skills{
font-size: 14px;
padding: 0px;
margin: 0px;
width: 145px;
height: 25px;
border: 2px solid white;
color: var(--mythic-light-red);
text-shadow: none;
}
button[type="roll"].skills:hover{
font-size: 14px;
padding: 0px;
margin: 0px;
width: 145px;
height: 25px;
border: 2px solid black;
border-radius: 9px;
color: var(--mythic-light-red);
text-shadow: none;
}
button[type="roll"].skills:hover::after{
content: '';
}
div.skills{
button[type="roll"].special{
width: 25px;
color: var(--mythic-light-red);
}
button[type="roll"].special:hover{
width: 25px;
color: var(--mythic-light-red);
}
button[type="roll"].special::after{
content: 'd6';
}
}
}
}