Files
roll20-character-sheets/Shadowdark-Unofficial/Shadowdark-Unofficial.css
T

1461 lines
30 KiB
CSS

/* top-level dialog */
.ui-dialog {
padding: 0px;
font-family: 'Proxima Nova', "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
}
.ui-dialog .charsheet {
padding: 0;
margin: 0;
}
.ui-dialog input {
margin-top: 0;
vertical-align: baseline;
}
input::placeholder {
color: #aaa;
opacity: 1;
}
/* base Shadowdark sheet */
.sheet-sd {
display: flex;
flex-wrap: wrap;
align-items: baseline;
background: white;
color: black;
margin: 0;
padding: 0;
}
.sheet-section {
margin: 0;
box-sizing: border-box;
padding: 0 4px;
}
/* flex-box / responsive layout */
/* rows */
.sheet-section-npc-identity,
.sheet-section-counters,
.sheet-section-pc-identity,
.sheet-section-options,
.sheet-toggler-options {
flex: 1 1 100%;
}
/* columns */
.sheet-section-roll-advantage,
.sheet-section-roll-whisper,
.sheet-section-npc-stats,
.sheet-section-pc-stats,
.sheet-section-actions,
.sheet-section-features,
.sheet-section-pc-gear {
flex: 1 0 50%;
}
.sheet-sd .sheet-form-body textarea.attr_atk_desc {
height: 200px;
min-height: 80px;
max-height: 300px;
}
.sd-row {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
}
.sd-col {
display: flex;
flex-direction: column;
flex-basis: 100%;
padding: 2px 0;
}
.sheet-section-pc-identity .sd-row,
.sheet-section-npc-identity .sd-row {
align-items: end;
}
.sheet-sd .sd-stat-item {
white-space: nowrap;
margin: 2px 0;
}
.sheet-sd .sd-stat-item input.sd-num,
.sheet-sd .sd-stat-item input.sd-text {
text-align: center;
font-family: inherit;
}
.sheet-sd .sd-stat-item input {
font-size: 14px;
font-family: unsert;
}
.sheet-sd .sd-stat-item label {
display: inline-block;
font-size: 14px;
margin: 2px 8px;
padding: 0;
}
.sd-core-stats {
display: flex;
flex-wrap: wrap;
flex-direction: column;
height: 142px;
}
.sd-core-stat {
box-sizing: border-box;
border: 0;
margin: 2px 0;
padding: 0;
}
.sd-core-stat input[type=text] {
border-color: #999;
}
/* (Shadow)dark mode ;) */
.sheet-darkmode .sheetform {
background-color: transparent;
}
.sheet-darkmode .sheet-sd {
color: white;
background: rgb(31, 31, 31);
}
/* Mutually exclusive visibility for PC (Crawler) vs NPC (Monster) sheet sections */
.sheet-toggle-npc[value="0"]~.sheet-type-npc {
display: none;
}
.sheet-toggle-npc[value="0"]~.sheet-type-pc {
display: block;
}
.sheet-toggle-npc:not([value="0"])~.sheet-type-npc {
display: block;
}
.sheet-toggle-npc:not([value="0"])~.sheet-type-pc {
display: none;
}
/* NPC description box */
.sheet-toggle-npc-desc[value="0"]~.sd-npc-desc {
display: none;
}
.sheet-toggle-npc-desc:not([value="0"])~.sd-npc-desc {
display: block;
}
.sheet-sd .sd-npc-desc textarea.sd-text {
height: 48px;
display: block;
max-width: 100%;
border: 1px dotted #999;
width: auto;
resize: vertical;
}
/* Pulp mode toggle */
.sheet-toggle-pulp-mode[value="0"]~.sheet-pulp-mode {
display: none;
}
.sheet-toggle-pulp-mode:not([value="0"])~.sheet-pulp-mode {
display: inline-block;
}
/* Custom counters toggle */
.sheet-toggle-counters[value="0"]~.sheet-section-counters {
display: none;
}
.sheet-toggle-counters:not([value="0"])~.sheet-section-counters {
display: inline-block;
}
/* headings */
.sheet-sd h1 {
line-height: 20px;
font-size: 13px;
background-color: rgba(11, 11, 11, 0.25);
color: #fafafa;
margin: 4px 0;
padding: 4px 8px;
text-transform: uppercase;
background-image: linear-gradient(to right, rgba(11, 11, 11, 1), rgba(11, 11, 11, 0));
}
.sheet-darkmode .sheet-sd h1 {
background-color: darkred;
color: #eee;
background-image: linear-gradient(to left, rgba(31, 31, 31, 1), rgba(31, 31, 31, 0));
}
.sheet-sd .sheet-form-body h1 {
background-color: transparent;
font-size: 16px;
line-height: 20px;
margin: 0;
background-image: none;
color: #222;
padding-left: 0;
}
.sheet-darkmode .sheet-sd .sheet-form-body h1 {
color: #eee;
}
.charsheet .sheet-sd .sheet-form-body button[type=roll] {
border-radius: 4px;
border: 1px solid green;
background-color: rgba(0, 50, 10, 0.5);
padding: 2px 16px;
width: auto;
margin: 2px 8px;
}
.charsheet .sheet-sd .sheet-form-body button[type=roll]:hover,
.charsheet .sheet-sd .sheet-form-body button[type=roll]:active {
background-color: rgba(0, 200, 20, 0.5);
}
/* fields */
.sheet-sd input.sd-num,
.sheet-sd input.sd-text {
background-color: transparent;
border: 0;
border-bottom: 1px dotted #ccc;
border-radius: 0;
font-family: monospace;
margin: 0;
padding: 0;
color: #000;
}
.sheet-sd input.sd-text {
width: 95%;
min-width: 120px;
}
.sheet-sd input.sd-text.armor-type {
font-size: 11px;
min-width: 90px;
max-width: 90px;
text-align: left;
}
.sheet-sd textarea.sd-text {
background-color: transparent;
border-bottom: 1px solid #ccc;
border-radius: 0;
font-family: monospace;
margin: 0;
margin-bottom: 0.3em;
padding: 4px;
color: #000;
box-sizing: border-box;
-moz-box-sizing: border-box;
min-width: 240px;
max-width: 450px;
}
.sheet-darkmode .sheet-sd textarea.sd-text {
color: #fff;
}
.sheet-darkmode .sheet-sd input.sd-num,
.sheet-darkmode .sheet-sd input.sd-text {
background-color: transparent;
color: #fafafa;
border-bottom: 1px dotted #aaa;
}
.sheet-darkmode .sheet-sd input.sd-num::placeholder,
.sheet-darkmode .sheet-sd input.sd-text::placeholder {
color: #666;
}
span.sd-num,
span.sd-text {
font-family: inherit;
font-size: 12px;
}
.sheet-sd input.sd-num {
width: 3em;
}
.sheet-sd .sd-coinage input {
margin-left: 4px;
vertical-align: baseline;
}
.sheet-sd .sd-coinage span {
margin-left: 4px;
vertical-align: top;
font-size: 12px;
vertical-align: baseline;
}
/* buttons */
.charsheet .sheet-sd button[type=roll] {
text-align: left;
vertical-align: middle;
background: none;
color: #111;
font-weight: bold;
border: 0;
border-radius: 0;
box-shadow: none;
text-shadow: none;
padding: 6px;
margin: 0;
font-size: 15px;
width: 100%;
box-sizing: border-box;
}
.charsheet .sheet-sd .sd-core-stat button[type=roll] {
display: block;
}
.sheet-darkmode .charsheet .sheet-sd button[type=roll] {
color: #ddd;
}
.charsheet .sheet-sd button[type=roll]:hover {
background-color: rgba(0, 0, 0, 0.10);
color: #000;
}
.sheet-darkmode .charsheet .sheet-sd button[type=roll]:hover {
color: #fff;
background-color: #333;
}
.charsheet .sheet-sd button[type=action] {
margin: 4px 0;
}
.sheet-darkmode .charsheet .sheet-sd button[type=action] {
color: #333;
margin: 4px 0;
}
.charsheet .sheet-sd button[type=roll]::before {
content: none;
}
.charsheet .sheet-sd .sd-core-stat button[type=roll]::after {
font-family: "dicefontd20";
content: "t";
color: rgb(189, 40, 40);
font-size: 18px;
text-transform: none;
margin-left: 8px;
vertical-align: top;
}
.charsheet .sheet-sd .sd-core-stats .sd-core-stat button[type=roll] {
font-size: 14px;
padding: 2px;
vertical-align: middle;
display: inline-block;
width: 36px;
text-align: center;
}
.charsheet .sheet-sd .sd-core-stats .sd-core-stat button[type=roll]::after {
display: block;
text-align: center;
margin: 2px;
}
.charsheet .sheet-sd .sd-core-stats .sd-core-stat .sd-num {
font-size: 14px;
font-family: inherit;
vertical-align: baseline;
padding-bottom: 2px;
text-align: center;
}
.charsheet .sheet-sd .sd-core-stats .sd-core-stat .sd-num[type=text] {
width: 1.6em;
}
.charsheet .sheet-sd .sd-core-stats .sd-core-stat span.sd-num {
min-height: 32px;
min-width: 32px;
margin: 0 4px;
padding: 4px;
box-sizing: border-box;
border: 1px solid #999;
display: inline-block;
font-weight: bold;
}
/* labels */
.sheet-sd label {
font-family: arial;
font-size: 11px;
line-height: 11px;
font-weight: bold;
margin: 0;
width: auto;
text-transform: uppercase;
color: #666;
}
label.sheet-form-checkbox {
display: inline-block;
white-space: normal;
}
.sheet-form-group .trait-name,
.sheet-form-group .trait-desc {
width: 100%;
min-width: 300px;
}
.sheet-form-group textarea.trait-desc {
height: 240px;
resize: vertical;
}
/* roll templates */
.sheet-roll-templates {
display: none;
}
.sheet-rolltemplate-atk,
.sheet-rolltemplate-atkdmg,
.sheet-rolltemplate-dmg,
.sheet-rolltemplate-simple,
.sheet-rolltemplate-traits {
color: black;
border: 3px solid black;
border-radius: 0;
background-color: white;
font-family: 'Nunito';
}
.sheet-rolltemplate-atk .sheet-char-name,
.sheet-rolltemplate-atkdmg .sheet-char-name,
.sheet-rolltemplate-dmg .sheet-char-name,
.sheet-rolltemplate-simple .sheet-char-name,
.sheet-rolltemplate-traits .sheet-char-name {
background-color: #333;
text-align: center;
color: #fff;
font-weight: bold;
padding: 2px 8px;
}
.sheet-rolltemplate-atk .sheet-info,
.sheet-rolltemplate-atkdmg .sheet-info,
.sheet-rolltemplate-dmg .sheet-info,
.sheet-rolltemplate-simple .sheet-info,
.sheet-rolltemplate-traits .sheet-info {
padding: 2px 8px;
color: #000;
}
.sheet-rolltemplate-atk .sheet-label,
.sheet-rolltemplate-atkdmg .sheet-label,
.sheet-rolltemplate-dmg .sheet-label,
.sheet-rolltemplate-simple .sheet-label,
.sheet-rolltemplate-traits .sheet-label {
text-align: center;
color: #000;
}
.sheet-rolltemplate-atk .sheet-label a,
.sheet-rolltemplate-atkdmg .sheet-label a {
background-color: #fff;
color: #000;
font-weight: bold;
text-transform: uppercase;
}
.sheet-rolltemplate-atk .sheet-label a:hover,
.sheet-rolltemplate-atkdmg .sheet-label a:hover {
text-decoration: underline;
}
.sheet-rolltemplate-atk .sheet-roll-name,
.sheet-rolltemplate-atkdmg .sheet-roll-name,
.sheet-rolltemplate-dmg .sheet-roll-name,
.sheet-rolltemplate-simple .sheet-roll-name,
.sheet-rolltemplate-traits .sheet-trait-name {
text-align: center;
color: #333;
padding: 4px 8px;
text-transform: uppercase;
}
.sheet-rolltemplate-traits .sheet-trait-desc {
text-align: left;
padding: 2px 8px;
color: #000;
}
.sheet-rolltemplate-atk .sheet-result,
.sheet-rolltemplate-atkdmg .sheet-result,
.sheet-rolltemplate-dmg .sheet-result,
.sheet-rolltemplate-simple .sheet-result {
text-align: center;
color: #333;
padding: 2px 8px;
}
.sheet-rolltemplate-atk .sheet-result div,
.sheet-rolltemplate-atkdmg .sheet-result div,
.sheet-rolltemplate-dmg .sheet-result div,
.sheet-rolltemplate-simple .sheet-result div {
display: inline-block;
}
.sheet-rolltemplate-darkmode .inlinerollresult,
.sheet-rolltemplate-darkmode .sheet-solo .inlinerollresult,
.sheet-rolltemplate-darkmode .sheet-damage .inlinerollresult,
.sheet-rolltemplate-darkmode .sheet-roll-used .inlinerollresult {
background-color: #111;
border: 4px solid #111;
}
.sheet-rolltemplate-atk .inlinerollresult,
.sheet-rolltemplate-atkdmg .inlinerollresult,
.sheet-rolltemplate-dmg .inlinerollresult,
.sheet-rolltemplate-simple .inlinerollresult {
font-size: 18px;
line-height: 22px;
background-color: #111;
padding: 4px;
color: #fff;
display: inline-block;
min-width: 22px;
min-height: 22px;
text-align: center;
vertical-align: middle;
border: 4px solid #111;
}
.sheet-rolltemplate-atk .inlinerollresult.importantroll,
.sheet-rolltemplate-atkdmg .inlinerollresult.importantroll,
.sheet-rolltemplate-dmg .inlinerollresult.importantroll,
.sheet-rolltemplate-simple .inlinerollresult.importantroll {
background-color: #111;
border: 4px solid #111;
}
.sheet-rolltemplate-atk .inlinerollresult.fullcrit,
.sheet-rolltemplate-atkdmg .inlinerollresult.fullcrit,
.sheet-rolltemplate-dmg .inlinerollresult.fullcrit,
.sheet-rolltemplate-simple .inlinerollresult.fullcrit {
background-color: #111;
color: rgb(175, 255, 175);
border: 4px solid #111;
}
.sheet-rolltemplate-atk .inlinerollresult.fullfail,
.sheet-rolltemplate-atkdmg .inlinerollresult.fullfail,
.sheet-rolltemplate-dmg .inlinerollresult.fullfail,
.sheet-rolltemplate-simple .inlinerollresult.fullfail {
color: #fff;
background-color: rgb(138, 0, 0);
border: 4px solid rgb(138, 0, 0);
}
.sheet-rolltemplate-atk .sheet-crit-success,
.sheet-rolltemplate-atkdmg .sheet-crit-success,
.sheet-rolltemplate-dmg .sheet-crit-success,
.sheet-rolltemplate-simple .sheet-crit-success,
.sheet-rolltemplate-atk .sheet-crit-fail,
.sheet-rolltemplate-atkdmg .sheet-crit-fail,
.sheet-rolltemplate-dmg .sheet-crit-fail,
.sheet-rolltemplate-simple .sheet-crit-fail {
display: block;
font-family: arial;
padding: 4px;
}
.sheet-rolltemplate-atk .sheet-roll-unused .inlinerollresult,
.sheet-rolltemplate-atkdmg .sheet-roll-unused .inlinerollresult,
.sheet-rolltemplate-dmg .sheet-roll-unused .inlinerollresult,
.sheet-rolltemplate-simple .sheet-roll-unused .inlinerollresult {
font-size: 15px;
background-color: #eee;
border-color: #fff;
color: #666;
}
/* don't color initiative (for roll20 bug that adds fullcrit/fullfail class even when using kl1/kh1) */
.sheet-rolltemplate-simple .sheet-roll-initiative .inlinerollresult,
.sheet-rolltemplate-simple .sheet-roll-initiative .inlinerollresult.fullcrit,
.sheet-rolltemplate-simple .sheet-roll-initiative .inlinerollresult.importantroll,
.sheet-rolltemplate-simple .sheet-roll-initiative .inlinerollresult.fullfail {
background-color: #111;
border: 4px solid #111;
color: #fff;
}
.message.error {
border: 2px solid red;
box-sizing: border-box;
margin: 0;
padding: 8px;
color: white;
font-size: 16px;
}
.message.error div.spacer {
display: none;
}
/* PC sheets */
.sheet-sd .sheet-checkbox-cog:hover span {
color: #333;
color: #fff;
opacity: 1;
background-color: rgba(0, 0, 0, 0.9);
}
.sheet-darkmode .sheet-sd .sheet-checkbox-cog:hover span {
color: #fff;
background-color: rgba(0, 0, 0, 0.7);
}
.sheet-sd .sheet-feature {
font-size: 11px;
padding: 2px 0;
}
.sheet-sd .sheet-feature .sheet-feature-name {
overflow: hidden;
text-overflow: ellipsis;
text-align: left;
}
.sheet-sd .sheet-feature .sheet-feature-details {
text-align: left;
white-space: normal;
line-height: 11px;
margin-top: 4px;
text-transform: none;
font-size: 11px;
font-family: sans-serif;
font-weight: normal;
}
.sheet-sd .sd-attacks {
white-space: nowrap;
margin-right: 46px;
}
.sheet-sd .sd-attacks button[type=roll] {
width: auto;
white-space: wrap;
}
/* display multiple lines of test for feature desc */
.charsheet .sheet-sd button[type=roll] span {
white-space: pre-wrap;
text-align: left;
}
/* repeaters AKA dynamic attributes */
.sheet-toggle:checked~.sheet-toggle-checked {
display: block;
}
.sheet-toggle:not(:checked)~.sheet-toggle-checked {
display: none;
}
.sheet-sd .repcontainer.editmode .repitem .sheet-fieldset-item {
opacity: 0.3;
}
.sheet-sd .sheet-fieldset-item {
display: flex;
flex-direction: column;
min-height: 18px;
}
.sheet-sd .sheet-fieldset-item> :last-child {
margin-bottom: 4px;
}
.sheet-sd .sheet-section-templates {
display: none;
}
.charsheet .sheet-sd .sheet-field-untoggle[value="1"]+* {
display: none;
}
.sheet-sd .sheet-checkbox-cog:hover span {
opacity: 1;
}
/* Put absolute-positioned move/delete overlay for repeater items above other elements */
.sheet-sd .repcontainer .repitem .itemcontrol {
z-index: 9999;
}
.ui-dialog .charsheet .repcontainer .repitem .itemcontrol {
position: static;
height: auto;
min-height: 30px;
}
.ui-dialog .charsheet .repcontainer .repitem {
min-height: 30px;
}
.sheet-sd .sheet-checkbox-cog {
display: inline-block;
height: 20px;
position: absolute;
align-self: flex-end;
width: 20px;
}
/* hide form edit buttons and feature details in Modify Mode (roll 20 uses .editmode class when repeater "Modify" is clicked) */
.sheet-sd .repcontainer.editmode .repitem .sheet-fieldset-item .sheet-checkbox-cog,
.sheet-sd .repcontainer.editmode .repitem .sheet-fieldset-item .sheet-feature-details {
display: none;
}
.sheet-sd h1 .sheet-checkbox-cog {
right: 20px;
}
.sheet-sd .sheet-checkbox-cog input {
height: 100%;
margin: 0;
opacity: 0;
position: relative;
width: 100%;
z-index: 1;
}
.sheet-sd .sheet-checkbox-cog input:checked~span::before {
content: '2';
color: black;
}
.sheet-darkmode .sheet-sd .sheet-checkbox-cog input:checked~span::before {
color: #999;
}
.sheet-sd .sheet-checkbox-cog:hover span {
color: #333;
background-color: rgba(255, 255, 255, 0.9);
}
.sheet-darkmode .sheet-sd .sheet-checkbox-cog:hover span {
color: #fff;
background-color: rgba(0, 0, 0, 0.7);
}
.sheet-sd .sheet-checkbox-cog:hover input:checked~span {
opacity: 1;
}
.sheet-sd .sheet-checkbox-cog span {
align-items: normal;
border-radius: 50%;
box-sizing: border-box;
display: flex;
font-family: 'Pictos';
font-size: 20px;
height: 100%;
justify-content: flex-end;
left: 0;
opacity: 0.5;
color: #333;
position: absolute;
top: 0;
width: 100%;
}
.sheet-darkmode .sheet-sd .sheet-checkbox-cog span {
color: #666;
}
.sheet-sd .sheet-checkbox-cog span::before {
content: 'y'; /* y = Pictos font Gear icon */
}
/* Sheet options button in top right */
.sheet-options-button {
position: absolute;
right: 8px;
top: -4px;
width: 24px;
height: 24px;
cursor: pointer;
}
.sheet-options-button input {
width: 100%;
height: 100%;
opacity: 0;
position: absolute;
z-index: 1;
margin: 0;
}
.sheet-options-button span {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
background-color: rgba(255, 255, 255, 0.8);
border: 1px solid #999;
border-radius: 3px;
}
.sheet-options-button:hover span {
background-color: rgba(255, 255, 255, 0.9);
border-color: #333;
}
.sheet-darkmode .sheet-options-button span {
background-color: rgba(0, 0, 0, 0.8);
border-color: #666;
}
.sheet-darkmode .sheet-options-button:hover span {
background-color: rgba(0, 0, 0, 0.9);
border-color: #ccc;
}
.sheet-section-roll-advantage {
position: relative;
}
.sheet-sd .sheet-field-toggle:not([value])+*,
.sheet-sd .sheet-field-toggle[value=""]+*,
.sheet-sd .sheet-field-toggle[value="0"]+*,
.sheet-sd .sheet-field-toggle[value="hide"]+* {
display: none;
}
.sheet-sd .sheet-field-untoggle[value="1"]+* {
display: none;
}
.sheet-sd .repcontrol {
min-height: 36px;
}
.sheet-sd .repcontrol .btn {
background: none;
border-radius: 0;
font-size: 9px;
font-weight: normal;
padding: 0 5px;
margin-right: 4px;
min-width: 32px;
background-color: transparent;
font-size: 11px;
font-family: sans-serif, Arial, Helvetica, sans-serif;
font-weight: normal;
box-shadow: none;
text-shadow: none;
border: 1px solid #666;
}
.sheet-darkmode .sheet-sd .repcontrol .btn {
color: #ccc;
border-color: #666;
}
.sheet-sd .repcontrol .btn.repcontrol_edit {
float: left;
}
.sheet-sd .repcontrol .btn.repcontrol_add {
float: left;
}
.sheet-sd .repcontrol .btn:hover {
background: #333;
color: #fff;
}
/* custom counters */
.custom-counter-item {
border: 1px solid rgb(131, 38, 38);
padding: 4px 6px 2px 6px;
display: inline-block;
border-radius: 3px;
overflow: hidden;
}
.sheet-darkmode .custom-counter-item:hover {
border-color: #000;
}
.sheet-darkmode .custom-counter-item:hover {
border-color: red;
}
.sheet-section-counters .repcontainer {
display: flex;
flex-wrap: wrap;
}
.ui-dialog .charsheet .sheet-section-counters .repcontainer .repitem {
display: inline-block;
margin: 4px 8px 4px 0px;
flex: 0 1 auto;
}
.ui-dialog .charsheet .sheet-section-actions .repcontainer .repitem,
.ui-dialog .charsheet .sheet-section-features .repcontainer .repitem {
position: inherit;
}
.ui-dialog .charsheet .custom-counter-item input {
padding: 2px;
border-radius: 0;
box-sizing: border-box;
background-color: transparent;
border: 0;
border-bottom: 1px dotted #ccc;
text-align: center;
color: #333;
width: 100%;
}
.sheet-darkmode .ui-dialog .charsheet .custom-counter-item input {
color: #ccc;
}
.charsheet .custom-counter-item input[type=text] {
font-size: 10px;
line-height: 10px;
border-color: transparent;
}
.charsheet .custom-counter-item input:active,
.charsheet .custom-counter-item input:focus,
.charsheet .custom-counter-item input:hover {
border-color: #aaa;
color: #000;
}
.sheet-darkmode .charsheet .custom-counter-item input:active,
.sheet-darkmode .charsheet .custom-counter-item input:focus,
.sheet-darkmode .charsheet .custom-counter-item input:hover {
color: #fff;
}
.ui-dialog .charsheet .custom-counter-item input[type=number],
.ui-dialog .charsheet .custom-counter-item input.sd-num[type=text] {
line-height: 1.1em;
font-size: 1.1em;
width: 3.5em;
display: inline-block;
font-family: unset;
margin: 0;
}
/* repeater edit forms - dialog styling */
.sheet-sd .sheet-toggle-checked {
border-radius: 5px;
background-color: #f8f9fa;
border: 2px solid #dee2e6;
border-radius: 0px;
padding: 0;
box-sizing: border-box;
top: 0;
left: 0;
z-index: 10000;
height: 100%;
max-height: 100%;
overflow: auto;
margin: 0 auto;
width: 100%;
max-width: 100%;
position: fixed;
}
.sheet-darkmode .sheet-sd .sheet-toggle-checked {
background-color: #2d3748;
border-color: #4a5568;
}
.sheet-sd .sheet-form {
padding: 20px;
}
.sheet-sd .sheet-form-body {
display: flex;
flex-direction: column;
gap: 16px;
}
.sheet-sd .sheet-form-group {
margin-bottom: 0;
}
.sheet-sd .sheet-form-group label {
font-weight: 600;
color: #374151;
font-size: 12px;
margin-bottom: 4px;
}
.sheet-darkmode .sheet-sd .sheet-form-group label {
color: #e2e8f0;
}
.sheet-sd .sheet-form-body input[type=text],
.sheet-sd .sheet-form-body select,
.sheet-sd .sheet-form-body textarea {
font-size: 12px;
line-height: 1.4;
background-color: #fff;
border: 1px solid #d1d5db;
border-radius: 0px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.sheet-sd .sheet-form-body textarea {
box-sizing: border-box;
}
.sheet-darkmode .sheet-sd .sheet-form-body input[type=text],
.sheet-darkmode .sheet-sd .sheet-form-body select,
.sheet-darkmode .sheet-sd .sheet-form-body textarea {
background-color: #4a5568;
border-color: #718096;
color: #e2e8f0;
}
.sheet-sd .sheet-form-body input[type=text]:focus,
.sheet-sd .sheet-form-body select:focus,
.sheet-sd .sheet-form-body textarea:focus {
outline: none;
border-color: #3b82f6;
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}
.sheet-sd .sheet-form-body input[type=text],
.sheet-sd .sheet-form-body select {
height: auto;
min-height: 24px;
width: 100%;
}
.sheet-sd .sheet-form-body textarea {
min-height: 80px;
resize: vertical;
width: 100%;
}
.sheet-sd .sheet-form-group .sd-row {
align-items: flex-end;
gap: 12px;
}
.sheet-sd .sheet-form-group .sd-row .sd-col {
flex: 1;
min-width: 0;
align-self: flex-start;
}
.sheet-sd .sheet-form-group .sd-row input[type=text],
.sheet-sd .sheet-form-group .sd-row select {
max-width: none;
}
.sheet-sd .sheet-form-group select {
cursor: pointer;
}
.sheet-sd .sheet-form-group span {
align-self: flex-end;
margin: 0 8px;
font-weight: 500;
line-height: 36px;
}
.sheet-sd .sheet-form-checkbox {
flex-direction: row !important;
align-items: center;
gap: 8px;
}
.sheet-sd .sheet-form-checkbox input[type=checkbox] {
margin: 0;
width: 16px;
height: 16px;
}
.sheet-sd .sheet-form-checkbox span {
line-height: 1.4;
margin: 0;
}
.charsheet .sheet-sd .sheet-hidden {
display: none;
}
/* Radio buttons */
label.sheet-radio {
margin: 0;
padding: 0;
}
.sheet-radio input[type=radio] {
width: 0;
height: 0;
border:0;
margin: 0;
padding: 0;
display: none;
}
.sheet-radio span {
background-color: transparent;
padding: 2px 4px;
margin: 1px 4px 1px 0px;
border: 1px solid #999;
color: #666;
cursor: pointer;
line-height: 11px;
min-width: 96px;
text-align: center;
box-sizing: border-box;
display: inline-block;
}
.sheet-darkmode .sheet-radio span {
color: #aaa;
}
.sheet-radio span:hover {
color: #000;
border-color: #333;
}
.sheet-darkmode .sheet-radio span:hover {
color: #fff;
border-color: #ccc;
}
.sheet-sd input[type=radio]:checked+span {
background-color: darkred;
color: #fff;
}
/* PC Stats */
.sheet-sd .sheet-section-pc-stats .section-title {
margin-right: 48px;
}
/* luck tokens */
.luck-tokens {
display: inline-block;
vertical-align: top;
}
.luck-tokens input[type=checkbox] {
cursor: pointer;
border-radius: 50%;
width: 1.2em;
height: 1.2em;
background-color: #333;
vertical-align: sub;
border: 2px solid #aaa;
appearance: none;
outline: none;
margin: 0 2px;
}
.luck-tokens input[type=checkbox]:checked {
background-color: gold;
border: 2px solid gold;
}
/* first (circle) "equipped" flag for spells and attacks (you can temporarily lose spells on failed checks) */
input[type=checkbox].atk-equipped {
cursor: pointer;
border-radius: 50%;
width: 1em;
height: 1em;
background-color: darkred;
vertical-align: middle;
border: 3px solid #aaa;
appearance: none;
outline: none;
}
input[type=checkbox].atk-equipped:checked {
background-color: seagreen;
border-color: seagreen;
}
/* second (triangle) "fixed" flag for spells and attacks - for broken weapons or forbidden spells which require penance, or whatever the player wants it to mean */
input[type=checkbox].atk-fixed {
cursor: pointer;
appearance: none;
outline: none;
border-radius: 0;
width: 1em;
height: 1em;
background-color: transparent;
vertical-align: middle;
border-left: 0.5em solid transparent;
border-right: 0.5em solid transparent;
border-top: 1em solid red; /* point down, like a sad debuff */
border-bottom: 0;
}
input[type=checkbox].atk-fixed:checked {
border-top: 0;
border-bottom: 1em solid silver; /* point up like a stabby little sword */
}
/* the fine print */
.sheet-sd .legal {
font-size: 11px;
color: #666;
}
.sheet-sd ol {
margin: 8px;
list-style-position: inside;
}
.sheet-sd .legal ul.sd-credits {
list-style: none;
font-size: 11px;
margin: 0;
}
.sd-gear-slots span {
display: inline-block;
min-width: 2em;
}
.sheet-sd .sd-gear-slots label {
white-space: nowrap;
}
.sheet-sd .sd-gear-slots input[type=text].sd-text {
min-width: 7em;
width: 90%;
}
/* hack to 'disable' gear slots which still leaves fields editable but indicates it is unusable (roll20 doesn't let you change disabled prop on inputs) */
.sd-gear-slots input[type=hidden][value="0"]~input[type=text] {
border-color: transparent;
background-color: #ccc;
color: #999;
}
.sheet-darkmode .sd-gear-slots input[type=hidden][value="0"]~input[type=text] {
background-color: transparent;
color: #666;
}
.sd-core-stats .sd-row {
align-items: end;
}
.sd-core-stats .sd-col {
padding-right: 8px;
}
.sd-core-stats .sd-core-stat {
margin: 0;
min-width: 130px;
}
.sd-core-stats input.sd-text {
width: 100%;
}
.sd-gear-noslots-screen textarea.sd-text {
min-height: 360px;
resize: none;
}
/* attempt to make sheet work on a phone */
@media (max-width: 550px) {
.sheet-section-npc-stats,
.sheet-section-pc-stats {
flex: 0 1 100%;
}
.sd-gear-noslots-screen textarea.sd-text {
min-height: 420px;
width: 100%;
}
/* Sheet options button in top right */
.sheet-options-button {
position: absolute;
right: 8px;
top: 8px;
width: 24px;
height: 24px;
cursor: pointer;
}
}
@media (max-width: 420px) {
.sd-row {
flex-direction: column;
align-items: unset;
}
.sheet-section-pc-identity .sd-row,
.sheet-section-npc-identity .sd-row {
align-items: normal;
}
.sheet-section-npc-stats,
.sheet-section-pc-stats,
.sheet-section-actions,
.sheet-section-features,
.sheet-section-pc-gear {
flex: 0 1 100%;
}
}
@media screen {
.sd-gear-noslots-screen {
display: block;
}
.sd-gear-noslots-print {
display: none;
}
}
/* mobile app struggles with dicefont, use emoji dice for now instead until I get images in place */
.charsheet .sheet-sd .sd-core-stat button[type=roll]::after {
font-family: Arial;
content: "roll";
font-size: 0.7em;
}
/* browser app (tab-content) struggles with injecting emojis via css; force dicefont until I get images in place */
#tab-content .charsheet .sheet-sd .sd-core-stat button[type=roll]::after {
font-family: "dicefontd20";
content: "t";
font-size: 22px;
}
@page {
size: letter portrait; /* specifies sheet will be printed on letter size in portrait orientation */
margin: 0.25in /* specifies a page margin of 0.25 inches */
}
@media print {
/* formatting fixes for print - remove toolbars and tabs, KIS */
.sheet-sd {
min-width: 720px;
max-width: 860px;
margin: 0;
border: 0;
padding: 0;
background-color: #fff;
color: #000;
}
.ui-dialog {
overflow: visible !important;
position: unset !important;
width: auto !important;
height: auto !important;
background-color: #fff;
color: #000;
}
h1, label, input, span {
background-image: none !important;
background-color: #fff !important;
color: #000 !important;
font-size: 12px !important;
}
input.sd-text::placeholder {
display: none !important;
color: transparent !important;
}
.charsheet .sheet-sd .sd-core-stat button[type=roll]::after,
.sheet-sd .sheet-checkbox-cog span::before {
content: none;
display: none;
}
.sheet-sd h1 {
padding-left: 0;
font-size: 16px !important;
}
/* force showing the short form action/attack instead of the edit form*/
#edit-button,
#macrobar,
#macrobar_macros,
.macrobox,
.macrobox button,
.repcontrol,
.sheet-section-roll-whisper,
.sheet-section-roll-advantage,
.nav.nav-tabs,
.sd-gear-noslots-screen,
.sheet-toggle-checked,
.sheet-section-options,
.sheet-toggler-options {
display: none !important;
}
.sheet-toggle-unchecked {
display: block !important;
}
.sd-gear-noslots-print {
display: block;
white-space: pre-wrap;
}
.sheet-toggle-npc[value="1"]~.sd-gear-noslots-print {
display: none;
}
}