fix: improve backdrop blur visibility on dropdowns and overlays

- Reduce dropdown background opacity from 97% to 80% so backdrop-filter is visible
- Add glass-dropdown CSS class with blur(16px) and saturate(180%)
- Add backdrop blur to mobile nav overlay for smoother feel
- Increase photo lightbox backdrop blur from 2px to 8px
- Add background-blend-mode: overlay to site-bg for richer texture
This commit is contained in:
remco committed 2026-07-01 17:18:57 +02:00
1 parent 25d455f0b6
commit 5bddf99cbe
7 files changed
+25 -11

No files matched your search

+12 -2
View File
@@ -186,13 +186,15 @@ body {
.site-bg { .site-bg {
background: background:
linear-gradient(to bottom, color-mix(in srgb, var(--color-primary) 18%, rgba(255,255,255,0.7)), rgba(255,255,255,0.85)), linear-gradient(to bottom, color-mix(in srgb, var(--color-primary) 12%, rgba(255,255,255,0.6)), rgba(255,255,255,0.75)),
url("/assets/images/background-light.jpg") no-repeat fixed center / cover; url("/assets/images/background-light.jpg") no-repeat fixed center / cover;
background-blend-mode: overlay;
} }
.app.dark .site-bg { .app.dark .site-bg {
background: background:
linear-gradient(to bottom, color-mix(in srgb, var(--color-primary) 12%, rgba(15,17,23,0.8)), rgba(15,17,23,0.9)), linear-gradient(to bottom, color-mix(in srgb, var(--color-primary) 8%, rgba(15,17,23,0.7)), rgba(15,17,23,0.85)),
url("/assets/images/background-dark.jpg") no-repeat fixed center / cover; url("/assets/images/background-dark.jpg") no-repeat fixed center / cover;
background-blend-mode: overlay;
} }
.article-body { .article-body {
@@ -898,6 +900,14 @@ tbody tr:hover {
border-color: #f97316; border-color: #f97316;
} }
/* ── Glass dropdown (backdrop blur) ─────────────────────────── */
.glass-dropdown {
backdrop-filter: blur(16px) saturate(180%);
-webkit-backdrop-filter: blur(16px) saturate(180%);
background-color: color-mix(in srgb, var(--color-dropdown) 78%, transparent);
border: 1px solid color-mix(in srgb, var(--color-text-muted) 12%, transparent);
}
/* ── Radio sidebar ──────────────────────────────────────────── */ /* ── Radio sidebar ──────────────────────────────────────────── */
.radio-layout { .radio-layout {
display: flex; display: flex;
+1 -1
View File
@@ -59,7 +59,7 @@ export function LanguageSwitcher() {
{open && ( {open && (
<div <div
className="absolute right-0 mt-1 min-w-[160px] rounded-xl shadow-xl z-50 py-2 border backdrop-blur-md" className="absolute right-0 mt-1 min-w-[160px] rounded-xl shadow-xl z-50 py-2 border backdrop-blur-md"
style={{ backgroundColor: "color-mix(in srgb, var(--color-dropdown) 97%, transparent)", borderColor: "color-mix(in srgb, var(--color-text-muted) 10%, transparent)" }} style={{ backgroundColor: "color-mix(in srgb, var(--color-dropdown) 80%, transparent)", borderColor: "color-mix(in srgb, var(--color-text-muted) 10%, transparent)" }}
> >
{LOCALES.map((l) => ( {LOCALES.map((l) => (
<button <button
+5 -1
View File
@@ -34,7 +34,11 @@ export function MobileNav({ children }: { children: React.ReactNode }) {
<div <div
className="fixed inset-0 z-30 md:hidden" className="fixed inset-0 z-30 md:hidden"
onClick={() => setOpen(false)} onClick={() => setOpen(false)}
style={{ backgroundColor: "rgba(0,0,0,0.4)" }} style={{
backgroundColor: "rgba(0,0,0,0.45)",
backdropFilter: "blur(6px)",
WebkitBackdropFilter: "blur(6px)",
}}
/> />
)} )}
+1 -1
View File
@@ -73,7 +73,7 @@ export function NavbarColorPicker() {
{mounted && open && ( {mounted && open && (
<div <div
className="absolute right-0 mt-1 min-w-[200px] rounded-xl shadow-xl z-50 py-3 px-2 border backdrop-blur-md" className="absolute right-0 mt-1 min-w-[200px] rounded-xl shadow-xl z-50 py-3 px-2 border backdrop-blur-md"
style={{ backgroundColor: "color-mix(in srgb, var(--color-dropdown) 97%, transparent)", borderColor: "color-mix(in srgb, var(--color-text-muted) 10%, transparent)" }} style={{ backgroundColor: "color-mix(in srgb, var(--color-dropdown) 80%, transparent)", borderColor: "color-mix(in srgb, var(--color-text-muted) 10%, transparent)" }}
> >
<div className="text-xs font-semibold uppercase tracking-wider mb-2 px-2" style={{ color: "var(--color-text-muted)" }}>Navbar kleur</div> <div className="text-xs font-semibold uppercase tracking-wider mb-2 px-2" style={{ color: "var(--color-text-muted)" }}>Navbar kleur</div>
<div className="grid grid-cols-5 gap-1.5"> <div className="grid grid-cols-5 gap-1.5">
+3 -3
View File
@@ -38,7 +38,7 @@ export async function Navigation() {
</summary> </summary>
<div <div
className="md:absolute static left-0 mt-1.5 md:min-w-[200px] rounded-xl md:shadow-xl z-50 py-2 border backdrop-blur-md md:ml-0 ml-4" className="md:absolute static left-0 mt-1.5 md:min-w-[200px] rounded-xl md:shadow-xl z-50 py-2 border backdrop-blur-md md:ml-0 ml-4"
style={{ backgroundColor: "color-mix(in srgb, var(--color-dropdown) 97%, transparent)", borderColor: "color-mix(in srgb, var(--color-text-muted) 10%, transparent)" }} style={{ backgroundColor: "color-mix(in srgb, var(--color-dropdown) 80%, transparent)", borderColor: "color-mix(in srgb, var(--color-text-muted) 10%, transparent)" }}
> >
<Link href="/news" className="dropdown-item">{t("articles")}</Link> <Link href="/news" className="dropdown-item">{t("articles")}</Link>
<Link href="/photos" className="dropdown-item">{t("photos")}</Link> <Link href="/photos" className="dropdown-item">{t("photos")}</Link>
@@ -56,7 +56,7 @@ export async function Navigation() {
</summary> </summary>
<div <div
className="md:absolute left-0 mt-1.5 min-w-[200px] rounded-xl shadow-xl z-50 py-2 border backdrop-blur-md" className="md:absolute left-0 mt-1.5 min-w-[200px] rounded-xl shadow-xl z-50 py-2 border backdrop-blur-md"
style={{ backgroundColor: "color-mix(in srgb, var(--color-dropdown) 97%, transparent)", borderColor: "color-mix(in srgb, var(--color-text-muted) 10%, transparent)" }} style={{ backgroundColor: "color-mix(in srgb, var(--color-dropdown) 80%, transparent)", borderColor: "color-mix(in srgb, var(--color-text-muted) 10%, transparent)" }}
> >
<Link href="/shop" className="dropdown-item">{t("shop")}</Link> <Link href="/shop" className="dropdown-item">{t("shop")}</Link>
<Link href="/marketplace" className="dropdown-item">{t("market")}</Link> <Link href="/marketplace" className="dropdown-item">{t("market")}</Link>
@@ -82,7 +82,7 @@ export async function Navigation() {
</summary> </summary>
<div <div
className="md:absolute left-0 mt-1.5 min-w-[200px] rounded-xl shadow-xl z-50 py-2 border backdrop-blur-md" className="md:absolute left-0 mt-1.5 min-w-[200px] rounded-xl shadow-xl z-50 py-2 border backdrop-blur-md"
style={{ backgroundColor: "color-mix(in srgb, var(--color-dropdown) 97%, transparent)", borderColor: "color-mix(in srgb, var(--color-text-muted) 10%, transparent)" }} style={{ backgroundColor: "color-mix(in srgb, var(--color-dropdown) 80%, transparent)", borderColor: "color-mix(in srgb, var(--color-text-muted) 10%, transparent)" }}
> >
<Link href="/help" className="dropdown-item">{t("helpCenter")}</Link> <Link href="/help" className="dropdown-item">{t("helpCenter")}</Link>
{session?.user ? ( {session?.user ? (
+1 -1
View File
@@ -97,7 +97,7 @@ export function PhotoLightbox({ photos }: { photos: LightboxPhoto[] }) {
justifyContent: "center", justifyContent: "center",
padding: "1.5rem", padding: "1.5rem",
background: "rgba(0, 0, 0, 0.82)", background: "rgba(0, 0, 0, 0.82)",
backdropFilter: "blur(2px)", backdropFilter: "blur(8px)",
cursor: "zoom-out", cursor: "zoom-out",
}} }}
> >
+2 -2
View File
@@ -68,7 +68,7 @@ export async function TopHeader() {
</summary> </summary>
<div <div
className="absolute right-0 mt-1 min-w-[180px] rounded-xl shadow-xl z-50 py-2 border backdrop-blur-md" className="absolute right-0 mt-1 min-w-[180px] rounded-xl shadow-xl z-50 py-2 border backdrop-blur-md"
style={{ backgroundColor: "color-mix(in srgb, var(--color-dropdown) 97%, transparent)", borderColor: "color-mix(in srgb, var(--color-text-muted) 10%, transparent)" }} style={{ backgroundColor: "color-mix(in srgb, var(--color-dropdown) 80%, transparent)", borderColor: "color-mix(in srgb, var(--color-text-muted) 10%, transparent)" }}
> >
<Link href="/admin" className="dropdown-item"> <Link href="/admin" className="dropdown-item">
Admin panel Admin panel
@@ -91,7 +91,7 @@ export async function TopHeader() {
</summary> </summary>
<div <div
className="absolute right-0 mt-1 min-w-[200px] rounded-xl shadow-xl z-50 py-2 border backdrop-blur-md" className="absolute right-0 mt-1 min-w-[200px] rounded-xl shadow-xl z-50 py-2 border backdrop-blur-md"
style={{ backgroundColor: "color-mix(in srgb, var(--color-dropdown) 97%, transparent)", borderColor: "color-mix(in srgb, var(--color-text-muted) 10%, transparent)" }} style={{ backgroundColor: "color-mix(in srgb, var(--color-dropdown) 80%, transparent)", borderColor: "color-mix(in srgb, var(--color-text-muted) 10%, transparent)" }}
> >
<Link href="/me" className="dropdown-item"> <Link href="/me" className="dropdown-item">
My dashboard My dashboard