Skip to main content

useActiveElement

Get a reactive reference to the currently focused element in the document.

useActiveElement is used to get the currently focused element in the document.

If you don't need to provide a custom document / shadowRoot, you can use the activeElement state instead, as it provides a simpler API.

This utility behaves similarly to document.activeElement but with additional features such as:

  • Updates synchronously with DOM focus changes
  • Returns null when no element is focused
  • Safe to use with SSR (Server-Side Rendering)
  • Lightweight alternative to manual focus tracking

Demo

Currently active element: No active element found

Usage

		<script lang="ts">
	import { useActiveElement } from "runed";
	const activeElement = useActiveElement();
</script>
 
{#if activeElement.current}
	<p>The active element is: {activeElement.current.localName}</p>
{:else}
	<p>No active element found</p>
{/if}
	

Options

The following options can be passed via the first argument to useActiveElement:

document
type: DocumentOrShadowRoot
The document or shadow root to track focus within.
default: document
window
type: Window
The window to use for focus tracking.
default: window