Hub›Catálogo›Layout›Hero

Hero

LayoutCore (sin librería)v1.0.0layoutherolandingctacore

Sección hero IA-First: título, subtítulo y dos llamadas a la acción; herramientas startNow / watchDemo, contexto heroTitle y animación de entrada del título.

npx webmcpcss components import core-hero
Previsualización
/* Componente: Hero */
/* Categoría: layout · Librería: core · Versión: 1.0.0 */
/* Sección hero IA-First: título, subtítulo y dos llamadas a la acción; herramientas startNow / watchDemo, contexto heroTitle y animación de entrada del título. */
/* Importar: npx webmcpcss components import core-hero */

.wm-hero { padding: 56px 28px; text-align: center; background: var(--wm-hero-bg, linear-gradient(160deg, #0f172a, #1e293b)); color: #fff; border-radius: var(--wm-radius, 18px); font-family: system-ui, sans-serif; }
.wm-hero__eyebrow { display: inline-block; margin: 0 0 14px; padding: 4px 12px; border-radius: 999px; background: rgba(255, 255, 255, .12); font-size: 13px; letter-spacing: .3px; }
.wm-hero__title { margin: 0 auto 14px; max-width: 16ch; font-size: clamp(30px, 5vw, 48px); line-height: 1.08; letter-spacing: -.5px; }
.wm-hero__subtitle { margin: 0 auto 28px; max-width: 56ch; color: rgba(255, 255, 255, .78); font-size: 17px; }
.wm-hero__actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.wm-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 12px 22px; border: 1.5px solid transparent; border-radius: calc(var(--wm-radius, 18px) - 8px); font: 600 15px/1 system-ui, sans-serif; cursor: pointer; text-decoration: none; }
.wm-btn--primary { background: var(--wm-primary, #2563eb); color: var(--wm-on-primary, #fff); }
.wm-btn--ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .35); }

/* Contrato WebMCP */
[data-component="hero"] [data-tool="startNow"] {
  webmcp-tool: "startNow";
  webmcp-description: "Llamada a la acción principal del hero: empieza el registro o la prueba";
  webmcp-intent: "navigate";
  webmcp-confirmation: "none";
  webmcp-permissions: "read-only";
}
[data-component="hero"] [data-tool="watchDemo"] {
  webmcp-tool: "watchDemo";
  webmcp-description: "Abre la demostración en vídeo";
  webmcp-intent: "action";
  webmcp-confirmation: "none";
  webmcp-permissions: "read-only";
}
[data-component="hero"] [data-context="hero-title"] { webmcp-context: "heroTitle"; webmcp-format: "text"; }
[data-component="hero"] [data-context="hero-subtitle"] { webmcp-context: "heroSubtitle"; webmcp-format: "text"; }

/* Animación de entrada del título (estándar de animaciones de WebMCPcss) */
[data-component="hero"] [data-context="hero-title"] {
  webmcp-animation: "heroTitleIn";
  webmcp-animation-type: keyframes;
  webmcp-animation-trigger: load;
  webmcp-animation-duration: 900ms;
  webmcp-animation-easing: cubic-bezier(.2, .8, .2, 1);
  webmcp-animation-keyframes: '[{"opacity":0,"transform":"translateY(18px)"},{"opacity":1,"transform":"none"}]';
}

Cómo usarlo

  1. Importa el componente a tu proyecto (HTML + .webmcp.css + component.json):
    npx webmcpcss components import core-hero --output ./src/components
  2. O añade solo el contrato a tu webmcp.css existente (bloque delimitado y actualizable):
    npx webmcpcss components import core-hero --merge ./webmcp.css
  3. Publícalo para los agentes: MCP (webmcpcss mcp --serve --css ./webmcp.css), document.modelContext (webmcpcss standard compile ./webmcp.css --html index.html) o exporta a tu agente favorito (webmcpcss export --agent claude-code).

Herramientas para agentes

HerramientaDescripciónParámetrosIntenciónConfirmaciónSelector
startNowLlamada a la acción principal del hero: empieza el registro o la prueba—navigatenone[data-component="hero"] [data-tool="startNow"]
watchDemoAbre la demostración en vídeo—actionnone[data-component="hero"] [data-tool="watchDemo"]

Contexto que publica

DatoFormatoSelector
heroTitletext[data-component="hero"] [data-context="hero-title"]
heroSubtitletext[data-component="hero"] [data-context="hero-subtitle"]

Animaciones declaradas

NombreTipoSelector
heroTitleInkeyframes[data-component="hero"] [data-context="hero-title"]

Ejecútalas con npx webmcpcss animate hero.webmcp.css --url https://tu-sitio o incluye el runtime en tu página (npx webmcpcss animate hero.webmcp.css -o ./public/webmcp-animation).

Ejemplos con la CLI

webmcpcss prompt — lenguaje natural sobre el componente

  • cambia el título del hero a “Componentes nativos para agentes”
  • pon el botón Empezar ahora en verde

webmcpcss animate — animaciones declarativas

  • aplica parallax al fondo del hero
  • haz que el subtítulo aparezca con retardo

Mismo componente en otras librerías