FocusButton constructor
const
FocusButton({
- Key? key,
- required Widget child,
- VoidCallback? onPressed,
- double borderWidth = 2.0,
- List<
Color> gradientColors = const [Colors.blue, Colors.purple, Colors.pink, Colors.orange, Colors.blue], - Duration duration = const Duration(seconds: 2),
- double borderRadius = 8.0,
- Color backgroundColor = Colors.black,
- double? height,
- double? width,
Crea un FocusButton.
child es el widget que se mostrará dentro del botón (requerido).
onPressed es el callback que se ejecuta al presionar el botón.
Si es null, el botón no será interactivo.
gradientColors define los colores del gradiente animado.
Debe tener al menos 2 colores. Se recomienda repetir el primer color
al final para una transición suave (ej: azul, rosa, azul).
borderWidth controla el grosor del borde con gradiente.
borderRadius define el radio de las esquinas del botón.
backgroundColor es el color de fondo del contenido del botón.
animationDuration controla la velocidad de rotación del gradiente.
Un valor más bajo = rotación más rápida.
height y width son opcionales. Si no se especifican, el botón
se adaptará al tamaño de su hijo.
Implementation
const FocusButton({
super.key,
required this.child,
this.onPressed,
this.borderWidth = 2.0,
this.gradientColors = const [
Colors.blue,
Colors.purple,
Colors.pink,
Colors.orange,
Colors.blue,
],
this.duration = const Duration(seconds: 2),
this.borderRadius = 8.0,
this.backgroundColor = Colors.black,
this.height,
this.width,
}) : assert(gradientColors.length >= 2, 'Se requieren al menos 2 colores para el gradiente'),
assert(borderWidth > 0, 'El ancho del borde debe ser mayor a 0'),
assert(borderRadius >= 0, 'El radio del borde debe ser mayor o igual a 0');