Skip to content

Primitive Components

Directly welded to a network promise. Manages loading, success, and error states automatically.

<Weld.Button
action={() => api.post('users', Schema, { body })}
variant="primary"
size="md"
>
Create User
</Weld.Button>
Prop Type Default
action () => WeldResponse | Promise
variant 'primary' | 'secondary' | 'ghost' | 'danger' 'primary'
size 'sm' | 'md' | 'lg' 'md'
showSuccess boolean true
neon boolean | NeonConfig | 'none' true

Universal input — renders as text, textarea, select, date picker, etc.

<Weld.Input
type="email"
label="Email"
schema={z.string().email()}
placeholder="you@example.com"
/>
<Weld.Input type="multiline" label="Notes" />
<Weld.Input
type="select"
label="Role"
options={['admin', 'editor', 'viewer']}
/>
Prop Type Default
type 'text' | 'email' | 'password' | 'number' | 'multiline' | 'select' | 'date' | 'url' | 'tel' 'text'
schema ZodSchema
label string
error string
hint string
<Weld.Heading level={1}>Dashboard</Weld.Heading>
<Weld.Heading level={2}>Recent Activity</Weld.Heading>
<Weld.Text>Regular paragraph text.</Weld.Text>
<Weld.Text variant="muted">Subtle secondary text.</Weld.Text>
<Weld.Text variant="code" as="span">api.get('users')</Weld.Text>
<Weld.Badge variant="success" dot>Active</Weld.Badge>
<Weld.Badge variant="error">Failed</Weld.Badge>
<Weld.Badge variant="warning">Pending</Weld.Badge>
<Weld.Avatar name="Franco Romero" size="md" status="online" />
<Weld.Avatar src="/photo.jpg" name="Franco Romero" size="lg" />
<Weld.Breadcrumb items={[
{ label: 'Dashboard', href: '/' },
{ label: 'Users', href: '/users' },
{ label: 'Franco Romero' },
]} />
<Weld.Tabs
items={[
{ id: 'overview', label: 'Overview', content: <Overview /> },
{ id: 'settings', label: 'Settings', badge: 3, content: <Settings /> },
]}
/>