mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 19:52:29 +00:00
720 lines
14 KiB
CSS
720 lines
14 KiB
CSS
/*------------------------------------------------*\
|
|
#GENERAL
|
|
\*------------------------------------------------*/
|
|
|
|
.charsheet {background-color: white; background-repeat: repeat;}
|
|
|
|
.medium {width: 25%}
|
|
|
|
select {
|
|
width: auto;
|
|
margin:0;
|
|
}
|
|
|
|
|
|
/* --------- Text ------------- */
|
|
|
|
|
|
h2,.h2 {
|
|
color: blue;
|
|
text-align: center;
|
|
}
|
|
|
|
.bold{
|
|
font-weight: 600;
|
|
font-size: medium;
|
|
}
|
|
|
|
input[type="number"].bold{
|
|
font-weight: 600;
|
|
font-size: 1.4em;
|
|
width: 40px;
|
|
}
|
|
|
|
label {
|
|
display: inline;
|
|
margin: 5px 0px 5px 0px;
|
|
font-size: 1.1em;
|
|
}
|
|
|
|
|
|
/* --------- Inputs ------------- */
|
|
|
|
input[type="text"],
|
|
input[type="number"]{
|
|
background-color: transparent;
|
|
border-style: none none solid none;
|
|
border-color: black;
|
|
border-radius: 0px;
|
|
}
|
|
|
|
input[type="number"]{
|
|
text-align: center;
|
|
}
|
|
label.input-label{
|
|
display:inline-flex;
|
|
gap:0.5rem;
|
|
width:auto;
|
|
align-items: center;
|
|
margin:0;
|
|
padding:0;
|
|
font-size:1rem;
|
|
}
|
|
.input-label input[type='text']{
|
|
flex:1 1;
|
|
box-sizing: border-box;
|
|
}
|
|
textarea {
|
|
background-color: transparent;
|
|
width: 89%;
|
|
height: 70%;
|
|
margin-right: 15px;
|
|
}
|
|
|
|
input[type="checkbox"].checkbox {
|
|
border-style: solid black;
|
|
border-radius: 0px;
|
|
}
|
|
|
|
textarea:focus,
|
|
input[type="text"]:focus,
|
|
input[type="number"]:focus{
|
|
background-color: #F6CED8;
|
|
}
|
|
label.input-label.stacked{
|
|
display: grid;
|
|
grid:
|
|
repeat(2,auto)
|
|
/
|
|
auto
|
|
;
|
|
grid-template-areas:
|
|
"over"
|
|
"under"
|
|
;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
.stacked > :not(input){
|
|
text-align: center;
|
|
}
|
|
.stacked.over > :not(input){
|
|
grid-area: over;
|
|
}
|
|
.stacked.under > :not(input){
|
|
grid-area: under;
|
|
}
|
|
.main .stacked > input{
|
|
width: 100%;
|
|
}
|
|
/* -----Hides up/down buttons on numberfields that don't need them ---*/
|
|
|
|
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;
|
|
}
|
|
|
|
/* ------- Buttons ---------- */
|
|
|
|
button {border-top: 1px;}
|
|
|
|
.charsheet button:is([type='roll'],[type='action']).d6::before { /*new die changes die roller to d6*/
|
|
font-family: 'dicefontd6';
|
|
content: 'F ';
|
|
}
|
|
.ui-dialog .charsheet button:is([type='roll'],[type='action']){
|
|
border-radius: 4px;
|
|
border: 1px solid #ccc;
|
|
border-bottom-color: #bbb;
|
|
display: inline-block;
|
|
line-height: 18px;
|
|
color: #333;
|
|
text-shadow: 0 1px 1px rgb(255 255 255 / 75%);
|
|
vertical-align: middle;
|
|
background-color: #f5f5f5;
|
|
background-image: -webkit-linear-gradient(top,#fff,#e6e6e6);
|
|
background-repeat: repeat-x;
|
|
border-color: rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);
|
|
box-shadow: inset 0 1px 0 rgb(255 255 255 / 20%), 0 1px 2px rgb(0 0 0 / 5%);
|
|
cursor: pointer;
|
|
font-size: 18.59px;
|
|
padding: 2px 3px;
|
|
margin: 0px 3px 0px 3px;
|
|
}
|
|
button[type='action']:hover{
|
|
color: #333;
|
|
text-decoration: none;
|
|
background-color: #e6e6e6;
|
|
background-position: 0 -15px;
|
|
}
|
|
|
|
/*
|
|
Navs
|
|
*/
|
|
.ui-dialog .charsheet{
|
|
padding-top:0;
|
|
}
|
|
ul.nav-tabs.nav{
|
|
position:sticky;
|
|
top:0;
|
|
background-color:white;
|
|
z-index:9999;
|
|
margin-bottom:0px;
|
|
}
|
|
.sheet-nav{
|
|
display:flex;
|
|
flex-wrap: wrap;
|
|
gap:0.5rem;
|
|
align-items:center;
|
|
background-color:white;
|
|
position:sticky;
|
|
z-index:10;
|
|
}
|
|
.sheet-nav:before{
|
|
content:none;
|
|
}
|
|
.ui-dialog .charsheet .toggle{
|
|
grid-area: toggle;
|
|
display: grid;
|
|
grid-auto-flow: column;
|
|
place-content: center start;
|
|
align-items: center;
|
|
gap: 2px;
|
|
top:44px;
|
|
padding:10px 0 0;
|
|
border-bottom:1px solid #dddddd;
|
|
}
|
|
.ui-dialog .charsheet .toggle .toggle__tab{
|
|
border:1px solid transparent;
|
|
margin:0 0 -1px;
|
|
background-color:transparent;
|
|
border-radius:4px 4px 0 0;
|
|
box-shadow:none;
|
|
font-size:13px;
|
|
background-image:none;
|
|
padding:9px 12px;
|
|
}
|
|
.ui-dialog .charsheet .toggle .toggle__tab.inactive{
|
|
display:none;
|
|
}
|
|
.ui-dialog .charsheet .toggle .toggle__tab:not(.active):hover{
|
|
background-color:#eeeeee;
|
|
}
|
|
.ui-dialog .charsheet .toggle .toggle__tab.active{
|
|
border-color: #dddddd #dddddd white #dddddd;
|
|
}
|
|
/*-----------------------------------------------------------------*\
|
|
#SECTIONS
|
|
\*-----------------------------------------------------------------*/
|
|
|
|
|
|
/* --------- General Section Styling ------------- */
|
|
.flex-center {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.flex-middle {
|
|
display: flex;
|
|
justify-content: center;
|
|
}
|
|
|
|
.flex-down {
|
|
display: flex;
|
|
flex-flow: column nowrap;
|
|
}
|
|
|
|
.flex-row {
|
|
display: flex;
|
|
flex-flow: row nowrap;
|
|
}
|
|
|
|
.section {
|
|
padding: 5px;
|
|
}
|
|
|
|
.border{
|
|
border: solid 4px black;
|
|
}
|
|
.main .boxed{
|
|
border: 2px solid black;
|
|
}
|
|
|
|
/* ----- Character Sheet Structure -------
|
|
'.main' defines the sheet's general structure and dimensions using CSS Grid.
|
|
It uses 'Grid template areas' to name each sheet section,
|
|
so that they can be positioned in the grid easily,
|
|
while also providing a human-readable overview. */
|
|
section:not(.active){
|
|
display:none;
|
|
}
|
|
section.active{
|
|
display:grid;
|
|
}
|
|
section:not(.name){
|
|
grid-area:content;
|
|
}
|
|
section.name{
|
|
grid-area:name;
|
|
}
|
|
|
|
#settings{
|
|
grid-auto-flow:column;
|
|
gap:4px;
|
|
}
|
|
|
|
#character{
|
|
grid-template-columns:repeat(2,1fr);
|
|
gap:4px;
|
|
grid-template-areas:
|
|
"resistances aptitudes"
|
|
"advantages disadvantages"
|
|
"powers powers"
|
|
"tracker comp-dice"
|
|
"cost cost"
|
|
;
|
|
}
|
|
#headquarters,
|
|
#vehicle{
|
|
grid-template-columns:repeat(2,1fr);
|
|
gap:4px;
|
|
grid-template-areas:
|
|
"resistances aptitudes"
|
|
"advantages disadvantages"
|
|
"powers powers"
|
|
"tracker tracker"
|
|
"cost cost"
|
|
;
|
|
}
|
|
.character.name{
|
|
grid-template-columns: 1fr;
|
|
}
|
|
/*
|
|
grid-template-columns: 1fr 1fr;
|
|
grid-template-rows: repeat(3,auto);
|
|
grid-template-areas:
|
|
"name logo"
|
|
"rating qualities"
|
|
"exceptional exceptional"
|
|
;
|
|
grid-gap: 4px;
|
|
*/
|
|
.main{
|
|
display: grid;
|
|
grid-template-columns: repeat(2,1fr);
|
|
grid-gap: 4px;
|
|
grid-template-areas:
|
|
'toggle toggle'
|
|
'name logo'
|
|
'automation automation'
|
|
'content content'
|
|
;
|
|
}
|
|
.section-control:not([value="mook"]) ~ .main > .toggle > .mook-type{
|
|
display: none;
|
|
}
|
|
.mook-type{
|
|
margin: 0;
|
|
}
|
|
.toggle > h4{
|
|
display: inline;
|
|
}
|
|
.automation{
|
|
grid-area: automation;
|
|
place-self: center end;
|
|
top:55px;
|
|
}
|
|
/* NAME SECTION */
|
|
|
|
.name{
|
|
grid-area: name;
|
|
display: grid;
|
|
gap: 4px;
|
|
}
|
|
.name h6{
|
|
padding-left: 10px;
|
|
}
|
|
|
|
/* LOGO SECTION */
|
|
.version{
|
|
grid-area: toggle;
|
|
display: grid;
|
|
place-self: center end;
|
|
gap: 0.5rem;
|
|
align-content: center;
|
|
grid-template-columns: repeat(2,auto);
|
|
z-index:10;
|
|
}
|
|
.version > *{
|
|
line-height: 0;
|
|
}
|
|
.logo{
|
|
grid-area: logo;
|
|
background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Supers-Revised-Edition/images/logo.png);
|
|
background-size: contain;
|
|
background-repeat: no-repeat;
|
|
background-position: center;
|
|
background-size: contain;
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
align-items: flex-end;
|
|
min-height:70px;
|
|
}
|
|
|
|
|
|
/* RESISTANCES */
|
|
div.resistances{
|
|
grid-area:resistances;
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
place-items: center;
|
|
align-content: start;
|
|
gap:0.5em;
|
|
}
|
|
|
|
span.resistance {background-color: white;color: black;}
|
|
|
|
|
|
div.resistances .res-grid{
|
|
display: grid;
|
|
grid-template-columns: minmax(max-content,3fr) 2fr 2fr 1fr 6fr;
|
|
grid-template-rows: 1fr 1fr 1fr 1fr 1fr;
|
|
}
|
|
|
|
.res-grid > .bold{
|
|
text-align: center;
|
|
}
|
|
|
|
div.resistances input[type="text"].notes{
|
|
width: 100%;
|
|
}
|
|
div.resistances input[type="number"]{
|
|
border-style: solid;
|
|
}
|
|
|
|
|
|
/* Aptitudes */
|
|
div.aptitudes{
|
|
grid-area: aptitudes;
|
|
}
|
|
|
|
div.powers input[type="text"].bold{
|
|
font-size: 1.3em;
|
|
}
|
|
.repitem input[type="text"]{
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
}
|
|
.aptitudes .repitem{
|
|
display: grid;
|
|
grid-template-columns: 15rem repeat(2,auto) 1fr;
|
|
gap: 4px;
|
|
}
|
|
|
|
/* Advantages & Disadvantages */
|
|
div.advantages{
|
|
grid-area: advantages;
|
|
}
|
|
|
|
div.disadvantages{
|
|
grid-area: disadvantages;
|
|
}
|
|
.advantages .repcontainer,
|
|
.disadvantages .repcontainer{
|
|
margin-bottom: 4px;
|
|
}
|
|
.advantages .repitem,
|
|
.disadvantages .repitem{
|
|
display: grid;
|
|
grid-template-columns: 19rem auto 1fr;
|
|
gap: 0.5rem;
|
|
}
|
|
.advantages .repitem > *,
|
|
.disadvantages .repitem > *{
|
|
width: 100%;
|
|
}
|
|
.advantages .itemcontrol,
|
|
.disadvantages .itemcontrol{
|
|
grid-column: 1/-1;
|
|
}
|
|
div.advantages input[type="number"],
|
|
div.disadvantages input[type="number"]{
|
|
width: 30px;
|
|
}
|
|
|
|
|
|
|
|
/* Powers */
|
|
|
|
div.powers{
|
|
grid-area: powers;
|
|
}
|
|
.mediumpow {width: 17%}
|
|
.powers .d6{
|
|
place-self: center;
|
|
}
|
|
|
|
/*
|
|
Repeating Powers styling
|
|
*/
|
|
.powers .repitem,
|
|
.exceptional .repitem{
|
|
display: grid;
|
|
grid-template-columns: 30rem auto auto 1fr;
|
|
grid-gap: 2px;
|
|
}
|
|
|
|
/* TRACKER SECTION */
|
|
|
|
.tracker{
|
|
grid-area: tracker;
|
|
}
|
|
|
|
input.tracker-switch:checked ~ .def-tracker,
|
|
input.tracker-switch:not(:checked) ~ .alt-tracker{
|
|
display: none;
|
|
}
|
|
.tracker{
|
|
display: grid;
|
|
grid-template-columns: auto 1fr;
|
|
grid-template-rows: repeat(2,auto);
|
|
}
|
|
.tracker-type{
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
justify-content: flex-start;
|
|
align-items: center;
|
|
}
|
|
.tracker > table{
|
|
grid-column: 1/-1;
|
|
}
|
|
.cell-display{
|
|
display: flex;
|
|
justify-content: center;
|
|
padding: 4px 0;
|
|
}
|
|
.tracker > table tr:first-child{
|
|
border-bottom: 4px solid black;
|
|
}
|
|
|
|
.track-row:nth-child(odd){
|
|
background-color: #d9e2f3;
|
|
}
|
|
|
|
.section-control[value="character"] ~ .main input.tracker-switch:not(:checked) ~ div.alt-tracker,
|
|
.section-control[value="character"] ~ .main input.tracker-switch:checked ~ .def-tracker{
|
|
display: none;
|
|
}
|
|
:is(.mook,.headquarters,.vehicle).active .tracker{
|
|
display: contents;
|
|
}
|
|
:is(.mook,.headquarters,.vehicle).active .tracker > :is(span,input){
|
|
display: none;
|
|
}
|
|
:is(.mook,.headquarters,.vehicle).active .tracker > :is(.def-tracker,.alt-tracker){
|
|
box-sizing: border-box;
|
|
width: 100%;
|
|
grid-column: span 1;
|
|
display: table;
|
|
}
|
|
|
|
/* COMP DICE */
|
|
div.comp-dice{
|
|
grid-area: comp-dice;
|
|
display: flex;
|
|
}
|
|
|
|
div.temp-comp-dice{
|
|
grid-area: temp-comp-dice;
|
|
}
|
|
|
|
.comp-dice div {
|
|
display: flex;
|
|
gap: 4px;
|
|
align-items: flex-end;
|
|
margin-bottom: 5px;
|
|
}
|
|
|
|
|
|
/* Cost */
|
|
div.cost{
|
|
grid-area: cost;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
align-content: start;
|
|
gap:0.5rem;
|
|
}
|
|
.ui-dialog .charsheet .cost input{
|
|
width:2.5em;
|
|
}
|
|
.cost label{
|
|
flex:0 0 max-content;
|
|
padding:0;
|
|
}
|
|
div.cost span{
|
|
padding: 3px 0px 0px 10px;
|
|
}
|
|
.cost > .total{
|
|
grid-area: total;
|
|
justify-self: end;
|
|
}
|
|
.cost > .total-value{
|
|
grid-area: total-value;
|
|
}
|
|
/* Mooks */
|
|
#mook{
|
|
grid-template-columns:repeat(2,1fr);
|
|
gap:4px;
|
|
grid-template-areas:
|
|
"rating qualities"
|
|
"exceptional exceptional"
|
|
"tracker tracker"
|
|
;
|
|
}
|
|
.mook.name{
|
|
grid:
|
|
1fr 1fr
|
|
/
|
|
1fr
|
|
;
|
|
grid-template-areas:
|
|
"name"
|
|
"description"
|
|
;
|
|
grid-gap: 4px;
|
|
align-items: center;
|
|
}
|
|
.mook.name .description{
|
|
grid-area: description;
|
|
}
|
|
.mook > .rating{
|
|
padding: 4px;
|
|
display: grid;
|
|
--gutterSize: 30px;
|
|
grid-template-columns: var(--gutterSize) repeat(2,6.5em) var(--gutterSize);
|
|
grid-area: rating;
|
|
grid-row-gap: 4px;
|
|
grid-template-areas:
|
|
". header header ."
|
|
". max current rating-button"
|
|
". initiative initiative initiative-button"
|
|
;
|
|
place-content: start center;
|
|
}
|
|
.mook > .rating > h2{
|
|
grid-area: header;
|
|
text-align: center;
|
|
}
|
|
.mook > .rating > .max{
|
|
grid-area: max;
|
|
}
|
|
.mook > .rating > .current{
|
|
grid-area: current;
|
|
}
|
|
.charsheet .mook > .rating input{
|
|
box-sizing:border-box;
|
|
width:100%;
|
|
}
|
|
.mook > .rating > .initiative{
|
|
--gutterSize:4em;
|
|
grid-area: initiative;
|
|
place-self: center;
|
|
grid-template-columns: var(--gutterSize) 6.5em var(--gutterSize);
|
|
grid-template-areas:
|
|
"header header header"
|
|
". input button"
|
|
;
|
|
}
|
|
.mook > .rating > .initiative > input{
|
|
grid-area: input;
|
|
}
|
|
.mook > .rating > .initiative > button{
|
|
place-self: center;
|
|
grid-area: button;
|
|
}
|
|
.mook > .rating > .initiative > h2{
|
|
justify-self: center;
|
|
grid-area: header;
|
|
}
|
|
.mook > .rating > .d6{
|
|
place-self: end center;
|
|
}
|
|
.mook > .rating > .rating.d6{
|
|
grid-area: rating-button;
|
|
}
|
|
.mook > .rating > .initiative-button{
|
|
grid-area: initiative-button;
|
|
}
|
|
.mook > .qualities{
|
|
grid-area: qualities;
|
|
}
|
|
.mook > .exceptional{
|
|
grid-area: exceptional;
|
|
}
|
|
.qualities .repitem{
|
|
display: grid;
|
|
grid-template-columns: 15rem 1fr;
|
|
gap: 4px;
|
|
}
|
|
/*
|
|
#ROLL TEMPLATE
|
|
|
|
----------- Supers -----------
|
|
*/
|
|
.sheet-rolltemplate-supers .sheet-template-container{
|
|
background-color: white;
|
|
border: 1px solid black;
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
}
|
|
.sheet-rolltemplate-supers .sheet-template-container div > *{
|
|
white-space: pre-wrap;
|
|
}
|
|
.sheet-rolltemplate-supers .sheet-header{
|
|
display: grid;
|
|
grid-template-rows: repeat(2,auto);
|
|
background-color:#000000;
|
|
color: white;
|
|
font-family:"Helvetica Neue",Helvetica,sans-serif;
|
|
}
|
|
.sheet-rolltemplate-supers .sheet-header *{
|
|
color: white;
|
|
}
|
|
.sheet-rolltemplate-supers .sheet-header h4 {
|
|
font-size:1.1em;
|
|
padding:5px;
|
|
place-self: center start;
|
|
}
|
|
.sheet-rolltemplate-supers .sheet-header a {
|
|
font-size:1em;
|
|
padding:5px;
|
|
place-self: center end;
|
|
font-weight: bold;
|
|
}
|
|
.sheet-rolltemplate-supers .sheet-template-container div:not(.sheet-header) {
|
|
padding:5px;
|
|
line-height:1.4em;
|
|
display: grid;
|
|
grid-template-columns: repeat(2,1fr);
|
|
justify-items: center;
|
|
}
|
|
.sheet-rolltemplate-supers .sheet-template-container div:nth-child(even) {
|
|
background-color:#eee;
|
|
}
|
|
.sheet-rolltemplate-supers .sheet-successes{
|
|
justify-self: center;
|
|
grid-column: span 2;
|
|
}
|
|
.sheet-rolltemplate-supers .sheet-successes .sheet-inlinerollresult,
|
|
.sheet-rolltemplate-supers .sheet-successes .sheet-inlinerollresult:is(.sheet-fullcrit,.sheet-fullfail,.sheet-importantroll){
|
|
background-color: transparent;
|
|
border: none;
|
|
} |