300 lines
6.0 KiB
CSS
300 lines
6.0 KiB
CSS
.Board {
|
|
display: flex;
|
|
align-self: stretch;
|
|
flex: 1;
|
|
align-items: stretch;
|
|
}
|
|
|
|
/* Offset 'BorderBox' such that 0,0 is the center
|
|
* of 'Board' */
|
|
.BoardBox {
|
|
position: absolute;
|
|
left: 50%;
|
|
top: 50%;
|
|
}
|
|
|
|
.Board .Tile {
|
|
z-index: 5; /* Below Road and Corner */
|
|
position: absolute;
|
|
background-position-y: 0px;
|
|
background-size: cover;
|
|
transform: translate(-50%, -50%) rotate(-30deg);
|
|
}
|
|
|
|
.Tile.Active {
|
|
z-index: 10; /* Above non-Active Tile, below Road and Corner */
|
|
filter: drop-shadow(0px 0px 12px black);
|
|
}
|
|
|
|
.Border {
|
|
position: absolute;
|
|
transform-origin: 0 0;
|
|
background-size: cover;
|
|
}
|
|
|
|
.Pip {
|
|
z-index: 50; /* Above Tile (5,10), Road (12), Corner (20) */
|
|
position: absolute;
|
|
background-size: 600% auto; /* pip-numbers is a 6x6 grid of pip images */
|
|
width: 40px;
|
|
height: 40px;
|
|
transform: translate(-50%, -50%);
|
|
}
|
|
|
|
.Pip.Option {
|
|
filter: brightness(150%);
|
|
}
|
|
|
|
.Pip.Active {
|
|
filter: drop-shadow(0px 0px 10px rgba(255, 0, 255, 1));
|
|
}
|
|
|
|
|
|
.Pip.Option:hover,
|
|
.Pip:hover {
|
|
filter: brightness(100%);
|
|
}
|
|
|
|
.Pip.Active:hover {
|
|
filter: drop-shadow(0px 0px 10px rgba(255, 0, 255, 1));
|
|
}
|
|
|
|
|
|
.Pip.Active.Option {
|
|
filter: brightness(150%) drop-shadow(0px 0px 10px rgba(255, 0, 255, 1));
|
|
}
|
|
|
|
|
|
.Pips[disabled],
|
|
.Tiles[disabled],
|
|
.Roads[disabled],
|
|
.Corners[disabled] {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.Board .Corner {
|
|
filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.75));
|
|
z-index: 20; /* Above Tile, below Road */
|
|
position: absolute;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-items: center;
|
|
box-sizing: border-box;
|
|
width: 25px;
|
|
height: 25px;
|
|
transform: translate(-50%, -50%);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.Corner-Shape {
|
|
display: flex;
|
|
position: absolute;
|
|
left: 0px;
|
|
right: 0px;
|
|
top: 0px;
|
|
bottom: 0px;
|
|
}
|
|
|
|
.Corner:not([data-type]) .Corner-Shape,
|
|
.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%);
|
|
}
|
|
|
|
.Board .Road {
|
|
position: absolute;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-items: center;
|
|
box-sizing: border-box;
|
|
width: 10px;
|
|
height: 50px;
|
|
transform-origin: 50% 0;
|
|
z-index: 11; /* Above Tile, below Corner */
|
|
}
|
|
|
|
.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%);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.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%);
|
|
}
|
|
|
|
.Board div[disabled] .Option {
|
|
cursor: pointer;
|
|
pointer-events: none;
|
|
}
|
|
|
|
@keyframes blink {
|
|
from {
|
|
filter: brightness(90%) drop-shadow(0 0 5px black);
|
|
opacity: 0.8;
|
|
}
|
|
|
|
to {
|
|
filter: brightness(100%) drop-shadow(0 0 10px black);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.Board .Option {
|
|
cursor: pointer;
|
|
pointer-events: all;
|
|
filter: brightness(150%) drop-shadow(0 0 10px black);
|
|
|
|
transition-timing-function: ease-in-out;
|
|
animation-duration: 0.5s;
|
|
animation-name: blink;
|
|
animation-iteration-count: infinite;
|
|
animation-direction: alternate;
|
|
}
|
|
|
|
.Tile-Shape:hover,
|
|
.Corner-Shape:hover,
|
|
.Road-Shape:hover {
|
|
background-color: white !important;
|
|
}
|
|
|
|
.Board .Option .Tile-Shape,
|
|
.Board .Option .Corner-Shape,
|
|
.Board .Option .Road-Shape {
|
|
background-color: rgb(185, 185, 185);
|
|
}
|
|
|
|
.Robber .Pip-Shape {
|
|
top: -40px;
|
|
left: -40px;
|
|
clip-path: circle(50%);
|
|
transform: scale(0.45);
|
|
background-color: floralwhite;
|
|
background-size: contain;
|
|
background-position: center;
|
|
border: 4px solid #8c471f;
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.Roberta .Pip-Shape:hover,
|
|
.Roberta .Pip-Shape {
|
|
background-image:url("./assets/woman-robber.png");
|
|
}
|
|
|
|
.Robert .Pip-Shape:hover,
|
|
.Robert .Pip-Shape {
|
|
background-image:url("./assets/man-robber.png");
|
|
}
|
|
|
|
.Velocirobber .Pip-Shape {
|
|
background-image:url("./assets/raptor-robber.png");
|
|
}
|
|
|
|
.Road.LongestRoad .Road-Shape {
|
|
filter: brightness(135%);
|
|
transform: scale(1.05);
|
|
}
|
|
|
|
.Road[data-longest="1"],
|
|
.Road[data-longest="2"],
|
|
.Road[data-longest="3"],
|
|
.Road[data-longest="4"] {
|
|
filter: drop-shadow(0px 0px 2.5px black);
|
|
}
|
|
|
|
.Road[data-longest="5"] {
|
|
filter: brightness(110%) drop-shadow(0px 0px 5px black);
|
|
}
|
|
.Road[data-longest="6"] {
|
|
filter: brightness(120%) drop-shadow(0px 0px 6px black);
|
|
}
|
|
.Road[data-longest="7"] {
|
|
filter: brightness(130%) drop-shadow(0px 0px 7px black);
|
|
}
|
|
.Road[data-longest="8"] {
|
|
filter: brightness(140%) drop-shadow(0px 0px 8px black);
|
|
}
|
|
.Road[data-longest="9"] {
|
|
filter: brightness(150%) drop-shadow(0px 0px 9px black);
|
|
}
|
|
.Road[data-longest="10"],
|
|
.Road[data-longest="11"],
|
|
.Road[data-longest="12"],
|
|
.Road[data-longest="13"],
|
|
.Road[data-longest="14"],
|
|
.Road[data-longest="15"] {
|
|
filter: brightness(160%) drop-shadow(0px 0px 10px black);
|
|
}
|
|
|
|
.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: rgb(255, 128, 0);
|
|
}
|
|
|
|
[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);
|
|
}
|
|
|
|
/*
|
|
|
|
.Option[data-color='R'] > .Corner-Shape,
|
|
.Option[data-color='R'] > .Road-Shape {
|
|
background-color: rgba(255, 188, 188, 0.8);
|
|
}
|
|
|
|
.Option[data-color='O'] > .Corner-Shape,
|
|
.Option[data-color='O'] > .Road-Shape {
|
|
background-color: rgba(255, 224, 162, 0.8);
|
|
}
|
|
|
|
.Option[data-color='W'] > .Corner-Shape,
|
|
.Option[data-color='W'] > .Road-Shape {
|
|
background-color: rgba(122, 122, 122, 0.8);
|
|
}
|
|
|
|
.Option[data-color='B'] > .Corner-Shape,
|
|
.Option[data-color='B'] > .Road-Shape {
|
|
background-color: rgba(192, 192, 255, 0.8);
|
|
}
|
|
*/
|
|
|