Atomic Desing System Package
Paquete de sistema de diseño para Flutter basado en los principios de Atomic Design.
Getting started
fake_store_api_package: 7
Usage
1. Agrega la dependencia en tu pubspec.yaml:
dependencies:
atomic_desing_system_package:
git:
url: https://github.com/bruno8311/atomic_desing_system_package.git
2. Importa los componentes que necesites:
import 'package:atomic_desing_system_package/atomic_desing_system_package.dart';
3. Utiliza los componentes en tu app:
AtomButton(
onPressed: () {},
child: Text('Botón atómico'),
);
Se puede ver el uso correcto en la pestaña del example.
Descripción
Este paquete implementa un sistema de diseño completo estructurado en cinco niveles: átomos, moléculas, organismos, plantillas y páginas. Cada componente es fácilmente reutilizable y está pensado para acelerar el desarrollo de interfaces consistentes y mantenibles en Flutter.
Organización del sistema de diseño
- Átomos: Elementos básicos como botones, inputs, iconos, imágenes, textos, avatares, etc. (ubicados en
lib/presentation/atoms/). - Moléculas: Combinaciones simples de átomos, como campos de formulario, tarjetas, barras de búsqueda, modales, etc. (
lib/presentation/molecules/). - Organismos: Componentes complejos y autosuficientes, como formularios completos, headers, footers, listas y carruseles. (
lib/presentation/organisms/). - Plantillas: Incluye un template base genérico y plantillas especializadas reutilizables para dashboards, páginas de login, contacto, detalle de producto, listas y más. (
lib/presentation/templates/). - Páginas: Ejemplos de páginas completas usando los componentes anteriores. (
lib/presentation/pages/).
Ejemplo tipo Showcase
El paquete incluye un proyecto de ejemplo en la carpeta example/ que funciona como un showcase interactivo. Este ejemplo muestra el funcionamiento de cada componente y tiene pantallas dedicadas para cada nivel de Atomic Design, facilitando la exploración y pruebas de los componentes.
Ejecutar el ejemplo
1. Clona el repositorio:
git clone https://github.com/bruno8311/atomic_desing_system_package.git
2. Entra a la carpeta de ejemplo:
cd atomic_desing_system_package/example
3. Instala dependencias y ejecuta:
flutter pub get
flutter run
Descripción de los Templates
TemplateBasePage (genérico):
Plantilla base genérica, flexible y reutilizable que permite construir cualquier página con header, body y footer. Soporta tres modos de body: lista de cards, body personalizado o body descriptivo (con formulario). Es la base sobre la que se construyen los demás templates y puede ser extendida para crear nuevas páginas rápidamente.
Plantilla de dashboard personalizable que integra header con información de usuario, carruseles de imágenes y descripciones, tarjetas de acceso rápido y un footer configurable. Ideal para mostrar información resumida y accesos directos en una sola pantalla.
-
TemplateLoginPage:
Plantilla de página de inicio de sesión con campos para email y contraseña, opción de recuperar contraseña, título, subtítulo y posibilidad de mostrar flecha de retroceso. Facilita la implementación de pantallas de autenticación consistentes. -
TemplateListCarts:
Plantilla para mostrar una lista de elementos (por ejemplo, carritos o productos) con header de búsqueda, cards con imagen y descripción, y footer configurable. Útil para catálogos, listas de compras o cualquier listado de ítems. -
TemplatetDetailPage:
Plantilla de detalle, mostrando imagen, título, precio, categoría, descripción y botón de acción. Ideal para páginas de detalle en e-commerce o apps de catálogo. -
TemplateContactPage:
Plantilla de contacto o formulario de consulta, con título, datos de contacto, campo de mensaje y botón de envío. Perfecta para páginas de soporte, contacto o feedback.
Libraries
- atomic_desing_system_package
- core/constants/app_colors
- core/constants/app_spacing
- core/constants/app_text_styles
- presentation/atoms/atoms
- presentation/atoms/buttons/atom_fab
- presentation/atoms/display/atom_avatar
- presentation/atoms/display/atom_card
- presentation/atoms/display/atom_chip
- presentation/atoms/display/atom_icon
- presentation/atoms/display/atom_img
- presentation/atoms/display/atom_label
- presentation/atoms/display/atom_text
- presentation/atoms/inputs/atom_checkbox
- presentation/atoms/inputs/atom_input
- presentation/atoms/inputs/atom_radio
- presentation/atoms/inputs/atom_switch
- presentation/molecules/cards/molecl_card
- presentation/molecules/cards/molecule_icon_card
- presentation/molecules/display/molecl_avatar_name
- presentation/molecules/forms/molecl_input_helper_text
- presentation/molecules/forms/molecule_date_field
- presentation/molecules/forms/molecule_dropdown_field
- presentation/molecules/forms/molecule_email_field
- presentation/molecules/forms/molecule_link_forgot_password
- presentation/molecules/forms/molecule_password_field
- presentation/molecules/forms/molecule_phone_field
- presentation/molecules/modals/molecule_confirm_modal
- presentation/molecules/modals/molecule_simple_modal
- presentation/molecules/molecules
- presentation/molecules/search-bar/molecl_search_bar
- presentation/organisms/carrousel/organism_carrousel
- presentation/organisms/forms/organism_login_form
- presentation/organisms/headers/organism_header3
- presentation/organisms/headers/organism_header_icon
- presentation/organisms/headers/organism_header_searchbox
- presentation/organisms/lists/organism_list_card
- presentation/organisms/lists/organism_list_icon_card
- presentation/organisms/organism
- presentation/pages/page_contact
- presentation/pages/page_dashboard
- presentation/pages/page_detail
- presentation/pages/page_list_carts
- presentation/pages/page_login
- presentation/pages/pages
- presentation/templates/template_base_page
- presentation/templates/template_contact_page
- presentation/templates/template_dashboard_page
- presentation/templates/template_detail_page
- presentation/templates/template_list_carts
- presentation/templates/template_login_page
- presentation/templates/templates