Ash Workshop Agent catalog ↗ Privy sign-in ↗ Wallet buttons ↗

The working collection

Shared foundations.
Room to explore.

Automatic
Palette details

Colors come from Regent's shared design kit. Platform uses charcoal, Autolaunch tangerine, Patchbay platinum and Techtree powder blue. Changes you make here stay in this browser. Changes to the shared kit reach each site the next time it is built.

01

Foundations

The small pieces.

Buttons

Code Regent.Primitives.button/1

Typography

Aa / 0123

Pixel Square / regular 400

Geist Sans · body copy and interface.

0x71C7..976F
Type and spacing

Titles and subtitles: Geist Pixel Square, weight 400. Body text and controls: Geist Sans. Addresses and code: Geist Mono. Space: 8 / 16 / 24 / 32 / 40 / 48 / 64 px.

Fields

Optional contact address.
  • Enter a name.
Code Regent.Primitives.field/1

Disclosure

What is shared?

The shared pieces decide how things look. Each site decides what they do and who can use them.

Open by default

A closed section still holds its text, so search and screen readers can find it.

Code Regent.Primitives.disclosure/1
02

Capabilities

One card. Your images and words.

Clear boundaries

001

Rules and shared edges give every region a deliberate place on the page.

Common structure

002

One set of components, put together to suit each product. Change the words and picture without rebuilding the card.

Your imagery

003
Placeholder mark

Use an image with a short description for screen readers, or your own artwork. Buttons on the card are optional.

Hover or focus a card for the slower sweep. The color control above applies to cards and primary buttons.

Code Regent.Structure.capability_card/1
03

Feedback

A state worth showing.

Status

Neutral Info Success Warning Error
Code Regent.Primitives.status/1

Notices

Ready for the next step.
Saved successfully.
Review the current network.
Code Regent.Primitives.notice/1

Empty states

Nothing here yet.

Your first item will appear here.

Items live only on this page. Reloading clears them.

Code Regent.Primitives.empty_state/1

Slow reads Practice

Choose a wallet
What to try

Choose the slow wallet, then another before it answers: the slow answer is thrown away and never replaces the wallet you chose. Disconnect does the same. Tick the failure box and refresh to keep the last reading marked as old; choose a new wallet with it ticked to see a failed read shown as a failure, never as zero.

04

Composition

Pieces working together.

Current step

Step
Ready

Edits stay on this page.

Activity

Facts
Network
Base
State
Confirmed

Each site fills these in from its own records.

Page frame and theme switch

This preview shows the frame around every signed-in page: the menu, the account button and the light and dark switch.

05

Identity & wallets

See each request through.

Wallet steps Practice

Disconnected

How the practice wallet works

These practice pieces never touch a real wallet or network. Each press starts its own request, even while an earlier one is still waiting. Disconnect here only affects the practice wallet.

Privy Real sign-in

Uses your real account

These buttons use this site's real sign-in. You only see the button that fits where you are now. Signing in may open Privy. Signing out ends your visit on this site. The practice wallet is separate.

Product pages

What real actions need

These pages use real sign-in and check your wallet. Anything sent from your wallet asks you to approve it there first. This page never sends anything for you.

Linked accounts · practice

Verified connections

Practice only. Nothing is linked for real.

  • X Not connected
  • GitHub Not connected
  • Farcaster Not connected
06

Built with Ash

Real checks. Safe limits.

Ash form This page only

Rules for this form

Built with Ash. The title needs 2 to 80 characters and the quantity must be from 1 to 100. Items live only on this page and are never saved.

Sign-in check Practice

What this checks

Each example makes a practice sign-in and runs it through the same check the real site uses: one valid, one expired and one made for a different app. Practice sign-ins never sign anyone in, and they never touch a real wallet or network.

07

Complete inventory

Every piece in the kit, folded away.

20 components · 1 Ash data groups

Design components
Regent.Primitives.button/1Settings: class, rest, type, variant · Parts: inner_block
Regent.Primitives.field/1Settings: class, errors, id, label, rest · Parts: hint, inner_block
Regent.Primitives.status/1Settings: class, rest, tone · Parts: inner_block
Regent.Primitives.notice/1Settings: class, rest, tone · Parts: inner_block
Regent.Primitives.empty_state/1Settings: class, rest, title · Parts: action, inner_block
Regent.Primitives.disclosure/1Settings: class, id, index, open, rest, summary · Parts: inner_block
Regent.Structure.frame/1Settings: class, rest · Parts: inner_block
Regent.Structure.row/1Settings: class, rail, rest · Parts: inner_block, rail_content
Regent.Structure.section_bar/1Settings: class, rest · Parts: inner_block
Regent.Structure.panel/1Settings: class, rest, tone · Parts: inner_block
Regent.Structure.technical_figure/1Settings: class, rest · Parts: caption, inner_block
Regent.Structure.capability_card/1Settings: class, description, image_alt, image_src, index, rest, title, tone · Parts: actions, foil, media
Regent.Structure.ratio_card/1Settings: change, class, eyebrow, footer_label, id, label, remainder_label, rest, title, value_bps · Parts: footer, footer_badge
Regent.ThemeToggle.button/1Settings: class, id, rest, theme · Parts:
AshTemplateWeb.Components.Shell.shell/1Settings: account_control, route_spec, shell_instance, theme · Parts: content
AshTemplateWeb.Components.Shell.account_control/1Settings: account_control, enabled · Parts:
AshTemplateWeb.Components.Shell.theme_toggle/1Settings: id, theme · Parts:
AshTemplateWeb.Components.VerifiedConnections.verified_connections/1Settings: authenticated, class, description, id, identities, notice, read_state, title · Parts:
AshTemplateWeb.Layouts.app/1Settings: flash, inner_content · Parts:
AshTemplateWeb.Layouts.root/1Settings: · Parts:
AshTemplate.Accounts
AshTemplate.Accounts.HumanAccount

What it can do: by_privy_did (read), read_self (read), register_verified (create), refresh_verified (update)

Fields: id, privy_user_id (private), wallet_address (private), wallet_addresses (private), display_name, avatar (private), created_at (private), updated_at (private)
AshTemplate.Accounts.SessionAuthority

What it can do: read (read), by_lineage_digest (read), mint (create), bind (update), advance (update), revoke (update)

Fields: id, lineage_digest (private), generation (private), revoked_at (private), inserted_at (private), updated_at (private), human_account_id (private)
AshTemplate.Accounts.LinkedIdentity

What it can do: upsert_verified (create), read_mine (read), for_account (read), by_provider_subject (read), remove_verified (destroy)

Fields: id, provider, subject (private), username, display_name, verified_at, metadata (private), inserted_at (private), updated_at (private), human_account_id (private)
Shared tools · 3
AshTemplate.DatabaseConfigThis site only

release_config!/0 · release_config!/1 · runtime_config!/1 · runtime_config!/2

RegentPrivyShared by every site

verify_token/2

RegentPrivy.SessionShared by every site

verify/2

What this list covers

This list covers every shared design component and the ones this site adds. Product pages are built from these pieces and keep their own behavior. The Ash groups show how the data is shaped, never the data itself. The shared tools are the libraries every site uses, plus this site's database settings.