Newer
Older
clothes / ui-kit.html
<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Design2Clothes — UI Kit</title>
  <!-- Bootstrap 5 -->
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <!-- Font Awesome 6 (local) -->
  <link rel="stylesheet" href="css/all.min.css">
  <!-- App CSS -->
  <link rel="stylesheet" href="css/style.css">
  <style>
    /* ── UI KIT PAGE STYLES ── */
    .uikit-section {
      margin-bottom: 56px;
    }
    .uikit-section-title {
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 1.5px;
      color: var(--clr-text-muted);
      margin-bottom: 24px;
      padding-bottom: 10px;
      border-bottom: 1px solid var(--clr-border);
    }
    .uikit-row {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-start;
      gap: 12px;
    }
    .uikit-item {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .uikit-label {
      font-size: 10px;
      font-weight: 600;
      color: var(--clr-text-muted);
      text-transform: uppercase;
      letter-spacing: 1px;
    }
    .color-swatch {
      width: 60px; height: 60px;
      border-radius: 12px;
      border: 1px solid rgba(255,255,255,0.05);
    }
    .color-swatch-label {
      font-size: 10px;
      color: var(--clr-text-muted);
      text-align: center;
    }
    .swatch-wrap {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
    }
    hr.uikit-sep {
      border-color: var(--clr-border);
      margin: 0;
    }
    /* Fixed page nav */
    .uikit-nav {
      position: fixed;
      top: 0; left: 0;
      width: 200px;
      height: 100vh;
      background: var(--clr-bg-panel);
      border-right: 1px solid var(--clr-border);
      padding: 24px 16px;
      overflow-y: auto;
      z-index: 50;
    }
    .uikit-nav-brand {
      font-size: 14px;
      font-weight: 700;
      color: var(--clr-text-primary);
      margin-bottom: 20px;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .uikit-nav a {
      display: block;
      font-size: 12px;
      font-weight: 500;
      color: var(--clr-text-muted);
      padding: 7px 10px;
      border-radius: 8px;
      text-decoration: none;
      transition: all 0.15s;
    }
    .uikit-nav a:hover {
      color: var(--clr-text-primary);
      background: var(--clr-bg-subpanel);
    }
    .uikit-nav a.active {
      color: var(--clr-accent-orange);
      background: rgba(255,106,0,0.1);
    }
    .uikit-content {
      margin-left: 200px;
      padding: 40px 48px;
      max-width: 1100px;
    }
    .uikit-page-title {
      font-size: 30px;
      font-weight: 700;
      color: var(--clr-text-primary);
      margin-bottom: 8px;
    }
    .uikit-page-sub {
      font-size: 14px;
      color: var(--clr-text-muted);
      margin-bottom: 48px;
    }
  </style>
</head>
<body>

<!-- ── Sidebar Nav ── -->
<nav class="uikit-nav">
  <div class="uikit-nav-brand">
    <i class="fa-solid fa-shirt" style="color:var(--clr-accent-orange)"></i>
    UI Kit
  </div>
  <a href="#tokens">🎨 Tokens</a>
  <a href="#typography">🔤 Typography</a>
  <a href="#buttons">🔘 Buttons</a>
  <a href="#tabs">📑 Tabs</a>
  <a href="#inputs">📝 Inputs</a>
  <a href="#selects">🔽 Selects</a>
  <a href="#textarea">📋 Textarea</a>
  <a href="#checkradio">✅ Check / Radio</a>
  <a href="#toggle">🔄 Toggle</a>
  <a href="#range">🎚️ Range</a>
  <a href="#upload">📁 File Upload</a>
  <a href="#assets">🗂️ Asset List</a>
  <a href="#dropdown">📂 Dropdown</a>
  <a href="#panels">🪟 Panels</a>
  <a href="#badges">🏷️ Badges</a>
  <a href="#alerts">⚠️ Alerts</a>
  <a href="#modals">🪟 Modal</a>
  <a href="#loading">⏳ Loading</a>
  <a href="#formrow">📐 Form Row</a>
  <a href="#layout">🏗️ App Layout</a>
</nav>

<!-- ── Main Content ── -->
<div class="uikit-content">

  <div class="uikit-page-title">Design2Clothes — UI Kit</div>
  <div class="uikit-page-sub">Componentes visuales generados a partir del diseño de referencia <code>design2clothes.pen</code></div>

  <!-- ─────────────────────────────────────────────
       1. DESIGN TOKENS
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="tokens">
    <div class="uikit-section-title">1 — Design Tokens / Colores</div>
    <div class="uikit-row" style="margin-bottom:24px;">
      <div class="swatch-wrap">
        <div class="color-swatch" style="background:#121212"></div>
        <div class="color-swatch-label">#121212<br>bg-root</div>
      </div>
      <div class="swatch-wrap">
        <div class="color-swatch" style="background:#1B1B1B"></div>
        <div class="color-swatch-label">#1B1B1B<br>panel</div>
      </div>
      <div class="swatch-wrap">
        <div class="color-swatch" style="background:#171717"></div>
        <div class="color-swatch-label">#171717<br>panel-alt</div>
      </div>
      <div class="swatch-wrap">
        <div class="color-swatch" style="background:#242424"></div>
        <div class="color-swatch-label">#242424<br>subpanel</div>
      </div>
      <div class="swatch-wrap">
        <div class="color-swatch" style="background:#1A1A1A"></div>
        <div class="color-swatch-label">#1A1A1A<br>input</div>
      </div>
      <div class="swatch-wrap">
        <div class="color-swatch" style="background:#2C2C2C"></div>
        <div class="color-swatch-label">#2C2C2C<br>border</div>
      </div>
      <div class="swatch-wrap">
        <div class="color-swatch" style="background:#FF6A00"></div>
        <div class="color-swatch-label">#FF6A00<br>orange</div>
      </div>
      <div class="swatch-wrap">
        <div class="color-swatch" style="background:#6F2CFF"></div>
        <div class="color-swatch-label">#6F2CFF<br>purple</div>
      </div>
      <div class="swatch-wrap">
        <div class="color-swatch" style="background:#F2F2F2"></div>
        <div class="color-swatch-label">#F2F2F2<br>text-prim</div>
      </div>
      <div class="swatch-wrap">
        <div class="color-swatch" style="background:#B8B8B8"></div>
        <div class="color-swatch-label">#B8B8B8<br>text-sec</div>
      </div>
      <div class="swatch-wrap">
        <div class="color-swatch" style="background:#8E8E8E"></div>
        <div class="color-swatch-label">#8E8E8E<br>muted</div>
      </div>
    </div>
  </section>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       2. TYPOGRAPHY
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="typography">
    <div class="uikit-section-title">2 — Typography (Inter)</div>

    <div style="display:flex;flex-direction:column;gap:16px;">
      <div>
        <div class="uikit-label mb-2">Brand / Logo — 34px 700</div>
        <div style="font-size:34px;font-weight:700;color:var(--clr-text-primary)">Design2Clothes</div>
      </div>
      <div>
        <div class="uikit-label mb-2">Project Title — 30px 700</div>
        <div style="font-size:30px;font-weight:700;color:var(--clr-text-primary)">ThreadVision SS26 Capsule</div>
      </div>
      <div>
        <div class="uikit-label mb-2">Section Heading — 24px 600</div>
        <div style="font-size:24px;font-weight:600;color:var(--clr-text-primary)">Design Canvas</div>
      </div>
      <div>
        <div class="uikit-label mb-2">Panel Title — 20px 600</div>
        <div style="font-size:20px;font-weight:600;color:var(--clr-text-primary)">Assets</div>
      </div>
      <div>
        <div class="uikit-label mb-2">CTA Button — 16px 700</div>
        <div style="font-size:16px;font-weight:700;color:var(--clr-text-primary)">New Project</div>
      </div>
      <div>
        <div class="uikit-label mb-2">Body / Label — 14px 500</div>
        <div style="font-size:14px;font-weight:500;color:var(--clr-text-secondary)">AI-assisted fashion mockup workflow for mapping 2D graphics onto 3D garment avatars.</div>
      </div>
      <div>
        <div class="uikit-label mb-2">Sub-Panel Head — 14px 600</div>
        <div style="font-size:14px;font-weight:600;color:#F0F0F0">Model Controls</div>
      </div>
      <div>
        <div class="uikit-label mb-2">Small / Tag — 12px 600</div>
        <div style="font-size:12px;font-weight:600;color:var(--clr-text-secondary)">Asset Library &nbsp; Uploads &nbsp; Patterns &nbsp; Graphics</div>
      </div>
      <div>
        <div class="uikit-label mb-2">Micro / Badge — 11px 500–600</div>
        <div style="font-size:11px;font-weight:500;color:#A6A6A6">Scale 85% &nbsp;·&nbsp; Rotation 12° &nbsp;·&nbsp; Opacity 82% &nbsp;·&nbsp; 4K PNG ▾</div>
      </div>
    </div>
  </section>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       3. BUTTONS
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="buttons">
    <div class="uikit-section-title">3 — Buttons</div>

    <div class="uikit-row mb-4">
      <div class="uikit-item">
        <div class="uikit-label">Orange (Primary CTA)</div>
        <button class="btn-d2c btn-orange btn-d2c--lg">
          <i class="fa-solid fa-plus"></i> New Project
        </button>
      </div>
      <div class="uikit-item">
        <div class="uikit-label">Orange Medium</div>
        <button class="btn-d2c btn-orange btn-d2c--md">
          <i class="fa-solid fa-wand-magic-sparkles"></i> Apply Artwork
        </button>
      </div>
      <div class="uikit-item">
        <div class="uikit-label">Orange Small</div>
        <button class="btn-d2c btn-orange btn-d2c--sm">Export</button>
      </div>
    </div>

    <div class="uikit-row mb-4">
      <div class="uikit-item">
        <div class="uikit-label">Purple (Active / Generate)</div>
        <button class="btn-d2c btn-purple btn-d2c--md">
          <i class="fa-solid fa-robot"></i> Generate Model
        </button>
      </div>
      <div class="uikit-item">
        <div class="uikit-label">Purple Large</div>
        <button class="btn-d2c btn-purple btn-d2c--lg">
          <i class="fa-solid fa-image"></i> Asset Library
        </button>
      </div>
      <div class="uikit-item">
        <div class="uikit-label">Purple Small</div>
        <button class="btn-d2c btn-purple btn-d2c--sm">Uploads</button>
      </div>
    </div>

    <div class="uikit-row mb-4">
      <div class="uikit-item">
        <div class="uikit-label">Dark (Secondary)</div>
        <button class="btn-d2c btn-dark btn-d2c--lg">Projects List</button>
      </div>
      <div class="uikit-item">
        <div class="uikit-label">Ghost (Outline)</div>
        <button class="btn-d2c btn-ghost btn-d2c--md">
          <i class="fa-solid fa-sliders"></i> Settings
        </button>
      </div>
      <div class="uikit-item">
        <div class="uikit-label">Danger</div>
        <button class="btn-d2c btn-danger btn-d2c--md">
          <i class="fa-solid fa-trash"></i> Delete
        </button>
      </div>
      <div class="uikit-item">
        <div class="uikit-label">Success</div>
        <button class="btn-d2c btn-success btn-d2c--md">
          <i class="fa-solid fa-check"></i> Saved
        </button>
      </div>
    </div>

    <div class="uikit-row">
      <div class="uikit-item">
        <div class="uikit-label">Icon Buttons</div>
        <div class="d-flex gap-2">
          <button class="btn-icon"><i class="fa-solid fa-pencil"></i></button>
          <button class="btn-icon"><i class="fa-solid fa-ellipsis"></i></button>
          <button class="btn-icon"><i class="fa-solid fa-xmark"></i></button>
          <button class="btn-icon"><i class="fa-solid fa-arrow-up-from-bracket"></i></button>
          <button class="btn-icon"><i class="fa-solid fa-copy"></i></button>
        </div>
      </div>
      <div class="uikit-item">
        <div class="uikit-label">Loading State</div>
        <button class="btn-d2c btn-purple btn-d2c--md is-loading">Generating</button>
      </div>
      <div class="uikit-item">
        <div class="uikit-label">Full Width</div>
        <div style="width:240px;">
          <button class="btn-d2c btn-orange btn-d2c--md btn-d2c--full">
            <i class="fa-solid fa-bolt"></i> Generate Mockup
          </button>
        </div>
      </div>
    </div>
  </section>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       4. TABS
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="tabs">
    <div class="uikit-section-title">4 — Tabs</div>
    <div class="uikit-row mb-4">
      <div class="uikit-item" style="width:258px;">
        <div class="uikit-label">Purple active (Assets)</div>
        <div class="tabs-d2c" id="assetTabs">
          <button class="tab-item active--purple" data-tab="tab-uploads">Uploads</button>
          <button class="tab-item" data-tab="tab-patterns">Patterns</button>
          <button class="tab-item" data-tab="tab-graphics">Graphics</button>
        </div>
      </div>
      <div class="uikit-item" style="width:200px;">
        <div class="uikit-label">Purple active (Model)</div>
        <div class="tabs-d2c" id="modelTabs">
          <button class="tab-item active--purple" data-tab="tab-custom">Custom</button>
          <button class="tab-item" data-tab="tab-predefined">Predefined</button>
        </div>
      </div>
      <div class="uikit-item" style="width:200px;">
        <div class="uikit-label">Orange active</div>
        <div class="tabs-d2c">
          <button class="tab-item active--orange">Front</button>
          <button class="tab-item">3/4</button>
          <button class="tab-item">Side</button>
        </div>
      </div>
    </div>
  </section>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       5. INPUTS
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="inputs">
    <div class="uikit-section-title">5 — Inputs de Texto</div>
    <div class="uikit-row" style="flex-direction:column;max-width:420px;">
      <div class="form-group">
        <label class="form-label-d2c">Nombre del proyecto</label>
        <input type="text" class="field-d2c input-d2c" placeholder="ThreadVision SS26 Capsule">
      </div>
      <div class="form-group">
        <label class="form-label-d2c">Prompt personalizado</label>
        <div class="input-wrap">
          <i class="fa-solid fa-magic input-icon"></i>
          <input type="text" class="field-d2c input-d2c" placeholder="editorial female model, hands in pockets">
        </div>
      </div>
      <div class="form-group">
        <label class="form-label-d2c">API Key (oculta)</label>
        <div class="input-wrap">
          <i class="fa-solid fa-key input-icon"></i>
          <input type="password" class="field-d2c input-d2c" placeholder="AIza...">
          <i class="fa-solid fa-eye input-icon-right" style="cursor:pointer"></i>
        </div>
      </div>
      <div class="form-group">
        <label class="form-label-d2c">Input pequeño (sm)</label>
        <input type="text" class="field-d2c input-d2c input-d2c--sm" placeholder="Escribe algo...">
      </div>
      <div class="form-group">
        <label class="form-label-d2c">Input deshabilitado</label>
        <input type="text" class="field-d2c input-d2c" placeholder="No editable" disabled>
      </div>
    </div>
  </section>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       6. SELECTS
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="selects">
    <div class="uikit-section-title">6 — Selects / Dropdowns nativos</div>
    <div class="uikit-row" style="flex-direction:column;max-width:420px;">
      <div class="form-group">
        <label class="form-label-d2c">Tipo de prenda</label>
        <select class="field-d2c select-d2c">
          <option value="">Selecciona tipo...</option>
          <option value="tee">Oversized Tee</option>
          <option value="slim">Slim Fit</option>
          <option value="hoodie" selected>Hoodie</option>
          <option value="jacket">Jacket</option>
        </select>
      </div>
      <div class="form-group">
        <label class="form-label-d2c">Tipo de tela</label>
        <select class="field-d2c select-d2c">
          <option value="">Fabric...</option>
          <option value="cotton">Cotton</option>
          <option value="jersey" selected>Jersey</option>
          <option value="heavyweight">Heavyweight</option>
          <option value="linen">Linen</option>
        </select>
      </div>
      <div class="form-group">
        <label class="form-label-d2c">Pose del modelo</label>
        <select class="field-d2c select-d2c">
          <option value="front">Front</option>
          <option value="threequarter">3-4 View</option>
          <option value="side">Side</option>
        </select>
      </div>
      <div class="form-group">
        <label class="form-label-d2c">Resolución de exportación</label>
        <select class="field-d2c select-d2c">
          <option value="2k">2K PNG (2048×2048)</option>
          <option value="4k" selected>4K PNG (4096×4096)</option>
          <option value="instagram">1080×1350 (Instagram)</option>
          <option value="story">1080×1920 (Story)</option>
        </select>
      </div>
    </div>
  </section>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       7. TEXTAREAS
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="textarea">
    <div class="uikit-section-title">7 — Textareas</div>
    <div style="display:flex;flex-direction:column;gap:16px;max-width:500px;">
      <div class="form-group">
        <label class="form-label-d2c">Descripción del proyecto</label>
        <textarea class="field-d2c textarea-d2c" rows="4"
          placeholder="AI-assisted fashion mockup workflow for mapping 2D graphics onto 3D garment avatars..."></textarea>
      </div>
      <div class="form-group">
        <label class="form-label-d2c">Prompt de aplicación de artwork</label>
        <textarea class="field-d2c textarea-d2c" rows="3"
          placeholder="Make print placement sharper and aligned to chest..."></textarea>
      </div>
    </div>
  </section>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       8. CHECKBOXES & RADIOS
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="checkradio">
    <div class="uikit-section-title">8 — Checkboxes &amp; Radios</div>
    <div class="uikit-row" style="gap:32px;">
      <div class="uikit-item">
        <div class="uikit-label mb-2">Checkboxes</div>
        <div style="display:flex;flex-direction:column;gap:12px;">
          <label class="check-d2c">
            <input type="checkbox" checked>
            Aplicar textura de tela
          </label>
          <label class="check-d2c">
            <input type="checkbox">
            Modo alta resolución
          </label>
          <label class="check-d2c">
            <input type="checkbox" checked>
            Generar variante de sombra
          </label>
          <label class="check-d2c">
            <input type="checkbox" disabled>
            Deshabilitado
          </label>
        </div>
      </div>
      <div class="uikit-item">
        <div class="uikit-label mb-2">Radio Buttons</div>
        <div style="display:flex;flex-direction:column;gap:12px;">
          <label class="radio-d2c">
            <input type="radio" name="blending" value="print" checked>
            Print
          </label>
          <label class="radio-d2c">
            <input type="radio" name="blending" value="multiply">
            Multiply
          </label>
          <label class="radio-d2c">
            <input type="radio" name="blending" value="softlight">
            Soft Light
          </label>
          <label class="radio-d2c">
            <input type="radio" name="blending" value="overlay">
            Overlay
          </label>
        </div>
      </div>
    </div>
  </section>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       9. TOGGLE SWITCHES
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="toggle">
    <div class="uikit-section-title">9 — Toggle Switches</div>
    <div style="display:flex;flex-direction:column;gap:14px;max-width:300px;">
      <label class="toggle-d2c">
        <input type="checkbox" checked id="tog1">
        <div class="toggle-track"></div>
        Modo AI activo
      </label>
      <label class="toggle-d2c">
        <input type="checkbox" id="tog2">
        <div class="toggle-track"></div>
        Modo previsualización
      </label>
      <label class="toggle-d2c">
        <input type="checkbox" checked id="tog3">
        <div class="toggle-track"></div>
        Exportación automática
      </label>
    </div>
  </section>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       10. RANGE SLIDERS
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="range">
    <div class="uikit-section-title">10 — Range Sliders</div>
    <div style="display:flex;flex-direction:column;gap:20px;max-width:400px;">
      <div class="form-group">
        <div class="d-flex justify-between mb-2">
          <label class="form-label-d2c mb-0">Scale</label>
          <span class="uikit-label" id="scaleVal">85%</span>
        </div>
        <input type="range" class="range-d2c" min="10" max="200" value="85" id="scaleRange">
      </div>
      <div class="form-group">
        <div class="d-flex justify-between mb-2">
          <label class="form-label-d2c mb-0">Rotation</label>
          <span class="uikit-label" id="rotVal">12°</span>
        </div>
        <input type="range" class="range-d2c" min="-180" max="180" value="12" id="rotRange">
      </div>
      <div class="form-group">
        <div class="d-flex justify-between mb-2">
          <label class="form-label-d2c mb-0">Opacity</label>
          <span class="uikit-label" id="opaVal">82%</span>
        </div>
        <input type="range" class="range-d2c" min="0" max="100" value="82" id="opaRange">
      </div>
    </div>
  </section>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       11. FILE UPLOAD / DROP ZONE
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="upload">
    <div class="uikit-section-title">11 — File Upload / Drop Zone</div>
    <div class="uikit-row">
      <div class="uikit-item" style="width:258px;">
        <div class="uikit-label">Drop Zone (estilo diseño)</div>
        <div class="upload-zone" id="uploadZone">
          <input type="file" id="fileInput" accept=".png,.jpg,.svg">
          <i class="fa-solid fa-cloud-arrow-up"></i>
          <p>Drop your designs in<br>.png, .jpg, .svg here</p>
          <button class="btn-d2c btn-dark btn-d2c--sm mt-2" onclick="document.getElementById('fileInput').click()">
            <i class="fa-solid fa-folder-open"></i> Browse
          </button>
        </div>
      </div>
      <div class="uikit-item" style="width:258px;">
        <div class="uikit-label">Drop Zone — Estado drag over</div>
        <div class="upload-zone drag-over">
          <i class="fa-solid fa-cloud-arrow-up" style="color:var(--clr-accent-purple);font-size:32px;"></i>
          <p style="color:var(--clr-accent-purple);font-weight:600;">Suelta el archivo aquí</p>
        </div>
      </div>
    </div>
  </section>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       12. ASSET LIST ITEMS
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="assets">
    <div class="uikit-section-title">12 — Asset List Items</div>
    <div class="asset-list" style="max-width:320px;">
      <div class="asset-item asset-item--active">
        <div class="d-flex align-center gap-2">
          <i class="fa-solid fa-file-image" style="color:var(--clr-accent-purple);font-size:16px;"></i>
          <span class="asset-item__name">Logo_Brandmark.svg</span>
        </div>
        <span class="asset-item__badge file-badge file-badge--svg">SVG</span>
      </div>
      <div class="asset-item">
        <div class="d-flex align-center gap-2">
          <i class="fa-solid fa-image" style="color:var(--clr-accent-orange);font-size:16px;"></i>
          <span class="asset-item__name">Tiger_Print.png</span>
        </div>
        <span class="asset-item__badge file-badge file-badge--png">PNG</span>
      </div>
      <div class="asset-item">
        <div class="d-flex align-center gap-2">
          <i class="fa-solid fa-image" style="color:#4fd17c;font-size:16px;"></i>
          <span class="asset-item__name">Floral_Allover.jpg</span>
        </div>
        <span class="asset-item__badge file-badge file-badge--jpg">JPG</span>
      </div>
      <div class="asset-item">
        <div class="d-flex align-center gap-2">
          <i class="fa-solid fa-file-image" style="color:var(--clr-accent-purple);font-size:16px;"></i>
          <span class="asset-item__name">Geometric_Pattern.svg</span>
        </div>
        <span class="asset-item__badge file-badge file-badge--svg">SVG</span>
      </div>
    </div>
  </section>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       13. CUSTOM DROPDOWN
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="dropdown">
    <div class="uikit-section-title">13 — Custom Dropdown (Resolución Export)</div>
    <div style="max-width:320px;">
      <div class="dropdown-d2c" id="resDrop">
        <div class="dropdown-trigger" onclick="document.getElementById('resDrop').classList.toggle('open')">
          <span>Resolución</span>
          <span style="font-weight:600;color:var(--clr-text-soft)">
            4K PNG ▾
          </span>
        </div>
        <div class="dropdown-menu-d2c">
          <div class="dropdown-option">2K PNG (2048×2048)</div>
          <div class="dropdown-option selected">4K PNG (4096×4096)</div>
          <div class="dropdown-option">1080×1350 (Instagram)</div>
          <div class="dropdown-option">1080×1920 (Story)</div>
        </div>
      </div>
    </div>
  </section>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       14. PANELS / CARDS
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="panels">
    <div class="uikit-section-title">14 — Panels / Cards</div>
    <div class="uikit-row" style="align-items:flex-start;">
      <div class="uikit-item">
        <div class="uikit-label">Panel estándar</div>
        <div class="panel" style="width:280px;">
          <div class="panel-title">Quick Access</div>
          <button class="btn-d2c btn-purple btn-d2c--md btn-d2c--full">
            <i class="fa-solid fa-book-open-reader"></i> Asset Library
          </button>
          <button class="btn-d2c btn-dark btn-d2c--md btn-d2c--full">
            <i class="fa-solid fa-list"></i> Projects List
          </button>
        </div>
      </div>
      <div class="uikit-item">
        <div class="uikit-label">Sub-panel (Model Controls)</div>
        <div class="subpanel" style="width:240px;">
          <div class="panel-title--sm">Model Controls</div>
          <div class="tabs-d2c">
            <button class="tab-item active--purple">Custom</button>
            <button class="tab-item">Predefined</button>
          </div>
          <input type="text" class="field-d2c input-d2c--sm" placeholder="editorial female model, hands in pockets">
          <select class="field-d2c select-d2c" style="height:34px;font-size:11px;padding:0 28px 0 10px;">
            <option>Front</option>
            <option>3-4 View</option>
            <option>Side</option>
          </select>
        </div>
      </div>
      <div class="uikit-item">
        <div class="uikit-label">Project Info Card</div>
        <div class="panel" style="width:320px;">
          <div class="panel-label">Current Project</div>
          <div style="display:flex;align-items:center;justify-content:space-between;gap:8px;">
            <div style="font-size:20px;font-weight:700;color:var(--clr-text-primary)">ThreadVision SS26</div>
            <button class="btn-icon"><i class="fa-solid fa-pencil"></i></button>
          </div>
          <div style="font-size:13px;font-weight:500;color:var(--clr-text-secondary);line-height:1.5;">
            AI-assisted fashion mockup workflow for mapping 2D graphics onto 3D garment avatars.
          </div>
        </div>
      </div>
    </div>
  </section>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       15. BADGES & FILE TAGS
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="badges">
    <div class="uikit-section-title">15 — Badges &amp; Tags</div>
    <div class="uikit-row" style="flex-wrap:wrap;align-items:center;gap:10px;">
      <span class="badge-d2c badge-purple"><i class="fa-solid fa-circle-dot"></i> Activo</span>
      <span class="badge-d2c badge-orange"><i class="fa-solid fa-bolt"></i> Generando</span>
      <span class="badge-d2c badge-success"><i class="fa-solid fa-check"></i> Exportado</span>
      <span class="badge-d2c badge-danger"><i class="fa-solid fa-xmark"></i> Error</span>
      <span class="badge-d2c badge-muted">Draft</span>
      <span class="file-badge file-badge--svg">SVG</span>
      <span class="file-badge file-badge--png">PNG</span>
      <span class="file-badge file-badge--jpg">JPG</span>
    </div>
  </section>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       16. ALERTS
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="alerts">
    <div class="uikit-section-title">16 — Alerts</div>
    <div style="display:flex;flex-direction:column;gap:12px;max-width:520px;">
      <div class="alert-d2c alert-info">
        <i class="fa-solid fa-circle-info"></i>
        <span>El modelo se está generando. Esto puede tardar unos segundos.</span>
      </div>
      <div class="alert-d2c alert-success">
        <i class="fa-solid fa-circle-check"></i>
        <span>Diseño exportado correctamente en resolución 4K.</span>
      </div>
      <div class="alert-d2c alert-warning">
        <i class="fa-solid fa-triangle-exclamation"></i>
        <span>La API de Gemini ha alcanzado el límite de solicitudes. Reintenta en un momento.</span>
      </div>
      <div class="alert-d2c alert-danger">
        <i class="fa-solid fa-circle-xmark"></i>
        <span>Error al conectar con el workflow de n8n. Revisa el webhook.</span>
      </div>
    </div>
  </section>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       17. MODAL (preview)
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="modals">
    <div class="uikit-section-title">17 — Modal</div>
    <button class="btn-d2c btn-ghost btn-d2c--md" onclick="document.getElementById('demoModal').classList.add('active')">
      <i class="fa-solid fa-square-arrow-up-right"></i> Abrir Modal demo
    </button>
  </section>

  <!-- Modal overlay -->
  <div class="modal-overlay" id="demoModal">
    <div class="modal-d2c">
      <div class="modal-header">
        <div class="modal-title">Nuevo Proyecto</div>
        <button class="btn-icon" onclick="document.getElementById('demoModal').classList.remove('active')">
          <i class="fa-solid fa-xmark"></i>
        </button>
      </div>
      <div class="form-group mb-3">
        <label class="form-label-d2c">Nombre del proyecto</label>
        <input type="text" class="field-d2c input-d2c" placeholder="ThreadVision FW27...">
      </div>
      <div class="form-group mb-3">
        <label class="form-label-d2c">Descripción breve</label>
        <textarea class="field-d2c textarea-d2c" rows="3" placeholder="Describe el concepto..."></textarea>
      </div>
      <div class="form-group">
        <label class="form-label-d2c">Tipo base</label>
        <select class="field-d2c select-d2c">
          <option>Oversized Tee</option>
          <option>Hoodie</option>
          <option>Jacket</option>
        </select>
      </div>
      <div class="modal-footer">
        <button class="btn-d2c btn-ghost btn-d2c--sm" onclick="document.getElementById('demoModal').classList.remove('active')">Cancelar</button>
        <button class="btn-d2c btn-orange btn-d2c--sm"><i class="fa-solid fa-plus"></i> Crear Proyecto</button>
      </div>
    </div>
  </div>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       18. LOADING / SPINNERS
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="loading">
    <div class="uikit-section-title">18 — Loading / Progress</div>
    <div class="uikit-row" style="align-items:center;gap:32px;margin-bottom:24px;">
      <div class="uikit-item">
        <div class="uikit-label">Spinner sm</div>
        <div class="spinner-d2c spinner-d2c--sm"></div>
      </div>
      <div class="uikit-item">
        <div class="uikit-label">Spinner md</div>
        <div class="spinner-d2c"></div>
      </div>
      <div class="uikit-item">
        <div class="uikit-label">Spinner lg</div>
        <div class="spinner-d2c spinner-d2c--lg"></div>
      </div>
    </div>
    <div style="display:flex;flex-direction:column;gap:12px;max-width:400px;">
      <div>
        <div class="d-flex justify-between mb-2">
          <span class="uikit-label">Generando modelo...</span>
          <span class="uikit-label">65%</span>
        </div>
        <div class="progress-d2c">
          <div class="progress-bar-d2c" style="width:65%"></div>
        </div>
      </div>
      <div>
        <div class="d-flex justify-between mb-2">
          <span class="uikit-label">Aplicando artwork...</span>
          <span class="uikit-label">92%</span>
        </div>
        <div class="progress-d2c">
          <div class="progress-bar-d2c" style="width:92%;background:var(--clr-accent-orange)"></div>
        </div>
      </div>
    </div>
  </section>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       19. FORM ROW (Inspector style)
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="formrow">
    <div class="uikit-section-title">19 — Inspector Form Rows</div>
    <div class="subpanel" style="max-width:300px;">
      <div class="panel-title--sm">Artwork Controls</div>
      <div class="form-row">
        <span class="form-row__label">Scale</span>
        <span class="form-row__value">85%</span>
      </div>
      <div class="form-row">
        <span class="form-row__label">Rotation</span>
        <span class="form-row__value">12°</span>
      </div>
      <div class="form-row">
        <span class="form-row__label">Opacity</span>
        <span class="form-row__value">82%</span>
      </div>
      <div class="form-row">
        <span class="form-row__label">Blending</span>
        <span class="form-row__value" style="color:var(--clr-accent-purple)">Print</span>
      </div>
    </div>
    <div class="subpanel mt-3" style="max-width:300px;">
      <div class="panel-title--sm">Garment Controls</div>
      <div class="form-row">
        <span class="form-row__label">Fabric</span>
        <span class="form-row__value">Jersey</span>
      </div>
      <div class="form-row" style="justify-content:space-between;">
        <span class="form-row__label">Base Colour</span>
        <span style="display:inline-block;width:20px;height:20px;border-radius:50%;background:#3A3A3A;border:1px solid #555;"></span>
      </div>
      <div class="form-row">
        <span class="form-row__label">Type</span>
        <span class="form-row__value">Oversized Tee</span>
      </div>
    </div>
  </section>

  <hr class="uikit-sep mb-5">

  <!-- ─────────────────────────────────────────────
       20. APP LAYOUT PREVIEW
  ───────────────────────────────────────────── -->
  <section class="uikit-section" id="layout">
    <div class="uikit-section-title">20 — App Layout Preview (mini)</div>
    <div style="border:1px solid var(--clr-border);border-radius:18px;overflow:hidden;background:var(--clr-bg-root);">
      <!-- Mini Topbar -->
      <div style="display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--clr-border);">
        <div style="font-size:18px;font-weight:700;color:var(--clr-text-primary)">Design2Clothes</div>
        <button class="btn-d2c btn-orange btn-d2c--sm"><i class="fa-solid fa-plus"></i> New Project</button>
      </div>
      <!-- Mini 3-col -->
      <div style="display:flex;gap:12px;padding:12px;min-height:200px;">
        <div class="panel" style="width:160px;gap:8px;">
          <div style="font-size:13px;font-weight:600;color:var(--clr-text-primary)">Assets</div>
          <div class="tabs-d2c" style="height:28px;">
            <button class="tab-item active--purple" style="font-size:10px;">Uploads</button>
            <button class="tab-item" style="font-size:10px;">Patterns</button>
          </div>
          <div class="asset-item" style="height:36px;">
            <span class="asset-item__name" style="font-size:10px;">Logo.svg</span>
            <span class="file-badge file-badge--svg">SVG</span>
          </div>
        </div>
        <div class="panel panel--alt" style="flex:1;align-items:center;justify-content:center;min-height:180px;">
          <i class="fa-solid fa-shirt" style="font-size:48px;color:#2C2C2C;"></i>
          <div style="font-size:11px;color:var(--clr-text-muted);margin-top:8px;">AI Texture-Mapped Preview</div>
        </div>
        <div class="panel" style="width:160px;gap:8px;">
          <div style="font-size:13px;font-weight:600;color:var(--clr-text-primary)">Export</div>
          <div style="font-size:10px;color:var(--clr-text-muted);">High-res render for portfolio.</div>
          <select class="field-d2c select-d2c" style="height:28px;font-size:10px;padding:0 24px 0 8px;">
            <option>4K PNG ▾</option>
          </select>
          <button class="btn-d2c btn-orange btn-d2c--sm btn-d2c--full" style="height:28px;font-size:11px;">Export</button>
        </div>
      </div>
    </div>
  </section>

  <!-- ── Toast demo ── -->
  <div class="toast-container" id="toastContainer"></div>

  <div style="height:80px;"></div>
</div><!-- /uikit-content -->

<!-- Bootstrap 5 JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
<!-- jQuery -->
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script>
$(function() {
  // ── Range sliders
  function bindRange(inputId, labelId, suffix) {
    $('#' + inputId).on('input', function() {
      $('#' + labelId).text($(this).val() + suffix);
    });
  }
  bindRange('scaleRange', 'scaleVal', '%');
  bindRange('rotRange', 'rotVal', '°');
  bindRange('opaRange', 'opaVal', '%');

  // ── Tabs
  $(document).on('click', '.tabs-d2c .tab-item', function() {
    const $tabs = $(this).closest('.tabs-d2c').find('.tab-item');
    $tabs.removeClass('active--purple active--orange');
    $(this).addClass('active--purple');
  });

  // ── Drop zone drag events
  const $zone = $('#uploadZone');
  $zone.on('dragover dragenter', function(e) {
    e.preventDefault();
    $zone.addClass('drag-over');
  });
  $zone.on('dragleave drop', function() {
    $zone.removeClass('drag-over');
  });
  $zone.on('drop', function(e) {
    e.preventDefault();
    const files = e.originalEvent.dataTransfer.files;
    if (files.length) showToast('<i class="fa-solid fa-check"></i> Archivo subido: ' + files[0].name, 'success');
  });

  // ── Close dropdown on outside click
  $(document).on('click', function(e) {
    if (!$(e.target).closest('.dropdown-d2c').length) {
      $('.dropdown-d2c').removeClass('open');
    }
  });

  // ── Dropdown option click
  $(document).on('click', '.dropdown-option', function() {
    const text = $(this).text();
    $(this).closest('.dropdown-d2c').find('.dropdown-trigger span:last').text(text + ' ▾');
    $(this).closest('.dropdown-d2c').removeClass('open');
    $(this).siblings().removeClass('selected');
    $(this).addClass('selected');
  });

  // ── Nav active link on scroll
  const sections = $('section[id]');
  $(window).on('scroll', function() {
    const scrollY = $(this).scrollTop();
    sections.each(function() {
      const top = $(this).offset().top - 80;
      const id = $(this).attr('id');
      if (scrollY >= top) {
        $('.uikit-nav a').removeClass('active');
        $('.uikit-nav a[href="#' + id + '"]').addClass('active');
      }
    });
  });

  // ── Toast helper
  window.showToast = function(message, type) {
    const icons = { success: 'fa-check-circle', warning: 'fa-triangle-exclamation', danger: 'fa-circle-xmark', info: 'fa-circle-info' };
    const colors = { success: 'var(--clr-accent-purple)', warning: 'var(--clr-accent-orange)', danger: '#e57161', info: '#a880ff' };
    const icon = icons[type] || 'fa-circle-info';
    const color = colors[type] || colors.info;
    const $toast = $('<div class="toast-d2c">')
      .html('<i class="fa-solid ' + icon + '" style="color:' + color + '"></i> ' + message);
    $('#toastContainer').append($toast);
    setTimeout(() => $toast.fadeOut(400, () => $toast.remove()), 3500);
  };

  // Demo toast on load
  setTimeout(() => showToast('<i class="fa-solid fa-palette"></i> UI Kit cargado correctamente', 'success'), 800);
});
</script>
</body>
</html>