mini_ui_flutter 1.0.0 copy "mini_ui_flutter: ^1.0.0" to clipboard
mini_ui_flutter: ^1.0.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.

mini_ui_flutter #

Un paquete de componentes UI para Flutter con sistema de temas basado en shadcn/ui.

pub package License: MIT

Instalación via pub.dev #

dependencies:
  mini_ui_flutter: ^1.0.0
flutter pub get

Instalación via github #

dependencies:
  mini_ui_flutter: 
    git:
      url: https://github.com/AlexMuguerza/mini_ui_flutter.git
flutter pub get

Uso rápido #

import 'package:mini_ui_flutter/miniui.dart';

// Envolver la app con MinTheme
MinTheme(
  data: MinThemeData.light(), // o MinThemeData.dark()
  child: MyApp(),
)

// Usar tokens de color
final colors = context.theme.colors;
Container(color: colors.card)
Text('Hola', style: TextStyle(color: colors.cardForeground))

Localización #

import 'package:mini_ui_flutter/miniui.dart';

// Envolver la app con MinLocalizations
MinLocalizations(
  locale: const Locale('es'), // o Locale('en')
  child: MinTheme(
    data: MinThemeData.light(),
    child: MyApp(),
  ),
)

// Usar en componentes
final locale = context.minLocale;
locale.selectPlaceholder;       // "Seleccionar..." (es) / "Select..." (en)
locale.datePlaceholder;         // "Seleccionar fecha" (es) / "Select date" (en)
locale.closeDrawerLabel;        // "Cerrar menú" (es) / "Close menu" (en)
locale.months;                  // ["Enero", ...] / ["January", ...]
locale.dayHeaders;              // ["L", "M", ...] / ["M", "T", ...]

// Sobrescribir strings parcialmente
MinLocalizations(
  locale: const Locale('es'),
  overrides: MinLocale.es.copyWith(
    selectPlaceholder: 'Elige una opción',
  ),
  child: MyApp(),
)

Componentes #

Componente Descripción
MinButton Botón con variantes (primary, secondary, outline, ghost), tamaños, loading, disabled, borderRadius
MinButtonGroup<T> Grupo de botones con selección completa, navegable por teclado (flechas/enter/espacio)
MinCard Tarjeta con fondo, borde, sombra y padding del tema
MinSelect<T> Selección tipada con searchable, secciones, leading/trailing
MinDatePicker Selector de fecha con calendario mensual y selector de meses
MinInput Campo de texto con tipos semánticos, variantes, leading/trailing, showCounter
MinSwitch Interruptor toggle con tamaños, semanticLabel
MinCheckbox Checkbox con tamaños, icono personalizable, semanticLabel
MinAppBar Barra de aplicación con leading, title, trailing
MinScaffold Andamiaje de página con appBar, FAB, drawers, resizeToAvoidBottomInset
MinDrawer Drawer start/end con gestos, overlay, modo persistente, Escape para cerrar
MinPopover Contenedor flotante anclado con contenido custom

Accesibilidad #

Todos los componentes interactivos incluyen:

  • Semantics: Labels descriptivos para lectores de pantalla
  • Focus: Navegación completa por teclado (Tab, Enter, Espacio, Flechas)
  • MouseRegion: Cursor interactivo en web/desktop
  • Keyboard shortcuts: Enter/Espacio para activar, Escape para cerrar, Flechas para navegar

Tema #

Tokens de color (shadcn/ui) #

Token Uso
background / foreground Fondo principal y texto
card / cardForeground Superficies de tarjetas
popover / popoverForeground Paneles flotantes
primary / primaryForeground Acento principal
secondary / secondaryForeground Variante secundaria
muted / mutedForeground Fondos atenuados
accent / accentForeground Estados hover/selección
destructive / destructiveForeground Errores/acciones destructivas
border, input, ring Bordes, inputs, rings de foco

Acceso al tema #

final theme = context.theme;
final colors = theme.colors;
final typography = theme.typography;
final spacing = theme.spacing;
final radius = theme.radius;

Estructura #

lib/
├── miniui.dart                  # Barrel export
├── locals/                      # Localización
│   ├── min_locale.dart          # MinLocale con strings es/en
│   └── min_localizations.dart   # MinLocalizations InheritedWidget
├── theme/                       # Sistema de temas
│   ├── colors.dart              # Paletas zinc/zincDark/slate/slateDark
│   ├── typography.dart          # Escala tipográfica
│   ├── spacing.dart             # Escala de espaciado
│   ├── radius.dart              # Escala de bordes
│   ├── shadows.dart             # Sombras sm/md/lg/xl/xl2
│   ├── motion.dart              # Animaciones
│   └── theme.dart               # MinTheme, MinThemeData
├── components/                  # Widgets UI
│   ├── min_button.dart
│   ├── min_button_group.dart
│   ├── min_card.dart
│   ├── min_select.dart
│   ├── min_date_picker.dart
│   ├── min_input.dart
│   ├── min_switch.dart
│   ├── min_checkbox.dart
│   ├── min_app_bar.dart
│   ├── min_scaffold.dart
│   ├── min_drawer.dart
│   └── min_popover.dart
└── resources/min_floating/      # Primitivas de overlay (interno)

Desarrollo #

flutter pub get              # Instalar dependencias
flutter analyze              # Lint + análisis estático
flutter test                 # Ejecutar tests (109 tests)
cd example && flutter run    # Ejecutar app de demo

Licencia #

MIT License - ver LICENSE para más detalles.

1
likes
160
points
41
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

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.

Repository (GitHub)
View/report issues

Topics

#ui #components #design-system #theme #shadcn

License

MIT (license)

Dependencies

flutter

More

Packages that depend on mini_ui_flutter