Playground

Guía del Playground

El playground es un workspace orientado a producción para diseñar la experiencia de comandos antes de cerrar la integración en tu aplicación.

Te permite definir arquitectura de comandos, validar flujo de teclado/navegación en vivo y exportar código base para React, Vue, Preact, Astro y Core (Vanilla).

Qué puedes hacer en el playground

Mapa del workspace

Mapa de controles: Básicos

Mapa de controles: Apariencia

El código generado incluye ambos modos dentro de un único objeto theme (theme.light + theme.dark) para mantener exports completos y coherentes.

Mapa de controles: Secciones y comandos

Mapa de controles: Código y export

Ejemplos de export

import { CommandPalette } from "@cmd-kit/react";

const sections = [
  {
    id: "commands",
    title: "Comandos",
    items: [{ id: "toggle-theme", title: "Cambiar tema", shortcut: "mod+t" }]
  }
];

const theme = {
  light: { accentColor: "#0fa6d8", backgroundColor: "#ffffff" },
  dark: { accentColor: "#35d7ff", backgroundColor: "#0b1116" }
};

export function Demo() {
  return (
    <CommandPalette
      sections={sections}
      shortcut="mod+k"
      title="Menú de comandos"
      messages={{
        searchPlaceholder: "Buscar comandos...",
        noResults: "No se han encontrado resultados.",
        closeLabel: "Cerrar menú de comandos"
      }}
      recents={false}
      theme={theme}
    />
  );
}
<script setup lang="ts">
import { CommandPalette } from "@cmd-kit/vue";

const sections = [{ id: "commands", title: "Comandos", items: [] }];
const theme = {
  light: { accentColor: "#0fa6d8", backgroundColor: "#ffffff" },
  dark: { accentColor: "#35d7ff", backgroundColor: "#0b1116" }
};
</script>

<template>
  <CommandPalette
    :sections="sections"
    :theme="theme"
    shortcut="mod+k"
    title="Menú de comandos"
  />
</template>
import { createCommandPalette } from "@cmd-kit/core";

const palette = createCommandPalette({
  sections: [{ id: "commands", title: "Comandos", items: [] }],
  theme: {
    light: { accentColor: "#0fa6d8", backgroundColor: "#ffffff" },
    dark: { accentColor: "#35d7ff", backgroundColor: "#0b1116" }
  },
  shortcut: "mod+k",
  title: "Menú de comandos"
});

window.addEventListener("beforeunload", () => palette.destroy());

Flujo guiado #1: Arranque rápido (10 minutos)

  1. Configura idioma y título en Básicos.
  2. Crea secciones principales y 3-5 comandos core.
  3. Añade subtítulos y atajos para mejorar lectura y escaneo.
  4. Ajusta placeholder/estado vacío/cierre al tono de producto.
  5. Abre preview y valida el flujo completo por teclado.
  6. Exporta tu adaptador objetivo e intégralo en tu app.

Flujo guiado #2: Configuración dual de tema

  1. Selecciona Modo claro y define tokens principales.
  2. Cambia a Modo oscuro y replica la misma intención semántica.
  3. Valida preview en ambos modos con el selector de modo de vista previa.
  4. Revisa contraste en título, subtítulo y atajos.
  5. Exporta y confirma presencia de theme.light y theme.dark.

Flujo guiado #3: Arquitectura y flujos anidados

  1. Define secciones por intención de usuario (navegación, acciones, settings).
  2. Coloca primero los comandos más frecuentes.
  3. Usa anidados solo cuando haya navegación real en profundidad.
  4. Añade keywords para cubrir sinónimos de búsqueda.
  5. Usa estado deshabilitado solo para casos intencionales y contextuales.

Flujo guiado #4: Preparación para source asíncrono

  1. Cambia modo de datos a Fuente asíncrona.
  2. Ajusta delay para aproximar latencia real de backend.
  3. Valida transiciones de carga y estado vacío.
  4. Exporta snippet y sustituye la fuente mock por tu cliente API real.
  5. Mantén el shape de payload alineado con el esquema section/item.

Checklist preproducción

FAQ

¿Debo subir a producción el código exportado sin cambios?

Normalmente no. Úsalo como base y adáptalo a tu arquitectura, naming y estilos.

¿La salida del playground es documentación de API?

No. La referencia de API está en los docs de cada adaptador; el playground es base de integración.

¿Puedo mantener la apertura modal si ya uso preview embebida?

Sí. La embebida acelera iteración visual y la modal sirve para validar interacción real.

¿Por qué solo salen pestañas de adaptadores en export?

Se prioriza foco en salidas oficiales y prácticas para reducir ruido.

¿Cuándo pasar del playground a implementación?

Cuando tengas estable la arquitectura de comandos, la preview y los tokens duales.