Window controls overlay
import * as mod from "jsr:@nzip/lofi/recipes/window-controls-overlay";
Opt-in geometry observation for desktop Window Controls Overlay layouts.
observeWindowControlsOverlay
function
function observeWindowControlsOverlay(options: ObserveWindowControlsOverlayOptions): WindowControlsOverlayObserver
Observe the experimental Window Controls Overlay geometry surface.
CSS titlebar-area-* environment variables should own collision-free
layout. This observer is for state that genuinely needs geometry changes.
Unsupported browsers retain the ordinary standalone header and receive no
callback.
ObserveWindowControlsOverlayOptions
type
type ObserveWindowControlsOverlayOptions = {
client?: WindowControlsOverlayClient;
onGeometry(geometry: WindowControlsOverlayGeometry): void;
};
Options for observing overlay visibility and geometry changes.
WindowControlsOverlayClient
type
type WindowControlsOverlayClient = {
readonly visible: boolean;
getTitlebarAreaRect(): Pick<DOMRectReadOnly, "x" | "y" | "width" | "height">;
addEventListener(type: "geometrychange", listener: EventListener): void;
removeEventListener(type: "geometrychange", listener: EventListener): void;
};
Minimal browser surface consumed by this recipe.
WindowControlsOverlayGeometry
type
type WindowControlsOverlayGeometry = {
readonly visible: boolean;
readonly titlebarArea: { readonly x: number; readonly y: number; readonly width: number; readonly height: number };
};
A value-only copy of the titlebar area available to application content.
WindowControlsOverlayObserver
type
type WindowControlsOverlayObserver = {
readonly supported: boolean;
dispose(): void;
};
Disposable result from installing the geometry observer.