Vista General de Widgets
Widgets de Flutter del paquete tiendana_uikit.
Molecules (Componentes Modernos)
Botones (molecules/buttons/)
- AppElevatedButton - Botón relleno con animación hover circular
- AppOutlinedButton - Botón con borde y animación
- AppTextButton - Botón de texto minimalista
- AppIconButton - Botón circular solo ícono
- AppRoundIconButton - Variante redondeada de ícono
- AppNavbarButton - Botón para navegación
Todos los botones soportan:
- 7 variantes de color:
primary,secondary,red,lavender,sky,sun,greenNeon - 2 tamaños: constructor normal y
.small() - Íconos personalizables
- Animaciones hover con
flutter_animate - Estados: normal, hover, pressed, disabled
Inputs (molecules/input/)
- ImageInput - Input de imágenes
Widgets Legacy
Widgets pre-construidos en lib/widgets/:
Formularios
- AppTextFormField - Campo de texto con validación
- AppBtnFormField - Campo de texto con botón
- LoginFormField - Campo de login especializado
- AppCheckBox - Checkbox personalizado
- AppDropdownButton - Dropdown básico
- TiendanaDropdown - Dropdown mejorado
Botones Legacy
- AppPrimaryButton - Botón primario (legacy)
- AppSecundaryButton - Botón secundario (legacy)
- AppDeleteButton - Botón de eliminación
- LoginButton - Botón de login especializado
Chips
- TiendanaChoiceChip - Chip de selección
- TiendanaInputChip - Chip de input
Uso Recomendado
Para nuevos proyectos, usa los componentes Molecules que tienen:
- Arquitectura moderna
- Animaciones fluidas
- API consistente
- Mejor mantenibilidad
// Recomendado: Molecules
import 'package:tiendana_uikit/molecules/buttons/buttons.dart';
AppElevatedButton(
text: 'Continuar',
variant: ButtonVariant.primary,
onPressed: () {},
)
// Legacy (solo para compatibilidad)
import 'package:tiendana_uikit/widgets/app_primary_button.dart';
Sistema de Tokens
Todos los widgets usan el sistema de tokens de lib/tokens/:
// Colores
ColorsTokens.colorNatura // #00D47E
ColorsTokens.colorForrest // #1B434C
// Espaciado
SpacingTokens.spacingMd // 16px
SpacingTokens.paddingBtn // EdgeInsets específicos
// Tipografía
TypographyTokens.fontSizeBase // 14px
TypographyTokens.fontWeightBold // FontWeight.w700