Resumen
Dashboard
Vista integrada para revisar componentes del framework usando las mismas clases base del CDN.
Componentes base
Botones, campos, chips, badges, progress y snackbar compartiendo estilos del framework.
Estado operativo
Indicadores y resumen tabular compacto.
| Modulo | Estado |
|---|---|
| CSS | Listo |
| JS | Demo |
| Docs | Activo |
Acciones
Botones
Variantes listas para comandos primarios, secundarios y compactos.
Contenedores
Tarjetas
Superficies reutilizables para piezas de informacion y acciones.
Basica
Contenido simple con padding, borde y sombra suave.
Con cabecera
Titulo, descripcion y accion.
Responsive
La grilla se adapta a pantallas chicas sin estilos inline.
Datos
Tablas
Tabla de tareas con scroll interno, acciones sticky y menu contextual.
Mis tareas
Lista de tareas pendientes
| Nombre | Fecha limite | Estado | Usuario | Acciones | |
|---|---|---|---|---|---|
| Public Beta Release | 14 Mar 2023 | Active | JS | ||
| Fix Platform Errors | 12 Feb 2023 | Completed | ML | ||
| Launch our Mobile App | 10 Mar 2023 | Active | AG | ||
| Add the New Pricing Page | 08 Mar 2023 | Active | CR | ||
| Redesign New Online Shop | 01 Mar 2023 | Pending | LV | ||
| Material UI Design | 03 Apr 2023 | Pending | NP | ||
| Add Progress Track | 12 Feb 2023 | Completed | TM | ||
| Review Dashboard Layout | 18 Apr 2023 | Active | FD | ||
| Create Help Documentation | 22 Apr 2023 | Pending | RS | ||
| Optimize Table Responsive | 25 Apr 2023 | Active | EM | ||
| Validate Form Fields | 28 Apr 2023 | Completed | DG | ||
| Prepare CDN Release | 30 Apr 2023 | Pending | BA |
Superficie inferior
Bottom sheet
Panel temporal desde abajo para acciones contextuales.
Acciones
Boton
Filled, tonal, texto, icon, FAB, mini FAB y extended FAB.
Modal
Dialog
Dialog con header, contenido scrollable y acciones persistentes.
Contenido plegable
Expansion panel
Accordion con acciones para expandir o colapsar todos los paneles.
Basic expansion panel
Contenido descriptivo del panel.
Expansion panel as accordion
Puede usarse para FAQs, configuraciones o filtros.
Panel con contenido largo
El alto se adapta al contenido y conserva separaciones consistentes.
Campos
Form field
Campos Material con y sin validacion para comparar comportamiento.
Campos predeterminados con validacion
La validacion se activa con data-im-campo.
Campos predeterminados sin validacion
Mismos estilos visuales sin data-im-campo, estados ni mensajes dinamicos.
Sistema visual
Iconos
Material Symbols Rounded agrupados por uso frecuente.
Proceso
Stepper
Pasos con estado activo, errores y navegacion.
Vistas
Tabs
Ejemplo simple de tabs funcional sin tabla ni paginador.
Componentes extra
Más Elementos
Demos consolidadas de componentes secundarios en una sola pagina.
Badge
Chips
Grid list
Menu
Progress
Sidenav
Contenido del panel principal.
SnackBar
Toolbar
Tooltip
Tree
- Componentes
- Botones
- Campos
- CDN
- CSS
- JS
Guia
Ayuda
Documentacion practica para consumir Impulsa Material desde proyectos externos y para guiar a IA/Codex al construir interfaces.
Que es el CDN
Impulsa Material es un framework CSS/JS consumible desde links CDN. Los proyectos consumidores cargan material.css, material.js y, si usan formularios validados, material-validaciones.js. La interfaz se construye con clases im-* y atributos data-* ya definidos; no copies estilos inline ni recrees componentes desde cero.
Instalacion basica
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,400,0,0&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://material.impulsagroup.com/css/material.css">
<script src="https://material.impulsagroup.com/js/material.js" defer></script>
<script src="https://material.impulsagroup.com/js/material-validaciones.js" defer></script>
Instrucciones para IA / Codex
- Usar siempre clases existentes del framework antes de crear CSS nuevo.
- Preferir componentes documentados: botones, tarjetas, tablas, dialogs, bottom sheets, tabs, steppers, form fields, chips, badges, snackbar, toolbar, sidenav, progress, spinner, grid list y expansion.
- Usar prefijo
im-para cualquier extension nueva. - No inventar clases sin revisar
material.css. - No usar estilos inline salvo casos excepcionales.
- No duplicar logica JS si ya existe mediante atributos
data-*. - Mantener accesibilidad basica:
type="button",aria-label,aria-expanded,roley labels reales en formularios.
Mapa de componentes
| Componente | Clases principales | JS / data attributes | Uso recomendado |
|---|---|---|---|
| Layout app | .im-aplicacion, .im-menu-lateral, .im-contenedor, .im-barra-superior, .im-contenido | - | Estructura base de aplicaciones con menu lateral. |
| Navegacion | .im-nav-item | [data-seccion], [data-panel], [data-alternar-menu] | Menu por hash y paneles internos. |
| Botones | .im-boton, .im-boton--principal, .im-boton--tonal, .im-boton--texto, .im-boton-icono, .im-fab | - | Acciones primarias, secundarias e iconicas. |
| Tarjetas | .im-tarjeta, .im-tarjeta__cabecera, .im-tarjeta--metrica | - | Bloques de contenido, metricas y paneles. |
| Grillas | .im-grilla, .im-grilla--dos-columnas, .im-grilla--tres-columnas, .im-grilla--metricas, .im-grilla--dashboard | - | Distribuciones responsive. |
| Tablas | .im-tabla-contenedor, .im-tabla, .im-tabla-tareas, .im-tabla-tareas__tarjeta | [data-im-menu], [data-im-menu-trigger] | Listados administrativos y tablas con menu contextual. |
| Chips/badges | .im-chip, .im-badge | data-badge | Estados, etiquetas y contadores. |
| Dialog | .im-dialog | [data-abrir-dialog], [data-cerrar-dialog] | Confirmaciones o edicion modal. |
| Bottom sheet | .im-bottom-sheet | [data-abrir-bottom-sheet], [data-cerrar-bottom-sheet] | Acciones rapidas desde la parte inferior. |
| Tabs | .im-tabs, .im-tab-panel | [data-tabs] | Cambiar vistas dentro de una tarjeta. |
| Stepper | .im-stepper | [data-stepper], [data-stepper-prev], [data-stepper-next] | Procesos guiados por pasos. |
| Formularios | .im-formulario, .im-campo, .im-campo-material, .im-campo--ancho | - | Captura de datos con estructura consistente. |
| Validaciones | .im-campo-material, .im-campo-grupo | [data-im-campo], [data-im-validar], [data-im-error], [data-im-contador] | Validacion declarativa de formularios. |
| Snackbar | .im-snackbar | [data-abrir-snackbar], [data-cerrar-snackbar] | Mensajes breves de feedback. |
| Progress/spinner | .im-progress-bar, .im-spinner | - | Estados de carga determinate, indeterminate y circular. |
Formularios y validaciones
Cargar material-validaciones.js cuando el formulario use validacion declarativa. Cada campo validable necesita un contenedor con data-im-campo="tipo", un control interno, opcionalmente required y un nodo small o [data-im-error] para mensajes.
Tipos soportados: email, whatsapp, cuit, dni, nombre, generico, importe, genero, autocomplete, checkbox, radio, toggle, slider, textarea, fecha, hora, password, confirmarPassword, cantidad.
<form class="im-formulario" data-im-validar>
<label class="im-campo im-campo-material" data-im-campo="email">
<span>Correo</span>
<input type="email" name="email" placeholder="nombre@dominio.com" required>
<i class="im-campo__icono material-symbols-rounded" aria-hidden="true">mail</i>
<small data-im-error>Email requerido.</small>
</label>
<label class="im-campo im-campo-material" data-im-campo="cuit">
<span>CUIT</span>
<input type="text" name="cuit" placeholder="20-12345678-3" required>
<small data-im-error>CUIT requerido.</small>
</label>
<label class="im-campo im-campo-material" data-im-campo="importe">
<span>Importe</span>
<input type="text" name="importe" placeholder="1250365,25" required>
<b class="im-campo__prefijo" aria-hidden="true">$</b>
<small data-im-error>Importe requerido.</small>
</label>
<label class="im-campo im-campo-material" data-im-campo="fecha">
<span>Fecha</span>
<input type="text" name="fecha" placeholder="dd/mm/aaaa" inputmode="numeric" required>
<button class="im-campo__boton-icono material-symbols-rounded" type="button" data-im-datepicker aria-label="Abrir calendario">calendar_month</button>
<small data-im-error>Fecha requerida.</small>
</label>
<label class="im-campo im-campo-material" data-im-campo="password">
<span>Password</span>
<input type="password" name="password" required>
<small data-im-error>Password requerido.</small>
</label>
<label class="im-campo im-campo-material" data-im-campo="confirmarPassword" data-im-confirmar="password">
<span>Confirmar password</span>
<input type="password" name="confirmarPassword" required>
<small data-im-error>Confirmacion requerida.</small>
</label>
<label class="im-campo im-campo-material im-campo--ancho" data-im-campo="textarea" data-im-max="255">
<span>Descripcion</span>
<textarea name="descripcion" rows="4" required></textarea>
<small data-im-error>Descripcion requerida.</small>
<em class="im-campo__contador" data-im-contador>0/255</em>
</label>
</form>
Personalizacion visual
Personalizar desde variables CSS, sin editar componentes ni usar estilos inline. Variables frecuentes: --im-color-principal, --im-color-principal-suave, --im-color-secundario, --im-color-fondo, --im-color-superficie, --im-color-texto, --im-color-borde, --im-radio, --im-sombra-1, --im-sombra-2, --im-tipografia.
:root {
--im-color-principal: #112c4e;
--im-color-secundario: #2eb3ba;
}
Ejemplos minimos de uso
<button class="im-boton im-boton--principal" type="button">Guardar</button>
<article class="im-tarjeta">
<div class="im-tarjeta__cabecera">
<div><h3>Proyecto</h3><p>Estado general</p></div>
<span class="im-chip im-chip--exito">Activo</span>
</div>
</article>
<div class="im-tabla-contenedor">
<table class="im-tabla">
<thead><tr><th>Nombre</th><th>Estado</th></tr></thead>
<tbody><tr><td>CDN</td><td>Activo</td></tr></tbody>
</table>
</div>
<button class="im-boton im-boton--principal" type="button" data-abrir-dialog>Abrir dialog</button>
<button class="im-boton im-boton--tonal" type="button" data-abrir-bottom-sheet>Abrir bottom sheet</button>
<div class="im-tabs" data-tabs>
<button class="activo" type="button">Resumen</button>
<button type="button">Detalle</button>
</div>
<div class="im-tab-panel activo">Resumen</div>
<div class="im-tab-panel">Detalle</div>
<label class="im-campo im-campo-material" data-im-campo="email">
<span>Email</span>
<input type="email" name="email" required>
<small data-im-error>Email requerido.</small>
</label>
Buenas practicas
- Cargar CSS antes del HTML visible.
- Cargar JS al final del
bodyo condefer. - No mezclar nombres de clases de otros frameworks.
- Mantener estructura semantica y labels reales.
- Verificar mobile y scroll interno en tablas.
- Usar
material-symbols-roundedpara iconos. - Mantener textos accesibles y botones con
type="button".
Checklist para publicar CDN
- Confirmar rutas finales de CSS y JS.
- Versionar URLs cuando haya cambios importantes.
- Probar en proyecto externo limpio.
- Probar responsive.
- Probar formularios validados.
- Probar navegacion por hash.
- Probar overlays: dialog, bottom sheet y snackbar.
- Mantener esta seccion sincronizada con
material.cssy JS.