I built with help from AI a bottom navbar card with an iOS-26-style "liquid glass" lens that
follows your finger as you drag across the bar — plus per-route status
dots and live-templated icon colors. Wanted to share it in case it's
useful to anyone else.
What it does:
A frosted glass lens tracks your finger as you swipe across the bar,
with a soft light-refraction fringe at the edges
Icons switch popups live as the lens passes over them — no need to
lift your finger, just drag and let go on whatever you want
Optional colored status dots per route (e.g. "is any vacuum running?"),
each driven by its own JS template against live entity states
Same templating for icon color itself
Light haptic pulse as the lens crosses into a new icon (native on the
Companion App, navigator.vibrate fallback in-browser)
Theme-aware icon color (light/dark)
Built and tested against a sections-type dashboard, alongside Bubble
Card pop-ups as navigation targets (hash-based navigation, so it should
work with any hash-driven popup system, not just Bubble Card).
Honest limitation: it's blur/saturation/brightness plus a bit of
faked chromatic fringing to suggest glass refraction — true pixel-level
distortion (feDisplacementMap) didn't render reliably in the Companion
App's WebView when I tested it, so I dropped it rather than ship
something that only half-works.
thank you very much its my first project and im very happy that you like it.
You'll need card-mod installed for this to work, since Tile cards don't have a built-in style option
Here is the card-mod-snippet:
Is it possible to add also adjustment of icon size and icon space? Icons are close to each other on certain screens making it difficult to press the correct one.
Yes for sure but I dont see any settings other than what I had already. Can you elaborate please what to test exactly and any yaml code to insert? Also I have noticed no notification available for the card to update in HA (available update not showing for this card)
sorry im kinda new to the game i added some lines to the yaml in github so you can check it there. I also added a release Version and Tag so HACS should be see a update now.
Weather-driven icon:icon now supports the same [[[ ... ]]] JS template syntax that icon_color already used — so the icon symbol itself can react to entity state, not just its color:
icon: "[[[ const c = states['weather.home'].state; if (c.includes('rain')) return 'mdi:weather-rainy'; if (c.includes('cloud')) return 'mdi:weather-cloudy'; return 'mdi:weather-sunny'; ]]]"
Any entity works, not just weather — same template rules as icon_color (README has more examples under “Templates”).
Icon size / spacing: this is now available directly in the visual card editor — open the card in the dashboard UI (no YAML needed) and you’ll find sliders for icon size, gap between icons, tap target size, and lens width. routes itself (icons, labels, actions, templates) still goes through YAML, since that part doesn’t map cleanly onto a form.
Update via HACS should show v1.4.0 available now. Let me know if either of these doesn’t behave as expected!