Contribuir al Component Hub
Aceptamos componentes nuevos, adaptadores a otras librerías y mejoras de los existentes. Todo el contenido es MIT.
Publicar desde la CLI (recomendado)
export GITHUB_TOKEN=ghp_… # token con permiso repo (nunca lo guardes en el repo)
npx webmcpcss components publish ./mi-boton.webmcp.css \
--name "Botón de reserva" --category buttons --library tailwind \
--html ./mi-boton.html --description "Reserva una mesa con confirmación" --tags reserva,cta
La CLI valida el CSS (parseWebMCP + parseAnimations), genera component.json, hace fork del repositorio, crea la rama hub/<id>-…, sube los archivos a components/community/<id>/ y abre un Pull Request. Si no indicas --html, se genera un ejemplo mínimo a partir de los selectores del contrato.
Publicar a mano
- Crea
components/community/<library>-<slug>/concomponent.json,<slug>.webmcp.cssy<slug>.html. - Ejecuta
npm run build:hubpara regenerarsite/components/ysite/api/components.json. - Ejecuta
npm testy abre el PR.
Requisitos de un componente
- Id en kebab-case con el prefijo de la librería:
tailwind-pricing-table,core-toast. - Descripción ≥ 15 caracteres que explique la acción para un agente, no solo el aspecto.
- Al menos una herramienta (
webmcp-tool), contexto (webmcp-context) o animación (webmcp-animation). - Cada herramienta con
webmcp-description,webmcp-intent,webmcp-confirmationywebmcp-permissions. - Selectores basados en
data-*(no en clases de estilo). - HTML accesible: etiquetas en los campos,
aria-*donde toque, objetivo táctil ≥ 44 px. - Sin dependencias de pago ni recursos externos obligatorios (los CDN de Tailwind/Bootstrap se usan solo para la previsualización).
component.json
{
"id": "tailwind-pricing-table",
"name": "Pricing Table",
"category": "cards",
"library": "tailwind",
"version": "1.0.0",
"description": "Tabla de precios con tres planes; la herramienta choosePlan selecciona uno.",
"tags": ["pricing", "plans"],
"controls": [
{ "variable": "--wm-primary", "label": "Color primario", "type": "color", "default": "#2563eb" }
],
"promptExamples": ["resalta el plan Pro"],
"animateExamples": ["haz que los planes aparezcan en cascada"],
"related": ["core-pricing-table"]
}
Categorías válidas: buttons, cards, forms, layout, animations, intelligent. Librerías: core, tailwind, bootstrap, mui, shadcn.
Versionado
Cada componente tiene su propia versión SemVer. Sube patch si cambias estilos, minor si añades herramientas o parámetros compatibles y major si renombras herramientas o cambias selectores. El hash del índice permite a components update detectar cualquier cambio.
Revisión
Un mantenedor comprueba que el contrato es coherente con el HTML (webmcpcss standard scan), que npm run build:hub -- --check pasa en CI y que la previsualización funciona en el sitio. Gracias por contribuir.