leaky-ships/leaky-ships/styles/App.scss

229 lines
No EOL
3.5 KiB
SCSS

@use './mixins/display' as *;
@use './mixins/effects' as *;
@import './mixins/variables';
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
* {
padding: 0;
margin: 0;
}
.App {
text-align: center;
}
.App-logo {
height: 40vmin;
pointer-events: none;
}
.App-header {
background-color: $theme;
min-height: 100vh;
font-size: calc(10px + 2vmin);
color: white;
}
.App-link {
color: #61dafb;
}
@keyframes App-logo-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
#gamefield {
@include flex-col;
align-items: center;
justify-content: space-evenly;
height: 100vh;
}
#game-frame {
// $height: 864px;
$height: 648px;
$width: $height;
height: $height;
width: $width;
max-height: 100vw;
max-width: 100vw;
display: grid;
align-items: center;
justify-items: center;
grid-template-rows: .75fr repeat(12, 1fr) .75fr;
grid-template-columns: .75fr repeat(12, 1fr) .75fr;
>.label {
grid-column: var(--x);
grid-row: var(--y);
}
>.border-tile {
box-sizing: border-box;
border: 1px solid blue;
height: 100%;
width: 100%;
grid-column: var(--x);
grid-row: var(--y);
&.edge {
border: 1px solid gray;
}
@include gradient-edge;
}
> :not(.border) {
box-sizing: border-box;
}
>span {
vertical-align: center;
user-select: none;
}
.ship {
height: 100%;
width: 100%;
position: relative;
@include flex-col;
align-items: center;
grid-row: var(--x);
pointer-events: none;
img {
@include pixelart;
position: absolute;
// height: 90%;
width: 90%;
// object-fit: cover;
}
&.s2 {
grid-column: 3 / 5;
}
&.s3 {
grid-column: 3 / 6;
}
&.s4 {
grid-column: 3 / 7;
}
}
.hit-svg {
// border: 2px solid blue;
// height: 50px;
// width: 50px;
height: 100%;
width: 100%;
position: relative;
@include flex;
// align-items: center;
// align-self: center;
// justify-self: center;
grid-column: var(--x);
grid-row: var(--y);
pointer-events: none;
svg {
position: absolute;
height: 100%;
width: 100%;
box-sizing: border-box;
padding: 25%;
&.fa-burst {
color: red;
}
}
&.target {
color: red;
opacity: 0;
}
&.target-preview {
color: orange;
opacity: 0;
@include transition(.5s);
}
&.show {
opacity: 1;
}
}
.r2 {
border: 2px solid green;
}
.r3 {
border: 2px solid yellowgreen;
}
.fog {
width: inherit;
pointer-events: none;
&.left {
grid-area: 1 / 1 / -1 / -1;
align-self: flex-start;
transform: rotate(180deg);
}
&.right {
grid-area: 1 / 1 / -1 / -1;
align-self: flex-end;
}
&.middle {
grid-area: 4 / 4 / -4 / -4;
}
}
}
.event-bar {
@include flex-row;
padding: 1rem 3rem;
background-color: #fff9;
border-radius: 1rem;
.item {
@include flex-col;
align-items: center;
gap: .5rem;
width: 128px;
img {
width: 64px;
padding: 8px;
@include pixelart;
background-color: white;
border-radius: 1rem;
}
span {
color: black;
font-size: .75em;
font-weight: bold;
}
}
}