mini_ui_flutter 1.4.0
mini_ui_flutter: ^1.4.0 copied to clipboard
UI component library for Flutter inspired by shadcn/ui. 12+ accessible components with full theme system. Copy/paste philosophy with upcoming CLI to add only what you need.
1.4.0 #
Components #
MinFormInput—FormField<String>wrapper aroundMinInputcon soporte completo de formularios:controller,initialValue,validator,autovalidateMode,forceErrorText,onChanged,onSubmitted,onSaved,reset,enabled,leading/trailing, multiline,maxLength,minLines,inputFormatters,focusNodey todas las variantes deMinInput.
Example app #
InputsView— demo deMinFormInputcon formulario de 4 campos (nombre, email, password, bio multiline), botones Guardar/Reset y resumen de valores guardados.
Tests #
min_form_input_test.dart— 37 tests cubriendo rendering, validación, save/reset, disabled, controller sync, multiline asserts, inputFormatters, maxLength, focus, error variant y multi-field form.- Total: 184 tests en 22 archivos.
1.3.0 #
Components #
MinTabs<T>— barra de tabs controlada con variantesunderlineypill, tres tamaños, navegación por teclado (flechas, Enter/Espacio), foco visible y scroll horizontal opcional.MinBadge— etiqueta con variantesprimary/secondary/outline/destructive.MinBadgeWrappersuperpone un badge en cualquier esquina de un widget hijo para indicadores de notificación.MinAccordion<T>— sección expandible/colapsable con header y body configurables, modo simple o múltiple, tres tamaños y soporte de teclado.
Docs #
MinPopover— correcciones en el dartdoc (la clase se llamabaMinPopover, noMiniPopover) y renombre del widget privado a_MinPopoverPanelsiguiendo la convención del paquete.
Example app #
- Nuevas vistas demo:
BadgesView,TabsView,AccordionViewregistradas enAppSection/AppView. EdgeToEdgeactivado víaSystemChrome.setEnabledSystemUIModey ajustes destatusBarBrightnessenAppCubit.
Tests #
min_tabs_test.dart,min_badge_test.dart,min_accordion_test.dart— 24 tests en total.- Total: 147 tests en 18 archivos.
1.2.0 #
Components #
MinToast— sistema de notificaciones toast con overlay global, auto-close, timer bar, pausa al hover, swipe para descartar, colas por posición, máx. visibles por grupoMinDrawer— componente extraído deMinScaffoldcomo widget independiente conMinDrawerController
Refactor #
- Componentes grandes divididos en subdirectorios con
part/part ofpara mejorar mantenibilidad MinToastVariantsimplificado: solofloating(se eliminófixed)
Fixes #
MinToast— timer bar se reiniciaba al aparecer un segundo toast porque el árbol de widgets cambiaba deAnimatedOpacityaAbsorbPointer. Solución:AbsorbPointer(absorbing: index > 0)incondicionalMinToast— fórmularemainingDurationestaba invertida (devolvía elapsed en lugar de remaining)MinSelect— búsqueda no filtraba porque faltaba listener en_searchControllerMinSelect—RangeErroral seleccionar opciones por captura incorrecta deflatIndexen closures
Tests #
min_toast_test.dart— 11 tests- Total: 128 tests (+6)
1.1.0 #
Components #
MinButton— altura fija cambiada a altura mínima (BoxConstraints(minHeight:)) para soportar contenido multilíneaMinProgress— indicador de progreso con varianteslinearycircular, ambos soportan modo determinable (valor 0.0–1.0) e indeterminable (null), animaciones, colores personalizablesMinTooltip— tooltip flotante que aparece al hacer hover, usa sistema de floating (overlay + posicionamiento automático), delay configurable, hereda el tema
Fixes #
MinTooltip— web hover no funcionaba porAbsorbPointeren el overlay barrier. CambiadocloseOnTapOutside: falsepara evitar que el barrier absorba el hit test y dispareonExitdelMouseRegion- Dartdocs agregados a
MinProgressVariant,MinProgressyMinTooltip
Example app #
theme_palettes.dart: paletas personalizadas conMinColors(SlatePaletteyVioletPalette)AppCubitahora manejaThemeVariantenum consetThemeVariant()SettingsView,ProgressView,TooltipView— nuevas vistas demo- Ancho máximo de la app limitado a 1024px centrado para web
CI/CD #
.github/workflows/deploy.yml— build web del example + deploy a GitHub Pages
README #
- Badge de demo online agregado
Tests #
min_progress_test.dart— 8 testsmin_tooltip_test.dart— 5 tests- Total: 122 tests (+13)
1.0.0 #
Initial release.
Theme system #
MinThemeInheritedWidget withMinThemeData- Color tokens based on shadcn/ui (zinc, zincDark, slate, slateDark palettes)
- Typography, spacing, radius, shadows, and motion scales
context.themeextension for easy access
Components #
MinButton— primary/secondary/outline/ghost variants, sm/md/lg sizes, loading state, borderRadiusMinButtonGroup<T>— generic controlled group with arrow key navigation, Enter/Space activationMinCard— theme-aware card with padding, margin, background, border, shadowMinSelect<T>— typed selection with searchable, sections, leading/trailing, keyboard navigationMinDatePicker— month grid calendar, "Hoy" and "Meses" toggle, full SemanticsMinInput— text/email/password/number/phone/url/multiline types, outline/filled/ghost/underline styles, leading/trailing, showCounter, error stateMinSwitch— toggle with sm/md/lg sizes, semanticLabelMinCheckbox— check with sm/md/lg sizes, custom icon/painter, semanticLabelMinAppBar— app bar with sm/md/lg sizes, leading/title/trailingMinScaffold— page layout with appBar, body, FAB, bottomBar, drawers, resizeToAvoidBottomInsetMinDrawer— start/end drawers with gestures, overlay, persistent mode, Escape to close, drawerLabel/endDrawerLabelMinPopover— floating anchored container with close on tap outside, Escape, scroll
Localization #
MinLocalizationsInheritedWidget withMinLocale- Built-in
MinLocale.es(Spanish) andMinLocale.en(English) context.minLocaleextension for easy access- Partial overrides via
overrides:parameter - All user-facing strings in
MinDatePicker,MinSelect, andMinDraweruse locale
Accessibility #
- Semantics on all interactive components
- Full keyboard navigation (Tab, Enter, Space, Escape, Arrow keys)
- MouseRegion with cursor changes on web/desktop
- Focus management with visible focus rings
semanticLabelparameters onMinButton,MinSwitch,MinCheckbox,MinInputdrawerLabel/endDrawerLabelonMinDrawer