Skip to main content
Urbicon UI
source

VerifyEmailPage

Auto-verifying email confirmation page. Sends token on mount, shows result.

01 Usage

Basic

The live preview mocks a successful verification via the fetcher prop (the static docs site has no auth backend). The snippet shows the production setup.

Verify email

Loading...

Verifying your email...

<script lang="ts">
  import { VerifyEmailPage } from '@urbicon-ui/auth';
  import { page } from '$app/state';

  // Token from the verification link, e.g. /verify-email?token=...
  const token = $derived(page.url.searchParams.get('token') ?? '');
</script>

<VerifyEmailPage {token} />

02 Accessibility

One region for a process the user never started

Verification fires on mount from the token in the URL, so the user takes no action and has nothing to watch. All three states — spinner, success, failure — render inside a single aria-live="polite" wrapper, so the outcome is announced when it arrives. This is the one page that deliberately does not use the shell's shared error region: it would have given the same page two live regions competing to report the same event.

The spinner has words next to it

The loading state is not a bare spinner — it renders the localized "verifying" text inside the live region alongside it. A spinner alone conveys nothing to a screen reader; the text is what actually gets announced.

Focus stays where it was

Nothing on this page moves focus when the result arrives. The live region carries the announcement instead, which is the right trade for an automatic process — but it means a user who tabs away mid-verification will not be returned to the result.

03 API Reference

11 props 1 required
Prop
Type
Default
Description

04 Types

Local type definitions used by this component.

6 types
Name
Kind
Category
Used by
Description

05 Installation

Import

import { VerifyEmailPage } from '@urbicon-ui/auth';