# Ejemplo de código de Botones. DESY. Sistema de diseño del Gobierno de Aragón. ## Componentes Índice de páginas Componentes # Botones Esta es la descripción del componente # Button Mostrar parámetros ## Parámetros Nunjucks del componente: "Button" ```yaml params: - name: element type: string required: false description: Whether to use an `input`, `button` or `a` element to create the button. In most cases you will not need to set this as it will be configured automatically if you use `href` or `html`. - name: text type: string required: true description: If `html` is set, this is not required. Text for the button or link. If `html` is provided, the `text` argument will be ignored and `element` will be automatically set to `button` unless `href` is also set, or it has already been defined. This argument has no effect if `element` is set to `input`. - name: html type: string required: true description: If `text` is set, this is not required. HTML for the button or link. If `html` is provided, the `text` argument will be ignored and `element` will be automatically set to `button` unless `href` is also set, or it has already been defined. This argument has no effect if `element` is set to `input`. - name: name type: string required: false description: Name for the `input` or `button`. This has no effect on `a` elements. - name: type type: string required: false description: Type of `input` or `button` – `button`, `submit` or `reset`. Defaults to `button`. This has no effect on `a` elements. - name: value type: string required: false description: Value for the `button` tag. This has no effect on `a` or `input` elements. - name: disabled type: boolean required: false description: Whether the button should be disabled. For button and input elements, `disabled` and `aria-disabled` attributes will be set automatically. - name: href type: string required: false description: The URL that the button should link to. If this is set, `element` will be automatically set to `a` if it has not already been defined. - name: target type: string required: false description: The target where the button should link to. - name: classes type: string required: false description: Classes to add to the button component. - name: attributes type: object required: false description: HTML attributes (for example data attributes) to add to the button component. - name: preventDoubleClick type: boolean required: false description: Prevent accidental double clicks on submit buttons from submitting forms multiple times ``` ### Por defecto [#](#por-defecto) Mostrar códigodel ejemplo: Por defecto #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "text": "Por defecto" }) }} ``` ##### HTML ```html ``` ### Por defecto con estado activo [#](#por-defecto-con-estado-activo) Simula activar la pseudoclase de CSS `:active` Mostrar códigodel ejemplo: Por defecto con estado activo #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "name": "active", "text": "Activo", "classes": "ds-active" }) }} ``` ##### HTML ```html ``` ### Por defecto con estado hover [#](#por-defecto-con-estado-hover) Simula activar la pseudoclase de CSS `:hover` Mostrar códigodel ejemplo: Por defecto con estado hover #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "name": "hover", "text": "Hover", "classes": "ds-hover" }) }} ``` ##### HTML ```html ``` ### Por defecto con estado focus [#](#por-defecto-con-estado-focus) Simula activar la pseudoclase de CSS `:focus` Mostrar códigodel ejemplo: Por defecto con estado focus #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "name": "focus", "text": "Focus", "classes": "ds-focus" }) }} ``` ##### HTML ```html ``` ### Por defecto deshabilitado [#](#por-defecto-deshabilitado) Mostrar códigodel ejemplo: Por defecto deshabilitado #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "text": "Deshabilitado", "disabled": true }) }} ``` ##### HTML ```html ``` ### Primario [#](#primario) Mostrar códigodel ejemplo: Primario #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "text": "Primario", "classes": "c-button--primary" }) }} ``` ##### HTML ```html ``` ### Primario con estado activo [#](#primario-con-estado-activo) Simula activar la pseudoclase de CSS `:active` Mostrar códigodel ejemplo: Primario con estado activo #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "name": "active", "text": "Activo", "classes": "c-button--primary ds-active" }) }} ``` ##### HTML ```html ``` ### Primario con estado hover [#](#primario-con-estado-hover) Simula activar la pseudoclase de CSS `:hover` Mostrar códigodel ejemplo: Primario con estado hover #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "name": "hover", "text": "Hover", "classes": "c-button--primary ds-hover" }) }} ``` ##### HTML ```html ``` ### Primario con estado focus [#](#primario-con-estado-focus) Simula activar la pseudoclase de CSS `:focus` Mostrar códigodel ejemplo: Primario con estado focus #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "name": "focus", "text": "Focus", "classes": "c-button--primary ds-focus" }) }} ``` ##### HTML ```html ``` ### Primario deshabilitado [#](#primario-deshabilitado) Mostrar códigodel ejemplo: Primario deshabilitado #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "text": "Deshabilitado", "disabled": true, "classes": "c-button--primary" }) }} ``` ##### HTML ```html ``` ### Alerta [#](#alerta) Mostrar códigodel ejemplo: Alerta #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "text": "Alerta", "classes": "c-button--alert" }) }} ``` ##### HTML ```html ``` ### Alerta con estado activo [#](#alerta-con-estado-activo) Simula activar la pseudoclase de CSS `:active` Mostrar códigodel ejemplo: Alerta con estado activo #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "name": "active", "text": "Activo", "classes": "c-button--alert ds-active" }) }} ``` ##### HTML ```html ``` ### Alerta con estado hover [#](#alerta-con-estado-hover) Simula activar la pseudoclase de CSS `:hover` Mostrar códigodel ejemplo: Alerta con estado hover #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "name": "hover", "text": "Hover", "classes": "c-button--alert ds-hover" }) }} ``` ##### HTML ```html ``` ### Alerta con estado focus [#](#alerta-con-estado-focus) Simula activar la pseudoclase de CSS `:focus` Mostrar códigodel ejemplo: Alerta con estado focus #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "name": "focus", "text": "Focus", "classes": "c-button--alert ds-focus" }) }} ``` ##### HTML ```html ``` ### Alerta deshabilitado [#](#alerta-deshabilitado) Mostrar códigodel ejemplo: Alerta deshabilitado #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "text": "Deshabilitado", "disabled": true, "classes": "c-button--alert" }) }} ``` ##### HTML ```html ``` ### Transparente [#](#transparente) Mostrar códigodel ejemplo: Transparente #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "text": "Transparente", "classes": "c-button--transparent" }) }} ``` ##### HTML ```html ``` ### Transparente con estado activo [#](#transparente-con-estado-activo) Simula activar la pseudoclase de CSS `:active` Mostrar códigodel ejemplo: Transparente con estado activo #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "name": "active", "text": "Activo", "classes": "c-button--transparent ds-active" }) }} ``` ##### HTML ```html ``` ### Transparente con estado hover [#](#transparente-con-estado-hover) Simula activar la pseudoclase de CSS `:hover` Mostrar códigodel ejemplo: Transparente con estado hover #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "name": "hover", "text": "Hover", "classes": "c-button--transparent ds-hover" }) }} ``` ##### HTML ```html ``` ### Transparente con estado focus [#](#transparente-con-estado-focus) Simula activar la pseudoclase de CSS `:focus` Mostrar códigodel ejemplo: Transparente con estado focus #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "name": "focus", "text": "Focus", "classes": "c-button--transparent ds-focus" }) }} ``` ##### HTML ```html ``` ### Transparente deshabilitado [#](#transparente-deshabilitado) Mostrar códigodel ejemplo: Transparente deshabilitado #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "text": "Deshabilitado", "disabled": true, "classes": "c-button--transparent" }) }} ``` ##### HTML ```html ``` ### Anchura completa [#](#anchura-completa) Mostrar códigodel ejemplo: Anchura completa #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "text": "Anchura completa", "classes": "w-full justify-center" }) }} ``` ##### HTML ```html ``` ### Grande y primario [#](#grande-y-primario) Mostrar códigodel ejemplo: Grande y primario #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "text": "Grande y primario", "classes": "c-button--lg c-button--primary" }) }} ``` ##### HTML ```html ``` ### Peque [#](#peque) Mostrar códigodel ejemplo: Peque #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "text": "Peque", "classes": "c-button--sm" }) }} ``` ##### HTML ```html ``` ### Peque tiene selección [#](#peque-tiene-seleccin) Mostrar códigodel ejemplo: Peque tiene selección #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "text": "Peque tiene selección", "classes": "c-button--sm c-button--has-selection" }) }} ``` ##### HTML ```html ``` ### Enlace [#](#enlace) Si añades el atributo `href` se comporta como un enlace y generará la etiqueta `` en lugar de la etiqueta ` ``` ### Botón con icono a la izquierda [#](#botn-con-icono-a-la-izquierda) Mostrar códigodel ejemplo: Botón con icono a la izquierda #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "html": "Botón con icono" }) }} ``` ##### HTML ```html ``` ### Botón atrás [#](#botn-atrs) Transparente con icono a la izquierda Mostrar códigodel ejemplo: Botón atrás #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "html": "Volver", "href": "/", "classes": "c-button--transparent" }) }} ``` ##### HTML ```html Volver ``` ### Botón adelante [#](#botn-adelante) Transparente con icono a la derecha Mostrar códigodel ejemplo: Botón adelante #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "html": "Ver más", "href": "/", "classes": "c-button--transparent" }) }} ``` ##### HTML ```html Ver más ``` ### Botón sólo con icono [#](#botn-slo-con-icono) Mostrar códigodel ejemplo: Botón sólo con icono #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "html": "", "classes": "c-button--primary align-bottom" }) }} ``` ##### HTML ```html ``` ### Button peque sólo con icono [#](#button-peque-slo-con-icono) Mostrar códigodel ejemplo: Button peque sólo con icono #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "html": "", "classes": "c-button--primary c-button--sm align-bottom" }) }} ``` ##### HTML ```html ``` ### Input [#](#input) Mostrar códigodel ejemplo: Input #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "element": "input", "name": "send-form", "text": "Enviar" }) }} ``` ##### HTML ```html ``` ### Input deshabilitado [#](#input-deshabilitado) Mostrar códigodel ejemplo: Input deshabilitado #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "element": "input", "text": "Enviar", "disabled": true }) }} ``` ##### HTML ```html ``` ### Prevenir doble click [#](#prevenir-doble-click) Mostrar códigodel ejemplo: Prevenir doble click #### Contenido Nunjucks macro HTML ##### Nunjucks macro ```js {% from "components/button/_macro.button.njk" import componentButton %} {{ componentButton({ "text": "Enviar", "preventDoubleClick": true }) }} ``` ##### HTML ```html ```