171 lines
3.2 KiB
CSS
171 lines
3.2 KiB
CSS
.Board {
|
|
display: flex;
|
|
align-self: stretch;
|
|
position: relative;
|
|
flex: 1;
|
|
align-items: stretch;
|
|
margin-right: 40vw;
|
|
}
|
|
|
|
/* Offset 'BorderBox' such that 0,0 is the center
|
|
* of 'Board' */
|
|
.BoardBox {
|
|
position: absolute;
|
|
left: 50%;
|
|
top: 50%;
|
|
}
|
|
|
|
.Tile {
|
|
position: absolute;
|
|
background-position-y: 0px;
|
|
background-size: cover;
|
|
transform: translate(-50%, -50%) rotate(-30deg);
|
|
}
|
|
|
|
.Border {
|
|
position: absolute;
|
|
transform-origin: 0 0;
|
|
background-size: cover;
|
|
}
|
|
|
|
.Pip {
|
|
position: absolute;
|
|
background-size: 600% auto; /* pip-numbers is a 6x6 grid of pip images */
|
|
width: 2em;
|
|
height: 2em;
|
|
transform: translate(-50%, -50%);
|
|
}
|
|
|
|
.Pip.Active {
|
|
filter: drop-shadow(0px 0px 5px rgba(255, 255, 0, 0.9));
|
|
}
|
|
|
|
.Pips[disabled],
|
|
.Tiles[disabled],
|
|
.Roads[disabled],
|
|
.Corners[disabled] {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.Corner {
|
|
filter: drop-shadow(2.5px 2.5px 1.5px rgba(0, 0, 0, 0.75));
|
|
z-index: 10;
|
|
position: absolute;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-items: center;
|
|
box-sizing: border-box;
|
|
width: 1.5em;
|
|
height: 1.5em;
|
|
transform: translate(-50%, -50%);
|
|
z-index: 5;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.Corner-Shape {
|
|
display: flex;
|
|
position: absolute;
|
|
left: 0px;
|
|
right: 0px;
|
|
top: 0px;
|
|
bottom: 0px;
|
|
}
|
|
|
|
.Corner[data-type="settlement"] .Corner-Shape {
|
|
clip-path: polygon(50% 0%,70% 15%,70% 2%,90% 2%,90% 30%,100% 40%,100% 100%,65% 100%,65% 65%,35% 65%,35% 100%,0% 100%,0% 40%);
|
|
}
|
|
|
|
.Corner[data-type="city"] .Corner-Shape {
|
|
clip-path: polygon(15% 0%,39% 23%,39% 52%,100% 56%,100% 74%,100% 100%,80% 100%,63% 100%,62% 75%,46% 75%,47% 100%,0% 100%,0% 24%);
|
|
}
|
|
|
|
.Road {
|
|
position: absolute;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-items: center;
|
|
box-sizing: border-box;
|
|
transform-origin: 50% 0;
|
|
width: 0.5em;
|
|
height: 2.5em;
|
|
z-index: 0;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.Road-Shape {
|
|
display: flex;
|
|
position: absolute;
|
|
left: 0px;
|
|
right: 0px;
|
|
top: 0px;
|
|
bottom: 0px;
|
|
clip-path: polygon(0% 20%,0% 80%,100% 80%,100% 20%);
|
|
}
|
|
|
|
.Pip-Shape {
|
|
display: flex;
|
|
position: absolute;
|
|
left: 0px;
|
|
right: 0px;
|
|
top: 0px;
|
|
bottom: 0px;
|
|
clip-path: circle(50%);
|
|
}
|
|
|
|
.Tile-Shape {
|
|
display: flex;
|
|
position: absolute;
|
|
left: 0px;
|
|
right: 0px;
|
|
top: 0px;
|
|
bottom: 0px;
|
|
clip-path: polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%);
|
|
}
|
|
|
|
.Option {
|
|
cursor: pointer;
|
|
pointer-events: all;
|
|
filter: brightness(150%);
|
|
}
|
|
|
|
.Robber .Pip-Shape,
|
|
.Pip-Shape:hover {
|
|
clip-path: circle(45%); /* show through the border */
|
|
background-color:#e7c099;
|
|
background-size: contain;
|
|
background-position: center;
|
|
background-image:url("./assets/woman-robber.png");
|
|
}
|
|
|
|
.Tile-Shape:hover,
|
|
.Corner-Shape:hover,
|
|
.Road-Shape:hover {
|
|
/* background-color: white;*/
|
|
filter: brightness(150%);
|
|
|
|
}
|
|
|
|
.Board .Selected {
|
|
background-color: rgba(0, 0, 0, 1);
|
|
box-shadow: 5px 5px 5px black;
|
|
}
|
|
|
|
[data-color='R'] > .Corner-Shape,
|
|
[data-color='R'] > .Road-Shape {
|
|
background-color: rgba(255, 0, 0, 1);
|
|
}
|
|
|
|
[data-color='O'] > .Corner-Shape,
|
|
[data-color='O'] > .Road-Shape {
|
|
background-color: rgba(255, 196, 0, 1);
|
|
}
|
|
|
|
[data-color='W'] > .Corner-Shape,
|
|
[data-color='W'] > .Road-Shape {
|
|
background-color: rgba(255, 255, 255, 1);
|
|
}
|
|
|
|
[data-color='B'] > .Corner-Shape,
|
|
[data-color='B'] > .Road-Shape {
|
|
background-color: rgba(0, 0, 255, 1);
|
|
} |