Skip to content

Error & password pages

The Uisce theme includes premium-grade 404 and password page experiences. This guide covers the settings and features for both surfaces.

For support troubleshooting, see Error pages support.

404 page

Per-preset hero SVG

Each preset ships a unique hero SVG for the 404 page stored at assets/404-{preset}.svg. The SVG is inlined at render time — no extra HTTP request. The correct SVG renders automatically based on the active preset.

Override with a custom SVG:

To use a merchant-custom SVG, replace assets/404-{preset}.svg with your own file via the code editor (Online Store > Themes > ⋯ > Edit code > Assets). Keep the file small — it is inlined into the page HTML on every 404 view.

Merchant toggles:

Setting keyDefaultControls
show_herotrueShows/hides the hero SVG
show_searchtrueShows/hides the inline search form
show_recently_viewedtrueShows/hides the recently-viewed section

Search form

The 404 page renders a thin <form action="/search" method="get"> — a standard HTML form submission, not predictive. Predictive search is deliberately excluded from the 404 page to keep the page lightweight, with no JS initialization overhead.

Recently-viewed products

The recently-viewed section reads from localStorage — one uisce.state.v1.recently-viewed.{handle} entry per viewed product — the same primitive used for the recently-viewed section on other pages. If a visitor has browsed products before landing on the 404, their recently-viewed products appear automatically — zero configuration required.

Toggle: show_recently_viewed (checkbox, default: ON).

noindex emission

To mitigate soft-404 SEO risk, the Uisce theme emits:

liquid
{% if request.page_type == '404' %}
  <meta name='robots' content='noindex,follow'>
{% endif %}

This meta tag is emitted from layout/theme.liquid and supplements the HTTP 404 status code. Googlebot respects both signals — the page will not be indexed.

You do not need to configure anything. The noindex meta tag is emitted automatically on every 404 page.

Per-preset brand voice

Each preset ships a distinct body copy key for the 404 page:

Preseti18n keyEnglish copy
Uisce404.body.uisce"You've drifted off course."
Gaoth404.body.gaoth"Lost in the breeze."
Talamh404.body.talamh"Wandered off the path."
Tine404.body.tine"You missed the spark."
Neart404.body.neart"The road forked."

All 5 keys are translated across 50 locales with zero English leakage. You can override the copy via locale customization in the theme editor.

Password page

Logo and LCP

The password page renders settings.logo with fetchpriority="high" — this marks the logo image as the LCP candidate, ensuring the browser prioritizes it in the loading queue. The logo must be set in Theme Settings → Logo for this to render.

Toggle: show_logo (checkbox, default: ON).

Per-preset hero SVG

Each preset ships a unique hero SVG for the password page stored at assets/password-hero-{preset}.svg. The SVG is inlined below the heading and body copy, above the countdown and the password form.

To replace with a merchant-custom design, upload the new SVG via the code editor (Online Store > Themes > ⋯ > Edit code > Assets). Keep the file small — it is inlined into the page HTML.

Toggle: show_hero (checkbox, default: ON).

Countdown timer

The password page supports a countdown timer for store launches via the <count-down> Custom Element.

Setup:

  1. Theme editor → Templates → Password → Password section → enable Show countdown.
  2. Use the Year, Month, Day, and Time selects to set your store launch date.
  3. Save — the countdown starts immediately.

The Year select becomes visible after you enable Show countdown. The Month, Day, and Time selects appear once you choose a year.

Reduced-motion guard: The countdown ticker respects prefers-reduced-motion. With motion disabled, the ticker is hidden and a static launch date is shown instead — the numbers do not tick.

RTL native digits: On RTL locales (ar, fa), the countdown ticker renders native digits (Arabic-Indic numerals). The <count-down> Custom Element uses Intl.NumberFormat with locale-appropriate digit rendering.

Toggle: show_countdown (checkbox, default: ON).

shop.password_message override

If you have configured a custom password message in Shopify admin → Online Store → Preferences → Password protected → Message, that message renders after the theme's per-preset body copy — merchants who already configured shop.password_message will not see their message replaced. There is no body text setting in the section; the theme copy comes from the locale files.

Newsletter capture

The password page includes a newsletter block for lead-gen during the pre-launch period.

Enable / disable:

  • Theme editor → Templates → Password → Password section → Show newsletter (checkbox, default: ON)
  • Setting key: show_newsletter_block

The newsletter form uses the same snippets/newsletter-form.liquid as the footer: subscribing is the consent action — a hidden marketing-consent field rides the submission — with no separate consent checkbox and no cookie-consent gating.

The password page renders social links from global settings.social_*. Configure your social accounts in Theme Settings → Social media.

Toggle: show_social (checkbox, default: ON).

Localization form

The password page mounts the localization form for country/region and language switching (the country picker shows each country's currency) — useful for international stores launching to a multilingual audience.

Toggle: show_localization (checkbox, default: ON).

Standalone layouts

The password page renders layout/password.liquid — a standalone layout that does not include layout/theme.liquid. This standalone layout includes:

  • Font preload and load
  • window.uisceStrings translation registry
  • Skip-link for keyboard navigation
  • Full <html lang dir> attributes for RTL support

The gift-card landing page (/gift_cards/{code}) renders layout/gift-card.liquid, also a standalone layout (see Gift card guide). The gift-card layout emits a noindex robots meta tag; the password layout ships none — password-protected storefronts rely on the platform to stay out of search results.

These pages render independently of the main theme layout so they load cleanly even when the rest of the theme has not been configured.

Accessibility

Both 404 and password pages comply with WCAG 2.1 AA. Key accessibility features:

Feature404Password
Skip-linkYesYes
Heading tabindex="-1" for focus managementYesYes
aria-live regionNo — search submits as a plain page navigationYes (countdown + form errors)
Color contrast ≥ 4.5:1 across 5 schemesYesYes
Keyboard-navigable search formYesN/A
<count-down> aria-live for tickN/AYes
Newsletter form aria-invalid + role="alert"N/AYes
Reduced-motion countdown guardN/AYes

Settings reference

404 page settings (sections/404.liquid)

Setting keyTypeDefaultControls
color_schemecolor_schemeColor scheme
show_herocheckboxtruePer-preset hero SVG
show_searchcheckboxtrueThin search form
show_recently_viewedcheckboxtrueRecently-viewed products

Password page settings (sections/password.liquid)

Setting keyTypeDefaultControls
color_schemecolor_schemeColor scheme
show_logocheckboxtruesettings.logo with fetchpriority=high (LCP candidate)
show_herocheckboxtruePer-preset hero SVG
show_countdowncheckboxtrue<count-down> Custom Element
Year / Month / Day / Time selectsselect(empty / 01 / 01 / 09:00)Launch date for countdown timer. Year appears after enabling Show countdown; Month, Day, and Time once a year is chosen
show_newsletter_blockcheckboxtrueNewsletter capture form
show_socialcheckboxtrueSocial links from global settings
show_localizationcheckboxtrueLocalization form

Built for the Shopify Theme Store.