@import "./scss/variables"; @import "./scss/global"; @import "./scss/mixins"; @import "./scss/roll_template"; @import "./scss/show_hide"; .charsheet { .hider[value="0"] { + div, + label, + button, + span { display: none; } } .hider[value=""] + button { display: none; } .editmode[value="0"] ~ .content .empty-hider[value=""] + div { display: none; } .details-button { position: relative; z-index: 2; } .header, .settings { padding: 10px 5px; } /* tab wrappers and type chooser */ input[name="attr_npc"][value="0"] ~ .tabs .npc-tab, input[name="attr_npc"][value="1"] ~ .tabs .pc-tab, input[name="attr_npc"][value="0"] ~ .drones .npc-show, input[name="attr_npc"][value="1"] ~ .drones .pc-show { display: none; } $characters: "character", "ship", "drones", "npc", "mount", "vehicle"; @each $name in $characters { input[name="attr_tab"]:not([value="#{$name}"]) ~ .#{$name} { display: none; } } .content { min-width: 800px; display: grid; grid-gap: 5px; } /* editmode */ .editmode[value="0"] ~ .content .edit, .editmode[value="0"] ~ .content .repcontrol, .editmode[value="1"] ~ .content .display { display: none; } /** edit mode highlighting **/ .editmode[value="1"] ~ { .content { border-style: solid; border-width: 0 2px 2px 2px; } .header { border-bottom: 2px solid; } .tabs, .settings { border-style: solid; border-width: 0 2px 0 2px; } div .edit-button { height: 29px; padding: 0 5px 0 5px; margin: 0 0 0 15px; display: flex; align-items: center; } } .editmode[value="1"] ~ div .edit-button input { align-self: center; } /* dice icons */ .dice-icon { background: transparent url($dice) no-repeat 80px 3px !important; background-size: 15px 15px !important; } /* header */ .header { input { opacity: 0; position: absolute; } .logo { width: 480px; } .npc-chooser { cursor: pointer; margin-left: auto; span { padding: 3px 6px; } } .edit-button { margin: 0 5px 0 20px; } .settings-gear, .edit-button { cursor: pointer; font-size: 16px; //noinspection CssNoGenericFontName | There is no generic to a picture font. font-family: pictos; } } @import "./scss/footer"; /* tab environment */ @import "./scss/tabs"; /* organisation */ @import "./scss/utility"; /* containers */ .grey-box, .grey-box-bordered { padding: 4px; } .grey-box-bordered { border: 1px solid; } .core-box { padding: 8px; } .core-box-text { padding: 8px 3px 3px 8px; } input[type="text"].inherit { background: transparent; border-radius: 0; border: none; box-shadow: none; color: inherit; font: inherit; padding: 0; } .inline-input { padding: 0 3px; position: relative; vertical-align: baseline; z-index: 2; } .text-input { line-height: 1; padding-right: 5px; .label { border-top: 1px solid; font-size: 0.9em; line-height: 14px; text-align: inherit; input[type="checkbox"] { height: 14px; margin: 0 3px 0 0; } } input[type="text"], input[type="number"], textarea { background: transparent; border-radius: 0; border: none; box-shadow: none; font-weight: inherit; padding: 1px 0; text-align: inherit; width: 100%; &[readonly="readonly"] { cursor: default; } } input[type="text"], input[type="number"] { font-size: 1.1em; } textarea { height: 20px; min-height: 20px; } > input[type="checkbox"] { height: 14px; margin: 3px 0; } select { background: transparent; border: none; height: 20px; width: 100%; } &.important { font-weight: bold; font-size: 1.1em; } &.duo { display: grid; text-align: center; grid: auto / 3px 1fr 5px 1fr 3px; align-items: center; align-content: start; grid-column-gap: 0; > span { font-size: 16px; } .label { grid-column: 1/5; } } &.trio { display: grid; text-align: center; grid: auto / 3px 1fr 5px 1fr 5px 1fr 3px; align-items: center; align-content: start; grid-column-gap: 0; > span { font-size: 16px; } .label { grid-column: 1/7; } } button[type="roll"].btn { width: 100%; } } .table-header { font-size: 0.9em; > div { padding-left: 2px; border-bottom: 1px solid; } } .focusinfo { position: relative; .details { border-radius: 8px; border: 1px solid; left: calc(50% - 125px); opacity: 1; padding: 5px; position: absolute; top: 22px; transition: all 0.3s; width: 250px; z-index: 1; } input:not(:focus) ~ .details { visibility: hidden; opacity: 0; } } /* inline styling */ .space-before::before, .space-after::after { content: " "; } .colon-after::after { content: ":"; } .hide-empty[value=""] + span { display: none; } .add-plus:not([value^="-"]) + span::before { content: "+"; } .api { border-radius: 5px; font-size: 0.8em; line-height: 1; padding: 1px; vertical-align: super; } /* force repeating row behavior */ @import "./scss/repeating_sections"; /* repeating section controls */ /* global settings */ .skills-query:not([value="hover"]) ~ div .skills-query-hover, .skills-query[value="query"] ~ div .skills-query-display, .skills-query[value="query"] ~ div .skills-query-ask { display: none; } .skills-query-display { $attrs: "str", "dex", "con", "int", "wis", "cha"; @each $name in $attrs { input:not([value*="#{$name}"]) ~ .#{$name} { display: none; } } } .skills-query[value="hover"] ~ div .skill:hover .skills-query-display, .skill .display .query:focus + .skills-query-display { display: none; } /* Section visibility toggling */ /* In the past, Github hosting didn't seem to work for some reason. Backup url: https://svgshare.com/i/aQ0.svg */ /* Note: svgshare urls are apparently not stable more than about 3 years. */ .section-toggle-header { position: relative; input { cursor: pointer; height: 100%; opacity: 0; position: absolute; right: 0; width: 22px; z-index: 2; + h1::after { background-image: url($chevron); } &:not(:checked) + h1::after { transform: rotate(180deg); } } + input + div { margin-top: 5px; } } /* Settings */ .settings { label { font-weight: bold; span { margin-right: 4px; } } select { display: inline-block; width: 120px; &.wide { width: 170px; } } .subsystems { grid: auto / 1fr 1fr; } } /* Character core */ .core { display: grid; grid-column-gap: 5px; &.core-info { grid: auto / 2.5fr 1fr 0.8fr; .info { align-items: start; flex-wrap: wrap; padding-right: 3px; .important { width: calc(60% - 22px); } .level { width: 44px; } .level-rest { width: calc(40% - 22px); } } } &.core-stats { grid: auto / minmax(310px, 1.2fr) minmax(260px, 1fr) minmax(220px, 0.8fr); } .main-content { margin-top: 3px; display: grid; grid: auto / repeat(3, 1fr); .left-margin { margin-left: 15px; } } button[name="roll_HP"].btn { font-size: 0.9em; } } /* Saves */ .saves .flex { margin-top: 4px; } .saves { button[type="roll"].btn { height: 35px; width: 35px; } } /* menus */ .menus-content { align-items: center; display: grid; grid: auto / 1fr 1fr; } .menus button[type="roll"].btn { .character & { margin-right: auto; } } /* Attributes */ .attributes { font-size: 1.1em; line-height: 1.2; margin-top: 0px; margin-bottom: 0px; .attr-grid { grid-template-columns: 1fr 3.5em 3.5em 20px 3.5em 20px; } .attr-display-grid { grid-template-columns: 1.5fr repeat(3, 5em); } .mod { font-size: 1.1em; } span[name*="_mod"]::before { content: "+"; } } /* Resources */ .editmode[value="0"] ~ .content .resources .repcontainer { grid: auto / 1fr 1fr; } .resources { .credits { margin-left: auto; } .repcontainer { display: grid; grid-row-gap: 3px; margin-top: 3px; } input[type="text"] { margin-right: auto; width: calc(100% - 8em); } .slash { margin: 0 2px; } } .money, .wealth { textarea { height: 100px; min-height: 100px; } } /* Shells */ .shells { .shells-grid { grid: auto / 40px 35px 35px 35px 45px 1fr; } } .transhuman-setting:not([value="transhuman"]) ~ .column .transhuman-enabled, .transhuman-setting[value="transhuman"] ~ .core .transhuman-disabled { display: none; } /* Weapons */ .weapons { .edit { justify-content: space-between; padding-right: 1px; .name { width: 138px; } .ab { width: 45px; } .ammo, .weapon-skill { width: 80px; } .range, .damage, .attribute { width: 60px; } .burst { width: 65px; } .shock-damage, .shock-ac { width: 55px; } .skill-to-damage { width: 30px; } .enc { width: 40px; } } .text-input { padding-right: 3px; } .repitem { margin-bottom: 3px; } .display { font-size: 1.1em; border: 1px solid; text-indent: -10px; padding: 2px 4px 2px 14px; .name { font-weight: bold; } } } /* Skills */ .skill-container, .skills-repeating .repcontainer { display: grid; grid: auto / 1fr 1fr; grid-gap: 4px 1%; } .skill { position: relative; .display, .edit { border: 1px solid; padding: 2px 4px; height: 100%; } .display { font-weight: bold; font-size: 1.1em; .dice[value="3d6d1"] + .name::after { content: "3d6"; } .dice[value="4d6d2"] + .name::after { content: "4d6"; } .name { margin-right: auto; } .name::after { font-size: 0.7em; font-weight: normal; margin-left: 2px; vertical-align: super; } .query { background: transparent; border-color: transparent; color: inherit; flex-shrink: 0; height: 18px; line-height: 16px; margin: 0 2px; outline: none; padding: 0; position: relative; width: 55px; z-index: 2; } } &:not(:hover) .display .query:not(:focus) { display: none; } .skills-query-display { margin: 0 3px; flex-shrink: 0; font-weight: normal; } .edit { input[type="text"].name { width: 100%; margin-bottom: 2px; } div.name { flex-grow: 1; width: 0; padding: 1px 2px; } .level { margin: 0 2px; padding: 1px 2px; width: 40px; } .query { width: 50px; } .dice { width: 35px; } &.flex-wrap { select, input { flex-grow: 1; } } } &.skill-points { margin-top: 4px; .display { font-size: 1.1em; font-weight: bold; width: 100%; } .name { flex-grow: 0; margin-right: auto; width: auto; padding: 0 4px; } .edit .level { margin: 0; } } } .skill-blurb { font-style: italic; margin-top: 3px; text-align: center; } /* name + desc sections */ .input-details:not([value="0"]) ~ div .notdetails { display: none; } /* Psionics */ .psionics-effort { align-items: center; display: grid; grid-column-gap: 4px; grid: auto/ auto 45px 45px 45px 45px 80px; margin-top: 5px; h3 { line-height: 1; } } .techniques { .display .discipline { margin-left: auto; } .edit .discipline { margin-left: 5px; width: 90px; } } /* Space Magic */ .magic-effort { display: grid; grid: auto/ auto repeat(4, 45px) 80px; align-items: center; grid-column-gap: 4px; margin-top: 5px; h3 { line-height: 1; } } .invoker { grid-template-columns: 1fr 50%; } .spells { .spells-header { grid-template-columns: 2fr repeat(3, 1fr); } .spell-grid { grid-template-columns: 1fr repeat(3, 5em); .damage, .level, .prepared { text-align: center; } } .edit { input { width: 100%; } } .display { .name { padding-right: 25px; padding-bottom: 1px; } span.prepared { margin: 0 4px 0 auto; } input[type="number"].prepared { padding: 0 4px; position: relative; z-index: 2; } } } .spell-slots { align-items: center; display: grid; grid-column-gap: 4px; grid: auto/ auto repeat(5, 55px); margin-top: 5px; h3 { line-height: 1; } } .magic-type { &:not([value="adept"]) ~ div .adept, &:not([value="magister"]) ~ div .magister, &:not([value="arcanist"]) ~ div .arcanist, &[value="adept"] ~ div .spellcaster { display: none; } } .magical-arts { .effort-grid { grid-template-columns: 3em repeat(4, 1fr); } } .space-magic, .magic { .spells .display .name { grid-template-columns: 1fr auto auto; } } /* AI */ .ai-processing { display: grid; grid: auto/ auto 45px 45px 45px 45px 80px; align-items: center; grid-column-gap: 4px; h3 { line-height: 1; } } .ai-processing-nodes { .nodes-grid { grid: auto / 65px 65px 1fr; } } .ai-setting:not([value="ai"]) ~ .ai-enabled, .ai-setting[value="ai"] ~ .core .ai-disabled { display: none; } .ai-setting[value="ai"] ~ .column .ai-enabled { display: block; } /* Foci */ .foci-loc { &[value="left"] ~ .column .foci-right, &[value="right"] ~ .column .foci-left { display: none; } } .foci, .edge { .details-button { position: relative; z-index: 2; } .class-ability { position: relative; .edit .name { font-weight: bold; font-size: 1.1em; border-bottom: 1px solid; } .name, .edit textarea, .display { margin-bottom: 3px; } } .edit { .name { flex-grow: 1; } .level { margin-left: 3px; width: 60px; } } .display .level { margin-left: auto; } } /* Gear */ .armor { input[name="attr_armor_active"] { left: 35%; position: absolute; z-index: 10; } .armor-grid { grid: auto / 40px 1fr 40px; } .details div, .details label { grid-column: 2 / -1; } .details .display { line-height: 1.3; } } .readied-stowed { display: grid; align-items: center; } .cyberdeck { .cyberdeck-grid { grid-template-columns: 1fr repeat(4, 40px); } } .cyberware { h3 { margin: 5px 0; } .edit { flex-wrap: wrap; > span { margin: 0 3px; } .name-row { grid-template-columns: 2fr 1fr; } } } .equipment { input[name="attr_gear_bundled"] { position: absolute; z-index: 10; } .repcontainer[data-groupname="repeating_weapons"] + .repcontrol { display: none; } .gear-grid { grid: auto / 40px minmax(130px, 1fr) 40px 70px 40px; } .other h3 { margin-bottom: 5px; } .other-gear { height: 100px; } } /* Misc */ .misc { .text-input input { padding-left: 2px; } .repitem { margin-bottom: 2px; } .goal { grid-template-columns: 1fr 15%; } .xp { width: 50px; } .goal-lang, .proj-ally { grid-template-columns: 2fr 1fr; } .projects, .lifestyle { .name { grid-template-columns: 1fr 15%; } } .allies { .subheaders { grid-template-columns: 2fr 1.5fr 1fr; } } } /* Ship tab */ .ship { margin-top: -20px; grid: auto/ 4fr 3fr 2fr; .menus { h3 { line-height: 1; } button[type="roll"].btn { font-size: 0.9em; line-height: 1; } } .type { padding: 5px 8px; h3 { line-height: 1; } select { background: transparent; height: 20px; width: 80px; } } .info { flex-wrap: wrap; .text-input { margin-bottom: 3px; } } .data { display: grid; grid: auto / repeat(6, 1fr); .text-input, .text-input input[type="number"] { text-align: center; } .duo { grid-column-start: 1; grid-column-end: 3; } } .trio { grid-column-start: 3; grid-column-end: 7; grid: auto / 0 1fr 5px 1fr 5px 1fr 0; } .duo { grid: auto / 0 1fr 5px 1fr 0; } .stats { display: grid; grid: auto / 1fr 1fr; } .repcontainer { display: grid; grid-row-gap: 3px; } .repitem { &, .edit, .display { width: 100%; } } .grey-box-bordered { padding-right: 0; } .ship-weapons { .edit { .name { width: calc(100% - 200px); } .damage { width: 65px; } .duo { width: 80px; } .qualities { width: calc(100% - 195px); } .range { width: 70px; } } .display { text-indent: -10px; padding-left: 14px; } } .ship-defenses, .ship-fitting { .edit { .name, .effect { flex: 1 1 auto; width: 0; } } .display { text-indent: -10px; padding: 2px 4px 2px 14px; } } .edit { .broken { width: 50px; } .number { width: 50px; } } .display { .name { font-weight: bold; } .broken { text-transform: uppercase; } .description { font-style: italic; } } .input-type[value="SHIP"] ~ div .vehicle-type:not(.vehicle-type-ship), .input-type[value="MECH"] ~ div .vehicle-type:not(.vehicle-type-mech), .input-type[value="VEHICLE"] ~ div .vehicle-type:not(.vehicle-type-custom) { display: none; } .editmode[value="0"] ~ & { .ship-defenses, .ship-fitting { padding: 3px 0; } } } /* NPC tab */ .npc { grid: auto / 3fr 0.8fr 2.2fr; .input-individual-hide:not([value="1"]) ~ .rolls .individual-hide { display: none; } .menus { h3 { line-height: 1; } button[type="roll"].btn { line-height: 1; } } .npc-abilities { .name { grid-template-columns: 1.5fr 1fr; } } .individual-hide input[type="checkbox"] { margin-right: 2px; } .npc-rep-header { margin: 4px; } .rolls > :first-child { margin-bottom: 5px; } .npc-checkbox { font-size: 0.9em; span { vertical-align: middle; margin-right: 4px; } } .repcontainer { display: grid; grid-gap: 3px; } .full-attacks { margin: 0 6px 0 auto; } .grey-box-bordered { padding-right: 1px; } .npc-attacks { .edit { .name { grid-template-columns: 2fr repeat(3, 1fr); } } .display { font-size: 1.1em; font-weight: bold; padding: 4px 8px; .range[value="0"] + span { display: none; } .attacks[value="1"] + span { display: none; } .attacks { text-transform: lowercase; } } } .npc-abilities { .npc-checkbox { margin-left: auto; } .display { .name { font-weight: bold; } .description { font-style: italic; } } } } /* Drone tab */ .drone { display: grid; grid: 86px 1fr / 1fr 1fr; grid-gap: 5px; align-items: start; border-top: 1px solid #555; padding: 2px 5px; .name-row { grid-template-columns: 2fr 1fr; } .fittings { .name { font-weight: bold; &:not(:empty)::after { content: ". "; } } .desc { font-style: italic; } .display { margin-bottom: 3px; } } .fitting-grid { grid: auto / 0.8fr 1.2fr; } .num-fittings { &[value="1"], &[value="2"], &[value="3"], &[value="4"] { ~ .fitting-5 { display: none; } } &[value="1"], &[value="2"], &[value="3"] { ~ .fitting-4 { display: none; } } &[value="1"], &[value="2"] { ~ .fitting-3 { display: none; } } &[value="1"] { ~ .fitting-2 { display: none; } } } .weapon-grid { grid: auto / 35px 1fr 50px 60px 35px 70px; } .weapon { position: relative; .name { font-weight: bold; } .display { margin-right: 4px; div::after { content: ","; } } } .editmode[value="0"] ~ .content & .drone-weapons { display: flex; flex-wrap: wrap; } } /* Vehicle tab */ .vehicle { padding: 2px 5px; } @import "./scss/system_settings"; } @import "./scss/theme.scss";