mapcomplete/index.css

701 lines
13 KiB
CSS
Raw Normal View History

/*
TailwindCSS JIT-Mode Input file.
Use TailwindCSS functions and directives here https://tailwindcss.com/docs/functions-and-directives
About JIT-Mode: https://tailwindcss.com/docs/just-in-time-mode#styles-rebuild-in-an-infinite-loop
TailwindCSS CLI generates the css/index-tailwind-output.css file based on this file.
It is not used directly in the app.
*/
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer utilities {
.z-above-map {
z-index: 10000;
}
.z-above-controls {
z-index: 10001;
}
.w-160 {
width: 40rem;
}
.bg-subtle {
background-color: var(--subtle-detail-color);
color: var(--subtle-detail-color-contrast);
}
.bg-unsubtle {
background-color: var(--unsubtle-detail-color);
color: var(--unsubtle-detail-color-contrast);
}
.bg-catch {
background-color: var(--catch-detail-color);
color: var(--catch-detail-color-contrast);
}
.rounded-left-full {
border-bottom-left-radius: 999rem;
border-top-left-radius: 999rem;
}
.rounded-right-full {
border-bottom-right-radius: 999rem;
border-top-right-radius: 999rem;
}
}
2021-01-25 03:12:09 +01:00
:root {
/* The main colour scheme of mapcomplete is configured here.
2022-02-04 00:45:22 +01:00
* For a custom styling, set 'customCss' in your layoutConfig and overwrite some of these.
*/
/* Main color of the application: the background and text colours */
--background-color: white;
/* Main text colour. Also styles some elements, such as the 'close popup'-button or 'back-arrow' (in mobile) */
--foreground-color: black;
/* A colour to indicate an error or warning */
--alert-color: #fee4d1;
/**
2022-02-04 00:45:22 +01:00
* Base colour of interactive elements, mainly the 'subtle button'
*
2022-02-04 00:45:22 +01:00
*/
--subtle-detail-color: #dbeafe;
--subtle-detail-color-contrast: black;
--subtle-detail-color-light-contrast: lightgrey;
2021-01-07 04:50:12 +01:00
/**
2022-02-04 00:45:22 +01:00
* A stronger variant of the 'subtle-detail-colour'
* Used as subtle button hover
*/
--unsubtle-detail-color: #bfdbfe;
--unsubtle-detail-color-contrast: black;
--catch-detail-color: #3a3aeb;
--catch-detail-color-contrast: white;
--non-active-tab-svg: var(--foreground-color);
--shadow-color: #00000066;
--return-to-the-map-height: 2em;
--image-carousel-height: 350px;
/* The border colour of the leaflet popup */
--popup-border: white;
/* Technical variable to make some dynamic behaviour possible; set by javascript. */
--variable-title-height: 0px;
}
html,
body {
height: 100%;
min-height: 100vh;
min-height: -webkit-fill-available;
margin: 0;
padding: 0;
background-color: var(--background-color);
color: var(--foreground-color);
font-family: "Helvetica Neue", Arial, sans-serif;
}
.leaflet-overlay-pane .leaflet-zoom-animated {
/* Another workaround to keep leaflet working */
width: initial !important;
height: initial !important;
box-sizing: initial !important;
}
2020-06-24 00:35:19 +02:00
.leaflet-marker-icon img {
-webkit-touch-callout: none; /* prevent callout to copy image, etc when tap to hold */
}
.leaflet-control-attribution {
display: block ruby;
}
2021-10-21 21:41:45 +02:00
.badge {
}
.badge svg {
/*Workaround for leaflet*/
width: unset !important;
height: 100% !important;
2021-10-21 21:41:45 +02:00
}
svg,
img {
box-sizing: content-box;
width: 100%;
height: 100%;
}
2022-07-09 20:35:59 +02:00
.titleicon img {
width: unset;
2022-07-09 20:35:59 +02:00
}
.titleicon svg {
width: unset;
2022-07-09 20:35:59 +02:00
}
2022-02-01 19:02:46 +01:00
.svg-catch svg path {
fill: var(--catch-detail-color) !important;
stroke: var(--catch-detail-color) !important;
2022-02-01 19:02:46 +01:00
}
.svg-unsubtle svg path {
fill: var(--unsubtle-detail-color) !important;
stroke: var(--unsubtle-detail-color) !important;
2022-02-01 19:02:46 +01:00
}
.svg-subtle svg path {
fill: var(--subtle-detail-color) !important;
stroke: var(--subtle-detail-color) !important;
2022-02-01 19:02:46 +01:00
}
.svg-foreground svg path {
fill: var(--foreground-color) !important;
stroke: var(--foreground-color) !important;
2022-02-01 19:02:46 +01:00
}
.no-images img {
display: none;
}
2022-04-01 12:51:55 +02:00
.weblate-link {
/* Weblate-links are the little translation icon next to translatable sentences. Due to their special nature, they are exempt from some rules */
2022-04-01 12:51:55 +02:00
}
.mapcontrol svg path {
fill: var(--subtle-detail-color-contrast) !important;
}
.red-svg svg path {
stroke: #d71010 !important;
}
a {
color: var(--foreground-color);
}
2022-08-19 10:40:57 +02:00
.text-white a {
color: var(--background-color);
}
.btn {
line-height: 1.25rem;
--tw-text-opacity: 1;
color: var(--catch-detail-color-contrast);
--tw-bg-opacity: 1;
background-color: var(--catch-detail-color);
display: inline-flex;
border-radius: 1.5rem;
padding-top: 0.75rem;
padding-bottom: 0.75rem;
padding-left: 1.25rem;
padding-right: 1.25rem;
font-size: large;
font-weight: bold;
transition: 100ms;
/*-- invisible border: rendered on hover*/
border: 3px solid var(--unsubtle-detail-color);
}
.btn:hover {
border: 3px solid var(--catch-detail-color);
}
.btn-secondary {
background-color: var(--catch-detail-color);
filter: saturate(0.5);
}
.btn-secondary:hover {
background-color: var(--catch-detail-color);
filter: unset;
}
.btn-disabled {
filter: saturate(0.3);
cursor: default;
}
.btn-disabled:hover {
border: 3px solid var(--unsubtle-detail-color);
2021-07-27 21:25:00 +02:00
}
.h-min {
height: min-content;
}
2022-07-18 11:51:49 +02:00
/* slider */
input[type="range"].vertical {
writing-mode: bt-lr; /* IE */
-webkit-appearance: slider-vertical; /* Chromium */
cursor: pointer;
}
2022-07-18 16:28:12 +02:00
@-moz-document url-prefix() {
input[type="range"].elevator::-moz-range-thumb {
2022-07-18 16:28:12 +02:00
background-color: #00000000 !important;
background-image: url("/assets/svg/elevator_wheelchair.svg");
width: 150px !important;
height: 30px !important;
border: 2px;
border-style: solid;
2022-07-18 16:28:12 +02:00
background-size: contain;
background-position: center center;
background-repeat: no-repeat;
cursor: pointer;
2022-07-18 16:37:29 +02:00
border-image: linear-gradient(to right, black 50%, transparent 50%) 100% 1;
padding-bottom: 5px;
2022-07-18 16:28:12 +02:00
}
}
2022-01-31 14:34:06 +01:00
.border-detail {
border-color: var(--foreground-color);
2022-01-31 14:34:06 +01:00
}
.w-min {
width: min-content;
}
2022-04-23 15:20:54 +02:00
.rounded-left-full {
border-bottom-left-radius: 999rem;
border-top-left-radius: 999rem;
2022-04-23 15:20:54 +02:00
}
.rounded-right-full {
border-bottom-right-radius: 999rem;
border-top-right-radius: 999rem;
2022-04-23 15:20:54 +02:00
}
.w-16-imp {
width: 4rem !important;
}
.w-32-imp {
width: 8rem !important;
}
.w-48-imp {
width: 12rem !important;
}
2021-04-12 13:05:30 +02:00
.link-underline a {
text-decoration: underline 1px var(--foreground-color);
2021-04-12 13:05:30 +02:00
}
a.link-underline {
text-decoration: underline 1px var(--foreground-color);
}
.link-no-underline a {
text-decoration: none;
}
2021-04-12 13:05:30 +02:00
li {
margin-left: 0.5em;
padding-left: 0.2em;
margin-top: 0.1em;
2021-04-12 13:05:30 +02:00
}
h2 {
font-size: large;
margin-top: 0.5em;
margin-bottom: 0.3em;
font-weight: bold;
2021-04-12 13:05:30 +02:00
}
h3 {
font-size: larger;
margin-top: 0.6em;
margin-bottom: 0;
font-weight: bold;
2021-04-12 13:05:30 +02:00
}
h3 {
font-size: larger;
margin-top: 0.6em;
margin-bottom: 0;
font-weight: bolder;
2021-04-12 13:05:30 +02:00
}
p {
padding-top: 0.1em;
2021-04-12 13:05:30 +02:00
}
li::marker {
content: "•";
2021-04-12 13:05:30 +02:00
}
.subtle-background {
background: var(--subtle-detail-color);
color: var(--subtle-detail-color-contrast);
2021-03-13 19:07:38 +01:00
}
2021-10-02 17:57:54 +02:00
.normal-background {
background: var(--background-color);
color: var(--foreground-color);
2021-10-02 17:57:54 +02:00
}
2021-03-13 19:07:38 +01:00
.subtle-lighter {
color: var(--subtle-detail-color-light-contrast);
}
2021-03-13 19:07:38 +01:00
.border-attention-catch {
border: 5px solid var(--catch-detail-color);
}
2021-03-13 19:07:38 +01:00
.border-invisible {
border: 5px solid #00000000;
}
2021-10-08 04:33:39 +02:00
.border-attention {
border-color: var(--catch-detail-color);
2021-10-08 04:33:39 +02:00
}
2021-01-07 04:50:12 +01:00
.direction-svg svg path {
fill: var(--catch-detail-color) !important;
2020-11-15 03:10:44 +01:00
}
#leafletDiv {
height: 100%;
}
2020-06-24 00:35:19 +02:00
.leaflet-popup-content-wrapper {
background-color: var(--background-color);
color: var(--foreground-color);
border: 2px solid var(--popup-border);
box-shadow: 0 3px 14px var(--shadow-color) !important;
}
.leaflet-container {
font: unset !important;
background-color: var(--background-color) !important;
}
.leaflet-popup-tip {
background-color: var(--popup-border) !important;
color: var(--popup-border) !important;
box-shadow: 0 3px 14px var(--shadow-color) !important;
}
2021-01-07 04:50:12 +01:00
.single-layer-selection-toggle {
position: relative;
width: 2em;
height: 2em;
flex-shrink: 0;
}
2021-01-07 04:50:12 +01:00
.single-layer-selection-toggle img {
max-height: 2em !important;
max-width: 2em !important;
}
2021-01-07 04:50:12 +01:00
.single-layer-selection-toggle svg {
max-height: 2em !important;
max-width: 2em !important;
}
.block-ruby {
display: block ruby;
}
.disable-links a {
pointer-events: none;
text-decoration: none !important;
color: var(--subtle-detail-color-contrast) !important;
}
.enable-links a {
pointer-events: unset;
text-decoration: underline !important;
color: unset !important;
}
.disable-links a.must-link,
.disable-links .must-link a {
/* Hide links if they are disabled */
display: none;
}
/**************** GENERIC ****************/
.alert {
background-color: var(--alert-color);
color: var(--foreground-color);
font-weight: bold;
border-radius: 1em;
margin: 0.25em;
text-align: center;
padding: 0.15em 0.3em;
2020-09-14 20:16:03 +02:00
}
.invalid {
box-shadow: 0 0 10px #ff5353;
height: min-content;
}
.shadow {
box-shadow: 0 0 10px var(--shadow-color);
}
.title-font span {
font-size: xx-large !important;
font-weight: bold;
}
.soft {
background-color: var(--subtle-detail-color);
color: var(--subtle-detail-color-contrast);
font-weight: bold;
border-radius: 1em;
margin: 0.25em;
text-align: center;
padding: 0.15em 0.3em;
}
.subtle {
color: #999;
}
2020-09-13 00:53:24 +02:00
.link-underline .subtle a {
text-decoration: underline 1px #7193bb88;
color: #7193bb;
}
.thanks {
background-color: #43d904;
font-weight: bold;
border-radius: 1em;
margin: 0.25em;
text-align: center;
padding: 0.15em 0.3em;
}
.clickable {
pointer-events: all;
}
2020-11-17 16:29:51 +01:00
.unclickable {
pointer-events: none !important;
2020-11-17 16:29:51 +01:00
}
@keyframes slide {
/* This is the animation on the marker to add a new point - it slides through all the possible presets */
from {
transform: translateX(0%);
}
to {
transform: translateX(calc(-100% + 42px));
}
}
2020-07-01 02:12:33 +02:00
.hand-drag-animation {
animation: hand-drag-animation 6s ease-in-out infinite;
transform-origin: 50% 125%;
}
@keyframes hand-drag-animation {
/* This is the animation on the little extra hand on the location input. If fades in, invites the user to interact/drag the map */
0% {
opacity: 0;
transform: rotate(-30deg);
}
6% {
opacity: 1;
transform: rotate(-30deg);
}
12% {
opacity: 1;
transform: rotate(-45deg);
}
24% {
opacity: 1;
transform: rotate(-00deg);
}
30% {
opacity: 1;
transform: rotate(-30deg);
}
36% {
opacity: 0;
transform: rotate(-30deg);
}
100% {
opacity: 0;
transform: rotate(-30deg);
}
}
/**************************************/
#topleft-tools {
display: block;
position: absolute;
z-index: 5000;
transition: all 500ms linear;
left: 0;
right: 0;
2020-06-24 00:35:19 +02:00
}
2020-11-06 01:58:26 +01:00
.welcomeMessage {
display: block;
max-width: calc(100vw - 5em);
width: 40em;
max-height: calc(100vh - 15em);
background-color: var(--background-color);
color: var(--foreground-color);
}
/***************** Info box (box containing features and questions ******************/
2020-07-27 15:40:55 +02:00
input {
color: var(--foreground-color);
}
2020-11-06 01:58:26 +01:00
.leaflet-popup-content {
width: 45em !important;
margin: 0.25rem !important;
}
2020-11-17 02:22:48 +01:00
.leaflet-div-icon {
background-color: unset !important;
border: unset !important;
2020-11-17 02:22:48 +01:00
}
.floating-element-width {
max-width: calc(100vw - 5em);
width: 40em;
}
2020-11-17 16:29:51 +01:00
.leaflet-div-icon svg {
width: calc(100%);
height: calc(100%);
}
2020-09-14 20:16:03 +02:00
/****** ShareScreen *****/
2020-07-29 15:05:19 +02:00
2020-09-14 20:16:03 +02:00
.literal-code {
display: inline-block;
background-color: lightgray;
padding: 0.5em;
word-break: break-word;
color: black;
box-sizing: border-box;
2020-09-14 20:16:03 +02:00
}
2020-07-29 15:05:19 +02:00
.code {
display: inline-block;
background-color: lightgray;
padding: 0.5em;
word-break: break-word;
color: black;
box-sizing: border-box;
}
2020-09-14 20:16:03 +02:00
/** Switch layout **/
.small-image img {
height: 1em;
max-width: 1em;
}
2021-06-12 02:58:32 +02:00
.small-image {
height: 1em;
max-width: 1em;
2021-06-12 02:58:32 +02:00
}
2021-06-17 13:17:16 +02:00
.slideshow-item img {
height: var(--image-carousel-height);
width: unset;
}
2021-11-25 21:31:33 +01:00
.animate-height {
transition: max-height 0.5s ease-in-out;
overflow-y: hidden;
2021-11-25 21:31:33 +01:00
}
2022-01-26 21:40:38 +01:00
.zebra-table tr:nth-child(even) {
background-color: #f2f2f2;
2022-02-02 01:51:19 +01:00
}
.layer-toggle {
/* The checkbox that toggles a single layer */
2022-02-02 01:51:19 +01:00
}
.layer-filters {
/* If needed, the panel which contains the extra filters for a layer */
margin-bottom: 1rem;
border-bottom: 2px solid var(--foreground-color);
2022-02-02 01:51:19 +01:00
}
.filter-panel {
/* The panel for a single layer, containing both the toggle and the filters (if any) */
border-bottom: 2px solid lightgrey;
margin-bottom: 0.5rem;
2022-02-02 01:51:19 +01:00
}
.first-filter-panel {
/* Additional class on the first layer filter */
2022-02-02 01:51:19 +01:00
}
2022-07-10 03:58:07 +02:00
.mapping-icon-small-height {
/* A mapping icon type */
height: 1.5rem;
margin-right: 0.5rem;
width: unset;
2022-07-10 03:58:07 +02:00
}
2022-02-17 23:54:14 +01:00
2022-07-10 17:48:42 +02:00
.mapping-icon-medium-height {
/* A mapping icon type */
height: 3rem;
margin-right: 0.5rem;
width: unset;
2022-07-10 17:48:42 +02:00
}
.mapping-icon-large-height {
/* A mapping icon type */
height: 5rem;
margin-right: 0.5rem;
width: unset;
2022-07-10 17:48:42 +02:00
}
2022-02-17 23:54:14 +01:00
.mapping-icon-small {
/* A mapping icon type */
width: 1.5rem;
max-height: 1.5rem;
margin-right: 0.5rem;
2022-02-17 23:54:14 +01:00
}
.mapping-icon-medium {
/* A mapping icon type */
width: 3rem;
max-height: 3rem;
margin-right: 1rem;
margin-left: 1rem;
}
.mapping-icon-large {
/* A mapping icon type */
width: 6rem;
max-height: 5rem;
margin-top: 0.5rem;
margin-bottom: 0.5rem;
margin-right: 1.5rem;
margin-left: 1.5rem;
2022-02-17 23:54:14 +01:00
}