2026.camp.carte/css/style.css

357 lines
6.4 KiB
CSS

body, html {
padding: 0;
margin: 0;
}
body {
pointer-events: none;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: stretch;
min-height: 100vh;
}
body > * {
pointer-events: all;
}
body > hr {
border: none;
padding: 0;
margin: 0;
flex: 1;
min-height: 50vh;
flex-shrink: 0;
pointer-events: none;
}
/* HEADER and NAV */
#main-header {
display: flex;
justify-content: start;
align-items: stretch;
flex-direction: row;
background: radial-gradient(black, transparent 50%);
background-size: 40rem 20rem;
background-repeat: no-repeat;
background-position: -15rem -10rem;
padding: 15px;
padding-bottom: 30px;
pointer-events: none;
& > * {
pointer-events: all;
}
}
@media screen and (max-width: 600px) {
#main-header {
flex-direction: column;
align-items: center;
background: linear-gradient(to bottom, black, transparent);
}
}
#main-header #logo {
max-height: clamp(2rem, 10vh, 5rem);
filter: drop-shadow(rgba(0,0,0,0.5) 0 0 10px);
}
/* MAP */
#map {
width: 100vw;
height: 100vh;
position: fixed;
top: 0;
left: 0;
z-index: -1;
}
.leaflet-container .leaflet-control-attribution {
background: rgba(0, 0, 0, 0.5);
color: white;
padding: 5px;
border-bottom-left-radius: 5px;
& a {
color: inherit;
text-decoration: underline;
}
}
#map .highlight-point-icon > * {
width: fit-content;
height: fit-content;
transform: translateX(-50%) translateY(-50%);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
position: relative;
}
#map .highlight-point-icon > a {
text-decoration: none;
color: inherit;
}
#map .highlight-point-icon h3 {
width: max-content;
max-width: min(25vw, 100px);
text-align: center;
margin: 0;
color: white;
font-size: 1em;
line-height: 1;
--outline-size: 1px;
text-shadow: 0px var(--outline-size) 0px var(--symbol-border-color),
var(--outline-size) 0px 0px var(--symbol-border-color),
var(--outline-size) var(--outline-size) 0px var(--symbol-border-color),
calc(var(--outline-size) * -1) calc(var(--outline-size) * -1) 0px var(--symbol-border-color),
0px calc(var(--outline-size) * -1) 0px var(--symbol-border-color),
calc(var(--outline-size) * -1) 0px 0px var(--symbol-border-color)
;
opacity: clamp(0, calc( var(--zoom-level) - 18 ), 1) ;
}
#map .highlight-point-icon img ~ h3 {
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%) translateY(100%);
margin-top: 1ex;
}
#map .highlight-point-icon:not(.active) {
opacity: 0;
pointer-events: none;
}
.map-amenity-icon .map-amenity-icon-container {
transform: translateX(-50%) translateY(-50%);
width: fit-content;
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(2, min-content);
justify-content: center;
align-items: center;
gap: 5px;
& > img {
width: 2rem;
transform: scale( clamp(0.5, calc( var(--zoom-level) - 19 ), 1) );
transform-origin: 50% 50%;
}
& > * {
opacity: clamp(0, calc( var(--zoom-level) - 19 ), 1) ;
}
& > .drinking-water {
grid-row: 1;
grid-column: 1;
opacity: clamp(0, calc( var(--zoom-level) - 18 ), 1) ;
}
&.active > * {
opacity: 1;
}
}
#map .center-marker img {
width: min(50vw, 200px);
transform: translateX(-50%) translateY(-50%);
filter: drop-shadow(0 0 10px black);
opacity: clamp(0, calc( 1 - ( var(--zoom-level) - 12 ) ), 1) ;
pointer-events: none;
}
#map .map-hilight-area:not(.active) {
opacity: 0;
}
/* SAERCH FORM */
#search-section {
border: solid 10px black;
border-image: url("../assets/button-stepped-border-image.svg") 16 15 fill;
z-index: 100;
margin-bottom: 5px;
margin-left: 5px;
width: fit-content;
max-width: 100%;
background: black;
background-clip: content-box;
color: white;
display: grid;
grid-template-columns: min-content 1fr;
grid-template-rows: 1fr;
}
#search-section:has( ~ dialog:not([open])) {
position: fixed;
bottom: 5px;
left: 5px;
}
#search-section input {
background: black;
font-size: 1em;
color: inherit;
font-family: monospace;
border: none;
padding: 1ex;
grid-column: 2;
grid-row: 1;
}
#search-section button {
background: transparent;
border: none;
padding: 1ex;
grid-column: 1;
grid-row: 1;
cursor: pointer;
}
#search-section label {
grid-column: 2;
grid-row: 1;
padding: 1ex;
align-self: flex-end;
}
#search-section button img {
height: 1.5em;
}
/* PANEL */
#result-panel-dialog {
display: block;
position: relative;
padding: 0;
margin: 0;
border: none;
width: 100%;
}
#result-panel-dialog:not([open]) {
display: none;
}
#result-panel-dialog #close-result-panel-btn {
position: sticky;
top: 0px;
right: 0px;
padding: 15px;
border: none;
background: none;
cursor: pointer;
z-index: 100;
margin-left: auto;
margin-bottom: calc( ( 1.5em + 30px ) * -1);
display: block;
}
#close-result-panel-btn img {
height: 1.5em;
display: block;
}
#result-panel {
background: black;
border-image: url("../assets/neon-border-image.svg") 12;
border-top: 5.5px white solid;
color: white;
}
#result-panel > * {
padding: 1em;
margin: 0;
}
#result-panel::part(navigation-panel) {
background: black;
color: white;
box-shadow: 0 0 10px black;
border-top: solid 1px rgba(255, 255, 255, 0.5);
}
#result-panel::part(dot),
#result-panel::part(dot-active) {
border-radius: 0;
width: 1ex;
height: 1ex;
margin-top: 0.5ex;
}
#result-panel::part(dot-active) {
transform-origin: 0% 100%;
transform: scaleX(1) scaleY(1.5);
}
camp-feature-short-header {
display: grid;
grid-template-rows: 1fr min-content;
grid-template-columns: 3em 1fr;
gap: 0.5ex 0.5em;
vertical-align: center;
}
camp-feature-short-header .feature-legend {
grid-row: 1 / 3;
height: 3em;
align-self: flex-start;
}
camp-feature-short-header h2 {
margin: 0;
padding: 0;
font-size: 1em;
font-weight: bold;
}
camp-feature-short-header .feature-location {
margin: 0;
padding: 0;
font-size: 0.6em;
opacity: 0.75;
}
#search-result {
list-style-type: none;
}
#search-result > li:not(:first-child) {
margin-top: 1em;
}
#search-result > li:not(:last-child) {
margin-bottom: 1em;
}
#search-result > li > a {
text-decoration: none;
color: inherit;
}
/* FEATURE */
camp-feature {
min-height: 25vh;
}