Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Email Domain Settings Block for React

A sending domain settings panel that leads with what SPF, DKIM and DMARC amount to for your mail, shows the three records as cells with status, host and value to copy, and a DMARC policy select that rewrites its record.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

Say what the three email DNS records do for your mail and let people copy them, with this email domain settings panel for React with Base UI. A hairline frame with a plus mark on each corner leads with one sentence worked out from the records: which is not verified yet and what that means ("DKIM is pending, so your mail goes out unsigned"), or, once all three are, what a receiver does with mail that fails them. Under it three cells on shared hairlines, SPF, DKIM and DMARC, each with its status in a word and a small dot (Verified, Pending or Missing, never a colour), one sentence on what the record is for, and the host and the value in monospace, each with a Copy Button. The DMARC cell has a policy Native Select (none, quarantine, reject) that rewrites the record's text as you pick it and, if the record had been found, sends it back to Pending until it is checked again. The foot's one Shine Button, Check records, steps every record that isn't verified one stage forward; an outline Start over puts the sample back. It's built from Copy Button, Native Select, Button, Shine Button and Guides, with a CSS entrance only. For a transactional email service, a newsletter tool or any product that sends mail as its customers.

FAQ

How do I change the domain, the records and the starting state?

Edit DOMAIN and the ENTRIES list at the top: each record has its name, one line on why it matters, the host to publish it at, its value and the sentence for what the mail suffers without it. DMARC's value is built from the chosen policy and the reports address. START holds the stage each record starts in (missing, pending or verified), and POLICIES the three policies with what each does to failing mail. The lead sentence, the cells' lines and the counts are worked out from those, so nothing is typed twice. The DKIM key is a placeholder whose text decodes to a sentence saying so.

What does Check records do, and is anything looked up?

Nothing is looked up. The sample answers are typed into the page: each press moves every record that isn't verified one stage forward (missing to pending, pending to verified), so DKIM verifies on the first press and DMARC on the second, and a press when all three are verified says so. The panel says under the cells that checks run against sample answers. To make it real, look the three names up on your server, compare each answer with the value you expect and return a stage for each.

Why does changing the policy send DMARC back to Pending?

Because the value you publish is no longer the one the check saw. The select rewrites the record's text at once, and if the record had been found the stage drops to Pending and the status line says to check DMARC again; a record that was missing stays missing. The sentence under the title also follows the policy once everything is verified: reported, sent to spam or refused.

What stays local, and how do I make it real?

Everything. No record is published and nothing is sent; the copy buttons use the real clipboard and copy the text shown. If the clipboard refuses (a page not served over HTTPS), the status line says so and the text can be selected instead. To make it real, create the DKIM key pair on your server and show its real public key, publish the records through your DNS provider or hand them to the customer, and check them on a schedule.

How does it look on a phone, and is it accessible?

The three cells stack, each keeping its status, line, host and value, and the foot is pinned to the bottom of the screen. Status is always a word beside the dot, every Copy button is named for its record and its part ("Copy SPF TXT host"), the policy select has a visible label, and the status line is a polite live region present from the start. The cells keep their height when a status changes. Long values wrap anywhere instead of scrolling sideways.

  • Pro

    DNS Settings

    Domains and delivery

    A DNS settings panel that leads with a resolver you can ask, then holds the same zone as a filterable records table with TTL and conflict checks and as a zone file parsed as you type, kept in step while it is valid.

  • Pro

    Custom Domain Settings

    Domains and delivery

    A custom domain settings panel that leads with what visitors get at each step and walks four stages on a vertical rail: add a domain, add a CNAME and a TXT record with copy buttons, a simulated two-try DNS check and a sample certificate.

  • Pro

    SMTP Settings

    Domains and delivery

    An outgoing mail settings panel that leads with how mail will leave, a server form with presets, an encryption choice and a masked password, beside a dark terminal that plays a simulated SMTP session or stops at the mismatch a real server would give.

  • Pro

    Cache Policy Settings

    Domains and delivery

    An ordered table of cache rules where first match wins: each path pattern has a freshness bar, how long a copy stays fresh and how long a stale one may be served, a count of the cached paths it really claims, and a purge that counts what it would clear.

  • Pro

    Environment Variables Settings

    Domains and delivery

    An environment variables settings panel that shows where each variable is set across Production, Preview and Development, counts what is missing, fills a missing value with Copy from, and previews a pasted .env file before it imports.

  • Pro

    Access Token Hygiene Settings

    Sign-in and security

    An access token settings panel that flags risky tokens (no end date, unused for 90 days, the admin scope, ending soon), gives a token an end date from a menu, and revokes the ticked ones after an alert dialog lists them.