From 7049cb1d48ec6f6f3c0b05e93951f9a0b9b02aa5 Mon Sep 17 00:00:00 2001 From: ulfrxdev Date: Wed, 22 Apr 2026 18:42:29 +0200 Subject: [PATCH] Apply liquid glass to filter panel in recipe list --- index.html | 4 ++ js/views/Filter.js | 133 ++++++++++++++++++++++++++++++++--------- js/views/RecipeList.js | 2 +- 3 files changed, 110 insertions(+), 29 deletions(-) diff --git a/index.html b/index.html index 387e63b..24ad927 100644 --- a/index.html +++ b/index.html @@ -504,6 +504,7 @@ position: relative; border: 1px solid rgba(255, 255, 255, 0.32) !important; background: rgba(255, 255, 255, 0.2) !important; + background-image: none !important; color: rgb(var(--text-body-rgb)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6), @@ -517,6 +518,7 @@ .dark #app-bottom-nav .recipe-nav-toggle { border: 1px solid rgba(255, 255, 255, 0.12) !important; background: rgba(255, 255, 255, 0.04) !important; + background-image: none !important; color: rgb(var(--text-body-rgb)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.24), @@ -841,6 +843,7 @@ padding: var(--dock-pad); border-radius: var(--dock-radius); background: rgba(255, 255, 255, 0.2); + background-image: none; border: 1px solid rgba(255, 255, 255, 0.32); overflow: hidden; backdrop-filter: blur(28px) saturate(180%); @@ -861,6 +864,7 @@ } .dark #app-bottom-nav .bottom-dock { background: rgba(255, 255, 255, 0.04); + background-image: none; border: 1px solid rgba(255, 255, 255, 0.12); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.24), diff --git a/js/views/Filter.js b/js/views/Filter.js index d86b80d..40ad024 100644 --- a/js/views/Filter.js +++ b/js/views/Filter.js @@ -3,15 +3,15 @@ import { MEAL_SLOTS } from '../planner/mealSlots.js'; import { applyFilters, getFilterState } from './RecipeList.js'; const FILTER_PANEL_TRANSITION = 'opacity 180ms ease, transform 180ms ease'; -const FILTER_SURFACE = 'rgb(var(--sunken-rgb))'; -const FILTER_SURFACE_SOFT = 'rgb(var(--app-bg-rgb))'; -const FILTER_BORDER = 'rgb(var(--border-input-rgb))'; -const FILTER_CHIP_ACTIVE_BG = 'rgb(var(--card-rgb))'; -const FILTER_TEXT_SECONDARY = 'rgb(var(--text-body-soft-rgb))'; -const FILTER_TEXT_MUTED = 'rgb(var(--text-muted-rgb))'; -const FILTER_TEXT_ACTIVE = 'rgb(var(--text-emphasis-rgb))'; -const FILTER_TRACK = 'rgb(var(--card-rgb))'; -const FILTER_TRACK_FILL = 'rgba(var(--border-input-rgb), 0.58)'; +const FILTER_SURFACE = 'var(--filter-liquid-panel-bg)'; +const FILTER_SURFACE_SOFT = 'var(--filter-liquid-chip-bg)'; +const FILTER_BORDER = 'var(--filter-liquid-border)'; +const FILTER_CHIP_ACTIVE_BG = 'var(--filter-liquid-chip-active-bg)'; +const FILTER_TEXT_SECONDARY = 'var(--filter-liquid-text-secondary)'; +const FILTER_TEXT_MUTED = 'var(--filter-liquid-text-muted)'; +const FILTER_TEXT_ACTIVE = 'var(--filter-liquid-text-active)'; +const FILTER_TRACK = 'var(--filter-liquid-track-bg)'; +const FILTER_TRACK_FILL = 'var(--filter-liquid-accent-bg)'; const PREP_TIME_MIN = 5; const PREP_TIME_MAX = 120; const PREP_TIME_STEP = 5; @@ -57,10 +57,61 @@ function collectAllTags() { export function getFilterHTML() { return `