495 lines
7.3 KiB
CSS
495 lines
7.3 KiB
CSS
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;
|
|
}
|
|
|
|
@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;
|
|
}
|
|
}
|