mirror of
https://github.com/danbee/chess
synced 2025-03-04 08:39:06 +00:00
176 lines
3.1 KiB
SCSS
176 lines
3.1 KiB
SCSS
@mixin move-indicator {
|
|
border-radius: 50%;
|
|
content: "";
|
|
display: block;
|
|
height: 1.5%;
|
|
position: absolute;
|
|
right: 3%;
|
|
width: 1.5%;
|
|
}
|
|
|
|
.board__container {
|
|
grid-area: board;
|
|
}
|
|
|
|
.board {
|
|
background: $background-color;
|
|
border-collapse: unset;
|
|
border-radius: 2.8%;
|
|
border-spacing: 1px;
|
|
color: $foreground-color;
|
|
height: var(--board-size);
|
|
padding: calc(var(--board-size) / 20);
|
|
position: relative;
|
|
width: var(--board-size);
|
|
}
|
|
|
|
.board--white-to-move,
|
|
.board--black-to-move {
|
|
&::before {
|
|
@include move-indicator;
|
|
background: $foreground-color;
|
|
}
|
|
}
|
|
|
|
.board--player-is-white.board--white-to-move,
|
|
.board--player-is-black.board--black-to-move {
|
|
&::before {
|
|
bottom: 3%;
|
|
}
|
|
}
|
|
|
|
.board--player-is-white.board--black-to-move,
|
|
.board--player-is-black.board--white-to-move {
|
|
&::before {
|
|
top: 3%;
|
|
}
|
|
}
|
|
|
|
.board__rank-labels,
|
|
.board__file-labels {
|
|
display: none;
|
|
}
|
|
|
|
.board--player-is-white {
|
|
.board__rank-labels {
|
|
display: flex;
|
|
flex-direction: column-reverse;
|
|
}
|
|
|
|
.board__file-labels {
|
|
display: flex;
|
|
flex-direction: row;
|
|
}
|
|
|
|
.board__body {
|
|
flex-direction: column-reverse;
|
|
}
|
|
|
|
.board__row {
|
|
flex-direction: row;
|
|
}
|
|
}
|
|
|
|
.board--player-is-black {
|
|
.board__rank-labels {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.board__file-labels {
|
|
display: flex;
|
|
flex-direction: row-reverse;
|
|
}
|
|
|
|
.board__body {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.board__row {
|
|
flex-direction: row-reverse;
|
|
}
|
|
}
|
|
|
|
.board__body {
|
|
background: $background-color;
|
|
border: 0.25rem solid $foreground-color;
|
|
border-radius: calc(var(--board-size) / 100);
|
|
display: flex;
|
|
flex-direction: column;
|
|
height: 100%;
|
|
padding: 1%;
|
|
width: 100%;
|
|
}
|
|
|
|
.board__row {
|
|
display: flex;
|
|
flex-grow: 1;
|
|
|
|
@include odd-between(1, 8) {
|
|
.square {
|
|
@include odd-between(1, 8) { @extend %square--black; }
|
|
@include even-between(1, 8) { @extend %square--white; }
|
|
}
|
|
}
|
|
@include even-between(1, 8) {
|
|
.square {
|
|
@include odd-between(1, 8) { @extend %square--white; }
|
|
@include even-between(1, 8) { @extend %square--black; }
|
|
}
|
|
}
|
|
}
|
|
|
|
.board__rank-labels {
|
|
display: none;
|
|
height: 90%;
|
|
left: 0;
|
|
position: absolute;
|
|
width: 5%;
|
|
}
|
|
|
|
.board__file-labels {
|
|
display: none;
|
|
height: 5%;
|
|
position: absolute;
|
|
top: 0;
|
|
width: 90%;
|
|
}
|
|
|
|
.board__label {
|
|
align-items: center;
|
|
display: flex;
|
|
flex-grow: 1;
|
|
font-size: calc(0.25rem + (var(--board-size) / 50));
|
|
justify-content: center;
|
|
}
|
|
|
|
@media (max-aspect-ratio: 9/11) and (max-width: 640px),
|
|
(max-aspect-ratio: 9/11) and (max-height: 640px),
|
|
(min-aspect-ratio: 9/11) and (max-width: 720px),
|
|
(min-aspect-ratio: 9/11) and (max-height: 720px) {
|
|
.board__body {
|
|
border-width: 0.1875rem;
|
|
}
|
|
}
|
|
|
|
@media (max-aspect-ratio: 9/11) and (max-width: 480px),
|
|
(max-aspect-ratio: 9/11) and (max-height: 480px),
|
|
(min-aspect-ratio: 9/11) and (max-width: 560px),
|
|
(min-aspect-ratio: 9/11) and (max-height: 560px) {
|
|
.board__body {
|
|
border-width: 0.125rem;
|
|
}
|
|
}
|
|
|
|
@media (min-width: 480px) {
|
|
.board__body {
|
|
grid-gap: 1px;
|
|
}
|
|
}
|
|
|
|
@media (min-width: 768px) {
|
|
.board__body {
|
|
grid-gap: 2px;
|
|
}
|
|
}
|