# Ejemplo de código de Migas de pan. DESY. Sistema de diseño del Gobierno de Aragón.
## Componentes Índice de páginas
Componentes
# Migas de pan
Navegación
Los breadcrumbs o migas de pan sirven para identificar dónde nos encontramos dentro de la página web o aplicación. También nos ofrece una navegación secundaria hacia los niveles ascendentes de la página actual.
# Breadcrumbs
Mostrar parámetros
## Parámetros Nunjucks del componente: "Breadcrumbs"
```yaml
params:
- name: items
type: array
required: true
description: Array of breadcrumbs item objects.
params:
- name: text
type: string
required: true
description: If `html` is set, this is not required. Text to use within the breadcrumbs item. If `html` is provided, the `text` argument will be ignored.
- name: html
type: string
required: true
description: If `text` is set, this is not required. HTML to use within the breadcrumbs item. If `html` is provided, the `text` argument will be ignored.
- name: href
type: string
required: false
description: Link for the breadcrumbs item. If not specified, breadcrumbs item is a normal list item.
- name: attributes
type: object
description: HTML attributes (for example data attributes) to add to the individual crumb.
- name: classes
type: string
required: false
description: Classes to add to the breadcrumbs container.
- name: collapseOnMobile
type: boolean
required: false
description: When true, the breadcrumbs will collapse to the first and last item only on tablet breakpoint and below.
- name: inlineOnMobile
type: boolean
required: false
description: When true, the breadcrumbs will linebreak if there is needed only on tablet breakpoint and below.
- name: inlineOnDesktop
type: boolean
required: false
description: When true, the breadcrumbs will linebreak if there is needed only on desktop breakpoint and above.
- name: hasBackButton
type: boolean
required: false
description: When true, the breadcrumbs will start with a back button link.
- name: attributes
type: object
required: false
description: HTML attributes (for example data attributes) to add to the breadcrumbs container.
```
### Por defecto [#](#por-defecto)
Mostrar códigodel ejemplo: Por defecto
#### Contenido
Nunjucks macro HTML
##### Nunjucks macro
```js
{% from "components/breadcrumbs/_macro.breadcrumbs.njk" import componentBreadcrumbs %}
{{ componentBreadcrumbs({
"inlineOnMobile": true,
"inlineOnDesktop": true,
"items": [
{
"text": "Sección",
"href": "/section"
},
{
"text": "Sub-sección",
"href": "/section/sub-section"
}
]
}) }}
```
##### HTML
```html
```
### Con 1 sólo nivel [#](#con-1-slo-nivel)
Mostrar códigodel ejemplo: Con 1 sólo nivel
#### Contenido
Nunjucks macro HTML
##### Nunjucks macro
```js
{% from "components/breadcrumbs/_macro.breadcrumbs.njk" import componentBreadcrumbs %}
{{ componentBreadcrumbs({
"inlineOnMobile": true,
"inlineOnDesktop": true,
"items": [
{
"text": "Sección",
"href": "/section"
}
]
}) }}
```
##### HTML
```html
```
### Con múltiples niveles [#](#con-mltiples-niveles)
Mostrar códigodel ejemplo: Con múltiples niveles
#### Contenido
Nunjucks macro HTML
##### Nunjucks macro
```js
{% from "components/breadcrumbs/_macro.breadcrumbs.njk" import componentBreadcrumbs %}
{{ componentBreadcrumbs({
"inlineOnMobile": true,
"inlineOnDesktop": true,
"items": [
{
"text": "Inicio",
"href": "/"
},
{
"text": "Sección",
"href": "/section"
},
{
"text": "Sub-sección",
"href": "/section/sub-section"
},
{
"text": "Sub Sub-sección",
"href": "/section/sub-section/sub-sub-section"
}
]
}) }}
```
##### HTML
```html
```
### Con cadenas muy largas [#](#con-cadenas-muy-largas)
Sólo si las migas de pan son informativas y no son enlaces, puedes prescindir de los parámetros `'inlineOnMobile':true` y `'inlineOnDesktop':true`. De esta forma, si los items no caben enteros, se truncan y ocupan el espacio de forma equitativa.
Mostrar códigodel ejemplo: Con cadenas muy largas
#### Contenido
Nunjucks macro HTML
##### Nunjucks macro
```js
{% from "components/breadcrumbs/_macro.breadcrumbs.njk" import componentBreadcrumbs %}
{{ componentBreadcrumbs({
"items": [
{
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi volutpat non augue id hendrerit. Cras at iaculis sem, eu posuere tortor"
},
{
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi volutpat non augue id hendrerit. Cras at iaculis sem, eu posuere tortor"
},
{
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi volutpat non augue id hendrerit. Cras at iaculis sem, eu posuere tortor"
},
{
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi volutpat non augue id hendrerit. Cras at iaculis sem, eu posuere tortor"
}
]
}) }}
```
##### HTML
```html
```
### Último item más largo y con truncado en cadenas largas [#](#ltimo-item-ms-largo-y-con-truncado-en-cadenas-largas)
Sólo si las migas de pan son informativas y no son enlaces, puedes prescindir de los parámetros `'inlineOnMobile':true` y `'inlineOnDesktop':true`. Usa la clase `.c-breadcrumbs--truncated` para hacer que los items se trunquen solo si tienen mucha anchura (mayor que `20rem`), como el penúltimo item de este ejemplo. Y que el último item ocupe el espacio restante, truncándose si es necesario, al final, si no le queda espacio suficiente.
Mostrar códigodel ejemplo: Último item más largo y con truncado en cadenas largas
#### Contenido
Nunjucks macro HTML
##### Nunjucks macro
```js
{% from "components/breadcrumbs/_macro.breadcrumbs.njk" import componentBreadcrumbs %}
{{ componentBreadcrumbs({
"classes": "c-breadcrumbs--truncated",
"items": [
{
"text": "Inicio"
},
{
"text": "Actividades industriales y energía"
},
{
"text": "Ayudas ligadas al autoconsumo, almacenamiento y sistemas térmicos con fuentes de energía renovable renovables"
},
{
"text": "Programa 1 Instalaciones de autoconsumo renovable en el sector servicios con o sin almacenamiento"
}
]
}) }}
```
##### HTML
```html
```
### Item a mitad sin href [#](#item-a-mitad-sin-href)
Mostrar códigodel ejemplo: Item a mitad sin href
#### Contenido
Nunjucks macro HTML
##### Nunjucks macro
```js
{% from "components/breadcrumbs/_macro.breadcrumbs.njk" import componentBreadcrumbs %}
{{ componentBreadcrumbs({
"inlineOnMobile": true,
"inlineOnDesktop": true,
"items": [
{
"text": "Inicio",
"href": "/"
},
{
"text": "Section"
},
{
"text": "Sub-sección",
"href": "/section/sub-section"
},
{
"text": "Sub Sub-sección",
"href": "/section/sub-section/sub-sub-section"
}
]
}) }}
```
##### HTML
```html
```
### Con la última miga de pan como página actual con href [#](#con-la-ltima-miga-de-pan-como-pgina-actual-con-href)
Mostrar códigodel ejemplo: Con la última miga de pan como página actual con href
#### Contenido
Nunjucks macro HTML
##### Nunjucks macro
```js
{% from "components/breadcrumbs/_macro.breadcrumbs.njk" import componentBreadcrumbs %}
{{ componentBreadcrumbs({
"inlineOnMobile": true,
"inlineOnDesktop": true,
"items": [
{
"text": "Inicio",
"href": "/"
},
{
"text": "Trámites por tema",
"href": "/tramites/tema"
},
{
"text": "Vivienda",
"href": "/tramites/tema/vivienda"
}
]
}) }}
```
##### HTML
```html
```
### Con la última miga de pan como página actual sin href [#](#con-la-ltima-miga-de-pan-como-pgina-actual-sin-href)
Mostrar códigodel ejemplo: Con la última miga de pan como página actual sin href
#### Contenido
Nunjucks macro HTML
##### Nunjucks macro
```js
{% from "components/breadcrumbs/_macro.breadcrumbs.njk" import componentBreadcrumbs %}
{{ componentBreadcrumbs({
"inlineOnMobile": true,
"inlineOnDesktop": true,
"items": [
{
"text": "Inicio",
"href": "/"
},
{
"text": "Trámites por tema",
"href": "/tramites/tema"
},
{
"text": "Vivienda"
}
]
}) }}
```
##### HTML
```html
```
### Con colapsar en móvil [#](#con-colapsar-en-mvil)
Mirar en anchuras pequeñas para ver cómo se colapsan los items intermedios y sólo se muestran el primero y último.
Mostrar códigodel ejemplo: Con colapsar en móvil
#### Contenido
Nunjucks macro HTML
##### Nunjucks macro
```js
{% from "components/breadcrumbs/_macro.breadcrumbs.njk" import componentBreadcrumbs %}
{{ componentBreadcrumbs({
"collapseOnMobile": true,
"items": [
{
"text": "Inicio",
"href": "/"
},
{
"text": "Trámites por tema",
"href": "/tramites/tema"
},
{
"text": "Vivienda",
"href": "/tramites/tema/vivienda"
}
]
}) }}
```
##### HTML
```html
```
### Con inline en móvil [#](#con-inline-en-mvil)
Usa `'inlineOnMobile':true` para hacer que los elementos se pongan en linea en móvil en lugar de truncarse. Mirar en anchuras pequeñas para ver cómo se genera un salto de línea si el texto no cabe. Si se quiere también en desktop, usar el parámetro `inlineOnDesktop`. Ten cuidado con las cadenas largas en mobile: podrían desbordar el viewport, producir scroll horizontal y no cumplir accesibilidad.
Mostrar códigodel ejemplo: Con inline en móvil
#### Contenido
Nunjucks macro HTML
##### Nunjucks macro
```js
{% from "components/breadcrumbs/_macro.breadcrumbs.njk" import componentBreadcrumbs %}
{{ componentBreadcrumbs({
"inlineOnMobile": true,
"items": [
{
"text": "Inicio",
"href": "/"
},
{
"text": "Trámites",
"href": "/"
},
{
"text": "Categorías de trámites",
"href": "/"
},
{
"text": "Actividades industriales y energía",
"href": "/"
},
{
"text": "Actividades industriales",
"href": "/"
},
{
"text": "Instalaciones industriales",
"href": "/"
},
{
"text": "Ayudas ligadas al autoconsumo",
"href": "/"
},
{
"text": "Programa 1 Instalaciones de autoconsumo",
"href": "/"
}
]
}) }}
```
##### HTML
```html
```
### Con inline en desktop [#](#con-inline-en-desktop)
Usa `'inlineOnDesktop':true` para hacer que los elementos se pongan en linea en escritorio y anchuras superiores, en lugar de truncarse. Se genera un salto de línea si el texto no cabe en escritorio, no en mobile. Si se quiere también en mobile, usar el parámetro `inlineOnMobile`.
Mostrar códigodel ejemplo: Con inline en desktop
#### Contenido
Nunjucks macro HTML
##### Nunjucks macro
```js
{% from "components/breadcrumbs/_macro.breadcrumbs.njk" import componentBreadcrumbs %}
{{ componentBreadcrumbs({
"inlineOnDesktop": true,
"items": [
{
"text": "Inicio",
"href": "/"
},
{
"text": "Trámites",
"href": "/"
},
{
"text": "Categorías de trámites",
"href": "/"
},
{
"text": "Actividades industriales y energía",
"href": "/"
},
{
"text": "Actividades industriales",
"href": "/"
},
{
"text": "Instalaciones industriales",
"href": "/"
},
{
"text": "Ayudas ligadas al autoconsumo, almacenamiento y sistemas térmicos con fuentes de energía renovable renovables",
"href": "/"
},
{
"text": "Programa 1 Instalaciones de autoconsumo renovable en el sector servicios con o sin almacenamiento",
"href": "/"
}
]
}) }}
```
##### HTML
```html
```
### Con inline en mobile y en desktop [#](#con-inline-en-mobile-y-en-desktop)
Usa `'inlineOnMobile':true` y `'inlineOnDesktop':true` para hacer que los elementos se pongan en linea en todas las anchuras. Se genera un salto de línea si el texto no cabe en escritorio y en mobile. Ten cuidado con las cadenas largas en mobile: podrían desbordar el viewport, producir scroll horizontal y no cumplir accesibilidad.
Mostrar códigodel ejemplo: Con inline en mobile y en desktop
#### Contenido
Nunjucks macro HTML
##### Nunjucks macro
```js
{% from "components/breadcrumbs/_macro.breadcrumbs.njk" import componentBreadcrumbs %}
{{ componentBreadcrumbs({
"inlineOnMobile": true,
"inlineOnDesktop": true,
"items": [
{
"text": "Inicio",
"href": "/"
},
{
"text": "Trámites",
"href": "/"
},
{
"text": "Categorías de trámites",
"href": "/"
},
{
"text": "Actividades industriales y energía",
"href": "/"
},
{
"text": "Actividades industriales",
"href": "/"
},
{
"text": "Instalaciones industriales",
"href": "/"
},
{
"text": "Ayudas ligadas al autoconsumo",
"href": "/"
},
{
"text": "Programa 1 Instalaciones de autoconsumo",
"href": "/"
}
]
}) }}
```
##### HTML
```html
```
### Con botón atrás [#](#con-botn-atrs)
Mostrar códigodel ejemplo: Con botón atrás
#### Contenido
Nunjucks macro HTML
##### Nunjucks macro
```js
{% from "components/breadcrumbs/_macro.breadcrumbs.njk" import componentBreadcrumbs %}
{{ componentBreadcrumbs({
"hasBackButton": true,
"items": [
{
"text": "Inicio",
"href": "/"
},
{
"text": "Trámites por tema",
"href": "/tramites/tema"
},
{
"text": "Vivienda"
}
]
}) }}
```
##### HTML
```html
```
### Con botón atrás y colapsar en móvil [#](#con-botn-atrs-y-colapsar-en-mvil)
Mirar en anchuras pequeñas para ver cómo se colapsan los items intermedios y sólo se muestran el primero y último.
Mostrar códigodel ejemplo: Con botón atrás y colapsar en móvil
#### Contenido
Nunjucks macro HTML
##### Nunjucks macro
```js
{% from "components/breadcrumbs/_macro.breadcrumbs.njk" import componentBreadcrumbs %}
{{ componentBreadcrumbs({
"collapseOnMobile": true,
"hasBackButton": true,
"items": [
{
"text": "Inicio",
"href": "/"
},
{
"text": "Trámites por tema",
"href": "/tramites/tema"
},
{
"text": "Vivienda",
"href": "/tramites/tema/vivienda"
},
{
"text": "Urbanismo",
"href": "/tramites/tema/vivienda/urbanismo"
}
]
}) }}
```
##### HTML
```html
```
### Con botón atrás y la clase modificadora para truncar texto [#](#con-botn-atrs-y-la-clase-modificadora-para-truncar-texto)
Mostrar códigodel ejemplo: Con botón atrás y la clase modificadora para truncar texto
#### Contenido
Nunjucks macro HTML
##### Nunjucks macro
```js
{% from "components/breadcrumbs/_macro.breadcrumbs.njk" import componentBreadcrumbs %}
{{ componentBreadcrumbs({
"hasBackButton": true,
"classes": "c-breadcrumbs--truncated",
"items": [
{
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi volutpat non augue id hendrerit. Cras at iaculis sem, eu posuere tortor"
},
{
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi volutpat non augue id hendrerit. Cras at iaculis sem, eu posuere tortor"
},
{
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi volutpat non augue id hendrerit. Cras at iaculis sem, eu posuere tortor"
},
{
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi volutpat non augue id hendrerit. Cras at iaculis sem, eu posuere tortor"
}
]
}) }}
```
##### HTML
```html
```