.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 */ 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%); 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; } .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); } */