Glass & Gradients Hub

Nivela tus diseños corporativos al infinito con este avanzado sistema híbrido. Funciona sobre exactamente ¡EL MISMO HTML!

🚀 Motor Glassmorphism (Setup)

Para llevar tu UI a la siguiente dimensión, asegúrate de que el contenedor principal (`body` o raíz) tenga un fondo oscuro (Dark Mode) con un gradiente texturizado antes de importar nuestras clases.

Paso 1: Copiar el Core Dark CSS

Pega este archivo masivo en la configuración Global CSS de tu proyecto.

👁️ Mostrar y Copiar 'theme-glass.css' completo
/* =========================================================================
   🟣 GOOGLE STITCH STYLES : GLASS & GRADIENTS (LEVEL 3)
      =========================================================================
   ÍNDICE MAESTRO DE ARQUITECTURA VISUAL (AI PARSER)
   -------------------------------------------------------------------------
   Este archivo establece las bases del diseño Cero-JS.
   
   0. Variables Globales (:root)
   1. Bases Estructurales (.stitch-container, .stitch-section-title...)
   2. Tipografía Semántica (.stitch-h1, .stitch-body...)
   3. Botones y Acciones (.stitch-btn, .stitch-btn-primary...)
   4. Formularios y Controles (.stitch-input, .stitch-toggle, .stitch-range)
   5. Feedback Visual (.stitch-badge, .stitch-avatar, .flex-row)
   6. Progress & Listas (.stitch-progress-wrapper, .stitch-list)
   7. Estructuras de Datos
      > Tarjetas         (.stitch-card)
      > Tablas           (.stitch-table-wrapper, .stitch-table)
      > Pestañas/Tabs    (.stitch-tabs)
      > Métricas         (.stitch-metric-card, .stitch-metric-value)
      > Modales          (.stitch-modal-overlay, .stitch-modal)
   8. Componentes Avanzados Interactivos CSS-Only
      > Skeleton Loaders (.stitch-skeleton)
      > Tooltips Nativos ([data-stitch-tooltip])
      > Sliders (Flechas) (.stitch-slider-wrapper)
      > Galería Autoflow (.stitch-gallery)
      > Menú de Pegado   (.stitch-sticky-nav)
   9. Sistema de Grid Layout (.stitch-grid, .stitch-col-span-*)
   10. Navegación Avanzada (.stitch-breadcrumb, .stitch-dropdown, .stitch-sidebar-toggle-input)
   11. Data-Viz (Gráficos) (.stitch-bar-chart, .stitch-donut, .stitch-timeline)
   12. Feedback Pro (.stitch-toast, .stitch-empty-state, .stitch-steps)
   13. Formularios Pro (.stitch-input-icon-wrapper, .stitch-chips-input, .stitch-dropzone)
========================================================================= */

:root {
    /* Paleta Deep Dark & Neon */
    --stitch-color-text: #ffffff;
    --stitch-color-text-muted: rgba(255, 255, 255, 0.65);
    --stitch-color-bg: transparent; /* El fondo depende del body o envoltura principal */
    
    /* Configuración Cristal / Glass */
    --stitch-glass-bg: rgba(255, 255, 255, 0.03);
    --stitch-glass-bg-hover: rgba(255, 255, 255, 0.08);
    --stitch-glass-border: rgba(255, 255, 255, 0.1);
    --stitch-glass-blur: blur(16px);
    --stitch-glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.3);

    /* Acentos Neón */
    --stitch-color-primary: #ec4899; /* Rosa neón */
    --stitch-color-primary-hover: #db2777;
    --stitch-color-accent: #8b5cf6; /* Púrpura */
    --stitch-color-danger: #ef4444;
    --stitch-color-success: #10b981;
    
    --stitch-radius-sm: 6px;
    --stitch-radius-md: 16px; /* Mayor radio para efecto cristal */
    --stitch-space-sm: 8px;
    --stitch-space-md: 16px;
    --stitch-space-lg: 24px;
}

/* Base Components Elevados */
.stitch-container { 
    padding: var(--stitch-space-lg); 
    background: var(--stitch-glass-bg); 
    backdrop-filter: var(--stitch-glass-blur);
    -webkit-backdrop-filter: var(--stitch-glass-blur);
    border: 1px solid var(--stitch-glass-border); 
    border-radius: var(--stitch-radius-md); 
    box-shadow: var(--stitch-glass-shadow);
    color: var(--stitch-color-text);
    scroll-margin-top: 40px; 
}

.stitch-section-title { font-size: 1.25rem; font-weight: 600; margin: 0 0 var(--stitch-space-md) 0; padding-bottom: var(--stitch-space-sm); border-bottom: 1px solid var(--stitch-glass-border); color: #fff; }

.stitch-h1 { font-size: 2rem; font-weight: 700; margin: 0 0 16px 0; letter-spacing: -0.5px; }
.stitch-h2 { font-size: 1.5rem; font-weight: 600; margin: 0 0 12px 0; }
.stitch-body { font-size: 1rem; line-height: 1.6; color: var(--stitch-color-text-muted); margin: 0 0 16px 0; }
.stitch-muted { color: var(--stitch-color-text-muted); font-size: 0.875rem; display: block; }

/* Botones Gradientes */
.stitch-btn-group { display: flex; gap: 12px; flex-wrap: wrap; }
.stitch-btn { padding: 10px 20px; font-size: 0.875rem; font-weight: 600; border-radius: var(--stitch-radius-sm); cursor: pointer; transition: all 0.3s ease; font-family: inherit; }
.stitch-btn-primary { 
    background: linear-gradient(135deg, var(--stitch-color-accent) 0%, var(--stitch-color-primary) 100%);
    color: #ffffff; 
    border: none; 
    box-shadow: 0 4px 15px rgba(236, 72, 153, 0.3);
}
.stitch-btn-primary:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(236, 72, 153, 0.4); }
.stitch-btn-secondary { background: var(--stitch-glass-bg); color: #ffffff; border: 1px solid var(--stitch-glass-border); backdrop-filter: blur(4px); }
.stitch-btn-secondary:hover { background: var(--stitch-glass-bg-hover); }
.stitch-btn-outline { background-color: transparent; color: #ffffff; border: 1px solid rgba(255,255,255,0.3); }
.stitch-btn-outline:hover { background-color: rgba(255,255,255,0.1); border-color: #fff; }

/* Formulario Glass */
.stitch-form-group { display: flex; flex-direction: column; gap: var(--stitch-space-sm); margin-bottom: var(--stitch-space-md); max-width: 400px; }
.stitch-label { font-size: 0.875rem; font-weight: 500; color: #ffffff; margin-bottom: 4px; display:inline-block;}
.stitch-input, .stitch-select { 
    padding: 12px 16px; 
    font-size: 0.875rem; 
    border: 1px solid var(--stitch-glass-border); 
    border-radius: var(--stitch-radius-sm); 
    font-family: inherit; 
    transition: all 0.3s; 
    background: rgba(0,0,0,0.2); 
    color: #ffffff; 
}
.stitch-input::placeholder { color: rgba(255,255,255,0.3); }
.stitch-input:focus, .stitch-select:focus { outline: none; border-color: var(--stitch-color-primary); background: rgba(0,0,0,0.4); box-shadow: 0 0 0 3px rgba(236, 72, 153, 0.2); }

.stitch-control-row { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; font-size: 0.875rem; color: #fff;}
.stitch-control-row input[type="checkbox"], .stitch-control-row input[type="radio"] { accent-color: var(--stitch-color-primary); cursor: pointer; width: 16px; height: 16px; margin:0;}

.stitch-toggle { position: relative; display: inline-block; width: 36px; height: 20px; }
.stitch-toggle input { opacity: 0; width: 0; height: 0; margin:0; }
.stitch-slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(255,255,255,0.2); transition: .3s; border-radius: 20px; }
.stitch-slider:before { position: absolute; content: ""; height: 14px; width: 14px; left: 3px; bottom: 3px; background-color: white; transition: .3s; border-radius: 50%; }
.stitch-toggle input:checked + .stitch-slider { background: linear-gradient(135deg, var(--stitch-color-accent), var(--stitch-color-primary)); }
.stitch-toggle input:checked + .stitch-slider:before { transform: translateX(16px); }

/* Badges Neón */
.flex-row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.stitch-badge { display: inline-flex; align-items: center; padding: 4px 10px; font-size: 0.75rem; font-weight: 700; border-radius: 12px; text-transform: uppercase; letter-spacing: 0.5px; }
.stitch-badge-neutral { background: rgba(255,255,255,0.1); color: #fff; border: 1px solid rgba(255,255,255,0.2); }
.stitch-badge-primary { background: rgba(236, 72, 153, 0.15); color: #fbcfe8; border: 1px solid rgba(236, 72, 153, 0.4); }
.stitch-badge-success { background: rgba(16, 185, 129, 0.15); color: #a7f3d0; border: 1px solid rgba(16, 185, 129, 0.4); }
.stitch-badge-danger { background: rgba(239, 68, 68, 0.15); color: #fecaca; border: 1px solid rgba(239, 68, 68, 0.4); }

/* ==========================================================
   COMPONENTES MASIVOS: GLASS (NIVEL 3)
   ========================================================== */

/* Tarjetas Cristalinas */
.stitch-card { 
    background: var(--stitch-glass-bg); 
    backdrop-filter: var(--stitch-glass-blur);
    -webkit-backdrop-filter: var(--stitch-glass-blur);
    border: 1px solid var(--stitch-glass-border); 
    border-radius: var(--stitch-radius-md); 
    overflow: hidden; 
    display: flex; 
    flex-direction: column; 
    box-shadow: var(--stitch-glass-shadow);
    transition: transform 0.3s ease, border-color 0.3s;
}
.stitch-card:hover { transform: translateY(-4px); border-color: rgba(255,255,255,0.3); }
.stitch-card-header { padding: var(--stitch-space-md); border-bottom: 1px solid var(--stitch-glass-border); font-weight: 600; color: #fff; background: rgba(255,255,255,0.02); }
.stitch-card-body { padding: var(--stitch-space-md); flex: 1; color: var(--stitch-color-text-muted); }
.stitch-card-footer { padding: var(--stitch-space-md); border-top: 1px solid var(--stitch-glass-border); background: rgba(0,0,0,0.1); display: flex; justify-content: flex-end; gap: 8px; }

/* Tablas Transparentes */
.stitch-table-wrapper { width: 100%; overflow-x: auto; border: 1px solid var(--stitch-glass-border); border-radius: var(--stitch-radius-md); background: var(--stitch-glass-bg); backdrop-filter: var(--stitch-glass-blur); }
.stitch-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 0.875rem; color: #fff; }
.stitch-table th, .stitch-table td { padding: 14px var(--stitch-space-md); border-bottom: 1px solid var(--stitch-glass-border); }
.stitch-table th { background: rgba(255,255,255,0.05); font-weight: 600; color: rgba(255,255,255,0.9); }
.stitch-table tbody tr { transition: background 0.2s; }
.stitch-table tbody tr:hover { background: rgba(255,255,255,0.08); }
.stitch-table tbody tr:last-child td { border-bottom: none; }

/* Navegación (Tabs) */
.stitch-tabs { display: flex; border-bottom: 1px solid var(--stitch-glass-border); gap: 32px; margin-bottom: var(--stitch-space-md); }
.stitch-tab { padding: 12px 4px; cursor: pointer; font-weight: 500; font-size: 0.875rem; color: rgba(255,255,255,0.5); border-bottom: 2px solid transparent; transition: color 0.3s, border-color 0.3s; }
.stitch-tab:hover { color: #fff; }
.stitch-tab-active { color: var(--stitch-color-primary); border-bottom-color: var(--stitch-color-primary); text-shadow: 0 0 10px rgba(236, 72, 153, 0.4); }

/* Dashboard Metrics Neón */
.stitch-metric-card { 
    padding: var(--stitch-space-md); 
    border: 1px solid var(--stitch-glass-border); 
    border-radius: var(--stitch-radius-md); 
    background: linear-gradient(135deg, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0.01) 100%);
    backdrop-filter: var(--stitch-glass-blur);
    box-shadow: var(--stitch-glass-shadow);
}
.stitch-metric-label { font-size: 0.875rem; color: rgba(255,255,255,0.6); margin-bottom: 8px; display: block; }
.stitch-metric-value { font-size: 2rem; font-weight: 700; color: #ffffff; display: flex; align-items: center; gap: 12px; }

/* Modales Deep Blur */
.stitch-modal-overlay { position: relative; background: rgba(0,0,0,0.6); padding: 40px; display: flex; justify-content: center; align-items: center; border-radius: var(--stitch-radius-md); backdrop-filter: blur(8px); border: 1px solid var(--stitch-glass-border); }
.stitch-modal { background: rgba(20, 25, 40, 0.7); box-shadow: 0 20px 40px rgba(0,0,0,0.5); border-radius: var(--stitch-radius-md); width: 100%; max-width: 400px; overflow: hidden; border: 1px solid rgba(255,255,255,0.15); backdrop-filter: blur(20px); }

/* ==========================================================
   🧩 COMPONENTES AVANZADOS CSS-ONLY
   ========================================================== */

/* 1. Progress Bar (Nativa) */
.stitch-progress {
    width: 100%;
    height: 8px;
    background-color: var(--stitch-color-border);
    border-radius: var(--stitch-radius-round);
    overflow: hidden;
    position: relative;
}

.stitch-progress-bar {
    height: 100%;
    background-color: var(--stitch-color-primary);
    border-radius: var(--stitch-radius-round);
    transition: width 0.3s ease;
}

/* 2. Skeleton Loader (Efecto Shimmer) */
@keyframes stitch-shimmer {
    0% {
        background-position: -1000px 0;
    }

    100% {
        background-position: 1000px 0;
    }
}

.stitch-skeleton {
    background: linear-gradient(90deg, var(--stitch-color-bg-alt) 25%, var(--stitch-color-border) 50%, var(--stitch-color-bg-alt) 75%);
    background-size: 1000px 100%;
    animation: stitch-shimmer 2s infinite linear;
    border-radius: var(--stitch-radius-sm);
    color: transparent !important;
    min-height: 1rem;
    border: none !important;
    box-shadow: none !important;
}

/* 3. Tooltips Hover Nativos */
[data-stitch-tooltip] {
    position: relative;
    cursor: help;
    border-bottom: 1px dotted var(--stitch-color-text-muted);
}

[data-stitch-tooltip]:hover::before {
    content: attr(data-stitch-tooltip);
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(-8px);
    background-color: var(--stitch-color-text);
    color: var(--stitch-color-bg);
    padding: 6px 12px;
    border-radius: var(--stitch-radius-sm);
    font-size: 0.8rem;
    white-space: nowrap;
    z-index: 10;
    pointer-events: none;
    opacity: 1;
    font-weight: 500;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

[data-stitch-tooltip]:hover::after {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    border-width: 6px;
    border-style: solid;
    border-color: var(--stitch-color-text) transparent transparent transparent;
    z-index: 10;
}

/* 4. Carrusel Puro (Scroll Snap) */
.stitch-carousel {
    display: flex;
    gap: var(--stitch-space-md);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    padding-bottom: 16px;
    -ms-overflow-style: none;
    scrollbar-width: thin;
}

.stitch-carousel::-webkit-scrollbar {
    height: 6px;
}

.stitch-carousel::-webkit-scrollbar-track {
    background: transparent;
}

.stitch-carousel::-webkit-scrollbar-thumb {
    background: var(--stitch-color-border);
    border-radius: var(--stitch-radius-round);
}

.stitch-carousel-item {
    scroll-snap-align: start;
    flex: 0 0 calc(85% - var(--stitch-space-md));
    min-width: 260px;
    position: relative;
}

/* 5. Carrusel de Anclajes (Flechas CSS) */
.stitch-slider-wrapper {
    position: relative;
    width: 100%;
    max-width: 600px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.stitch-slider-slides {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    border-radius: var(--stitch-radius-md);
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.stitch-slider-slides::-webkit-scrollbar {
    display: none;
}

.stitch-slide {
    scroll-snap-align: center;
    flex: 0 0 100%;
    min-width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--stitch-color-bg-alt);
    height: 200px;
    font-weight: 500;
}

.stitch-slider-arrow {
    background-color: var(--stitch-color-bg);
    border: 1px solid var(--stitch-color-border);
    color: var(--stitch-color-text);
    width: 36px;
    height: 36px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    text-decoration: none;
    font-weight: bold;
    transition: background 0.2s;
    flex-shrink: 0;
}

.stitch-slider-arrow:hover {
    background-color: var(--stitch-color-bg-alt);
}

/* 6. Galería Fotográfica (CSS Grid) */
.stitch-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: var(--stitch-space-md);
}

.stitch-gallery-img {
    width: 100%;
    height: 140px;
    border-radius: var(--stitch-radius-md);
    background-color: var(--stitch-color-border);
    object-fit: cover;
    transition: transform 0.3s ease;
}

.stitch-gallery-img:hover {
    transform: scale(1.03);
}

/* 7. Menú Flotante Sticky */
.stitch-sticky-nav {
    position: sticky;
    top: 0;
    z-index: 100;
    background-color: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--stitch-color-border);
    padding: 12px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
    border-radius: var(--stitch-radius-md);
}

.stitch-sticky-links {
    display: flex;
    gap: 16px;
}

.stitch-sticky-links a {
    color: var(--stitch-color-text-muted);
    text-decoration: none;
    font-weight: 500;
    font-size: 0.875rem;
    transition: color 0.2s;
}

.stitch-sticky-links a:hover {
    color: var(--stitch-color-primary);
}

/* ==========================================================
   📐 SISTEMA DE GRID (LAYOUT RESPONSIVE PARA IA)
   ========================================================== */
.stitch-grid {
    display: grid;
    gap: var(--stitch-space-lg);
    grid-template-columns: 1fr;
    width: 100%;
}

.stitch-grid-auto {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

@media (min-width: 768px) {
    .stitch-grid-2 {
        grid-template-columns: repeat(2, 1fr);
    }

    .stitch-grid-3 {
        grid-template-columns: repeat(3, 1fr);
    }

    .stitch-grid-4 {
        grid-template-columns: repeat(4, 1fr);
    }

    .stitch-grid-1-2 {
        grid-template-columns: 1fr 2fr;
    }

    .stitch-grid-2-1 {
        grid-template-columns: 2fr 1fr;
    }

    /* Utilidades de Envergadura (Spanning) */
    .stitch-col-span-2 {
        grid-column: span 2;
    }

    .stitch-col-span-3 {
        grid-column: span 3;
    }

    .stitch-col-span-full {
        grid-column: 1 / -1;
    }
}

/* ==========================================================
   🚀 COMPONENTES PRO: NAVEGACIÓN AVANZADA
   ========================================================== */
/* Breadcrumbs */
.stitch-breadcrumb { display: flex; gap: 8px; font-size: 0.875rem; color: var(--stitch-color-text-muted); list-style: none; padding: 0; margin: 0; align-items: center; flex-wrap: wrap;}
.stitch-breadcrumb a { color: var(--stitch-color-primary); text-decoration: none; font-weight: 500; }
.stitch-breadcrumb a:hover { text-decoration: underline; }
.stitch-breadcrumb li + li::before { content: '/'; margin-right: 8px; color: var(--stitch-color-border); font-weight: bold;}

/* Mega Menu / Dropdown */
.stitch-dropdown { position: relative; display: inline-block; }
.stitch-dropdown-menu { display: none; position: absolute; top: 100%; left: 0; background: var(--stitch-color-bg); box-shadow: 0 4px 12px rgba(0,0,0,0.1); border-radius: var(--stitch-radius-md); padding: var(--stitch-space-sm); min-width: 200px; z-index: 50; border: 1px solid var(--stitch-color-border); flex-direction: column; gap: 4px; margin-top: 4px;}
.stitch-dropdown:hover .stitch-dropdown-menu, .stitch-dropdown:focus-within .stitch-dropdown-menu { display: flex; }
.stitch-dropdown-item { padding: 8px 12px; text-decoration: none; color: var(--stitch-color-text); font-size: 0.875rem; border-radius: var(--stitch-radius-sm); transition: background 0.2s; }
.stitch-dropdown-item:hover { background: var(--stitch-color-bg-alt); color: var(--stitch-color-primary); }

/* Sidebar Colapsable (CSS-Only Checkbox Hack) */
.stitch-sidebar-toggle-input { display: none; }
.stitch-sidebar-drawer { position: fixed; top: 0; left: -300px; width: 280px; height: 100vh; background: var(--stitch-color-bg); box-shadow: 4px 0 24px rgba(0,0,0,0.15); transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1); z-index: 1000; padding: var(--stitch-space-lg); padding-top: 64px; overflow-y: auto;}
.stitch-sidebar-toggle-input:checked ~ .stitch-sidebar-drawer { left: 0; }
.stitch-sidebar-overlay { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(32,33,36,0.6); backdrop-filter: blur(2px); z-index: 999; opacity: 0; pointer-events: none; transition: opacity 0.3s; }
.stitch-sidebar-toggle-input:checked ~ .stitch-sidebar-overlay { opacity: 1; pointer-events: auto; }
.stitch-drawer-close { position: absolute; top: 16px; right: 16px; cursor: pointer; padding: 8px; font-weight: bold; border-radius: var(--stitch-radius-sm); color: var(--stitch-color-text-muted); transition: background 0.2s;}
.stitch-drawer-close:hover { background: var(--stitch-color-bg-alt); color: var(--stitch-color-text);}

/* ==========================================================
   📊 DATA-VIZ (VISUALIZACIÓN DE DATOS CSS)
   ========================================================== */
/* Bar Chart */
.stitch-bar-chart { display: flex; flex-direction: column; gap: 12px; width: 100%; }
.stitch-bar-row { display: flex; align-items: center; gap: 12px; font-size: 0.875rem; }
.stitch-bar-label { width: 80px; font-weight: 500; color: var(--stitch-color-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex-shrink:0;}
.stitch-bar-track { flex: 1; height: 24px; background: var(--stitch-color-bg-alt); border-radius: var(--stitch-radius-sm); overflow: hidden; border: 1px solid var(--stitch-color-border);}
.stitch-bar-fill { height: 100%; background: var(--stitch-color-primary); transition: width 0.5s ease-out; display: flex; align-items: center; padding-left: 8px; color: white; font-weight: bold; font-size: 0.75rem;}
.stitch-bar-value { width: 40px; text-align: right; color: var(--stitch-color-text-muted); font-weight: 600; flex-shrink:0;}

/* Donut Chart */
.stitch-donut { width: 120px; height: 120px; border-radius: 50%; display: flex; align-items: center; justify-content: center; position: relative; box-shadow: inset 0 0 0 1px var(--stitch-color-border);}
.stitch-donut::before { content: ""; width: 80px; height: 80px; border-radius: 50%; background: var(--stitch-color-bg); position: absolute; box-shadow: 0 0 0 1px var(--stitch-color-border);}
.stitch-donut-value { position: relative; font-weight: 700; font-size: 1.5rem; color: var(--stitch-color-text); }

/* Timeline */
.stitch-timeline { border-left: 2px solid var(--stitch-color-border); padding-left: 24px; margin-left: 12px; display: flex; flex-direction: column; gap: 24px; margin-top: 16px;}
.stitch-timeline-item { position: relative; }
.stitch-timeline-item::before { content: ""; position: absolute; left: -31px; top: 0; width: 12px; height: 12px; border-radius: 50%; background: var(--stitch-color-primary); border: 2px solid var(--stitch-color-bg); box-shadow: 0 0 0 1px var(--stitch-color-border);}
.stitch-timeline-date { font-size: 0.75rem; color: var(--stitch-color-text-muted); margin-bottom: 4px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px;}
.stitch-timeline-content { font-size: 0.875rem; background: var(--stitch-color-bg-alt); padding: 16px; border-radius: var(--stitch-radius-md); color: var(--stitch-color-text); border: 1px solid var(--stitch-color-border);}

/* ==========================================================
   🔔 FEEDBACK PRO Y MICRO-INTERACCIONES
   ========================================================== */
/* Toast Notification Simulation */
.stitch-toast-container { position: fixed; bottom: 24px; right: 24px; display: flex; flex-direction: column; gap: 12px; z-index: 1000; pointer-events: none;}
.stitch-toast { background: var(--stitch-color-text); color: var(--stitch-color-bg); padding: 12px 20px; border-radius: var(--stitch-radius-md); font-size: 0.875rem; font-weight: 500; box-shadow: 0 8px 24px rgba(0,0,0,0.15); display: flex; align-items: center; gap: 12px; pointer-events: auto; animation: stitch-slide-up 0.5s cubic-bezier(0.16, 1, 0.3, 1);}
@keyframes stitch-slide-up { 0% { opacity: 0; transform: translateY(30px) scale(0.9); } 100% { opacity: 1; transform: translateY(0) scale(1); } }
.stitch-toast-icon { color: var(--stitch-color-bg-alt); font-size: 1.25rem; }

/* Empty States */
.stitch-empty-state { padding: 48px 24px; text-align: center; border: 2px dashed var(--stitch-color-border); border-radius: var(--stitch-radius-lg); display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--stitch-color-bg); margin-bottom: 24px;}
.stitch-empty-icon { font-size: 3rem; color: var(--stitch-color-border); margin-bottom: 16px; display: block;}
.stitch-empty-title { font-weight: 600; font-size: 1.25rem; margin-bottom: 8px; color: var(--stitch-color-text); }
.stitch-empty-body { color: var(--stitch-color-text-muted); font-size: 0.875rem; max-width: 300px; margin-bottom: 24px; line-height: 1.5; margin-left: auto; margin-right: auto;}

/* Step Indicator */
.stitch-steps { display: flex; align-items: center; justify-content: space-between; width: 100%; position: relative; max-width: 400px; margin: 0 auto 32px auto;}
.stitch-steps::before { content: ""; position: absolute; top: 16px; left: 16px; right: 16px; height: 2px; background: var(--stitch-color-border); z-index: 0; }
.stitch-step { width: 32px; height: 32px; border-radius: 50%; background: var(--stitch-color-bg); border: 2px solid var(--stitch-color-border); display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 0.875rem; position: relative; z-index: 1; color: var(--stitch-color-text-muted); transition: all 0.3s; }
.stitch-step.active { border-color: var(--stitch-color-primary); background: var(--stitch-color-primary); color: white; }
.stitch-step.completed { border-color: var(--stitch-color-primary); background: var(--stitch-color-bg); color: var(--stitch-color-primary); }
.stitch-step-label { position: absolute; top: 40px; font-size: 0.75rem; color: var(--stitch-color-text-muted); white-space: nowrap; font-weight: 500;}

/* ==========================================================
   📝 FORMULARIOS PRO
   ========================================================== */
/* Input con Icono */
.stitch-input-icon-wrapper { position: relative; display: flex; align-items: center; width: 100%; max-width: 400px; margin-bottom: var(--stitch-space-md);}
.stitch-input-icon-wrapper .stitch-icon { position: absolute; left: 12px; font-size: 1.25rem; pointer-events: none; opacity: 0.5;}
.stitch-input-icon-wrapper .stitch-input { padding-left: 40px; width: 100%; }

/* Multi-select Chips */
.stitch-chips-input { display: flex; flex-wrap: wrap; gap: 8px; padding: 8px; border: 1px solid var(--stitch-color-border); border-radius: var(--stitch-radius-sm); background: var(--stitch-color-bg); min-height: 48px; width: 100%; max-width: 400px; margin-bottom: var(--stitch-space-md);}
.stitch-chip { display: inline-flex; align-items: center; gap: 6px; background: var(--stitch-color-bg-alt); padding: 4px 12px; border-radius: 16px; font-size: 0.8125rem; font-weight: 500; color: var(--stitch-color-text); border: 1px solid var(--stitch-color-border); }
.stitch-chip-close { cursor: pointer; color: var(--stitch-color-text-muted); font-weight: bold; font-size: 1rem; line-height: 1; margin-left: 2px;}
.stitch-chip-close:hover { color: var(--stitch-color-danger); }
.stitch-chips-input input { border: none; outline: none; flex: 1; min-width: 80px; background: transparent; font-size: 0.875rem; color: var(--stitch-color-text); padding: 4px; }

/* File Dropzone */
.stitch-dropzone { border: 2px dashed var(--stitch-color-border); border-radius: var(--stitch-radius-md); padding: 40px 24px; text-align: center; background: var(--stitch-color-bg); cursor: pointer; transition: all 0.2s; width: 100%; max-width: 500px; display: flex; flex-direction: column; align-items: center; margin-bottom: var(--stitch-space-md);}
.stitch-dropzone:hover { border-color: var(--stitch-color-primary); background: #f8faff; }
.stitch-dropzone-icon { font-size: 3rem; margin-bottom: 12px; color: var(--stitch-color-primary); opacity: 0.8; }
.stitch-dropzone-title { font-size: 1rem; font-weight: 600; color: var(--stitch-color-text); margin-bottom: 4px; }
.stitch-dropzone-desc { font-size: 0.875rem; color: var(--stitch-color-text-muted); }

Paso 2: Usa este 'System Prompt'

Obliga a las IA a mantenerse en el espacio de nombres `.stitch` para no romper el desenfoque base.

👁️ Prompt Maestro para IAs (Entorno Glass/Web3)
Eres un Desarrollador Front-end experto especializado en el Framework de Google Stitch (Fase Glassmorphism).
=========================================
OBJETIVO: Diseñar una pantalla vibrante para [RELLENA AQUÍ].
=========================================
REGLAS ESTRICTAS DE CSS:
- NO utilices estilos en línea (`style="..."`).
- NO intentes aplicar `backdrop-filter` por tu cuenta. El sistema global ya lo gestiona.
- Usa ÚNICAMENTE las clases predefinidas del nivel de Cristal:
  - Estructura base: `.stitch-container` para cajas difuminadas.
  - Textos: `.stitch-h1`, `.stitch-h2`, `.stitch-body`, `.stitch-muted`. Color blanco automático.
  - Botones magentas: `.stitch-btn-primary`, y secundarios `.stitch-btn-secondary` / `.stitch-btn-outline`.
  - Formularios: `.stitch-form-group` y sus variantes `.stitch-input`.
  - Badges translúcidos: `.stitch-badge-primary`, `.stitch-badge-success`, `.stitch-badge-danger`.

Entrega SOLAMENTE el código HTML respetando esta arquitectura estricta.

Jerarquía Tipográfica

Cristal y Transparencia

Las tipografías blancas sobre fondos translúcidos dan un resultado espectacular y orgánico, mientras el desenfoque filtra el contexto visual inferior.

Texto mutado secundario. Útil para anotaciones pequeñas o contexto extra.
Ver Código HTML
<!-- El mismo HTML de siempre, CSS completamente distinto -->
<div class="stitch-container">
  <h1 class="stitch-h1">Cristal y Transparencia</h1>
  <p class="stitch-body">Contenido limpio.</p>
  <span class="stitch-muted">Texto mutado secundario.</span>
</div>

Botones Neón

Ver Código HTML
<!-- Grupo de Botones Gradientes/Cristal -->
<div class="stitch-btn-group">
  <button class="stitch-btn stitch-btn-primary">Ejecutar Script</button>
  <button class="stitch-btn stitch-btn-secondary">Respaldar Data</button>
  <button class="stitch-btn stitch-btn-outline">Ver Registro</button>
</div>

Campos de Forma Cristalina

Ver Código HTML
<!-- Campo oscuro translúcido -->
<div class="stitch-form-group">
  <label class="stitch-label" for="txtEmail">Correo electrónico empresarial</label>
  <input type="email" id="txtEmail" class="stitch-input" placeholder="usuario@google.com">
</div>

Badges de Neón

Verificando Minería Activa Transacción OK Rechazado

Tarjetas Translúcidas Avanzadas

Cartera Ethereum

Al hacer hover tu tarjeta recibe un elevador y aclara los bordes para un efecto súper orgánico.

Valor del Portafolio
$48,900 +2.4%

Deep Blur Modal Overlay

Desconectar Cuenta

Confirmar desconexión global. Las capas inferiores sufrirán un fuerte desenfoque (blur de 20px) al activarse esto.

Data Grid Blur

Nodo de Red Dirección IP Latencia Estado
Cluster Alpha 01
us-east-zone
192.168.1.100 14ms Online
Cluster Beta 04
eu-west-zone
10.0.4.92 ~120ms Syncing
📊 Data-Viz

Gráficos y Líneas de Tiempo

Visualización de datos construida 100% con CSS. Ideal para Dashboards sin librerías externas.

Bar Chart Horizontal

Chrome
65%
Safari
19%
Firefox
4%
Edge
12%

Donut Chart (Conic Gradient)

72%
Espacio Usado
45%
Conversión
12%
Errores

Timeline (Historial de Actividad)

27 Mar 2026 · 20:00
Se añadieron 12 Componentes Pro al sistema Stitch Level 1.
27 Mar 2026 · 19:50
Grid Responsivo implementado con clases .stitch-grid-*.
27 Mar 2026 · 18:30
Primera inyección de Componentes Avanzados CSS-Only (Tooltips, Skeletons, Carruseles).
26 Mar 2026
Creación del repositorio Google Stitch Styles con 6 niveles de diseño.
🔔 Feedback Pro

Toasts, Empty States y Steps

Micro-interacciones y estados vacíos para flujos de usuario profesionales.

Toast Notification (Simulación Fija)

Registro guardado correctamente.

Empty State (Sin Datos)

📭 No tienes mensajes Cuando recibas tu primer mensaje, aparecerá aquí. ¡Mantente atento!

Step Indicator (Onboarding)

Cuenta
2 Perfil
3 Pago
4 Confirmar
📝 Formularios Pro

Inputs Avanzados y Dropzones

Controles de formulario de nivel Enterprise: búsquedas con iconos, chips y zonas de arrastre.

Input con Icono (Búsqueda)

🔍
✉️

Multi-Select Chips

React × TypeScript × Node.js ×

File Dropzone

📁 Arrastra tu archivo aquí o haz clic para seleccionar · PNG, JPG, PDF (máx. 10MB)