Hub›Catálogo›Formularios›Login Form

Login Form

FormulariosCore (sin librería)v1.0.0formloginauthdeclarativecore

Formulario de acceso IA-First (email + contraseña) con API declarativa WebMCP (toolname/tooldescription), confirmación requerida y permisos restringidos.

npx webmcpcss components import core-login-form
Previsualización
/* Componente: Login Form */
/* Categoría: forms · Librería: core · Versión: 1.0.0 */
/* Formulario de acceso IA-First (email + contraseña) con API declarativa WebMCP (toolname/tooldescription), confirmación requerida y permisos restringidos. */
/* Importar: npx webmcpcss components import core-login-form */

.wm-form { display: grid; gap: 14px; width: min(100%, 380px); padding: 24px; background: var(--wm-surface, #fff); border: 1px solid #e5e7eb; border-radius: var(--wm-radius, 14px); box-shadow: 0 10px 30px -18px rgba(17, 24, 39, .35); font-family: system-ui, sans-serif; }
.wm-form__title { margin: 0 0 4px; font-size: 20px; }
.wm-field { display: grid; gap: 6px; }
.wm-field label { font-size: 13px; font-weight: 600; color: #374151; }
.wm-field input, .wm-field textarea { padding: 10px 12px; border: 1px solid #d1d5db; border-radius: calc(var(--wm-radius, 14px) - 6px); font: 15px system-ui, sans-serif; }
.wm-field input:focus-visible, .wm-field textarea:focus-visible { outline: 3px solid color-mix(in srgb, var(--wm-primary, #2563eb) 35%, white); border-color: var(--wm-primary, #2563eb); }
.wm-btn { min-height: 44px; padding: 10px 22px; border: 0; border-radius: calc(var(--wm-radius, 14px) - 4px); font: 600 15px/1 system-ui, sans-serif; cursor: pointer; }
.wm-btn--primary { background: var(--wm-primary, #2563eb); color: var(--wm-on-primary, #fff); }

/* Contrato WebMCP (equivalente al marcado declarativo del HTML: toolname/tooldescription/toolparamtitle) */
form[data-form="login-form"] button[type="submit"] {
  webmcp-tool: "login";
  webmcp-description: "Inicia sesión con correo y contraseña";
  webmcp-param-email: value(form[data-form="login-form"] [name="email"]);
  webmcp-param-password: value(form[data-form="login-form"] [name="password"]);
  webmcp-trigger: "submit" on form[data-form="login-form"];
  webmcp-intent: "submit";
  webmcp-confirmation: "needed";
  webmcp-permissions: "restricted";
  webmcp-doc-email: "Correo con el que te registraste";
  webmcp-doc-password: "Contraseña de la cuenta (mínimo 8 caracteres)";
}

Cómo usarlo

  1. Importa el componente a tu proyecto (HTML + .webmcp.css + component.json):
    npx webmcpcss components import core-login-form --output ./src/components
  2. O añade solo el contrato a tu webmcp.css existente (bloque delimitado y actualizable):
    npx webmcpcss components import core-login-form --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
loginInicia sesión con correo y contraseñaemail passwordsubmitneededform[data-form="login-form"] button[type="submit"]

Ejemplos con la CLI

webmcpcss prompt — lenguaje natural sobre el componente

  • añade un enlace de “¿olvidaste tu contraseña?” bajo el formulario
  • cambia el texto del botón Entrar a Acceder

webmcpcss animate — animaciones declarativas

  • haz que el formulario de login aparezca con fade-in
  • agita el formulario cuando falle el acceso

Mismo componente en otras librerías