desy-html 15.0.3 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/AGENTS.md +180 -0
  2. package/README.md +22 -4
  3. package/TESTING_PLAN.md +369 -0
  4. package/branding/BRANDING.md +369 -0
  5. package/branding/branding.config.js +69 -0
  6. package/branding/branding.config.yourorganization.js +65 -0
  7. package/branding/logos/aragon-compact.svg +1 -0
  8. package/branding/logos/aragon-expanded.svg +1 -0
  9. package/branding/logos/aragon-mini.svg +1 -0
  10. package/branding/logos/yourlogo-compact.svg +13 -0
  11. package/branding/logos/yourlogo-expanded.svg +17 -0
  12. package/branding/logos/yourlogo-mini.svg +17 -0
  13. package/branding/vite-branding-plugin.js +128 -0
  14. package/docs/_global.head.njk +12 -4
  15. package/docs/_macro.example-render.njk +6 -0
  16. package/docs/catalogo.html +2 -2
  17. package/docs/componentes.html +2 -2
  18. package/docs/estilos.html +1 -1
  19. package/docs/examples-accordion-history.html +1 -1
  20. package/docs/examples-accordion.html +1 -1
  21. package/docs/examples-alert.html +1 -1
  22. package/docs/examples-breadcrumbs.html +1 -1
  23. package/docs/examples-button-loader.html +1 -1
  24. package/docs/examples-button.html +1 -1
  25. package/docs/examples-card.html +2 -2
  26. package/docs/examples-character-count.html +1 -1
  27. package/docs/examples-checkboxes.html +2 -2
  28. package/docs/examples-collapsible.html +2 -2
  29. package/docs/examples-date-input.html +1 -1
  30. package/docs/examples-datepicker.html +1 -1
  31. package/docs/examples-description-list.html +1 -1
  32. package/docs/examples-details.html +1 -1
  33. package/docs/examples-dialog.html +2 -2
  34. package/docs/examples-dropdown.html +1 -1
  35. package/docs/examples-error-message.html +1 -1
  36. package/docs/examples-error-summary.html +1 -1
  37. package/docs/examples-fieldset.html +1 -1
  38. package/docs/examples-file-upload.html +1 -1
  39. package/docs/examples-footer.html +1 -1
  40. package/docs/examples-header-advanced.html +1 -1
  41. package/docs/examples-header-mini.html +1 -1
  42. package/docs/examples-header.html +1 -1
  43. package/docs/examples-hint.html +1 -1
  44. package/docs/examples-input-group.html +1 -1
  45. package/docs/examples-input.html +1 -1
  46. package/docs/examples-item.html +1 -1
  47. package/docs/examples-label.html +1 -1
  48. package/docs/examples-links-list.html +2 -2
  49. package/docs/examples-listbox.html +1 -1
  50. package/docs/examples-media-object.html +2 -2
  51. package/docs/examples-menu-horizontal.html +1 -1
  52. package/docs/examples-menu-navigation.html +1 -1
  53. package/docs/examples-menu-vertical.html +2 -2
  54. package/docs/examples-menubar.html +2 -2
  55. package/docs/examples-modal.html +2 -2
  56. package/docs/examples-nav.html +1 -1
  57. package/docs/examples-notification.html +1 -1
  58. package/docs/examples-pagination.html +1 -1
  59. package/docs/examples-pill.html +1 -1
  60. package/docs/examples-radios.html +1 -1
  61. package/docs/examples-searchbar.html +1 -1
  62. package/docs/examples-select.html +1 -2
  63. package/docs/examples-skip-link.html +1 -1
  64. package/docs/examples-spinner.html +1 -1
  65. package/docs/examples-status-item.html +1 -1
  66. package/docs/examples-status.html +1 -1
  67. package/docs/examples-table-advanced.html +1 -1
  68. package/docs/examples-table.html +1 -1
  69. package/docs/examples-tabs.html +1 -1
  70. package/docs/examples-textarea.html +1 -1
  71. package/docs/examples-toggle.html +1 -1
  72. package/docs/examples-tooltip.html +1 -1
  73. package/docs/examples-tree.html +1 -1
  74. package/docs/examples-treegrid.html +1 -1
  75. package/docs/index.html +10 -3
  76. package/docs/pagina-accesibilidad.html +4 -4
  77. package/docs/pagina-mapa-web.html +3 -3
  78. package/docs/pagina-prueba.html +2 -2
  79. package/docs/plantilla-con-header-advanced.html +2 -2
  80. package/docs/plantilla-editar-con-cabecera-fija-y-sidebar-sticky.html +2 -2
  81. package/docs/plantilla-editar-con-cabecera-fija.html +2 -2
  82. package/docs/plantilla-logueado-con-cabecera-fija-headroom.html +2 -2
  83. package/docs/plantilla-logueado-con-cabecera-fija.html +2 -2
  84. package/docs/plantilla-logueado-con-selector-de-app-y-sidebar.html +2 -2
  85. package/docs/plantilla-logueado-con-selector-de-app-y-subheader.html +2 -2
  86. package/docs/plantilla-logueado-con-selector-de-app.html +2 -2
  87. package/docs/plantilla-logueado-con-titulo-de-app.html +2 -2
  88. package/docs/plantilla-sin-loguear.html +2 -2
  89. package/docs/plantillas.html +3 -3
  90. package/docs/spinner-plantilla-con-header-advanced.html +2 -2
  91. package/docs/spinner-plantilla-editar-con-cabecera-fija.html +1 -2
  92. package/docs/spinner-plantilla-logueado-con-cabecera-fija.html +2 -2
  93. package/docs/spinner-plantilla-logueado-con-selector-de-app-y-subheader.html +1 -3
  94. package/docs/spinner-plantilla-logueado-con-titulo-de-app.html +2 -2
  95. package/docs/spinner-plantilla-sin-loguear.html +2 -2
  96. package/package.json +7 -2
  97. package/replit.md +2 -2
  98. package/src/css/branding-variables.css +37 -0
  99. package/src/css/component.text.css +5 -0
  100. package/src/css/styles.css +18 -3
  101. package/src/js/aria/notification.js +6 -6
  102. package/src/js/desy-html.js +5 -0
  103. package/src/templates/components/accordion/_examples.accordion.njk +84 -0
  104. package/src/templates/components/accordion-history/_examples.accordion-history.njk +90 -0
  105. package/src/templates/components/alert/_examples.alert.njk +12 -0
  106. package/src/templates/components/breadcrumbs/_examples.breadcrumbs.njk +90 -0
  107. package/src/templates/components/breadcrumbs/_template.breadcrumbs.njk +1 -1
  108. package/src/templates/components/button/_examples.button.njk +216 -0
  109. package/src/templates/components/button-loader/_examples.button-loader.njk +204 -0
  110. package/src/templates/components/card/_examples.card.njk +78 -0
  111. package/src/templates/components/character-count/_examples.character-count.njk +60 -0
  112. package/src/templates/components/checkboxes/_examples.checkboxes.njk +120 -0
  113. package/src/templates/components/collapsible/_examples.collapsible.njk +30 -0
  114. package/src/templates/components/date-input/_examples.date-input.njk +78 -0
  115. package/src/templates/components/datepicker/_examples.datepicker.njk +84 -0
  116. package/src/templates/components/datepicker/_template.datepicker.njk +1 -1
  117. package/src/templates/components/description-list/_examples.description-list.njk +66 -0
  118. package/src/templates/components/details/_examples.details.njk +24 -0
  119. package/src/templates/components/dialog/_examples.dialog.njk +18 -0
  120. package/src/templates/components/dropdown/_examples.dropdown.njk +90 -0
  121. package/src/templates/components/error-message/_examples.error-message.njk +12 -0
  122. package/src/templates/components/error-summary/_examples.error-summary.njk +30 -0
  123. package/src/templates/components/fieldset/_examples.fieldset.njk +18 -0
  124. package/src/templates/components/file-upload/_examples.file-upload.njk +30 -0
  125. package/src/templates/components/footer/_examples.footer.njk +108 -0
  126. package/src/templates/components/footer/_styles.footer.css +20 -20
  127. package/src/templates/components/footer/_template.footer.njk +21 -6
  128. package/src/templates/components/footer/params.footer.yaml +4 -4
  129. package/src/templates/components/header/_examples.header.njk +85 -1
  130. package/src/templates/components/header/_template.header.njk +20 -4
  131. package/src/templates/components/header/params.header.yaml +2 -2
  132. package/src/templates/components/header-advanced/_examples.header-advanced.njk +84 -7
  133. package/src/templates/components/header-advanced/_template.header-advanced.njk +3 -1
  134. package/src/templates/components/header-mini/_examples.header-mini.njk +15 -3
  135. package/src/templates/components/header-mini/_template.header-mini.njk +14 -2
  136. package/src/templates/components/header-mini/params.header-mini.yaml +1 -1
  137. package/src/templates/components/hint/_examples.hint.njk +12 -0
  138. package/src/templates/components/input/_examples.input.njk +120 -0
  139. package/src/templates/components/input/_template.input.njk +1 -1
  140. package/src/templates/components/input-group/_examples.input-group.njk +54 -0
  141. package/src/templates/components/item/_examples.item.njk +96 -0
  142. package/src/templates/components/label/_examples.label.njk +24 -0
  143. package/src/templates/components/links-list/_examples.links-list.njk +114 -0
  144. package/src/templates/components/listbox/_examples.listbox.njk +140 -20
  145. package/src/templates/components/media-object/_examples.media-object.njk +30 -0
  146. package/src/templates/components/menu-horizontal/_examples.menu-horizontal.njk +84 -0
  147. package/src/templates/components/menu-navigation/_examples.menu-navigation.njk +102 -0
  148. package/src/templates/components/menu-vertical/_examples.menu-vertical.njk +96 -0
  149. package/src/templates/components/menubar/_examples.menubar.njk +66 -0
  150. package/src/templates/components/modal/_examples.modal.njk +78 -0
  151. package/src/templates/components/nav/_examples.nav.njk +66 -0
  152. package/src/templates/components/notification/_examples.notification.njk +78 -0
  153. package/src/templates/components/pagination/_examples.pagination.njk +42 -0
  154. package/src/templates/components/pill/_examples.pill.njk +78 -0
  155. package/src/templates/components/radios/_examples.radios.njk +96 -0
  156. package/src/templates/components/searchbar/_examples.searchbar.njk +48 -0
  157. package/src/templates/components/searchbar/_template.searchbar.njk +1 -1
  158. package/src/templates/components/select/_examples.select.njk +54 -0
  159. package/src/templates/components/select/_template.select.njk +1 -1
  160. package/src/templates/components/skip-link/_examples.skip-link.njk +12 -0
  161. package/src/templates/components/spinner/_examples.spinner.njk +49 -1
  162. package/src/templates/components/status/_examples.status.njk +31 -1
  163. package/src/templates/components/status-item/_examples.status-item.njk +73 -1
  164. package/src/templates/components/table/_examples.table.njk +37 -1
  165. package/src/templates/components/table-advanced/_examples.table-advanced.njk +54 -0
  166. package/src/templates/components/table-advanced/_styles.table-advanced.css +0 -2
  167. package/src/templates/components/tabs/_examples.tabs.njk +72 -0
  168. package/src/templates/components/textarea/_examples.textarea.njk +54 -0
  169. package/src/templates/components/textarea/_template.textarea.njk +1 -1
  170. package/src/templates/components/toggle/_examples.toggle.njk +60 -0
  171. package/src/templates/components/tooltip/_examples.tooltip.njk +48 -0
  172. package/src/templates/components/tree/_examples.tree.njk +150 -0
  173. package/src/templates/components/treegrid/_examples.treegrid.njk +30 -0
  174. package/src/templates/components/treegrid/_template.treegrid.njk +1 -1
  175. package/src/templates/pages/_page.head.njk +11 -3
  176. package/vite.config.js +215 -0
  177. package/attached_assets/Pasted--desy-html-starter-Node-Version-https-img-shields-io-ba_1765448923362.txt +0 -431
  178. /package/{public/images/general-lg.svg → branding/images/header-background-lg.svg} +0 -0
  179. /package/{public/images/general.svg → branding/images/header-background.svg} +0 -0
  180. /package/{public/images/logo-ue.svg → branding/logos/eu/logo-eu.svg} +0 -0
  181. /package/{public/images → branding/logos/eu}/logo-feader.svg +0 -0
  182. /package/{public/images → branding/logos/eu}/logo-feder.svg +0 -0
  183. /package/{public/images → branding/logos/eu}/logo-fse.svg +0 -0
  184. /package/{public/images → branding/logos/eu}/logo-plurifondo.svg +0 -0
@@ -1,4 +1,4 @@
1
- {% set title = "Table. Componente, parámetros y ejemplos. Documentación de desy-html. Gobierno de Aragón" %}
1
+ {% set title = "Table. Componente, parámetros y ejemplos. Documentación de desy-html. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
 
3
3
  {% set activePage = "page-componentes" %}
4
4
  {% set activeComponent = "Table" %}
@@ -1,4 +1,4 @@
1
- {% set title = "Tabs. Componente, parámetros y ejemplos. Documentación de desy-html. Gobierno de Aragón" %}
1
+ {% set title = "Tabs. Componente, parámetros y ejemplos. Documentación de desy-html. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
 
3
3
  {% set activePage = "page-componentes" %}
4
4
  {% set activeComponent = "Tabs" %}
@@ -1,4 +1,4 @@
1
- {% set title = "Textarea. Componente, parámetros y ejemplos. Documentación de desy-html. Gobierno de Aragón" %}
1
+ {% set title = "Textarea. Componente, parámetros y ejemplos. Documentación de desy-html. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
 
3
3
  {% set activePage = "page-componentes" %}
4
4
  {% set activeComponent = "Textarea" %}
@@ -1,4 +1,4 @@
1
- {% set title = "Toggle. Componente, parámetros y ejemplos. Documentación de desy-html. Gobierno de Aragón" %}
1
+ {% set title = "Toggle. Componente, parámetros y ejemplos. Documentación de desy-html. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
 
3
3
  {% set activePage = "page-componentes" %}
4
4
  {% set activeComponent = "Toggle" %}
@@ -1,4 +1,4 @@
1
- {% set title = "Tooltip. Componente, parámetros y ejemplos. Documentación de desy-html. Gobierno de Aragón" %}
1
+ {% set title = "Tooltip. Componente, parámetros y ejemplos. Documentación de desy-html. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
 
3
3
  {% set activePage = "page-componentes" %}
4
4
  {% set activeComponent = "Tooltip" %}
@@ -1,4 +1,4 @@
1
- {% set title = "Tree. Componente, parámetros y ejemplos. Documentación de desy-html. Gobierno de Aragón" %}
1
+ {% set title = "Tree. Componente, parámetros y ejemplos. Documentación de desy-html. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
 
3
3
  {% set activePage = "page-componentes" %}
4
4
  {% set activeComponent = "Tree" %}
@@ -1,4 +1,4 @@
1
- {% set title = "Treegrid. Componente, parámetros y ejemplos. Documentación de desy-html. Gobierno de Aragón" %}
1
+ {% set title = "Treegrid. Componente, parámetros y ejemplos. Documentación de desy-html. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
 
3
3
  {% set activePage = "page-componentes" %}
4
4
  {% set activeComponent = "Treegrid" %}
package/docs/index.html CHANGED
@@ -1,4 +1,4 @@
1
- {% set title = "Desy. Sistema de diseño para aplicaciones web. Gobierno de Aragón" %}
1
+ {% set title = "Desy. Sistema de diseño para aplicaciones web. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
  {% set description = "Documentación y librería desy-html para implementarlo en HTML, CSS y Javascript con un paquete NPM." %}
3
3
  {% set activePage = "page-inicio" %}
4
4
  {% extends "_template.default.njk" %}
@@ -8,7 +8,7 @@
8
8
  <div class="pb-lg"> </div>
9
9
  <h1>desy-html</h1>
10
10
  <p>Versión: {{ '' | filterversion }}</p>
11
- <p>Una librería NPM para construir interfaces de usuario para aplicaciones web del Gobierno de Aragón. Utiliza <a href="https://vite.dev/">Vite</a>, <a href="https://tailwindcss.com/">Tailwind CSS</a> y <a href="https://mozilla.github.io/nunjucks/">Nunjucks</a> para renderizar componentes HTML+CSS+JS. Es útil para crear aplicaciones web ligeras o maquetas HTML.</p>
11
+ <p>Una librería NPM para construir interfaces de usuario para aplicaciones web gubernamentales o que requieran un alto cumplimiento de accesibilidad. Utiliza <a href="https://vite.dev/">Vite</a>, <a href="https://tailwindcss.com/">Tailwind CSS</a> y <a href="https://mozilla.github.io/nunjucks/">Nunjucks</a> para renderizar componentes HTML+CSS+JS. Es útil para crear aplicaciones web ligeras o maquetas HTML.</p>
12
12
 
13
13
  <h2>Descripción general</h2>
14
14
  <p><strong>desy-html</strong> es la librería del sistema de diseño principal que proporciona:</p>
@@ -39,7 +39,7 @@
39
39
  <h2>Requisitos previos</h2>
40
40
  <p>Antes de comenzar, asegúrate de tener instalado lo siguiente:</p>
41
41
  <ul>
42
- <li><strong>Node.js</strong> >=20.19.2 <23.0.0</li>
42
+ <li><strong>Node.js</strong> &gt;=20.19.2 &lt;23.0.0</li>
43
43
  <li><strong>npm</strong> >=10.0.0</li>
44
44
  </ul>
45
45
 
@@ -147,6 +147,13 @@ cd desy-html</code></pre>
147
147
 
148
148
  <h2>Changelog (English)</h2>
149
149
  <p>What's new in the latest version of desy-html</p>
150
+ <h3>v.16.0.0</h3>
151
+ <ul class="text-sm">
152
+ <li>Added branding system to customize header and footer logos and texts.</li>
153
+ <li>Added visual descriptions for screenreaders in component examples.</li>
154
+ <li>Documentation improvements.</li>
155
+ <li>Minor fixes.</li>
156
+ </ul>
150
157
  <h3>v.15.0.3</h3>
151
158
  <ul class="text-sm">
152
159
  <li>Minor fixes</li>
@@ -1,4 +1,4 @@
1
- {% set title = "Accesibilidad. Título de app. Gobierno de Aragón" %}
1
+ {% set title = "Accesibilidad. Título de app. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
  {% extends "pages/_template.logged-out.njk" %}
3
3
 
4
4
  {% block contentBlock %}
@@ -11,7 +11,7 @@
11
11
  <p class="text-lg mt-0">
12
12
  <a href="https://bitbucket.org/sdaragon/desy-html/src/master/docs/pagina-accesibilidad.html" class="c-link" target="_blank" title="Se abre en ventana nueva">Ver código Nunjucks de esta página<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="0.8em" width="0.8em" class="inline-block mx-xs no-underline align-baseline" aria-hidden="true" focusable="false" role="presentation"><g><path d="M23.25,0h-8a.74.74,0,0,0-.69.47.74.74,0,0,0,.16.81L18,4.51l-9.45,9.3a1,1,0,0,0,0,1.41,1,1,0,0,0,.71.3,1,1,0,0,0,.7-.28l9.48-9.33,3.29,3.24a.74.74,0,0,0,.53.22.72.72,0,0,0,.29-.06A.74.74,0,0,0,24,8.62V.75A.76.76,0,0,0,23.25,0Z" fill="currentColor"></path><path d="M18.5,10.62a1,1,0,0,0-1,1V22H2V6.5H12.37a1,1,0,0,0,0-2H1.87A1.87,1.87,0,0,0,0,6.37V22.12A1.88,1.88,0,0,0,1.87,24H17.62a1.88,1.88,0,0,0,1.88-1.88V11.62A1,1,0,0,0,18.5,10.62Z" fill="currentColor"></path></g></svg></a>
13
13
  </p>
14
- <p class="text-lg">El Gobierno de Aragón se ha comprometido a hacer accesible su sitio web, de conformidad con el <a href="#">Real Decreto 1112/2018, de 7 de septiembre, sobre accesibilidad de los sitios web y aplicaciones para dispositivos móviles del sector público</a>.</p>
14
+ <p class="text-lg">{{ branding.organization.name if branding else "Esta organización" }} se ha comprometido a hacer accesible su sitio web, de conformidad con el <a href="#">Real Decreto 1112/2018, de 7 de septiembre, sobre accesibilidad de los sitios web y aplicaciones para dispositivos móviles del sector público</a>.</p>
15
15
  <p class="text-lg">La presente declaración de accesibilidad se aplica al <a href="#">sitio web actual aragon.es</a> (los subdominios de este sitio web tendrán sus propias declaraciones de accesibilidad).</p>
16
16
  </div>
17
17
  <div class="py-xl"></div>
@@ -69,7 +69,7 @@
69
69
  <p>El procedimiento de reclamación recogido en el artículo 13 del Real Decreto 1112/2018, de 7 de septiembre, entrará en vigor el 20 de septiembre de 2020.</p>
70
70
 
71
71
  <h2>Acciones de mejora de la accesibilidad</h2>
72
- <p>El Gobierno de Aragón quiere mejorar la accesibilidad del portal más allá del nivel de exigido por el Real Decreto 1112/2018, por ello se han dado los siguientes pasos:</p>
72
+ <p>{{ branding.organization.name if branding else "Esta organización" }} quiere mejorar la accesibilidad del portal más allá del nivel de exigido por el Real Decreto 1112/2018, por ello se han dado los siguientes pasos:</p>
73
73
  <ol>
74
74
  <li>
75
75
  <h3>Cumplimiento de requisitos de accesibilidad de nivel AAA</h3>
@@ -107,4 +107,4 @@
107
107
 
108
108
  </div>
109
109
 
110
- {% endblock %}
110
+ {% endblock %}
@@ -1,4 +1,4 @@
1
- {% set title = "Mapa web. Título de app. Gobierno de Aragón" %}
1
+ {% set title = "Mapa web. Título de app. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
  {% extends "pages/_template.logged-out.njk" %}
3
3
 
4
4
  {% block contentBlock %}
@@ -113,7 +113,7 @@
113
113
  <a class="c-link" href="#">Contacto y ayuda técnica</a>
114
114
  </li>
115
115
  <li class="mb-base">
116
- <a class="c-link" href="#">Sobre la Sede Electrónica del Gobierno de Aragón</a>
116
+ <a class="c-link" href="#">Sobre la Sede Electrónica de {{ branding.organization.name if branding else "la organización" }}</a>
117
117
  </li>
118
118
  </ul>
119
119
  </div>
@@ -134,4 +134,4 @@
134
134
  </div>
135
135
  </div>
136
136
 
137
- {% endblock %}
137
+ {% endblock %}
@@ -1,4 +1,4 @@
1
- {% set title = "Página de prueba. Gobierno de Aragón" %}
1
+ {% set title = "Página de prueba. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
 
3
3
  {# Puedes editar este template o usar uno predefinido como por ejemplo src/templates/pages/_template.logged.njk #}
4
4
  {% extends "pages/_template.test.njk" %}
@@ -92,4 +92,4 @@
92
92
  {% include "includes/_test-include.njk" %} #}
93
93
 
94
94
 
95
- {% endblock %}
95
+ {% endblock %}
@@ -1,4 +1,4 @@
1
- {% set title = "Plantilla con header advanced. Gobierno de Aragón" %}
1
+ {% set title = "Plantilla con header advanced. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
  {% extends "pages/_template.with-header-advanced.njk" %}
3
3
 
4
4
  {% block contentBlock %}
@@ -11,4 +11,4 @@
11
11
  <p class="c-paragraph-base">
12
12
  <a href="https://bitbucket.org/sdaragon/desy-html/src/master/src/templates/pages/_template.with-header-advanced.njk" class="c-link" target="_blank" title="Se abre en ventana nueva">Ver código Nunjucks de esta plantilla<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="0.8em" width="0.8em" class="inline-block mx-xs no-underline align-baseline" aria-hidden="true" focusable="false" role="presentation"><g><path d="M23.25,0h-8a.74.74,0,0,0-.69.47.74.74,0,0,0,.16.81L18,4.51l-9.45,9.3a1,1,0,0,0,0,1.41,1,1,0,0,0,.71.3,1,1,0,0,0,.7-.28l9.48-9.33,3.29,3.24a.74.74,0,0,0,.53.22.72.72,0,0,0,.29-.06A.74.74,0,0,0,24,8.62V.75A.76.76,0,0,0,23.25,0Z" fill="currentColor"></path><path d="M18.5,10.62a1,1,0,0,0-1,1V22H2V6.5H12.37a1,1,0,0,0,0-2H1.87A1.87,1.87,0,0,0,0,6.37V22.12A1.88,1.88,0,0,0,1.87,24H17.62a1.88,1.88,0,0,0,1.88-1.88V11.62A1,1,0,0,0,18.5,10.62Z" fill="currentColor"></path></g></svg></a>
13
13
  </p>
14
- {% endblock %}
14
+ {% endblock %}
@@ -1,4 +1,4 @@
1
- {% set title = "Plantilla editar con sidebar. Gobierno de Aragón" %}
1
+ {% set title = "Plantilla editar con sidebar. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
  {% extends "pages/_template.edit-fixed-with-sticky-sidebar.njk" %}
3
3
 
4
4
  {% from "components/menu-vertical/_macro.menu-vertical.njk" import componentMenuVertical %}
@@ -151,4 +151,4 @@
151
151
  <p class="c-paragraph-base">
152
152
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quidem veniam facilis sapiente ea explicabo ipsa dolores placeat quis quam ut officia voluptas sed natus eius sequi inventore, saepe repellendus quae.
153
153
  </p>
154
- {% endblock %}
154
+ {% endblock %}
@@ -1,4 +1,4 @@
1
- {% set title = "Plantilla editar con cabecera fija. Gobierno de Aragón" %}
1
+ {% set title = "Plantilla editar con cabecera fija. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
  {% extends "pages/_template.edit-fixed.njk" %}
3
3
 
4
4
  {# Use headerTitleEditBlock and headerActionsEditBlock template blocks to customize the fixed header #}
@@ -14,4 +14,4 @@
14
14
  <p class="c-paragraph-base">
15
15
  <a href="https://bitbucket.org/sdaragon/desy-html/src/master/src/templates/pages/_template.edit-fixed.njk" class="c-link" target="_blank" title="Se abre en ventana nueva">Ver código Nunjucks de esta plantilla<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="0.8em" width="0.8em" class="inline-block mx-xs no-underline align-baseline" aria-hidden="true" focusable="false" role="presentation"><g><path d="M23.25,0h-8a.74.74,0,0,0-.69.47.74.74,0,0,0,.16.81L18,4.51l-9.45,9.3a1,1,0,0,0,0,1.41,1,1,0,0,0,.71.3,1,1,0,0,0,.7-.28l9.48-9.33,3.29,3.24a.74.74,0,0,0,.53.22.72.72,0,0,0,.29-.06A.74.74,0,0,0,24,8.62V.75A.76.76,0,0,0,23.25,0Z" fill="currentColor"></path><path d="M18.5,10.62a1,1,0,0,0-1,1V22H2V6.5H12.37a1,1,0,0,0,0-2H1.87A1.87,1.87,0,0,0,0,6.37V22.12A1.88,1.88,0,0,0,1.87,24H17.62a1.88,1.88,0,0,0,1.88-1.88V11.62A1,1,0,0,0,18.5,10.62Z" fill="currentColor"></path></g></svg></a>
16
16
  </p>
17
- {% endblock %}
17
+ {% endblock %}
@@ -1,4 +1,4 @@
1
- {% set title = "Plantilla logueado con cabecera fija con librería headroom.js. Gobierno de Aragón" %}
1
+ {% set title = "Plantilla logueado con cabecera fija con librería headroom.js. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
  {% extends "pages/_template.logged-selector-fixed-headroom.njk" %}
3
3
 
4
4
  {% block contentBlock %}
@@ -12,4 +12,4 @@
12
12
  <p class="c-paragraph-base">
13
13
  <a href="https://bitbucket.org/sdaragon/desy-html/src/master/src/templates/pages/_template.logged-selector-fixed-headroom.njk" class="c-link" target="_blank" title="Se abre en ventana nueva">Ver código Nunjucks de esta plantilla<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="0.8em" width="0.8em" class="inline-block mx-xs no-underline align-baseline" aria-hidden="true" focusable="false" role="presentation"><g><path d="M23.25,0h-8a.74.74,0,0,0-.69.47.74.74,0,0,0,.16.81L18,4.51l-9.45,9.3a1,1,0,0,0,0,1.41,1,1,0,0,0,.71.3,1,1,0,0,0,.7-.28l9.48-9.33,3.29,3.24a.74.74,0,0,0,.53.22.72.72,0,0,0,.29-.06A.74.74,0,0,0,24,8.62V.75A.76.76,0,0,0,23.25,0Z" fill="currentColor"></path><path d="M18.5,10.62a1,1,0,0,0-1,1V22H2V6.5H12.37a1,1,0,0,0,0-2H1.87A1.87,1.87,0,0,0,0,6.37V22.12A1.88,1.88,0,0,0,1.87,24H17.62a1.88,1.88,0,0,0,1.88-1.88V11.62A1,1,0,0,0,18.5,10.62Z" fill="currentColor"></path></g></svg></a>
14
14
  </p>
15
- {% endblock %}
15
+ {% endblock %}
@@ -1,4 +1,4 @@
1
- {% set title = "Plantilla logueado con cabecera fija. Gobierno de Aragón" %}
1
+ {% set title = "Plantilla logueado con cabecera fija. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
  {% extends "pages/_template.logged-selector-fixed.njk" %}
3
3
 
4
4
  {% block contentBlock %}
@@ -12,4 +12,4 @@
12
12
  <p class="c-paragraph-base">
13
13
  <a href="https://bitbucket.org/sdaragon/desy-html/src/master/src/templates/pages/_template.logged-selector-fixed.njk" class="c-link" target="_blank" title="Se abre en ventana nueva">Ver código Nunjucks de esta plantilla<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="0.8em" width="0.8em" class="inline-block mx-xs no-underline align-baseline" aria-hidden="true" focusable="false" role="presentation"><g><path d="M23.25,0h-8a.74.74,0,0,0-.69.47.74.74,0,0,0,.16.81L18,4.51l-9.45,9.3a1,1,0,0,0,0,1.41,1,1,0,0,0,.71.3,1,1,0,0,0,.7-.28l9.48-9.33,3.29,3.24a.74.74,0,0,0,.53.22.72.72,0,0,0,.29-.06A.74.74,0,0,0,24,8.62V.75A.76.76,0,0,0,23.25,0Z" fill="currentColor"></path><path d="M18.5,10.62a1,1,0,0,0-1,1V22H2V6.5H12.37a1,1,0,0,0,0-2H1.87A1.87,1.87,0,0,0,0,6.37V22.12A1.88,1.88,0,0,0,1.87,24H17.62a1.88,1.88,0,0,0,1.88-1.88V11.62A1,1,0,0,0,18.5,10.62Z" fill="currentColor"></path></g></svg></a>
14
14
  </p>
15
- {% endblock %}
15
+ {% endblock %}
@@ -1,4 +1,4 @@
1
- {% set title = "Plantilla logueado con selector de app y sidebar. Gobierno de Aragón" %}
1
+ {% set title = "Plantilla logueado con selector de app y sidebar. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
  {% extends "pages/_template.logged-selector-with-sidebar.njk" %}
3
3
 
4
4
  {% from "components/menu-vertical/_macro.menu-vertical.njk" import componentMenuVertical %}
@@ -161,4 +161,4 @@
161
161
  <p class="c-paragraph-base">
162
162
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quidem veniam facilis sapiente ea explicabo ipsa dolores placeat quis quam ut officia voluptas sed natus eius sequi inventore, saepe repellendus quae.
163
163
  </p>
164
- {% endblock %}
164
+ {% endblock %}
@@ -1,4 +1,4 @@
1
- {% set title = "Plantilla logueado con selector de app y subheader. Gobierno de Aragón" %}
1
+ {% set title = "Plantilla logueado con selector de app y subheader. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
  {% extends "pages/_template.logged-selector-subheader.njk" %}
3
3
 
4
4
 
@@ -13,4 +13,4 @@
13
13
  <p class="c-paragraph-base">
14
14
  <a href="https://bitbucket.org/sdaragon/desy-html/src/master/src/templates/pages/_template.logged-selector-subheader.njk" class="c-link" target="_blank" title="Se abre en ventana nueva">Ver código Nunjucks de esta plantilla<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="0.8em" width="0.8em" class="inline-block mx-xs no-underline align-baseline" aria-hidden="true" focusable="false" role="presentation"><g><path d="M23.25,0h-8a.74.74,0,0,0-.69.47.74.74,0,0,0,.16.81L18,4.51l-9.45,9.3a1,1,0,0,0,0,1.41,1,1,0,0,0,.71.3,1,1,0,0,0,.7-.28l9.48-9.33,3.29,3.24a.74.74,0,0,0,.53.22.72.72,0,0,0,.29-.06A.74.74,0,0,0,24,8.62V.75A.76.76,0,0,0,23.25,0Z" fill="currentColor"></path><path d="M18.5,10.62a1,1,0,0,0-1,1V22H2V6.5H12.37a1,1,0,0,0,0-2H1.87A1.87,1.87,0,0,0,0,6.37V22.12A1.88,1.88,0,0,0,1.87,24H17.62a1.88,1.88,0,0,0,1.88-1.88V11.62A1,1,0,0,0,18.5,10.62Z" fill="currentColor"></path></g></svg></a>
15
15
  </p>
16
- {% endblock %}
16
+ {% endblock %}
@@ -1,4 +1,4 @@
1
- {% set title = "Plantilla logueado con selector de app. Gobierno de Aragón" %}
1
+ {% set title = "Plantilla logueado con selector de app. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
  {% extends "pages/_template.logged-selector.njk" %}
3
3
 
4
4
  {% block contentBlock %}
@@ -11,4 +11,4 @@
11
11
  <p class="c-paragraph-base">
12
12
  <a href="https://bitbucket.org/sdaragon/desy-html/src/master/src/templates/pages/_template.logged-selector.njk" class="c-link" target="_blank" title="Se abre en ventana nueva">Ver código Nunjucks de esta plantilla<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="0.8em" width="0.8em" class="inline-block mx-xs no-underline align-baseline" aria-hidden="true" focusable="false" role="presentation"><g><path d="M23.25,0h-8a.74.74,0,0,0-.69.47.74.74,0,0,0,.16.81L18,4.51l-9.45,9.3a1,1,0,0,0,0,1.41,1,1,0,0,0,.71.3,1,1,0,0,0,.7-.28l9.48-9.33,3.29,3.24a.74.74,0,0,0,.53.22.72.72,0,0,0,.29-.06A.74.74,0,0,0,24,8.62V.75A.76.76,0,0,0,23.25,0Z" fill="currentColor"></path><path d="M18.5,10.62a1,1,0,0,0-1,1V22H2V6.5H12.37a1,1,0,0,0,0-2H1.87A1.87,1.87,0,0,0,0,6.37V22.12A1.88,1.88,0,0,0,1.87,24H17.62a1.88,1.88,0,0,0,1.88-1.88V11.62A1,1,0,0,0,18.5,10.62Z" fill="currentColor"></path></g></svg></a>
13
13
  </p>
14
- {% endblock %}
14
+ {% endblock %}
@@ -1,4 +1,4 @@
1
- {% set title = "Plantilla logueado con título de app. Gobierno de Aragón" %}
1
+ {% set title = "Plantilla logueado con título de app. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
  {% extends "pages/_template.logged.njk" %}
3
3
 
4
4
  {% block contentBlock %}
@@ -11,4 +11,4 @@
11
11
  <p class="c-paragraph-base">
12
12
  <a href="https://bitbucket.org/sdaragon/desy-html/src/master/src/templates/pages/_template.logged.njk" class="c-link" target="_blank" title="Se abre en ventana nueva">Ver código Nunjucks de esta plantilla<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="0.8em" width="0.8em" class="inline-block mx-xs no-underline align-baseline" aria-hidden="true" focusable="false" role="presentation"><g><path d="M23.25,0h-8a.74.74,0,0,0-.69.47.74.74,0,0,0,.16.81L18,4.51l-9.45,9.3a1,1,0,0,0,0,1.41,1,1,0,0,0,.71.3,1,1,0,0,0,.7-.28l9.48-9.33,3.29,3.24a.74.74,0,0,0,.53.22.72.72,0,0,0,.29-.06A.74.74,0,0,0,24,8.62V.75A.76.76,0,0,0,23.25,0Z" fill="currentColor"></path><path d="M18.5,10.62a1,1,0,0,0-1,1V22H2V6.5H12.37a1,1,0,0,0,0-2H1.87A1.87,1.87,0,0,0,0,6.37V22.12A1.88,1.88,0,0,0,1.87,24H17.62a1.88,1.88,0,0,0,1.88-1.88V11.62A1,1,0,0,0,18.5,10.62Z" fill="currentColor"></path></g></svg></a>
13
13
  </p>
14
- {% endblock %}
14
+ {% endblock %}
@@ -1,4 +1,4 @@
1
- {% set title = "Plantilla sin loguear. Gobierno de Aragón" %}
1
+ {% set title = "Plantilla sin loguear. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
  {% extends "pages/_template.logged-out.njk" %}
3
3
 
4
4
  {% block contentBlock %}
@@ -11,4 +11,4 @@
11
11
  <p class="c-paragraph-base">
12
12
  <a href="https://bitbucket.org/sdaragon/desy-html/src/master/src/templates/pages/_template.logged-out.njk" class="c-link" target="_blank" title="Se abre en ventana nueva">Ver código Nunjucks de esta plantilla<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="0.8em" width="0.8em" class="inline-block mx-xs no-underline align-baseline" aria-hidden="true" focusable="false" role="presentation"><g><path d="M23.25,0h-8a.74.74,0,0,0-.69.47.74.74,0,0,0,.16.81L18,4.51l-9.45,9.3a1,1,0,0,0,0,1.41,1,1,0,0,0,.71.3,1,1,0,0,0,.7-.28l9.48-9.33,3.29,3.24a.74.74,0,0,0,.53.22.72.72,0,0,0,.29-.06A.74.74,0,0,0,24,8.62V.75A.76.76,0,0,0,23.25,0Z" fill="currentColor"></path><path d="M18.5,10.62a1,1,0,0,0-1,1V22H2V6.5H12.37a1,1,0,0,0,0-2H1.87A1.87,1.87,0,0,0,0,6.37V22.12A1.88,1.88,0,0,0,1.87,24H17.62a1.88,1.88,0,0,0,1.88-1.88V11.62A1,1,0,0,0,18.5,10.62Z" fill="currentColor"></path></g></svg></a>
13
13
  </p>
14
- {% endblock %}
14
+ {% endblock %}
@@ -1,4 +1,4 @@
1
- {% set title = "Plantillas para desy-html. Gobierno de Aragón" %}
1
+ {% set title = "Plantillas para desy-html. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
  {% set activePage = "page-plantillas" %}
3
3
  {% extends "_template.default.njk" %}
4
4
 
@@ -7,7 +7,7 @@
7
7
  <div class="pb-lg"></div>
8
8
  <h1 class="c-h1">Plantillas</h1>
9
9
  <p class="c-paragraph-base">
10
- Aqui encontrarás plantillas de página típicas que se utilizan en aplicaciones del Gobierno de Aragón. Los ejemplos que aquí aparecen han pasado revisiones de accesibilidad, por lo que son seguros para ser utilizados en tus proyectos como punto de partida.
10
+ Aquí encontrarás plantillas de página típicas que se utilizan en aplicaciones gubernamentales. Los ejemplos que aquí aparecen han pasado revisiones de accesibilidad, por lo que son seguros para ser utilizados en tus proyectos como punto de partida.
11
11
  </p>
12
12
 
13
13
  <div class="pb-lg"></div>
@@ -86,4 +86,4 @@
86
86
  </li>
87
87
  </ul>
88
88
  </div>
89
- {% endblock %}
89
+ {% endblock %}
@@ -1,2 +1,2 @@
1
- {% set title = "Spinner de contenido en Plantilla con header advanced. Gobierno de Aragón" %}
2
- {% extends "pages/_template.with-header-advanced.njk" %}
1
+ {% set title = "Spinner de contenido en Plantilla con header advanced. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
+ {% extends "pages/_template.with-header-advanced.njk" %}
@@ -1,5 +1,4 @@
1
- {% set title = "Spinner de contenido en Plantilla editar con cabecera fija. Gobierno de Aragón" %}
1
+ {% set title = "Spinner de contenido en Plantilla editar con cabecera fija. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
  {% extends "pages/_template.edit-fixed.njk" %}
3
3
 
4
4
  {# Use headerTitleEditBlock and headerActionsEditBlock template blocks to customize the fixed header #}
5
-
@@ -1,2 +1,2 @@
1
- {% set title = "Spinner de contenido en Plantilla logueado con cabecera fija. Gobierno de Aragón" %}
2
- {% extends "pages/_template.logged-selector-fixed.njk" %}
1
+ {% set title = "Spinner de contenido en Plantilla logueado con cabecera fija. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
+ {% extends "pages/_template.logged-selector-fixed.njk" %}
@@ -1,4 +1,2 @@
1
- {% set title = "Spinner de contenido en Plantilla logueado con selector de app y subheader. Gobierno de Aragón" %}
1
+ {% set title = "Spinner de contenido en Plantilla logueado con selector de app y subheader. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
  {% extends "pages/_template.logged-selector-subheader.njk" %}
3
-
4
-
@@ -1,2 +1,2 @@
1
- {% set title = "Spinner de contenido en Plantilla logueado con título de app. Gobierno de Aragón" %}
2
- {% extends "pages/_template.logged.njk" %}
1
+ {% set title = "Spinner de contenido en Plantilla logueado con título de app. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
+ {% extends "pages/_template.logged.njk" %}
@@ -1,4 +1,4 @@
1
- {% set title = "Spinner de página en Plantilla sin loguear. Gobierno de Aragón" %}
1
+ {% set title = "Spinner de página en Plantilla sin loguear. " + (branding.organization.name if branding else "Gobierno de Aragón") %}
2
2
  {% extends "pages/_template.logged-out.njk" %}
3
3
 
4
4
  {% block pageSpinnerBlock %}
@@ -15,4 +15,4 @@
15
15
  {% block footerBlock %}
16
16
  {% endblock %}
17
17
  {% block modalBlock %}
18
- {% endblock %}
18
+ {% endblock %}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "desy-html",
3
- "version": "15.0.3",
3
+ "version": "16.0.0",
4
4
  "description": "desy-html contains the code you need to start building a user interface for Gobierno de Aragón government webapps.",
5
5
  "type": "module",
6
6
  "author": {
@@ -20,12 +20,17 @@
20
20
  "url": "https://bitbucket.org/sdaragon/desy-html.git"
21
21
  },
22
22
  "homepage": "https://desy.aragon.es/",
23
+ "exports": {
24
+ "./branding": "./branding/branding.config.js",
25
+ "./branding/plugin": "./branding/vite-branding-plugin.js"
26
+ },
23
27
  "engines": {
24
28
  "node": ">=20.19.2 <23.0.0",
25
29
  "npm": ">=10.0.0"
26
30
  },
27
31
  "scripts": {
28
32
  "dev": "vite",
33
+ "dev:yourorganization": "BRANDING_CONFIG=yourorganization vite",
29
34
  "build": "vite build",
30
35
  "preview": "vite preview"
31
36
  },
@@ -44,8 +49,8 @@
44
49
  "devDependencies": {
45
50
  "glob": "^11.0.1",
46
51
  "highlight.js": "^11.11.1",
47
- "js-beautify": "^1.14.11",
48
52
  "nunjucks": "^3.2.4",
53
+ "js-beautify": "^1.14.11",
49
54
  "outdent": "^0.8.0",
50
55
  "sharp": "^0.34.3",
51
56
  "vite": "^7.1.6"
package/replit.md CHANGED
@@ -71,5 +71,5 @@ Preferred communication style: Simple, everyday language.
71
71
  - Angular port available at https://bitbucket.org/sdaragon/desy-angular
72
72
 
73
73
  ### System Requirements
74
- - Node.js ^22.0.0
75
- - npm ^10.0.0
74
+ - Node.js >=20.19.2 <23.0.0
75
+ - npm >=10.0.0
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Branding Variables
3
+ *
4
+ * CSS custom properties for runtime branding customization.
5
+ * These variables can be overridden at runtime via JavaScript
6
+ * to customize the appearance without rebuilding.
7
+ *
8
+ * Los colores se configuran en src/css/styles.css
9
+ * Edita las variables: --color-primary-base, --color-primary-light, --color-primary-dark
10
+ *
11
+ * LOGO SYSTEM
12
+ * ===========
13
+ * The system uses three logo variants for different contexts:
14
+ *
15
+ * --branding-logo-expanded: Full logo with text. Shown in the main header
16
+ * on desktop when there is enough space.
17
+ * Used by: header component (desktop version)
18
+ *
19
+ * --branding-logo-mini: Standard size logo.
20
+ * Shown in header-mini and header-advanced.
21
+ * Used by: header-mini, header-advanced components
22
+ *
23
+ * --branding-logo-compact: Compact logo, typically just the symbol/coat of arms.
24
+ * Shown in reduced spaces or on mobile.
25
+ * Used by: header component (mobile/responsive version)
26
+ */
27
+
28
+ :root {
29
+ /* Expanded logo - Main header on desktop (full logo with text) */
30
+ --branding-logo-expanded: url('/images/aragon-expanded.svg');
31
+
32
+ /* Mini logo - Header-mini and header-advanced (standard size) */
33
+ --branding-logo-mini: url('/images/aragon-mini.svg');
34
+
35
+ /* Compact logo - Main header on mobile (symbol/coat of arms only) */
36
+ --branding-logo-compact: url('/images/aragon-compact.svg');
37
+ }
@@ -6,6 +6,7 @@
6
6
  .c-h0 {
7
7
  @apply mb-8;
8
8
  font-size: 2.5rem;
9
+ font-family: var(--font-heading);
9
10
  @apply font-bold;
10
11
  @apply leading-tight;
11
12
  }
@@ -13,6 +14,7 @@
13
14
  .c-h1 {
14
15
  @apply mb-lg;
15
16
  @apply text-3xl;
17
+ font-family: var(--font-heading);
16
18
  @apply font-bold;
17
19
  @apply leading-tight;
18
20
  }
@@ -20,6 +22,7 @@
20
22
  .c-h2 {
21
23
  @apply mb-base;
22
24
  @apply text-2xl;
25
+ font-family: var(--font-heading);
23
26
  @apply font-bold;
24
27
  @apply leading-tight;
25
28
  }
@@ -27,6 +30,7 @@
27
30
  .c-h3 {
28
31
  @apply mb-sm;
29
32
  @apply text-lg;
33
+ font-family: var(--font-heading);
30
34
  @apply font-bold;
31
35
  @apply leading-tight;
32
36
  }
@@ -34,6 +38,7 @@
34
38
  .c-h4 {
35
39
  @apply mb-sm;
36
40
  @apply text-base;
41
+ font-family: var(--font-heading);
37
42
  @apply font-bold;
38
43
  @apply leading-tight;
39
44
  }
@@ -4,6 +4,8 @@
4
4
  @import "tailwindcss";
5
5
  /* Custom base */
6
6
  @import './base.css';
7
+ /* Branding variables for runtime customization */
8
+ @import './branding-variables.css';
7
9
 
8
10
  /* Custom components */
9
11
  @import './component.text.css';
@@ -65,6 +67,8 @@
65
67
  --color-neutral-light: #ededec;
66
68
  --color-neutral-lighter: #f6f6f5;
67
69
 
70
+ /* Brand primary colors - Customize these values for your organization */
71
+ /* To change colors, edit these hex values directly */
68
72
  --color-primary-base: #00607a;
69
73
  --color-primary-light: #d6eaf0;
70
74
  --color-primary-dark: #00475c;
@@ -90,6 +94,11 @@
90
94
 
91
95
  --color-code: #c10007;
92
96
 
97
+ /* Brand colors (mapped directly from primary colors) */
98
+ --color-brand-primary: var(--color-primary-base);
99
+ --color-brand-primary-light: var(--color-primary-light);
100
+ --color-brand-primary-dark: var(--color-primary-dark);
101
+
93
102
  /* Spacing */
94
103
  --spacing-xs: 0.25rem;
95
104
  --spacing-sm: 0.5rem;
@@ -99,6 +108,7 @@
99
108
  --spacing-2xl: 5rem;
100
109
  --spacing-3xl: 10rem;
101
110
  --spacing-offcanvas: 83.333333%;
111
+ --spacing-offcanvas-negative: 16.666667%;
102
112
 
103
113
  /* Radius */
104
114
  --radius-DEFAULT: 0.1875rem;
@@ -120,8 +130,9 @@
120
130
  --shadow-outline-focus: inset 0 -2px 0 0 var(--color-black);
121
131
  --shadow-outline-focus-input: inset 0 0 0 3px var(--color-black);
122
132
 
123
- /* Typography */
133
+ /* Typography - Configurable via branding/branding.config.js */
124
134
  --font-sans: "Open Sans", ui-sans-serif, system-ui, sans-serif;
135
+ --font-heading: var(--font-sans);
125
136
 
126
137
  /* Fixed widths */
127
138
  --width-xs: 20rem;
@@ -156,8 +167,8 @@
156
167
  --grid-template-rows-10: repeat(10, minmax(0, 1fr));
157
168
 
158
169
  /* Background images */
159
- --background-image-general-lg: url('/images/general-lg.svg');
160
- --background-image-general: url('/images/general.svg');
170
+ --background-image-general-lg: url('/images/header-background-lg.svg');
171
+ --background-image-general: url('/images/header-background.svg');
161
172
  }
162
173
 
163
174
  /* Typography plugin customization */
@@ -195,6 +206,7 @@
195
206
  }
196
207
 
197
208
  h1 {
209
+ font-family: var(--font-heading);
198
210
  font-size: 1.875em;
199
211
  margin-top: 0;
200
212
  margin-bottom: 0.9333333em;
@@ -203,6 +215,7 @@
203
215
  }
204
216
 
205
217
  h2 {
218
+ font-family: var(--font-heading);
206
219
  font-size: 1.5em;
207
220
  margin-top: 1.3333333em;
208
221
  margin-bottom: 0.6666667em;
@@ -210,6 +223,7 @@
210
223
  }
211
224
 
212
225
  h3 {
226
+ font-family: var(--font-heading);
213
227
  font-size: 1.125em;
214
228
  margin-top: 1.3333333em;
215
229
  margin-bottom: 0.4444444em;
@@ -218,6 +232,7 @@
218
232
  }
219
233
 
220
234
  h4 {
235
+ font-family: var(--font-heading);
221
236
  margin-top: 1.5em;
222
237
  margin-bottom: 0.5em;
223
238
  line-height: 1.25;
@@ -2,8 +2,8 @@ export function Notification(aria) {
2
2
 
3
3
  aria.notificationInit = function (domNode) {
4
4
  this.rootEl = domNode;
5
- /*No todas las notificaciones tienen botón de cerrar
6
- así que comprobamos que el componente contiene el botón.*/
5
+ /*Not all notifications have a close button
6
+ so we check if the component contains the button.*/
7
7
  if(this.rootEl.querySelector('.c-notification-button__close')) {
8
8
  window.addEventListener('click', this.closeNotification.bind(this));
9
9
  }
@@ -23,9 +23,9 @@ export function Notification(aria) {
23
23
 
24
24
  aria.closeNotificationEvent = function (element) {
25
25
  if(element.classList.contains('c-notification-button__close')) {
26
- //Replicamos la transición de alpine con tailwind al cerrar.
26
+ //Replicate the alpine transition with tailwind when closing.
27
27
  element.parentElement.parentElement.parentElement.classList.add('transition-opacity', 'duration-150', 'ease-in-out', 'opacity-0');
28
- //Añadimos display: none para que el componente "desaparezca del DOM"
28
+ //Add display: none so the component "disappears from the DOM"
29
29
  setTimeout(() =>{
30
30
  element.parentElement.parentElement.parentElement.classList.add('hidden');
31
31
  }, 300)
@@ -34,9 +34,9 @@ export function Notification(aria) {
34
34
 
35
35
  aria.closeNotificationWindow = function (element) {
36
36
  if(element.querySelector('.c-notification-button__close')) {
37
- //Replicamos la transición de alpine con tailwind al cerrar.
37
+ //Replicate the alpine transition with tailwind when closing.
38
38
  element.classList.add('transition-opacity', 'duration-150', 'ease-in-out', 'opacity-0');
39
- //Añadimos display: none para que el componente "desaparezca del DOM"
39
+ //Add display: none so the component "disappears from the DOM"
40
40
  setTimeout(() =>{
41
41
  element.classList.add('hidden');
42
42
  }, 300)