From bfdd433a5f3b4c1d00979778e36e1207312be78e Mon Sep 17 00:00:00 2001 From: Alexis <35.alexis.pele@gmail.com> Date: Sat, 21 Jun 2025 14:32:23 +0200 Subject: [PATCH] Added dark mode ui for leaflet controls --- public/icon/question-mark-dark.svg | 1 + public/icon/ruler-dark.svg | 1 + public/icon/ruler.svg | 1 + public/icon/square-arrow-out-dark.svg | 1 + src/assets/scss/_leaflet.scss | 44 +++++++++++++++++++ src/assets/scss/radix/_dialog.scss | 9 ---- src/assets/scss/theme.scss | 10 ++++- src/components/maps/MarkerContent.astro | 4 +- .../maps/overlay/SearchMapSwitch.vue | 2 +- 9 files changed, 59 insertions(+), 14 deletions(-) create mode 100644 public/icon/question-mark-dark.svg create mode 100644 public/icon/ruler-dark.svg create mode 100644 public/icon/ruler.svg create mode 100644 public/icon/square-arrow-out-dark.svg diff --git a/public/icon/question-mark-dark.svg b/public/icon/question-mark-dark.svg new file mode 100644 index 00000000..6c906002 --- /dev/null +++ b/public/icon/question-mark-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icon/ruler-dark.svg b/public/icon/ruler-dark.svg new file mode 100644 index 00000000..cb6b6aae --- /dev/null +++ b/public/icon/ruler-dark.svg @@ -0,0 +1 @@ + diff --git a/public/icon/ruler.svg b/public/icon/ruler.svg new file mode 100644 index 00000000..17ea1152 --- /dev/null +++ b/public/icon/ruler.svg @@ -0,0 +1 @@ + diff --git a/public/icon/square-arrow-out-dark.svg b/public/icon/square-arrow-out-dark.svg new file mode 100644 index 00000000..7110a978 --- /dev/null +++ b/public/icon/square-arrow-out-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/scss/_leaflet.scss b/src/assets/scss/_leaflet.scss index d8b83da6..a6c84ff5 100644 --- a/src/assets/scss/_leaflet.scss +++ b/src/assets/scss/_leaflet.scss @@ -50,3 +50,47 @@ } } } + +.leaflet-touch .leaflet-bar { + border-color: var(--border); + + .leaflet-control-zoom-in, + .leaflet-control-zoom-out { + color: var(--foreground); + background-color: var(--background); + border-color: var(--border); + + &:hover, + &:focus-visible { + color: var(--background); + background-color: var(--accent); + } + } +} + +.leaflet-touch .leaflet-control-measure { + color: var(--foreground); + background-color: var(--background); + + .leaflet-control-measure-toggle { + color: var(--foreground); + background-color: var(--background); + border-color: var(--border); + background-image: url('/icon/ruler.svg'); + background-size: 66%; + + &:hover, + &:focus-visible { + color: var(--background); + background-color: var(--accent); + } + } +} + +.dark { + .leaflet-touch .leaflet-control-measure { + .leaflet-control-measure-toggle { + background-image: url('/icon/ruler-dark.svg'); + } + } +} \ No newline at end of file diff --git a/src/assets/scss/radix/_dialog.scss b/src/assets/scss/radix/_dialog.scss index eeca8e29..72685cef 100644 --- a/src/assets/scss/radix/_dialog.scss +++ b/src/assets/scss/radix/_dialog.scss @@ -64,18 +64,9 @@ text-decoration: none; color: var(--green-500); } - - &::after { - top: 50%; - transform: translateY(-70%); - } } } -.dark .dialog-description a::after { - filter: invert(1); -} - @keyframes show-overlay { from { opacity: 0; diff --git a/src/assets/scss/theme.scss b/src/assets/scss/theme.scss index 8cb7f756..6daabb57 100644 --- a/src/assets/scss/theme.scss +++ b/src/assets/scss/theme.scss @@ -59,11 +59,11 @@ html { } a[href^='http'] { - padding-right: 1.25em; + white-space: nowrap; + orphans: 2; } a[href^='http']::after { - position: absolute; content: url('/icon/square-arrow-out.svg'); display: inline-block; width: 1em; @@ -71,6 +71,12 @@ a[href^='http']::after { margin-left: .25em; } +.dark { + a[href^='http']::after { + content: url('/icon/square-arrow-out-dark.svg'); + } +} + strong { font-weight: 600; } diff --git a/src/components/maps/MarkerContent.astro b/src/components/maps/MarkerContent.astro index fe497db0..cb6b3e28 100644 --- a/src/components/maps/MarkerContent.astro +++ b/src/components/maps/MarkerContent.astro @@ -101,7 +101,7 @@ const seeMapText = t('maps.go-to-map', lang) font-weight: 600; bottom: .5rem; right: 1rem; - color: var(--background); + color: var(--white); z-index: 20; opacity: .6; transition-property: opacity; @@ -110,7 +110,7 @@ const seeMapText = t('maps.go-to-map', lang) a { padding-right: 0; - color: var(--background); + color: var(--white); text-decoration: underline; text-underline-offset: .15rem; diff --git a/src/components/maps/overlay/SearchMapSwitch.vue b/src/components/maps/overlay/SearchMapSwitch.vue index 5179ad0d..5996fe21 100644 --- a/src/components/maps/overlay/SearchMapSwitch.vue +++ b/src/components/maps/overlay/SearchMapSwitch.vue @@ -214,7 +214,7 @@ const menus: Menu[] = [ } .dark .legal::before { - filter: invert(1); + content: url('/icon/question-mark-dark.svg'); } .map-menu {