Files
roll20-character-sheets/NightLife/NightLife.css
T
Foemass 150571c737 [NightLife] Character Sheet Initial Submission (#6434)
* Initial submission of the sheets code etc

* Minor tweak to the preview png

* Added README.md
2020-05-11 13:20:50 -04:00

735 lines
19 KiB
CSS

@import url('https://fonts.googleapis.com/css?family=Metal+Mania|Averia+Serif+Libre&display=swap');
/* Changes the sheets default font (This seems to effect the chat log as well, consider revisiting)*/
* {
font-family: 'Averia Serif Libre';
}
/* title styling */
.sheet-title {
text-align: center;
padding-bottom: 27.5px;
font-family: 'Metal Mania';
font-size: 47.5px;
font-style: italic;
}
/* Sets the sheets minimum width, sheet will actually resize pretty nicely without this (On chrome anyway), but it looks abit naff at its midpoint */
.charsheet {
min-width: 840px;
}
/* Core table-esc layout */
/* - For three equal columns that floats next to each other */
.sheet-col {
width: calc(33% - 21px);
margin-right: 26.5px; /* removed 3.5 to fight the space after inline blocks */
display: inline-block;
vertical-align: top;
min-width: 253.5px;
}
/* - Clear floats after the columns */
.sheet-table:after {
content: "";
display: table;
clear: both;
}
/* - fixed cells, to be used in columns */
.sheet-cel {
float: left;
height: 30px;
margin-bottom: 5px;
width: 100%;
}
/* - tall cells, to be used in columns, used for physical desciption etc */
.sheet-bcel {
float: left;
height: 100px;
margin-bottom: 5px;
width: 100%;
}
/* used to correct some of placement inside the old roll20 preview tab, as well as framing the sheet for absolute positioning*/
.sheet-absposhelper {
position: relative;
box-sizing: border-box;
}
/* Abilities section layout etc */
.sheet-abilitycel {
float: left;
height: 22px;
margin-bottom: 5px;
display: flex;
flex-direction: row;
align-items: stretch;
width: 100%;
position: relative;
}
.sheet-abilitycel > span {
flex: 1;
border: 0px;
border-bottom: 2px;
border-style: dotted;
display: block;
overflow: hidden;
opacity: 1;
padding: 0px;
margin: 0px;
}
.sheet-abilitycel > input[type=text] {
width: 24px;
border: 0px;
border-radius: 0px;
background: none;
border-bottom: 2px black solid;
text-align: center;
margin: 0px;
padding: 0px;
}
.sheet-abilitycel > input[type=text] > input[type=text] {
padding-right: 10px;
}
input[type=text] ~ input[type=text]:focus ~ .sheet-previewinput2 {
opacity: 0;
}
input[type=text]:focus ~ .sheet-previewinput1 {
opacity: 0;
}
input[type=text]:valid.sheet-previewinput2, input[type=text]:valid.sheet-previewinput1 {
visibility: visible!important;
}
.sheet-previewinput2, .sheet-previewinput1 {
pointer-events: none;
position: relative;
left: -24px;
margin-right: -24px !important;
background: white !important;
visibility: hidden;
}
.sheet-abilitycel > .sheet-space {
min-width: 5px;
flex: 0;
}
.sheet-abilityvertlines {
height: 110px;
width: 28px;
position: absolute;
right: 69px;
border-right: 2px solid black;
border-left: 2px solid black;
opacity: 0.6;
pointer-events: none;
}
.sheet-abilityvertlines > div {
position: absolute;
top: -20px;
margin-left: -50%;
font-size: 1em;
font-style: italic;
}
/*roll buttons*/
button[type=roll] {
width: 22px !important;
height: 22px !important;
border-radius: 0px !important;
margin: 0px !important;
padding: 0px !important;
color: rgb(51, 51, 51);
box-sizing: border-box;
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
}
button[type=roll]::before {
width: 100%;
height: 100%;
font-weight: bold;
vertical-align: middle;
}
button[type=roll].sheet-ib::before {
font-family: "Pictos";
content: "t";
font-weight: normal;
vertical-align: top;
}
button[type=roll].sheet-hyperlink {
background: none;
border: none;
box-shadow: none;
text-shadow: none;
color: #0000ff;
width: auto !important;
font-size: inherit;
height: min-content !important;
line-height: inherit;
position: relative;
bottom: 1px;
}
button[type=roll].sheet-hyperlink::before {
font-family: 'Averia Serif Libre';
content: "here";
font-weight: normal;
text-decoration: underline;
}
button[type=roll].sheet-bigbutton {
width: 26px !important;
height: 26px !important;
}
/* Spacing/formating for buttons in different places */
.sheet-buttonspace {
width: 22px !important;
flex: inherit !important;
}
.sheet-doublebuttonspace {
width: 44px !important;
flex: inherit !important;
}
.sheet-barbutton0 {
right: 57px;
}
.sheet-barbutton1 {
right: 33px;
}
.sheet-barbutton2 {
right: 9px;
}
.sheet-barbutton0, .sheet-barbutton1, .sheet-barbutton2 {
z-index: 5 !important;
position: absolute;
top: 9px;
color: white;
height: 22px;
}
/* Checkbox sized as a roll button in black expanding bars */
input[type="checkbox"].sheet-barbutton2, input[type="checkbox"].sheet-barbutton1, input[type="checkbox"].sheet-barbutton0 {
width: 23px !important;
height: 23px !important;
-moz-transform: scale(1.5); /* this counterstyles firefoxes locked to tiny checkboxes style, might be better off using -webkit-appearance: none and trying to style my own in the future */
}
/* used on checkboxes within non-roll generic buttons to make buttons which are secretly checkboxes, as roll20 checkbox functionality is superior to roll20 button functionality */
.sheet-buttonfixer {
width: 100%;
height: 100% !important;
position: absolute;
top: 0;
left: 0;
opacity: 0;
}
/* long text button, used for setting job skills*/
.sheet-longactionbutton {
width: 100%;
height: 25px;
position: relative;
padding: 0;
margin: 0;
box-sizing: border-box
}
/* Settings/Cog Button (the positioning on this is pretty lazy and may be worth revisiting)*/
.sheet-settingbutton {
position: absolute;
right: 11px;
top: -20px;
width: 27px;
height: 27px;
border-radius: 0px;
margin: 0px;
padding: 0px;
color: rgb(51, 51, 51);
box-sizing: border-box;
}
.sheet-settingbutton::before {
font-family: "Pictos";
content: "y";
width: 100%;
height: 100%;
font-weight: normal;
font-size: 17px;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
}
/* Text fields */
/* - Labels which go to the left of text fields*/
h5, .sheet-h5f {
float: left;
font-size: 1.2em;
line-height: 32px;
height: 30px;
}
/* - for making an input field look like a h5 label, for */
.sheet-h5f {
width: 72px;
margin: 0;
font-weight: bold;
color: #333;
text-rendering: optimizelegibility;
border: none;
background: none;
padding: 0;
cursor: initial;
}
/* - Sublabel, for intended, secondary expanded text */
h6 {
float: left;
font-size: 1.2em;
line-height: 32px;
height: 30px;
font-weight: normal;
margin-left: 18px;
}
/* - label indent, for tertiary expanded text */
.sheet-indent {
float: left;
height: 30px;
border: 0px;
padding: 0px;
margin: 0px;
margin-left: 18px;
}
/* - container for the text fields - part of ensuring they stretch */
.sheet-tfc {
display: block;
overflow: hidden;
padding-left: 15px;
padding-bottom: 0px;
height: 30px;
}
/* - the actual text fields */
.sheet-tf {
width: 100%;
}
/* - formating placeholder text inside text fields */
.sheet-tf::placeholder {
color: #555;
opacity: 0.5;
}
/* - three digit text fields */
.sheet-stf {
width: 25px;
text-align: center;
height: inherit !important;
color: rgb(85, 85, 85);
padding-right: 0px;
padding-left: 0px;
}
/* - used for putting a slash between two of the three digit fields */
.sheet-slashbookend {
margin-left: 0px;
margin-right: 3px;
}
.sheet-slashbookend + .sheet-slashbookend {
margin-left: 3px;
margin-right: 0px;
}
/* hides three digit fields if thier placeholder is shown, used to hide unused fields for other items quantity (Consider making generic)*/
.sheet-stf:placeholder-shown {
visibility: hidden;
}
/* - used to force non-expanding text field(s) to the right */
.sheet-rightfloat {
float: right;
}
/* - "locked" text fields which just look like text, used for summaries inside edges/flaws */
.sheet-ltf {
width: 100%;
background: none;
border: 0;
line-height: 32px;
padding: 0;
}
/* - 50% fields*/
.sheet-htf {
width: 50%;
}
/* - 40% text fields*/
.sheet-fptf {
width: 40%;
}
/* - 20% text fields*/
.sheet-tptf {
width: 20%;
}
/* - makes it so the smaller text fields can be lined up next to eachother in the same span (Currently an issue where their vertical alignment is 1 pixel off, consider revisiting)*/
.sheet-htf, .sheet-fptf, .sheet-tptf {
padding: 4px;
margin: 0;
border: 1px solid #ccc;
margin-bottom: 1px;
}
/* - used to make text field borders go green when a keyword match is detected */
input.sheet-greenborderothers1:checked ~ .sheet-greenborderifgreenborderothers1checked {
border-color: darkgreen;
}
/* Text areas */
.sheet-ta {
width: 100%;
height: 96px;
padding: 4px;
margin: 0px;
-webkit-box-sizing: border-box !important;
-moz-box-sizing: border-box !important;
box-sizing: border-box !important;
resize: none;
}
/* Black expanding bars */
/* - turns checkboxes into touch area for the bar (width could be 100% now, consider revisiting)*/
input.sheet-edgebartouch {
position: relative;
display: block;
left: 10%;
width: 75%;
height: 40px;
padding: -20px;
margin: 0px;
margin-bottom: -40px;
z-index: 0;
opacity: 0;
cursor: pointer;
}
/* - actual visuals/container for the bar */
.sheet-edgebarvisual {
position: relative;
width: 100%;
height: 40px;
padding: 0px;
margin: 0px;
z-index: -2;
opacity: 1;
background-color: black;
color: white;
border-radius: 3px;
white-space: nowrap;
pointer-events: none;
display: flex;
flex-direction: row;
align-items: stretch;
}
/* - The container for the content within a bar */
.sheet-edgebarcontent {
padding: 5px;
margin-top: -1px;
outline-offset-top: 2px;
border-top: 10px;
border: 1px solid darkgrey;
border-top-style: none;
}
/* - Makes it so the the content within a bar can only be seen when its expanded */
input.sheet-edgebartouch:not(:checked) ~ div.sheet-edgebarcontent {
display: none;
}
/* - Styling for text fields etc in black expanding bars, makes them appear as text, and serve as dynamic text */
.sheet-edgebarltf {
height: 100% !important;
color: white;
background: none;
border: 0;
line-height: 100%;
padding: 0;
font-size: 1.2em;
padding-left: 10px;
}
/* - sizing and resize priority for the various text fields in the black expanding bars */
.sheet-bar-score {
flex: 0;
min-width: 37px;
}
.sheet-bar-header {
flex: 1;
min-width: 0;
}
.sheet-bar-cost {
flex: 0;
min-width: 19px;
}
.sheet-bar-doublebuttonspace {
flex: 0;
min-width: 57px;
}
.sheet-bar-checkboxspace {
flex: 0;
min-width: 28px;
}
.sheet-bar-flawdataspace {
flex: 0;
min-width: 84px;
}
/* - multiline text area for the flaws black expanding bar, as its header is liable to go over multiple lines (This doesn't look great but I haven't found a better solution for multiline dynamic text)*/
.sheet-edgebarlta {
height: 100% !important;
color: white;
background: none;
border: 0;
font-size: 0.98em;
padding-left: 9px;
padding-right: 0;
padding-top: 2px;
padding-bottom: 0;
overflow: hidden;
margin: 0;
resize: none;
}
/* right side text for the flaws black expanding bar (still using old approach, consider revisiting to move to a flex system like the rest of the bars)*/
.sheet-edgebarst {
width: 100%;
margin: 0;
z-index: 5 !important;
position: absolute;
top: 10px;
color: white;
background: none;
border: 0;
font-size: 1.2em;
padding: 0;
padding-left: 9px;
padding-right: 9px;
text-align: right;
pointer-events: none;
}
/* Stops the black expanding bars and their roll buttons from blocking the roll20 editmode buttons and preventing them from being clicked*/
.repcontainer.editmode .sheet-edgebartouch {
z-index: -1;
}
.repcontainer.editmode .sheet-barbutton1 {
z-index: -1 !important;
}
.repcontainer.editmode .sheet-barbutton2 {
z-index: -1 !important;
}
/* setting the space between Roll20s repeating items */
.repcontainer .repitem {
margin-bottom: 3px;
}
/* configures Roll20s repcontainers to support horizontal then vertical list used by the skills section */
.repcontainer[data-groupname=repeating_skills] + .repcontrol {
width: calc( ((33% - 21px)*3) + 60px );
}
.repcontainer[data-groupname=repeating_skills] .repitem {
display: inline-block;
vertical-align: top;
width: calc(33% - 21px);
min-width: 253.5px;
}
.repcontainer[data-groupname=repeating_skills] .repitem:not(:nth-child(3n+3)) {
margin-right: 30px;
}
/* used to fake repcontainers for the always set skills like hand-to-hand */
.sheet-repemulator {
position: relative;
margin-bottom: 3px;
}
/* used to make elements semi-transparent based on checkbox status, primarily used for the black expanding bar currently */
input.sheet-transparentothers1:not(:checked) ~ .sheet-transparentiftransparentothers1notchecked {
opacity: 0.6;
}
/* interactable, visible checkbox used within the black expanding bars and settings menu*/
.sheet-edgecheckbox {
position: relative;
display: block;
width: 20px !important;
height: 20px !important;
margin-top: 5px !important;
padding: 0px !important;
float: right;
}
/* +/- expanding boxes used within edges and flaws */
.sheet-expandbox {
position: relative;
display: block;
width: 10px !important;
height: 10px !important;
margin: 0px !important;
margin-top: 10px !important;
padding: 0px !important;
line-height: 11px !important;
}
input.sheet-expandbox {
z-index: 0;
opacity: 0;
cursor: pointer;
margin-bottom: -20px !important;
}
.sheet-expandboxvisual {
z-index: -2;
opacity: 1;
font-size: 12px;
text-align: center;
border: 1px solid black;
float: left;
margin-right: 5px !important;
}
input.sheet-expandbox:not(:checked) ~ .sheet-expandboxopened {
display: none;
}
input.sheet-expandbox:checked ~ .sheet-expandboxclosed {
display: none;
}
/* Multiuse/multipurpose styles for hiding elements based on checkbox status, these are reused throughout the sheet */
input.sheet-hidesothers1:checked ~ .sheet-hideifhidesothers1checked {
display: none;
}
input.sheet-hidesothers1:not(:checked) ~ .sheet-hideifhidesothers1notchecked {
display: none;
}
input.sheet-hidesothers2:checked ~ .sheet-hideifhidesothers2checked {
display: none;
}
input.sheet-hidesothers2:not(:checked) ~ .sheet-hideifhidesothers2notchecked {
display: none;
}
input.sheet-hidesothers1:checked ~ .sheet-hideifhidesothers1and2notchecked {
display: block;
}
input.sheet-hidesothers2:checked ~ .sheet-hideifhidesothers1and2notchecked {
display: block;
}
.sheet-hideifhidesothers1and2notchecked {
display: none;
}
input.sheet-hidesothers3:checked ~ .sheet-hideifhidesothers3checked {
display: none;
}
input.sheet-hidesothers3:not(:checked) ~ .sheet-hideifhidesothers3notchecked {
display: none;
}
input.sheet-hidesothers4:checked ~ .sheet-hideifhidesothers4checked {
display: none;
}
input.sheet-hidesothers4:not(:checked) ~ .sheet-hideifhidesothers4notchecked {
display: none;
}
input.sheet-hidesothers5:checked ~ .sheet-hideifhidesothers5checked {
display: none;
}
input.sheet-hidesothers5:not(:checked) ~ .sheet-hideifhidesothers5notchecked {
display: none;
}
input.sheet-hidesothers6:checked ~ .sheet-hideifhidesothers6checked {
display: none;
}
input.sheet-hidesothers6:not(:checked) ~ .sheet-hideifhidesothers6notchecked {
display: none;
}
/* Used to hide elements throughout the sheet, like hidden checkboxes managed by code */
.sheet-invisible {
display: none;
}
/* Styling for the settings popup */
.sheet-settingswindow {
border: 1.5px;
border-style: solid;
border-radius: 10px;
padding: 25px;
position: absolute;
background: #FFFFFF;
left: 15%;
right: 15%;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
top: 65px;
z-index: 10;
}
.sheet-comment {
font-style: italic;
text-align: center;
font-size: 1em;
}
/* styling for rolltemplates */
/* - main container for the templates, including gradient background */
.sheet-rolltemplate-main, .sheet-rolltemplate-individualinitiative {
background: #0d0d0d; /* fallback for old browsers */
background: -webkit-linear-gradient(to top, #424235, #0d0d0d); /* Chrome 10-25, Safari 5.1-6 */
background: linear-gradient(to top, #424235, #0d0d0d); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
color: white;
border-radius: 3px;
padding: 0.75em;
margin-right: 1px;
line-height: 1.5em;
position: relative;
font-family: 'Averia Serif Libre';
}
/* - headers */
.sheet-rolltemplate-header, .sheet-rolltemplate-initiative-header {
color: #b2ab57;
font-size: 1.075em;
margin-bottom: 0.2em;
}
.sheet-rolltemplate-header {
padding-right: 2.75em;
}
/* - changes how the dice roll text is formatted */
.sheet-rolltemplate-main .inlinerollresult, .sheet-rolltemplate-individualinitiative .inlinerollresult {
background-color: transparent;
border: 1px solid white;
padding: 0 0.25em 0 0.25em;
font-weight: bold;
cursor: help;
font-size: 1.1em;
}
/* - Dice icon used for indicating success and failure (this looks abit naff, and players seem to frequently not realise its meaning, consider revisiting)*/
.sheet-rolltemplate-d10 {
color: black;
font-family: 'dicefontd10';
font-size: 3em;
position: absolute;
top: 0.32em;
right: 0.32em;
}
/* - used for concealing inlinerolls for when they've being used to deliver static variables to the roll template and don't represent dice rolls */
.sheet-rolltemplate-main .sheet-noinlineroll .inlinerollresult, .sheet-rolltemplate-individualinitiative .sheet-noinlineroll .inlinerollresult {
background-color: transparent;
border: 0px solid white;
padding: 0 0 0;
font-weight: normal;
cursor: auto;
font-size: 1.05em;
}
/* - Makes text in the rolltemplate transparent, used for listing included modifiers for clarity*/
.sheet-rolltemplate-italic {
font-style: italic;
}
/* - Used in conjunction with helper functions in the template to determine roll result once and use CSS to hide elements in the rest of the template based on that result
this means I don't have to repeat helper functions frequently and end up with a hard to parse template */
.sheet-rolltemplate-showifrollsuccess {
display: none;
}
.sheet-rolltemplate-rollsuccess ~ .sheet-rolltemplate-showifrollsuccess {
display: inline;
}
.sheet-rolltemplate-showifrollfailure {
display: none;
}
.sheet-rolltemplate-rollfailure ~ .sheet-rolltemplate-showifrollfailure {
display: inline;
}
.sheet-rolltemplate-showifrollautomaticsuccess {
display: none;
}
.sheet-rolltemplate-rollautomaticsuccess ~ .sheet-rolltemplate-showifrollautomaticsuccess {
display: inline;
}
.sheet-rolltemplate-showifrollautomaticfailure {
display: none;
}
.sheet-rolltemplate-rollautomaticfailure ~ .sheet-rolltemplate-showifrollautomaticfailure {
display: inline;
}