# 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 `