underline static method
Solo un borde inferior. Sin fondo ni bordes laterales/superior.
El padding horizontal se elimina para que el texto arranque al filo. Al enfocar, el borde inferior se engruesa y aparece un degradado sutil como ring. Evoca los inputs de Material Design clásico.
Implementation
static MinInputStyle underline(MinThemeData theme) {
final colors = theme.colors;
Border bottom(Color color, {double width = 1}) => Border(
bottom: BorderSide(color: color, width: width),
);
return MinInputStyle(
idle: BoxDecoration(border: bottom(colors.border)),
focused: BoxDecoration(border: bottom(colors.ring, width: 2)),
error: BoxDecoration(border: bottom(colors.destructive, width: 2)),
disabled: BoxDecoration(border: bottom(colors.input)),
// Sin padding horizontal: el texto arranca al filo del borde.
// Se conserva el padding vertical para mantener la altura táctil mínima.
contentPadding: const EdgeInsets.symmetric(vertical: 8),
disabledForegroundColor: colors.mutedForeground,
);
}