Login Form
FormulariosMaterial UIv1.0.0formloginauthdeclarativemui
Formulario de acceso IA-First (email + contraseña) con API declarativa WebMCP (toolname/tooldescription), confirmación requerida y permisos restringidos.
npx webmcpcss components import mui-login-form/* Componente: Login Form */
/* Categoría: forms · Librería: mui · 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 mui-login-form */
/* Material UI: el HTML es el DOM que renderizan <TextField> y <Button>; los atributos declarativos van en inputProps. */
/* 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)";
}
<form data-form="login-form" toolname="login" tooldescription="Inicia sesión con correo y contraseña" action="#" method="post" novalidate class="MuiPaper-root" style="max-width: 24rem; padding: 24px; display: grid; gap: 8px">
<h2 class="MuiTypography-root MuiTypography-h5">Iniciar sesión</h2>
<div class="MuiFormControl-root MuiTextField-root">
<label class="MuiInputLabel-root" for="email">Correo electrónico</label>
<div class="MuiInputBase-root MuiOutlinedInput-root"><input class="MuiInputBase-input MuiOutlinedInput-input" id="email" name="email" type="email" required autocomplete="email" toolparamtitle="email" toolparamdescription="Correo con el que te registraste"></div>
</div>
<div class="MuiFormControl-root MuiTextField-root">
<label class="MuiInputLabel-root" for="password">Contraseña</label>
<div class="MuiInputBase-root MuiOutlinedInput-root"><input class="MuiInputBase-input MuiOutlinedInput-input" id="password" name="password" type="password" required minlength="8" autocomplete="current-password" toolparamtitle="password" toolparamdescription="Contraseña de la cuenta (mínimo 8 caracteres)"></div>
</div>
<button class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-fullWidth" type="submit">Entrar</button>
</form>
<Paper component="form" data-form="login-form" toolname="login" tooldescription="Inicia sesión con correo y contraseña" onSubmit={handleSubmit} sx={{ p: 3, display: "grid", gap: 2, maxWidth: 384 }}>
<Typography variant="h5">Iniciar sesión</Typography>
<TextField name="email" label="Correo electrónico" type="email" required inputProps={{ toolparamtitle: "email", toolparamdescription: "Correo con el que te registraste" }} />
<TextField name="password" label="Contraseña" type="password" required inputProps={{ toolparamtitle: "password", toolparamdescription: "Contraseña de la cuenta (mínimo 8 caracteres)" }} />
<Button type="submit" variant="contained" fullWidth>Entrar</Button>
</Paper>{
"id": "mui-login-form",
"name": "Login Form",
"category": "forms",
"library": "mui",
"version": "1.0.0",
"description": "Formulario de acceso IA-First (email + contraseña) con API declarativa WebMCP (toolname/tooldescription), confirmación requerida y permisos restringidos.",
"author": "WebMCPcss Team",
"tags": [
"form",
"login",
"auth",
"declarative",
"mui"
],
"controls": [
{
"variable": "--wm-primary",
"label": "Color primario",
"type": "color",
"default": "#1976d2"
},
{
"variable": "--wm-on-primary",
"label": "Texto sobre primario",
"type": "color",
"default": "#ffffff"
},
{
"variable": "--wm-radius",
"label": "Radio",
"type": "range",
"default": "4px",
"min": 0,
"max": 24,
"step": 1,
"unit": "px"
}
],
"promptExamples": [
"añade un enlace de “¿olvidaste tu contraseña?” bajo el formulario",
"cambia el texto del botón Entrar a Acceder"
],
"animateExamples": [
"haz que el formulario de login aparezca con fade-in",
"agita el formulario cuando falle el acceso"
],
"related": [
"core-login-form",
"tailwind-login-form",
"bootstrap-login-form",
"shadcn-login-form"
],
"usage": {
"framework": "react",
"code": "<Paper component=\"form\" data-form=\"login-form\" toolname=\"login\" tooldescription=\"Inicia sesión con correo y contraseña\" onSubmit={handleSubmit} sx={{ p: 3, display: \"grid\", gap: 2, maxWidth: 384 }}>\n <Typography variant=\"h5\">Iniciar sesión</Typography>\n <TextField name=\"email\" label=\"Correo electrónico\" type=\"email\" required inputProps={{ toolparamtitle: \"email\", toolparamdescription: \"Correo con el que te registraste\" }} />\n <TextField name=\"password\" label=\"Contraseña\" type=\"password\" required inputProps={{ toolparamtitle: \"password\", toolparamdescription: \"Contraseña de la cuenta (mínimo 8 caracteres)\" }} />\n <Button type=\"submit\" variant=\"contained\" fullWidth>Entrar</Button>\n</Paper>"
},
"preview": "preview.css",
"css": "login-form.webmcp.css",
"html": "login-form.html"
}Cómo usarlo
- Importa el componente a tu proyecto (HTML +
.webmcp.css+component.json):npx webmcpcss components import mui-login-form --output ./src/components - O añade solo el contrato a tu
webmcp.cssexistente (bloque delimitado y actualizable):npx webmcpcss components import mui-login-form --merge ./webmcp.css - 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
| Herramienta | Descripción | Parámetros | Intención | Confirmación | Selector |
|---|---|---|---|---|---|
login | Inicia sesión con correo y contraseña | email password | submit | needed | form[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 formulariocambia el texto del botón Entrar a Acceder
webmcpcss animate — animaciones declarativas
haz que el formulario de login aparezca con fade-inagita el formulario cuando falle el acceso