Web Dev Solutions

Catalin Mititiuc

body { margin: 0; display: flex; overflow: hidden; } #map-container { flex-basis: 100%; position: relative; height: 100vh; } svg, object { background-color: darkgray; width: 100%; height: 100%; overflow: hidden; } object { opacity: 0; transition: opacity 0.25s; } svg image { image-rendering: pixelated; } svg image.map-scans { image-rendering: auto; } svg text { user-select: none; } div#status { position: absolute; bottom: 0; right: 0; margin: 3px; display: none; user-select: none; } #hex-counter { padding: 2px; background-color: rgba(255, 255, 255, 0.5); border-radius: 2px; } #hex-count { font-family: monospace; } polyline.move-trace { stroke: gray; stroke-dasharray: 2; fill: none; } g#grid { transform: translate(19px, 31px) scale(4); } #background { fill: #bacae3; } #panel { display: none; position: absolute; right: 0; background-color: white; border: 1px solid black; padding: 2px; } #panel fieldset label { display: block; text-align: right; } #toggle-firing-arc-vis { position: absolute; right: 0; padding-top: 20px; } #toggle-firing-arc-vis div { margin-top: 10px; writing-mode: vertical-lr; transform: rotate(180deg); } g.troop-counter-template, g.troop-counter-template use { r: inherit; } g.troop-counter, g.troop-counter use { r: inherit; } g.troop-counter-template text { fill: white; font-size: 12px; font-weight: bold; font-family: monospace; cursor: default; text-anchor: middle; pointer-events: none; user-select: none; transform: translateY(4px); stroke: none; } g.troop-counter [href="#counter-prone"] { transform: translate(-5px, 6px); } text.counter, #troop-counter text { font-size: 12px; font-weight: bold; fill: white; font-family: sans-serif; cursor: default; text-anchor: middle; transform: translateY(4px); pointer-events: none; user-select: none; } #shapes { opacity: 0.1; } #shapes polygon { stroke: none; } #lines polygon { fill: none; stroke: black; } button.set-firing-arc img { vertical-align: middle; pointer-events: none; } .sight-line { stroke: orangered; stroke-width: 0.5px; pointer-events: none; } .soldier-record { display: block; position: relative; white-space: nowrap; background-color: white; } .soldier-record span[slot] { margin-right: .4em; } polygon.firing-arc[data-allegiance="defender"] { fill: red; } polygon.firing-arc[data-allegiance="attacker"] { fill: blue; } .weapon-symbol polyline { fill: none; } .soldier-record[data-allegiance="defender"] svg { fill: red; } .soldier-record[data-allegiance="attacker"] svg { fill: blue; } .soldier-record svg use { r: 5px; stroke: none; } .soldier-record svg.weapon-icon use { stroke: white; stroke-width: 0.5px; } .weapon-symbol { stroke: none; } [href="#counter-base"] { stroke: none; } .soldier-record svg { width: 20px; height: 20px; background-color: initial; vertical-align: middle; } .soldier-record svg.weapon-icon { float: left; margin: 0.5em 0.5em; width: 30px; height: 30px; } .soldier-record svg text { fill: white; text-anchor: middle; font-size: 10px; font-weight: bold; transform: translateY(3.5px); font-family: monospace; } .soldier-record.selected { background-color: khaki; } .soldier-record.movement-ended { background-color: none; opacity: 0.5; } img.logo { width: 100px; margin: 0 auto; display: block; } #turn-count[data-update="0"] span.inning-bottom { display: none; } #turn-count[data-update="1"] span.inning-top { display: none; } #map-dialog { border: 1px solid black; } .map-placeholder { position: absolute; user-select: none; } input[type="file"] { display: none; } div#content { display: flex; border-left: 1px solid gray; flex-basis: 0; max-height: 100vh; flex-direction: column; position: relative; min-width: 340px; } #content > div:first-of-type { padding: 2px; border-bottom: 1px solid gray; } #content #buttons { line-height: 1.5em; } #content input[type="checkbox"].visible { position: absolute; right: 0; } #record-sheet { display: flex; min-height: 0; flex-direction: column; background-color: gray; flex-grow: 1; } #record-sheet .records { overflow-y: auto; } #record-sheet .name { text-transform: capitalize; } #record-sheet > div { flex: 1; min-height: 0; display: flex; flex-direction: column; } #record-sheet > div > p { margin: 0; margin-top: 0px; margin-bottom: 1px; padding: 6px 2px; background-color: lightgray; } #record-sheet .soldier-record { margin-bottom: 1px; padding: 6px 4px; } #record-sheet > div:last-of-type { margin-top: 1px; } #record-sheet .records > div:last-of-type { margin-bottom: 0; } div#dice { position: absolute; right: 0; bottom: 30px; margin: 3px; padding: 2px; background-color: rgba(255, 255, 255, 0.8); border-radius: 4px; border: 1px solid darkgray; } .die { width: 31px; height: 31px; border: 1px solid black; border-radius: 4px; margin: 0 auto; margin-top: 3px; margin-bottom: 1px; background-color: white; display: flex; justify-content: space-around; } .die > div { display: flex; flex-direction: column; justify-content: space-around; } .dot { display: inline-block; width: 7px; height: 7px; background-color: black; border-radius: 50%; padding: 0; margin: 0; visibility: hidden; } .die.one > div:nth-child(even) > .dot:nth-child(even) { visibility: visible; } .die.two > div:first-child > .dot:first-child, .die.two > div:last-child > .dot:last-child { visibility: visible; } .die.three > div:first-child > .dot:first-child, .die.three > div:nth-child(even) > .dot:nth-child(even), .die.three > div:last-child > .dot:last-child { visibility: visible; } .die.four > div:nth-child(odd) > .dot:nth-child(odd) { visibility: visible; } .die.five > div:nth-child(odd) > .dot:nth-child(odd), .die.five > div:nth-child(even) > .dot:nth-child(even) { visibility: visible; } .die.six > div:nth-child(odd) > .dot { visibility: visible; } .die.test > div:first-child > .dot { visibility: visible; } .roll-in { animation: roll-in 0.125s linear 1; } .roll-out { animation: roll-out 0.125s linear 1; } .select-elevation { position: fixed; right: 0; top: 50%; margin-right: 10px; background-color: #FFFFFF99; border: 1px solid gray; padding: 2px; font-family: sans-serif; font-size: 10pt; } .select-elevation label { display: block; margin: 2px 0; text-align: center; border: 1px solid transparent; user-select: none; } .select-elevation input { display: none; } .select-elevation input:checked+label { border: 1px solid salmon; border-radius: 3px; background-color: #cdd9e9; } @keyframes roll-out { 0% { transform: scaleX(1); } 100% { transform: scaleX(0); } } @keyframes roll-in { 0% { transform: scaleX(0); } 100% { transform: scaleX(1); } } @media (width >= 1800px) { #record-sheet { flex-direction: row; overflow-y: unset; min-height: 0; flex-grow: 1; } #record-sheet > div > p { margin-top: 0; white-space: nowrap; } #record-sheet > div { display: flex; flex-direction: column; } #record-sheet .records { overflow-y: auto; } #record-sheet div:last-of-type { margin-top: 0; } #record-sheet > div:first-of-type > div { margin-right: 1px; } #record-sheet > div:last-of-type > div { margin-left: 1px; } div#content { min-width: 680px; } }