Components
Label
Accessible form label — HeroUI Label parity (required, disabled, invalid).
Usage
Default label typography.
RiseLabel.text('Display name')Required
Danger asterisk with spacing (`after:ml-0.5`).
RiseLabel.text(
'Email',
isRequired: true,
)Disabled
`status-disabled` via [RiseThemeData.disabledOpacity].
RiseLabel.text(
'Account ID',
isDisabled: true,
)Invalid
`text-danger` for error context.
RiseLabel.text(
'Password',
isInvalid: true,
)With input
Stacked above [RiseInput].
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
RiseLabel.text('Username'),
SizedBox(height: 6),
RiseInput(hintText: 'jane.doe'),
],
)With description
Label + helper line (common form pattern).
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
RiseLabel.text('Birthday'),
SizedBox(height: 4),
RiseDescription.text('We use this for age-appropriate defaults.'),
],
)Required + invalid
Combined states.
RiseLabel.text(
'Legal name',
isRequired: true,
isInvalid: true,
)Custom indicator
Replace the default asterisk.
RiseLabel(
isRequired: true,
requiredIndicator: Text('(req)', style: TextStyle(color: rise.danger)),
semanticsLabel: 'Invoice number',
child: Text('Invoice number'),
)Control field
Label + description + control via [RiseControlField].
RiseControlField(
label: RiseLabel.text('Company', isRequired: true),
description: Text('This appears on invoices.'),
control: RiseInput(hintText: 'Acme Inc.'),
)