Error
Inline failure copy. Exported as GeistError so it does not collide with the built-in Error constructor.
Default
Default label is Error. The default slot is the message. role="alert" is already on the root.
Error: This email address is already in use.
1
<GeistError>This email address is already in use.</GeistError>
Custom label
No label
Pass :label="false" when the surrounding field already names the problem.
Sizes
small is 12px, medium is 13px, large is 16px. medium is the default.
Error object
error.message fills the slot when you do not pass children. action is plain text unless link is set.
Best practices
GeistErroris a line of copy next to a field or under a section, not a full-page boundary. Toasts cover transient save failures. Input's own error state covers a single invalid field.- Say what happened, then what to do. Skip "Oops", "Unfortunately", and "Unable to". User-state errors use Couldn't; system errors use Failed to.
- Name the resource (
Couldn't Load Deployments), not Something Went Wrong. Pair platform failures with a stable request or deployment id the user can copy. :label="false"when a nearby Label already identifies the field. A customlabelis for a named subsystem (Email Error, Billing Error).- The folder also exports
Erroras an alias ofGeistError. New pages should importGeistError. - When the message appears after a failed request, wrap it in
aria-live="polite". The component already setsrole="alert".