Files
spot/src/styles/_page.project.panel.scss
Franzz badae8a3a0
All checks were successful
Deploy Spot / deploy (push) Successful in 34s
Sort out panel CSS
2026-05-26 17:25:21 +02:00

169 lines
3.3 KiB
SCSS

@use "@styles/common";
@use "@styles/var";
@use "@styles/color";
$panel-width: 30vw;
$panel-width-max: "400px + 3 * #{var.$block-spacing}";
$panel-actual-width: min($panel-width, #{$panel-width-max});
.projects {
&.with-left-panel, &.with-right-panel {
#title {
max-width: calc(100vw - var.$block-spacing - $panel-actual-width - (var.$button-width + var.$block-spacing * 2) * 2);
}
}
&.with-left-panel {
#submap {
transform: translateX(calc($panel-actual-width / 2));
}
.panel.panel-left {
transform: translateX(0);
}
}
&.with-right-panel {
#submap {
transform: translateX(calc($panel-actual-width / -2));
}
#map .maplibregl-ctrl-bottom-right {
transform: translateX(calc($panel-actual-width * -1));
}
.panel.panel-right {
transform: translateX(calc(100vw - $panel-actual-width));
}
}
&.with-right-panel.with-left-panel {
#submap {
transform: translateX(0);
}
#title {
max-width: calc(100vw - var.$block-spacing - $panel-actual-width * 2 - (var.$button-width + var.$block-spacing * 2) * 2);
}
}
.panel {
position: absolute;
top: 0;
bottom: 0;
z-index: 1;
user-select: none;
width: #{$panel-width};
max-width: calc(#{$panel-width-max});
transition: transform 0.5s;
&.moving {
cursor: grabbing;
transition: none;
}
&.panel-left {
transform: translateX(-100%);
.panel-content {
width: calc(100% - var.$block-spacing);
margin: var.$block-spacing;
border-radius: var.$block-radius;
color: color.$default;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
}
.panel-control {
left: calc(100% + var.$block-spacing);
}
}
&.panel-right {
transform: translateX(100vw);
.panel-content {
width: 100%;
padding-top: var.$block-spacing;
}
.panel-control {
right: calc(100% + var.$block-spacing);
}
}
.panel-content {
position: absolute;
top: 0;
bottom: 0;
left: 0;
input, textarea {
background-color: color.$post-input-bg;
color: color.$post;
outline: none;
}
button, a.button {
background-color: color.$default-inv-bg;
color: color.$default-inv;
&:hover, &:hover a, &:hover a:visited {
background-color: color.$default-bg;
color: color.$default;
}
a, a:visited {
background-color: color.$default-inv-bg;
color: color.$default-inv;
text-decoration: none;
}
}
}
}
.panel-control {
position: absolute;
background-color: color.$default-bg;
padding: var.$elem-spacing;
border-radius: var.$block-radius;
box-shadow: var.$map-shadow;
font-size: 12px;
line-height: 1.5;
&.panel-control-top {
top: var.$block-spacing;
}
&.panel-control-bottom {
bottom: var.$block-spacing;
}
&.panel-control-icon {
cursor: pointer;
.spot-icon {
color: color.$default;
}
&:active {
background-color: color.$default-inv-bg;
.spot-icon {
color: color.$default-inv;
}
}
@media (hover: hover) and (pointer: fine) {
&:hover {
background-color: color.$default-inv-bg;
.spot-icon {
color: color.$default-inv;
}
}
}
}
}
}