# browser-visibility

Tracks the [Page Visibility API](https://developer.mozilla.org/docs/Web/API/Page_Visibility_API) — whether the tab is currently visible — via the `visibilitychange` event.

## Install

```bash
bun add @valdres/browser-visibility
```

## Live example

▶ Live example: [https://valdres.dev/svelte/plugins/browser-visibility](https://valdres.dev/svelte/plugins/browser-visibility)

## Usage

```ts
import { watch } from "valdres-svelte"
import { isVisibleSelector } from "@valdres/browser-visibility"

const visible = watch(isVisibleSelector) // visible.value
```

## Exports

| Export              | Kind             | Type                    |
| ------------------- | ---------------- | ----------------------- |
| `visibilityAtom`    | atom (read-only) | `"visible" \| "hidden"` |
| `isVisibleSelector` | selector         | `boolean`               |

## Cross-framework

A global atom plus a boolean selector — works in every framework. Compose it with `@valdres/browser-focus` for a "user is present" signal (see `@valdres/browser-presence`).
