mirror of
https://forge.chapril.org/tykayn/libre-charge-map
synced 2025-06-20 01:34:43 +02:00
887 lines
No EOL
13 KiB
SCSS
887 lines
No EOL
13 KiB
SCSS
:root {
|
|
--background-color: #222;
|
|
--text-color: #ddd;
|
|
--icon-background: white;
|
|
--icon-border: cornflowerblue;
|
|
--button-background: #497cd3;
|
|
--button-hover-background: #0d377b;
|
|
--button-border: #497cd3ff;
|
|
--link-color: #38f;
|
|
--popup-background: white;
|
|
--zoom-message-background: rgba(255, 255, 255, 0.9);
|
|
--zoom-message-border: #ff0000;
|
|
--color-indication-background: #c0b1b1;
|
|
--no-data-border: dodgerblue;
|
|
--no-data-link-color: dodgerblue;
|
|
--food-marker-color: #fff;
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
html {
|
|
height: 100%;
|
|
width: 100%;
|
|
background: var(--background-color);
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
body {
|
|
height: 100%;
|
|
width: 100%;
|
|
background: var(--background-color);
|
|
padding: 0;
|
|
margin: 0;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
html {
|
|
font-family: Calibri, Roboto, Arial, "Ubuntu Mono";
|
|
font-size: 1rem;
|
|
}
|
|
|
|
p {
|
|
font-family: Calibri, Roboto, Arial, "Ubuntu Mono";
|
|
font-size: 1rem;
|
|
font-size: 1rem;
|
|
}
|
|
|
|
#map {
|
|
height: 95vh;
|
|
width: 100%;
|
|
margin: 0;
|
|
border: solid 2px;
|
|
}
|
|
|
|
|
|
table {
|
|
tr {
|
|
td {
|
|
border-bottom: #ccc 1px solid;
|
|
|
|
}
|
|
}
|
|
|
|
tr:nth-of-type(odd) {
|
|
background: #dedede;
|
|
}
|
|
}
|
|
|
|
|
|
.padded {
|
|
padding: 1rem;
|
|
}
|
|
|
|
#heading {
|
|
background: #000;
|
|
color: var(--text-color);
|
|
min-height: 5%;
|
|
height: 4rem;
|
|
width: 100%;
|
|
padding-left: 1em;
|
|
}
|
|
|
|
.icon {
|
|
width: 0.25rem !important;
|
|
height: 0.25rem !important;
|
|
display: inline-block;
|
|
margin-right: 1rem;
|
|
background: var(--icon-background);
|
|
border-radius: 100%;
|
|
padding: 0.25rem;
|
|
margin-top: -0.5rem;
|
|
float: left;
|
|
border-color: var(--icon-border);
|
|
}
|
|
|
|
.title {
|
|
margin-right: 1em;
|
|
line-height: 1.5rem;
|
|
}
|
|
|
|
h2 {
|
|
font-weight: normal;
|
|
}
|
|
|
|
#overpass-api-controls {
|
|
position: fixed;
|
|
top: -0.5rem;
|
|
left: 4em;
|
|
padding: 10px;
|
|
background-color: transparent;
|
|
border: 0;
|
|
z-index: 10;
|
|
|
|
a {
|
|
display: inline;
|
|
}
|
|
}
|
|
|
|
.has_output_of_irve_specified {
|
|
box-shadow: 0 0 15rem darkred;
|
|
}
|
|
|
|
img.leaflet-marker-icon.tag-socket\:type2_yes {
|
|
box-shadow: 0 0 0.5em cornflowerblue;
|
|
border-color: cornflowerblue;
|
|
border-width: 3px;
|
|
}
|
|
|
|
.rounded-button,
|
|
.navigation-link,
|
|
.panoramax-link,
|
|
.edit-button {
|
|
background: var(--button-background);
|
|
padding: 0.5em 1em;
|
|
border-radius: 2em;
|
|
color: white !important;
|
|
border: solid 1px var(--button-border);
|
|
float: right;
|
|
}
|
|
|
|
.panoramax-link {
|
|
top: 7rem;
|
|
position: absolute;
|
|
right: 1rem;
|
|
|
|
img {
|
|
width: 1rem;
|
|
height: 1rem;
|
|
}
|
|
}
|
|
|
|
.side-panel button {
|
|
min-width: 2em;
|
|
margin-bottom: 0.5em;
|
|
}
|
|
|
|
.navigation-link {
|
|
background: white;
|
|
border-radius: 0.25em;
|
|
float: none;
|
|
position: relative;
|
|
top: 5em;
|
|
right: -7.9rem;
|
|
|
|
&:hover {
|
|
border: black;
|
|
background: #96b1ea;
|
|
}
|
|
}
|
|
|
|
button:hover {
|
|
background: var(--button-hover-background);
|
|
border: solid 1px #08285c;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.edit-button {
|
|
&:hover {
|
|
background: var(--button-hover-background);
|
|
border: solid 1px #08285c;
|
|
cursor: pointer;
|
|
}
|
|
|
|
margin-left: 1ch;
|
|
}
|
|
|
|
.pull-left {
|
|
float: left;
|
|
}
|
|
|
|
@keyframes spin {
|
|
0% {
|
|
transform: rotate(0deg);
|
|
}
|
|
|
|
100% {
|
|
transform: rotate(359deg);
|
|
}
|
|
}
|
|
|
|
a {
|
|
color: var(--link-color);
|
|
}
|
|
|
|
.leaflet-control-custom {
|
|
padding: 1rem;
|
|
background: var(--popup-background);
|
|
}
|
|
|
|
#spinning_icon {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
z-index: 10;
|
|
background: white;
|
|
font-size: 2rem;
|
|
|
|
svg {
|
|
position: fixed;
|
|
top: 0.5rem;
|
|
right: 3rem;
|
|
background: white;
|
|
border-radius: 100%;
|
|
width: 3rem;
|
|
height: 3rem;
|
|
animation: spin 2s linear infinite;
|
|
}
|
|
}
|
|
|
|
#footer {
|
|
max-width: 70ch;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.leaflet-popup-content {
|
|
min-width: 15rem;
|
|
word-break: break-all;
|
|
word-wrap: break-word;
|
|
}
|
|
|
|
.popup-content {
|
|
width: 100%;
|
|
display: block;
|
|
overflow: auto;
|
|
min-width: 10rem;
|
|
max-width: 20rem;
|
|
min-height: 5rem;
|
|
max-height: 10rem;
|
|
}
|
|
|
|
.popup-key {
|
|
width: 50%;
|
|
display: inline-block;
|
|
}
|
|
|
|
.popup-value {
|
|
width: 42%;
|
|
text-align: right;
|
|
display: inline-block;
|
|
padding-right: 1rem;
|
|
}
|
|
|
|
.bottom-content {
|
|
padding: 0 2rem 4rem;
|
|
}
|
|
|
|
#star {
|
|
left: 10rem;
|
|
}
|
|
|
|
.color-indication {
|
|
padding: 1rem;
|
|
border-radius: 2rem;
|
|
display: block;
|
|
position: relative;
|
|
top: -2rem;
|
|
color: white;
|
|
text-shadow: 0 0 0.5rem #222;
|
|
clear: right;
|
|
min-width: 7rem;
|
|
max-width: 5rem;
|
|
height: 3rem;
|
|
|
|
}
|
|
|
|
.no-data {
|
|
border-left: 3px solid var(--no-data-border);
|
|
padding: 1em 2rem;
|
|
min-height: 4rem;
|
|
|
|
a {
|
|
color: var(--no-data-link-color);
|
|
}
|
|
}
|
|
|
|
/**
|
|
marqueurs
|
|
*/
|
|
|
|
.marker-demo {
|
|
margin-right: 1rem;
|
|
}
|
|
|
|
.map-marker-circle-demo {
|
|
border-radius: 100%;
|
|
display: inline-block;
|
|
width: 1rem;
|
|
height: 1rem;
|
|
background: #fff;
|
|
}
|
|
|
|
.color-unknown {
|
|
background: var(--color-indication-background);
|
|
}
|
|
|
|
.map-marker-circle-demo.color-1 {
|
|
background: #36423d;
|
|
}
|
|
|
|
.color-power-lesser-than-50,
|
|
.map-marker-circle-demo.color-2 {
|
|
background: #4e8a8d;
|
|
}
|
|
|
|
.color-power-lesser-than-100,
|
|
.map-marker-circle-demo.color-3 {
|
|
background: #2999b3;
|
|
}
|
|
|
|
.color-power-lesser-than-200,
|
|
.map-marker-circle-demo.color-4 {
|
|
background: #1782dd;
|
|
}
|
|
|
|
.color-power-lesser-than-300,
|
|
.map-marker-circle-demo.color-5 {
|
|
background: #2900ff;
|
|
}
|
|
|
|
.color-power-lesser-than-max,
|
|
.map-marker-circle-demo.color-6 {
|
|
background: #8000ff;
|
|
}
|
|
|
|
#found_charging_stations {
|
|
margin-top: 2rem;
|
|
}
|
|
|
|
button {
|
|
cursor: pointer;
|
|
padding: 0.5rem;
|
|
background: white;
|
|
}
|
|
|
|
.bar {
|
|
height: 2em;
|
|
text-align: right;
|
|
padding: 0.35rem 0.25rem 0.35rem 0.35rem;
|
|
float: left;
|
|
}
|
|
|
|
.key-values {
|
|
max-height: 4rem;
|
|
overflow: auto;
|
|
width: 100%;
|
|
display: block;
|
|
}
|
|
|
|
.icon-img {
|
|
width: 3rem;
|
|
height: 3rem;
|
|
fill: #000;
|
|
}
|
|
|
|
.sockets-list {
|
|
margin-top: 0.25rem;
|
|
}
|
|
|
|
.socket-counter {
|
|
background: #dedede;
|
|
margin-top: 1rem;
|
|
margin-left: -0.25rem;
|
|
border-radius: 1rem;
|
|
padding: 0.25rem;
|
|
}
|
|
|
|
.leaflet-interactive {
|
|
border: solid 3px white;
|
|
}
|
|
|
|
#infos_carte {
|
|
padding: 1rem 0;
|
|
}
|
|
|
|
button+button {
|
|
margin-left: 1rem;
|
|
}
|
|
|
|
.filter-group button {
|
|
padding: 1rem 2rem;
|
|
border-radius: 0.25rem;
|
|
|
|
&:after {
|
|
position: relative;
|
|
float: right;
|
|
left: 1rem;
|
|
top: 1rem;
|
|
font-size: 0.9em;
|
|
}
|
|
|
|
&.filter-state-hide:after {
|
|
content: "cacher";
|
|
color: grey;
|
|
}
|
|
|
|
&.filter-state-show:after {
|
|
content: "montrer";
|
|
color: green;
|
|
}
|
|
|
|
&.filter-state-showOnly:after {
|
|
content: "montrer uniquement";
|
|
color: orange;
|
|
}
|
|
|
|
&.filter-state-hide {
|
|
background: #fff;
|
|
}
|
|
|
|
&.filter-state-show {
|
|
color: green;
|
|
}
|
|
|
|
&.filter-state-showOnly {
|
|
color: orange;
|
|
}
|
|
}
|
|
|
|
.leaflet-control-layers-toggle {
|
|
background-size: contain;
|
|
}
|
|
|
|
#round_power_legend {
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.side-panel {
|
|
font-size: 1rem;
|
|
position: fixed;
|
|
left: 0;
|
|
top: 0;
|
|
width: 20vw;
|
|
height: 74vh;
|
|
background: white;
|
|
box-shadow: -2px 0 5px rgba(0, 0, 0, 0.2);
|
|
overflow-y: auto;
|
|
padding: 1rem 2rem;
|
|
padding-bottom: 15rem;
|
|
z-index: 1000;
|
|
visibility: hidden;
|
|
top: 5.7rem;
|
|
width: 26vw;
|
|
}
|
|
|
|
#toggleSidePanel {
|
|
position: fixed;
|
|
top: 1rem;
|
|
right: 2rem;
|
|
z-index: 10;
|
|
background: white;
|
|
padding: 1rem 2rem;
|
|
border-radius: 8px;
|
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
header {
|
|
padding-left: 2rem;
|
|
color: #666;
|
|
}
|
|
|
|
.side-panel-open {
|
|
.side-panel {
|
|
visibility: visible;
|
|
width: 29vw;
|
|
border-right: #ccc solid 1px;
|
|
height: 93vh;
|
|
}
|
|
|
|
#map {
|
|
margin-left: 28.8vw;
|
|
top: 5.55rem;
|
|
width: 71.2vw;
|
|
}
|
|
}
|
|
|
|
#infos_carte {
|
|
clear: both;
|
|
}
|
|
|
|
#zoomMessage {
|
|
position: fixed;
|
|
bottom: 5rem;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
background: var(--zoom-message-background);
|
|
padding: 1rem 2rem;
|
|
border-radius: 8px;
|
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
|
text-align: center;
|
|
z-index: 10;
|
|
border-left: 4px solid var(--zoom-message-border);
|
|
animation: rainbow-border 4s linear infinite;
|
|
}
|
|
|
|
header {
|
|
background: #222;
|
|
position: fixed;
|
|
width: 20vw;
|
|
|
|
h1 {
|
|
width: 100vw;
|
|
line-height: 3rem;
|
|
}
|
|
|
|
img {
|
|
float: left;
|
|
margin-right: 1rem;
|
|
}
|
|
}
|
|
|
|
#map {
|
|
z-index: 1;
|
|
top: 5.55rem;
|
|
}
|
|
|
|
.side-panel #map {
|
|
margin-left: 26vw;
|
|
}
|
|
|
|
.rounded-button {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 1rem;
|
|
cursor: pointer;
|
|
transition: background-color 0.3s;
|
|
|
|
&:hover {
|
|
background-color: #0d377b;
|
|
}
|
|
}
|
|
|
|
.search-input {
|
|
width: 100%;
|
|
padding: 10px;
|
|
margin-bottom: 10px;
|
|
border: 1px solid var(--button-border);
|
|
border-radius: 5px;
|
|
}
|
|
|
|
#count_features_fond {
|
|
position: fixed;
|
|
bottom: 1rem;
|
|
right: 1rem;
|
|
z-index: 10;
|
|
background: white;
|
|
padding: 1rem;
|
|
border-radius: 8px;
|
|
}
|
|
|
|
#removeMarkers {
|
|
margin-right: 1rem;
|
|
}
|
|
|
|
.filters-box {
|
|
position: absolute;
|
|
bottom: 0.7rem;
|
|
right: 25vw;
|
|
z-index: 100;
|
|
|
|
.rounded-button {
|
|
margin-right: 0.5rem;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
}
|
|
|
|
#searchButton {
|
|
margin-right: 1rem;
|
|
}
|
|
|
|
.info {
|
|
|
|
.i {
|
|
border-radius: 100%;
|
|
background: #dedede;
|
|
padding: 1ch;
|
|
width: 5ch;
|
|
margin-left: 1ch;
|
|
display: inline-block;
|
|
text-align: center;
|
|
}
|
|
|
|
.tooltip {
|
|
opacity: 0
|
|
}
|
|
|
|
&:hover {
|
|
.tooltip {
|
|
opacity: 1;
|
|
transition: opacity 0.3s ease-in-out;
|
|
}
|
|
}
|
|
}
|
|
|
|
.leaflet-popup-content {
|
|
max-height: 400px;
|
|
overflow: auto;
|
|
}
|
|
|
|
.osmose-marker {
|
|
font-size: 20px;
|
|
text-align: center;
|
|
line-height: 20px;
|
|
background-color: rgba(255, 255, 255, 0.8);
|
|
border-radius: 50%;
|
|
border: 2px solid #ff6b6b;
|
|
}
|
|
|
|
.osmose-marker-drop {
|
|
position: relative;
|
|
z-index: 1000;
|
|
}
|
|
|
|
.osmose-marker-inner {
|
|
position: absolute;
|
|
width: 30px;
|
|
height: 40px;
|
|
background-color: #8B00FF;
|
|
border-radius: 50% 50% 50% 0;
|
|
transform: rotate(-45deg);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
|
|
border: 2px solid white;
|
|
|
|
|
|
}
|
|
|
|
.leaflet-osmose-layer {
|
|
&::before {
|
|
content: '⚡';
|
|
transform: rotate(45deg);
|
|
color: white;
|
|
font-size: 16px;
|
|
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
|
|
padding-left: 1ch;
|
|
}
|
|
}
|
|
|
|
#bars_power {
|
|
position: absolute;
|
|
bottom: -16.7px;
|
|
width: 122.4%;
|
|
z-index: 10000;
|
|
margin: 1rem 0;
|
|
height: 0.4rem;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* Animation au survol plus visible */
|
|
|
|
.osmose-marker-drop:hover .osmose-marker-inner {
|
|
animation: bounce 0.5s ease infinite;
|
|
background-color: #9F2BFF;
|
|
}
|
|
|
|
.proposed-tags-container {
|
|
max-height: 200px;
|
|
overflow-y: auto;
|
|
margin: 10px 0;
|
|
padding: 5px;
|
|
background-color: #f5f5f5;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.proposed-tags {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
}
|
|
|
|
.proposed-tags tr:nth-child(even) {
|
|
background-color: #ffffff;
|
|
}
|
|
|
|
.proposed-tags td {
|
|
padding: 2px 5px;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.proposed-tags td:first-child {
|
|
font-weight: bold;
|
|
color: #666;
|
|
}
|
|
|
|
.action-buttons {
|
|
margin-top: 10px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 5px;
|
|
}
|
|
|
|
.action-buttons a {
|
|
padding: 5px 10px;
|
|
text-decoration: none;
|
|
border-radius: 4px;
|
|
text-align: center;
|
|
}
|
|
|
|
.action-buttons .edit-button.josm {
|
|
background-color: #4CAF50;
|
|
color: white;
|
|
}
|
|
|
|
.action-buttons a:hover {
|
|
opacity: 0.9;
|
|
}
|
|
|
|
#searchResults {
|
|
width: 100%;
|
|
}
|
|
|
|
.search-source-control {
|
|
margin: 5px 0;
|
|
font-size: 0.9em;
|
|
}
|
|
|
|
.search-source-control label {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
}
|
|
|
|
.search-source-control input[type="checkbox"] {
|
|
margin: 0;
|
|
}
|
|
|
|
@keyframes bounce {
|
|
|
|
0%,
|
|
100% {
|
|
transform: rotate(-45deg) translateY(0);
|
|
}
|
|
|
|
50% {
|
|
transform: rotate(-45deg) translateY(-5px);
|
|
}
|
|
}
|
|
|
|
/**
|
|
overrides leaflet
|
|
*/
|
|
|
|
.leaflet-left .leaflet-control {
|
|
margin-left: 2rem;
|
|
}
|
|
|
|
/* Style pour mobile */
|
|
@media (max-width: 1200px) {
|
|
header h1 {
|
|
width: 100vw;
|
|
font-size: 1.5rem;
|
|
}
|
|
|
|
#toggleSidePanel {
|
|
right: 1rem;
|
|
top: 1.3rem;
|
|
}
|
|
|
|
body {
|
|
/* border: solid 3px blue; */
|
|
}
|
|
|
|
.side-panel-open .side-panel {
|
|
position: static;
|
|
transform: none;
|
|
box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.2);
|
|
margin: 20px 0 0;
|
|
width: 100vw;
|
|
}
|
|
|
|
.side-panel.active {
|
|
transform: none;
|
|
}
|
|
|
|
.side-panel-open #map,
|
|
#map {
|
|
margin: 0;
|
|
left: 0;
|
|
top: 0;
|
|
width: 100vw;
|
|
height: 90vh;
|
|
height: 55vh;
|
|
}
|
|
|
|
|
|
header {
|
|
position: static;
|
|
}
|
|
}
|
|
|
|
@keyframes rainbow-border {
|
|
0% {
|
|
border-left-color: #ff0000;
|
|
}
|
|
|
|
17% {
|
|
border-left-color: #ff8000;
|
|
}
|
|
|
|
33% {
|
|
border-left-color: #ffff00;
|
|
}
|
|
|
|
50% {
|
|
border-left-color: #00ff00;
|
|
}
|
|
|
|
67% {
|
|
border-left-color: #0000ff;
|
|
}
|
|
|
|
83% {
|
|
border-left-color: #8000ff;
|
|
}
|
|
|
|
100% {
|
|
border-left-color: #ff0000;
|
|
}
|
|
}
|
|
|
|
/* Styles pour les contrôles de couches */
|
|
.leaflet-control-layers {
|
|
&.base-layers {
|
|
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M2 9l10-5 10 5-10 5-10-5zm0 6l10 5 10-5M2 12l10 5 10-5"/></svg>');
|
|
background-size: 16px;
|
|
background-position: 6px center;
|
|
background-repeat: no-repeat;
|
|
padding-left: 28px !important;
|
|
|
|
.leaflet-control-layers-toggle {
|
|
background-image: none;
|
|
width: auto;
|
|
padding-right: 10px;
|
|
}
|
|
|
|
&::after {
|
|
content: "Fonds";
|
|
margin-left: 5px;
|
|
font-size: 12px;
|
|
}
|
|
}
|
|
|
|
&.overlay-layers {
|
|
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"/></svg>');
|
|
background-size: 16px;
|
|
background-position: 6px center;
|
|
background-repeat: no-repeat;
|
|
padding-left: 28px !important;
|
|
|
|
.leaflet-control-layers-toggle {
|
|
background-image: none;
|
|
width: auto;
|
|
padding-right: 10px;
|
|
}
|
|
|
|
&::after {
|
|
content: "Calques";
|
|
margin-left: 5px;
|
|
font-size: 12px;
|
|
}
|
|
}
|
|
} |