From a887a72d771c9b968664ad8773b4b795ff983587 Mon Sep 17 00:00:00 2001 From: Amruth Pillai Date: Mon, 28 Sep 2026 17:17:54 +0200 Subject: [PATCH] feat(ui): add a breakpoint hook, panel icons and CSS-drawn icon glyphs Icons now draw their ligature from data-icon in a pseudo-element, so icon names stay out of copied text, find-in-page and text queries. useBreakpoint reports the design system's mobile, tablet, desktop and wide ranges. --- packages/ui/src/components/icon.test.tsx | 14 +++-- packages/ui/src/components/icon.tsx | 8 +-- packages/ui/src/hooks/use-breakpoint.test.tsx | 54 ++++++++++++++++++ packages/ui/src/hooks/use-breakpoint.tsx | 32 +++++++++++ .../src/icons/material-symbols-rounded.json | 1 + .../src/icons/material-symbols-rounded.woff2 | Bin 37228 -> 37240 bytes packages/ui/src/icons/names.ts | 1 + packages/ui/src/styles/globals.css | 6 ++ 8 files changed, 107 insertions(+), 9 deletions(-) create mode 100644 packages/ui/src/hooks/use-breakpoint.test.tsx create mode 100644 packages/ui/src/hooks/use-breakpoint.tsx diff --git a/packages/ui/src/components/icon.test.tsx b/packages/ui/src/components/icon.test.tsx index 84e092a63..56d212a9b 100644 --- a/packages/ui/src/components/icon.test.tsx +++ b/packages/ui/src/components/icon.test.tsx @@ -5,12 +5,18 @@ import { iconNames } from "../icons/names"; import { Icon } from "./icon"; describe("Icon", () => { - it("is hidden from assistive tech and translation, so ligature text never becomes a name", () => { - const { container } = render(); + it("draws the glyph from data-icon, so its name is neither text nor an accessible name", () => { + const { container } = render( + , + ); const icon = container.querySelector('[data-slot="icon"]'); expect(icon).toHaveAttribute("aria-hidden", "true"); - expect(icon).toHaveAttribute("translate", "no"); - expect(icon).toHaveTextContent("search"); + expect(icon).toHaveAttribute("data-icon", "search"); + expect(icon).toBeEmptyDOMElement(); + expect(container.querySelector("button")).toHaveTextContent(/^Search$/); }); it("uses the filled glyph only when asked", () => { diff --git a/packages/ui/src/components/icon.tsx b/packages/ui/src/components/icon.tsx index 3f84857a7..0102ffbd3 100644 --- a/packages/ui/src/components/icon.tsx +++ b/packages/ui/src/components/icon.tsx @@ -21,8 +21,8 @@ type IconProps = Omit, "children"> & { }; /** - * A Material Symbols Rounded glyph (weight 300). Icons are decorative: the control they sit in - * carries the accessible name, so the ligature text is hidden from assistive tech and translation. + * A Material Symbols Rounded glyph (weight 300), drawn from `data-icon` by CSS so the name never becomes text. + * Icons are decorative: the control they sit in carries the accessible name. */ function Icon({ name, filled = false, size = 20, className, style, ...props }: IconProps) { return ( @@ -38,9 +38,7 @@ function Icon({ name, filled = false, size = 20, className, style, ...props }: I ...style, }} {...props} - > - {name} - + /> ); } diff --git a/packages/ui/src/hooks/use-breakpoint.test.tsx b/packages/ui/src/hooks/use-breakpoint.test.tsx new file mode 100644 index 000000000..6f721a626 --- /dev/null +++ b/packages/ui/src/hooks/use-breakpoint.test.tsx @@ -0,0 +1,54 @@ +import { act, renderHook } from "@testing-library/react"; +import { afterEach, describe, expect, it, vi } from "vitest"; +import { useBreakpoint } from "./use-breakpoint"; + +let width = 1440; +const listeners = new Set<() => void>(); + +Object.defineProperty(window, "matchMedia", { + writable: true, + configurable: true, + value: vi.fn().mockImplementation((query: string) => { + const min = Number(/min-width: (\d+)px/.exec(query)?.[1] ?? 0); + return { + get matches() { + return width >= min; + }, + media: query, + addEventListener: (_: string, listener: () => void) => listeners.add(listener), + removeEventListener: (_: string, listener: () => void) => listeners.delete(listener), + }; + }), +}); + +afterEach(() => { + width = 1440; +}); + +describe("useBreakpoint", () => { + it.each([ + [390, "mobile"], + [639, "mobile"], + [640, "tablet"], + [1023, "tablet"], + [1024, "desktop"], + [1279, "desktop"], + [1280, "wide"], + ] as const)("maps %ipx to %s", (nextWidth, expected) => { + width = nextWidth; + const { result } = renderHook(() => useBreakpoint()); + expect(result.current).toBe(expected); + }); + + it("updates when the viewport crosses a breakpoint", () => { + const { result } = renderHook(() => useBreakpoint()); + expect(result.current).toBe("wide"); + + act(() => { + width = 800; + for (const listener of listeners) listener(); + }); + + expect(result.current).toBe("tablet"); + }); +}); diff --git a/packages/ui/src/hooks/use-breakpoint.tsx b/packages/ui/src/hooks/use-breakpoint.tsx new file mode 100644 index 000000000..64a066650 --- /dev/null +++ b/packages/ui/src/hooks/use-breakpoint.tsx @@ -0,0 +1,32 @@ +import { useSyncExternalStore } from "react"; + +/** Design-system breakpoints: mobile < 640, tablet 640–1023, desktop ≥ 1024, wide ≥ 1280. */ +export type Breakpoint = "mobile" | "tablet" | "desktop" | "wide"; + +const QUERIES = { + tablet: "(min-width: 640px)", + desktop: "(min-width: 1024px)", + wide: "(min-width: 1280px)", +} as const; + +function readBreakpoint(): Breakpoint { + if (typeof window === "undefined" || typeof window.matchMedia !== "function") return "desktop"; + if (window.matchMedia(QUERIES.wide).matches) return "wide"; + if (window.matchMedia(QUERIES.desktop).matches) return "desktop"; + if (window.matchMedia(QUERIES.tablet).matches) return "tablet"; + return "mobile"; +} + +function subscribe(onChange: () => void) { + if (typeof window === "undefined" || typeof window.matchMedia !== "function") return () => {}; + + const lists = Object.values(QUERIES).map((query) => window.matchMedia(query)); + for (const list of lists) list.addEventListener("change", onChange); + return () => { + for (const list of lists) list.removeEventListener("change", onChange); + }; +} + +export function useBreakpoint(): Breakpoint { + return useSyncExternalStore(subscribe, readBreakpoint, () => "desktop"); +} diff --git a/packages/ui/src/icons/material-symbols-rounded.json b/packages/ui/src/icons/material-symbols-rounded.json index 75ddabf03..a889face9 100644 --- a/packages/ui/src/icons/material-symbols-rounded.json +++ b/packages/ui/src/icons/material-symbols-rounded.json @@ -53,6 +53,7 @@ "key", "language", "left_panel_close", + "left_panel_open", "light_mode", "link", "link_off", diff --git a/packages/ui/src/icons/material-symbols-rounded.woff2 b/packages/ui/src/icons/material-symbols-rounded.woff2 index 214a6694517e00617cb27dd9836cdf2c9a409b49..e8520fababba16cc6be06eac1472b5afc5645086 100644 GIT binary patch literal 37240 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 Q!ZsHA8RLtaJsJP?6*WE$lK=n! diff --git a/packages/ui/src/icons/names.ts b/packages/ui/src/icons/names.ts index f83b5ff46..686bedc4e 100644 --- a/packages/ui/src/icons/names.ts +++ b/packages/ui/src/icons/names.ts @@ -58,6 +58,7 @@ export const iconNames = [ "key", "language", "left_panel_close", + "left_panel_open", "light_mode", "link", "link_off", diff --git a/packages/ui/src/styles/globals.css b/packages/ui/src/styles/globals.css index b546eb697..366a63ed4 100644 --- a/packages/ui/src/styles/globals.css +++ b/packages/ui/src/styles/globals.css @@ -293,6 +293,12 @@ width: 1em; height: 1em; overflow: hidden; + + /* The glyph is the ligature of the name in data-icon. Drawing it from a pseudo-element keeps the name out + of the text content, so copied labels, find-in-page and text queries see only the label. */ + &::before { + content: attr(data-icon); + } } @media (prefers-reduced-motion: reduce) {