From f4a0e2a82b356b2b72b6031e88f93c2f43d553ad Mon Sep 17 00:00:00 2001 From: syntaxbullet Date: Tue, 10 Feb 2026 21:49:44 +0100 Subject: [PATCH] feat: implement a responsive mobile control panel with tabbed navigation and dynamic control staging, and refactor the desktop layout for mobile responsiveness. --- src/components/ControlPanel.astro | 608 ++++++++++++++++++++++++------ src/components/Tooltip.astro | 3 + 2 files changed, 505 insertions(+), 106 deletions(-) diff --git a/src/components/ControlPanel.astro b/src/components/ControlPanel.astro index 355b7f2..d7741a4 100644 --- a/src/components/ControlPanel.astro +++ b/src/components/ControlPanel.astro @@ -3,17 +3,32 @@ import TuiSlider from "./TuiSlider.astro"; import TuiSegment from "./TuiSegment.astro"; import TuiToggle from "./TuiToggle.astro"; import TuiButton from "./TuiButton.astro"; -import { ChevronDown } from "@lucide/astro"; +import { + ChevronDown, + SlidersHorizontal, + Wand2, + Download, + RotateCcw, + SkipForward, + Layers, +} from "@lucide/astro"; --- diff --git a/src/components/Tooltip.astro b/src/components/Tooltip.astro index 928c533..47c9cc7 100644 --- a/src/components/Tooltip.astro +++ b/src/components/Tooltip.astro @@ -89,6 +89,9 @@ }; const showTooltip = (target: Element, e: MouseEvent) => { + // Only show on devices with hover capability (mouse) + if (!window.matchMedia("(hover: hover)").matches) return; + const title = target.getAttribute("data-tooltip-title"); const desc = target.getAttribute("data-tooltip-desc");