Files
Projet_48h/web/assets/css/game.css
2026-03-31 13:38:24 +02:00

297 lines
5.8 KiB
CSS

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html,
body {
width: 100vw;
height: 100vh;
overflow: hidden;
}
body {
background: #f7f7f7;
display: flex;
align-items: center;
justify-content: center;
font-family: 'Arial', sans-serif;
user-select: none;
}
main {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 20px;
border-radius: 10px;
min-width: fit-content;
flex-shrink: 0;
gap: 16px;
}
.game-layout {
width: min(95vw, 1000px);
}
.toolbox {
width: 100%;
background: #dfe5f8;
border-radius: 10px;
padding: 14px;
display: flex;
flex-direction: column;
gap: 10px;
}
.toolbox h2 {
font-size: 1rem;
}
.toolbox p {
font-size: 0.9rem;
color: #334;
}
.glass-palette {
display: flex;
gap: 10px;
flex-wrap: wrap;
}
/* ================================
GRID
================================ */
.map {
display: flex;
flex-direction: column;
gap: 0px;
padding: 10px;
background: #DADEEF;
border-radius: 5px;
}
.lign {
display: flex;
gap: 0px;
margin: 0;
}
/* ================================
CELLS
================================ */
.cell {
width: clamp(28px, 5.5vmin, 60px);
height: clamp(28px, 5.5vmin, 60px);
transition: all 0.2s ease;
display: flex;
align-items: center;
justify-content: center;
margin: 0;
position: relative;
background-color: #2a2a2a;
user-select: none;
overflow: hidden;
}
.cell.can-drop {
outline: 2px dashed rgba(0, 0, 0, 0.2);
}
/* ================================
CASES TYPE
================================ */
.empty {
background-color: #DADEEF;
}
.empty:hover {
background-color: #333333;
}
.laser {
background-color: #DADEEF;
background-image: url("../img/tiles/Laser.svg");
background-size: 80%;
background-repeat: no-repeat;
background-position: center;
transform: rotate(180deg);
}
.colored-laser {
background-color: #DADEEF;
background-image: url("../img/tiles/Prisme.svg");
background-size: 80%;
background-repeat: no-repeat;
background-position: center;
}
.mirror {
background-color: #DADEEF;
position: relative;
overflow: hidden;
}
.wall {
background-color: #DADEEF;
background-image: url("../img/tiles/Tuile.svg");
background-size: 100%;
background-repeat: no-repeat;
background-position: center;
}
.door {
background-color: #DADEEF;
background-image: url("../img/tiles/WoodenDoor.svg");
transform: rotate(90deg);
background-size: 100%;
background-repeat: no-repeat;
background-position: center;
}
.door-open {
opacity: 0.5;
}
.button {
background-color: #DADEEF;
background-image: url("../img/tiles/ButtonComplete.svg"), url("../img/tiles/Tuile.svg");
background-size: 100% 100%;
background-repeat: no-repeat;
background-position: center;
}
.button-active {
opacity: 0.7;
}
.demi-wall {
background-color: #DADEEF;
background-image: url("../img/tiles/VerticaleSemi.svg");
background-size: 100%;
background-repeat: no-repeat;
background-position: center;
}
.target {
background-color: #DADEEF;
background-image: url("../img/tiles/Trigger.svg");
background-size: 80%;
background-repeat: no-repeat;
background-position: center;
}
.demi-wall-corner-up-left {
background-color: #DADEEF;
background-image: url("../img/tiles/TopLeft.svg");
background-size: 100%;
background-repeat: no-repeat;
background-position: center;
}
.demi-wall-corner-up-right {
background-color: #DADEEF;
background-image: url("../img/tiles/TopRight.svg");
background-size: 100%;
background-repeat: no-repeat;
background-position: center;
}
.demi-wall-corner-down-left {
background-color: #DADEEF;
background-image: url("../img/tiles/BottomLeft.svg");
background-size: 100%;
background-repeat: no-repeat;
background-position: center;
}
.demi-wall-corner-down-right {
background-color: #DADEEF;
background-image: url("../img/tiles/BottomRight.svg");
background-size: 100%;
background-repeat: no-repeat;
background-position: center;
}
/* ================================
LIGHT LASER
================================ */
.light-laser {
position: relative;
}
.laser-horizontal {
background: linear-gradient(to bottom, transparent 0%, transparent 45%, red 45%, red 55%, transparent 55%, transparent 100%), #DADEEF
}
.laser-vertical {
background: linear-gradient(to right, transparent 0%, transparent 45%, red 45%, red 55%, transparent 55%, transparent 100%), #DADEEF;
}
.laser-diagonal-down {
background: linear-gradient(45deg, transparent 0%, transparent 46%, red 46%, red 54%, transparent 54%, transparent 100%), #DADEEF;
}
.laser-diagonal-up {
background: linear-gradient(135deg, transparent 0%, transparent 46%, red 46%, red 54%, transparent 54%, transparent 100%), #DADEEF;
}
/* ================================
MIRROR
================================ */
.btn-mirror {
background: none;
border: none;
cursor: pointer;
height: 100%;
width: 100%;
position: relative;
display: flex;
align-items: center;
justify-content: center;
}
.mirror-img {
width: 80%;
height: 80%;
object-fit: contain;
}
.button-door {
background: none;
border: none;
cursor: pointer;
width: 100%;
height: 100%;
position: absolute;
inset: 0;
}
/* ================================
RESPONSIVE
================================ */
@media (max-width: 600px) {
.map {
padding: 5px;
border-radius: 3px;
}
main {
padding: 8px;
}
}
@media (max-height: 500px) {
.map {
padding: 4px;
}
}