Documentacion

Componentes responsive para proyectos Impulsa

Resumen

Dashboard

Vista integrada para revisar componentes del framework usando las mismas clases base del CDN.

Componentes14Menu final
Campos12Validables
Iconos50+Material Symbols
CDNCSS + JSSin inline

Componentes base

Botones, campos, chips, badges, progress y snackbar compartiendo estilos del framework.

Online
BotonesDocsI CDN

Estado operativo

Indicadores y resumen tabular compacto.

ModuloEstado
CSSListo
JSDemo
DocsActivo
El dashboard usa los componentes reales para detectar cambios de estilos base.
Contenido del paso seleccionado.

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 Release14 Mar 2023ActiveJS
Fix Platform Errors12 Feb 2023CompletedML
Launch our Mobile App10 Mar 2023ActiveAG
Add the New Pricing Page08 Mar 2023ActiveCR
Redesign New Online Shop01 Mar 2023PendingLV
Material UI Design03 Apr 2023PendingNP
Add Progress Track12 Feb 2023CompletedTM
Review Dashboard Layout18 Apr 2023ActiveFD
Create Help Documentation22 Apr 2023PendingRS
Optimize Table Responsive25 Apr 2023ActiveEM
Validate Form Fields28 Apr 2023CompletedDG
Prepare CDN Release30 Apr 2023PendingBA

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.

Datos principales
Seleccion y preferencias
Tipo de cliente
Seleccionar un tipo.
Nivel de prioridadDebe ser 50 o superior.
ActivacionDebe estar activo.
PreferenciasElegir al menos una preferencia.
Texto

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.

Abrir Google Icons

Navegacion

dashboarddashboardhomehomemenumenuarrow_backarrow_backarrow_forwardarrow_forwardexpand_moreexpand_morechevron_rightchevron_right

Acciones

addaddediteditdeletedeletesavesavedownloaddownloaduploaduploadrefreshrefresh

Estado

check_circlecheck_circleerrorerrorwarningwarninginfoinfopendingpendingsyncsync

Comunicacion

mailmailchat_bubblechat_bubblenotificationsnotificationsphone_iphonephone_iphonesendsendforumforum

Archivos

descriptiondescriptionfolderfolderattach_fileattach_filearticlearticleimageimagecloud_uploadcloud_upload

Usuarios

personpersongroupgroupbadgebadgeaccount_circleaccount_circleadmin_panel_settingsadmin_panel_settingsmanage_accountsmanage_accounts

Fechas

calendar_monthcalendar_montheventeventschedulescheduletodaytodaydate_rangedate_rangetimertimer

Tablas/Datos

table_charttable_chartgrid_viewgrid_viewbar_chartbar_chartfilter_listfilter_listsearchsearchvisibilityvisibilityanalyticsanalytics

Proceso

Stepper

Pasos con estado activo, errores y navegacion.

Contenido del paso seleccionado.

Vistas

Tabs

Ejemplo simple de tabs funcional sin tabla ni paginador.

Contenido resumido del componente.
Detalle adicional para la vista seleccionada.
Historial de cambios o actividad reciente.

Componentes extra

Más Elementos

Demos consolidadas de componentes secundarios en una sola pagina.

Badge

MensajesPedidos

Chips

AnaliticaActivoRevisionF Fernando

Grid list

Tile grande
Ventas
Clientes
Soporte

Menu

Progress

Sidenav

Contenido del panel principal.

SnackBar

Toolbar

Barra

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, role y labels reales en formularios.

Mapa de componentes

ComponenteClases principalesJS / data attributesUso 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-badgedata-badgeEstados, 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 body o con defer.
  • No mezclar nombres de clases de otros frameworks.
  • Mantener estructura semantica y labels reales.
  • Verificar mobile y scroll interno en tablas.
  • Usar material-symbols-rounded para 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.css y JS.