HAUSE

Refusal

Fail-closed rendered as design language, not as an error state.

MEET THE FORM
01 / THE ENCOUNTERA STATEMENT — THE READER READS

A STUDY IN REFUSAL

No can be a complete answer.

Ask the fictional archive for a format it does not hold. A designed refusal states the request, the available material and the boundary.

ARCHIVE / FORMAT REQUEST

Audio is not held.

requested audio edition

available text, diagram

action no substitute generated

An absent source is a boundary, not permission to invent one.

audio is not held.requested audio edition; available text, diagram; action no substitute generated. An absent source is a boundary, not permission to invent one.

No file is fetched. This local study demonstrates an explicit limit, not a network error or an invented substitute.

INSPECT THE REUSABLE LIBRARY COMPONENT

NO PLACEHOLDER SHIPS

requested an empty dashed frame, to fill later

available forms that are finished, or absent

An empty frame is the least luxurious object on a page.

no placeholder shipsrequested an empty dashed frame, to fill later; available forms that are finished, or absent. An empty frame is the least luxurious object on a page.

02 / THE DECISION

An act.
Not a container.

YOU ARE DECLINING, OR LEAVING IT OPEN

Declining to assert something.

Is this the system working correctly by not answering? Then it is not an error state.

EXPLORE THE SELECTION GRAMMAR ↗

What is the Refusal form in HAUSE, and when do you use it?

The Refusal form is a HAUSE statement — fail-closed rendered as design language, not as an error state. Built for systems whose personality is that they refuse rather than guess: the refusal is an instrument readout — structured fields under a refuted-red rule, closed by the governing principle in editorial voice. The lines stagger in at the hause cadence on mount; re-key to replay (the PaceDemo idiom).

origin — vindex3

THE LIBRARY’S OWN ACCOUNT

Behind the form.

components/forms/Refusal.tsx

Built for systems whose personality is that they refuse rather than guess: the refusal is an instrument readout — structured fields under a refuted-red rule, closed by the governing principle in editorial voice. The lines stagger in at the hause cadence on mount; re-key to replay (the PaceDemo idiom).

RefusalReadout is the bare readout for embedding inside another form (Variants renders one when an absent variant is selected); Refusal is the standalone chapter form.

THE STATEMENT’S DISCIPLINE

Every statement is prose in the three voices — editorial for claims, system for explanation, evidence for measurement. Server-renderable, no interaction: the reader reads, and nothing about the form depends on JavaScript arriving.

03 / MAKE SOMETHINGINSTALL HAUSE ↗

Give it your subject.

The opening study is an authored demonstration, not an additional component API. Expand the library specimen above to inspect the reusable form. Its props below come directly from the source.

REACT · Refusal

import { Refusal } from "@chrishayuk/hause/components/forms/Refusal";

export type RefusalProps = {
	kicker?: string;
	title: string;
	lines: string[];
	principle: string;
};

export function Refusal({ kicker, title, lines, principle }: RefusalProps)

The import and the complete props contract. For installation and composition, follow the Build guide.

NOT INVENTED IN ISOLATION

A page needed this.

Entered the library from vindex3.

01 / THE PROBLEMEVERYTHING BECOMES A CARDAsk a model for an interface and the same eight containers come back: cards, badges, accordions, tabs, chat bubbles. A comparison, a refusal, an answer and a measurement are four different acts. They arrive as the same rectangle.02 / THE PROBLEMINTERFACES THAT CANNOT REFUSERefusal arrives as a red toast, an apology and a retry — the vocabulary of a fault. So products are built to avoid producing one, and the reliable way to avoid refusing is to guess.07 / THE PROBLEMEVERYTHING SOUNDS EQUALLY CERTAINA generated paragraph, a measured result and an open question arrive in the same voice, at the same size, with the same confidence. The interface has no way to say which is which, so the reader supplies the difference — usually wrongly.

PUBLISHED 31 AUG 2026 · REVISED 9 SEP 2026 · VERSION 0.1.0

CITE

source components/forms/Refusal.tsx · origin vindex3 · site build 3ee5339 · built 2026-09-09

CITE THIS

Web page · 0.1.0

Hay, C. (2026). Refusal — a HAUSE statement. In HAUSE — a design system for AI (Version 0.1.0). hause.design. https://hause.design/forms/refusal

The specimen, the source account and the props share one form record. Cite this page or follow its source identifier to inspect the implementation.