Button Icon
Botonesshadcn/uiv1.0.0buttonicondownloadactionshadcn
Botón con icono IA-First: acción puntual (descargar, compartir) con texto accesible y confirmación requerida; herramienta downloadReport.
npx webmcpcss components import shadcn-button-icon/* Componente: Button Icon */
/* Categoría: buttons · Librería: shadcn · Versión: 1.0.0 */
/* Botón con icono IA-First: acción puntual (descargar, compartir) con texto accesible y confirmación requerida; herramienta downloadReport. */
/* Importar: npx webmcpcss components import shadcn-button-icon */
/* shadcn/ui: el HTML es el DOM que renderiza <Button …> (data-slot="button"); pasa data-tool como prop. */
[data-slot="button"][data-tool="downloadReport"] {
webmcp-tool: "downloadReport";
webmcp-description: "Descarga el informe en PDF (requiere confirmación del usuario)";
webmcp-intent: "action";
webmcp-confirmation: "needed";
webmcp-permissions: "restricted";
webmcp-accessibility: "focus-visible: ring; min-target: 44px";
}
<button data-slot="button" data-variant="default" data-tool="downloadReport" type="button"
class="inline-flex h-9 items-center justify-center gap-2 whitespace-nowrap rounded-md px-4 py-2 text-sm font-medium transition-all outline-none focus-visible:ring-[3px] focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground shadow-sm hover:opacity-90">
<svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>Descargar
</button>
<Button data-tool="downloadReport"><Download /> Descargar</Button>{
"id": "shadcn-button-icon",
"name": "Button Icon",
"category": "buttons",
"library": "shadcn",
"version": "1.0.0",
"description": "Botón con icono IA-First: acción puntual (descargar, compartir) con texto accesible y confirmación requerida; herramienta downloadReport.",
"author": "WebMCPcss Team",
"tags": [
"button",
"icon",
"download",
"action",
"shadcn"
],
"controls": [
{
"variable": "--primary",
"label": "Color primario",
"type": "color",
"default": "#18181b"
},
{
"variable": "--primary-foreground",
"label": "Texto sobre primario",
"type": "color",
"default": "#fafafa"
},
{
"variable": "--radius",
"label": "Radio",
"type": "range",
"default": "0.625rem",
"min": 0,
"max": 1.5,
"step": 0.125,
"unit": "rem"
}
],
"promptExamples": [
"cambia el icono del botón Descargar por una flecha",
"pon el botón con icono en gris"
],
"animateExamples": [
"haz que el botón Descargar pulse suavemente",
"aplica slide-up al botón con icono"
],
"related": [
"core-button-icon",
"tailwind-button-icon",
"bootstrap-button-icon",
"mui-button-icon"
],
"usage": {
"framework": "react",
"code": "<Button data-tool=\"downloadReport\"><Download /> Descargar</Button>"
},
"preview": "preview.css",
"css": "button-icon.webmcp.css",
"html": "button-icon.html"
}Cómo usarlo
- Importa el componente a tu proyecto (HTML +
.webmcp.css+component.json):npx webmcpcss components import shadcn-button-icon --output ./src/components - O añade solo el contrato a tu
webmcp.cssexistente (bloque delimitado y actualizable):npx webmcpcss components import shadcn-button-icon --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 |
|---|---|---|---|---|---|
downloadReport | Descarga el informe en PDF (requiere confirmación del usuario) | — | action | needed | [data-slot="button"][data-tool="downloadReport"] |
Ejemplos con la CLI
webmcpcss prompt — lenguaje natural sobre el componente
cambia el icono del botón Descargar por una flechapon el botón con icono en gris
webmcpcss animate — animaciones declarativas
haz que el botón Descargar pulse suavementeaplica slide-up al botón con icono