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.
- package/AGENTS.md +180 -0
- package/README.md +22 -4
- package/TESTING_PLAN.md +369 -0
- package/branding/BRANDING.md +369 -0
- package/branding/branding.config.js +69 -0
- package/branding/branding.config.yourorganization.js +65 -0
- package/branding/logos/aragon-compact.svg +1 -0
- package/branding/logos/aragon-expanded.svg +1 -0
- package/branding/logos/aragon-mini.svg +1 -0
- package/branding/logos/yourlogo-compact.svg +13 -0
- package/branding/logos/yourlogo-expanded.svg +17 -0
- package/branding/logos/yourlogo-mini.svg +17 -0
- package/branding/vite-branding-plugin.js +128 -0
- package/docs/_global.head.njk +12 -4
- package/docs/_macro.example-render.njk +6 -0
- package/docs/catalogo.html +2 -2
- package/docs/componentes.html +2 -2
- package/docs/estilos.html +1 -1
- package/docs/examples-accordion-history.html +1 -1
- package/docs/examples-accordion.html +1 -1
- package/docs/examples-alert.html +1 -1
- package/docs/examples-breadcrumbs.html +1 -1
- package/docs/examples-button-loader.html +1 -1
- package/docs/examples-button.html +1 -1
- package/docs/examples-card.html +2 -2
- package/docs/examples-character-count.html +1 -1
- package/docs/examples-checkboxes.html +2 -2
- package/docs/examples-collapsible.html +2 -2
- package/docs/examples-date-input.html +1 -1
- package/docs/examples-datepicker.html +1 -1
- package/docs/examples-description-list.html +1 -1
- package/docs/examples-details.html +1 -1
- package/docs/examples-dialog.html +2 -2
- package/docs/examples-dropdown.html +1 -1
- package/docs/examples-error-message.html +1 -1
- package/docs/examples-error-summary.html +1 -1
- package/docs/examples-fieldset.html +1 -1
- package/docs/examples-file-upload.html +1 -1
- package/docs/examples-footer.html +1 -1
- package/docs/examples-header-advanced.html +1 -1
- package/docs/examples-header-mini.html +1 -1
- package/docs/examples-header.html +1 -1
- package/docs/examples-hint.html +1 -1
- package/docs/examples-input-group.html +1 -1
- package/docs/examples-input.html +1 -1
- package/docs/examples-item.html +1 -1
- package/docs/examples-label.html +1 -1
- package/docs/examples-links-list.html +2 -2
- package/docs/examples-listbox.html +1 -1
- package/docs/examples-media-object.html +2 -2
- package/docs/examples-menu-horizontal.html +1 -1
- package/docs/examples-menu-navigation.html +1 -1
- package/docs/examples-menu-vertical.html +2 -2
- package/docs/examples-menubar.html +2 -2
- package/docs/examples-modal.html +2 -2
- package/docs/examples-nav.html +1 -1
- package/docs/examples-notification.html +1 -1
- package/docs/examples-pagination.html +1 -1
- package/docs/examples-pill.html +1 -1
- package/docs/examples-radios.html +1 -1
- package/docs/examples-searchbar.html +1 -1
- package/docs/examples-select.html +1 -2
- package/docs/examples-skip-link.html +1 -1
- package/docs/examples-spinner.html +1 -1
- package/docs/examples-status-item.html +1 -1
- package/docs/examples-status.html +1 -1
- package/docs/examples-table-advanced.html +1 -1
- package/docs/examples-table.html +1 -1
- package/docs/examples-tabs.html +1 -1
- package/docs/examples-textarea.html +1 -1
- package/docs/examples-toggle.html +1 -1
- package/docs/examples-tooltip.html +1 -1
- package/docs/examples-tree.html +1 -1
- package/docs/examples-treegrid.html +1 -1
- package/docs/index.html +10 -3
- package/docs/pagina-accesibilidad.html +4 -4
- package/docs/pagina-mapa-web.html +3 -3
- package/docs/pagina-prueba.html +2 -2
- package/docs/plantilla-con-header-advanced.html +2 -2
- package/docs/plantilla-editar-con-cabecera-fija-y-sidebar-sticky.html +2 -2
- package/docs/plantilla-editar-con-cabecera-fija.html +2 -2
- package/docs/plantilla-logueado-con-cabecera-fija-headroom.html +2 -2
- package/docs/plantilla-logueado-con-cabecera-fija.html +2 -2
- package/docs/plantilla-logueado-con-selector-de-app-y-sidebar.html +2 -2
- package/docs/plantilla-logueado-con-selector-de-app-y-subheader.html +2 -2
- package/docs/plantilla-logueado-con-selector-de-app.html +2 -2
- package/docs/plantilla-logueado-con-titulo-de-app.html +2 -2
- package/docs/plantilla-sin-loguear.html +2 -2
- package/docs/plantillas.html +3 -3
- package/docs/spinner-plantilla-con-header-advanced.html +2 -2
- package/docs/spinner-plantilla-editar-con-cabecera-fija.html +1 -2
- package/docs/spinner-plantilla-logueado-con-cabecera-fija.html +2 -2
- package/docs/spinner-plantilla-logueado-con-selector-de-app-y-subheader.html +1 -3
- package/docs/spinner-plantilla-logueado-con-titulo-de-app.html +2 -2
- package/docs/spinner-plantilla-sin-loguear.html +2 -2
- package/package.json +7 -2
- package/replit.md +2 -2
- package/src/css/branding-variables.css +37 -0
- package/src/css/component.text.css +5 -0
- package/src/css/styles.css +18 -3
- package/src/js/aria/notification.js +6 -6
- package/src/js/desy-html.js +5 -0
- package/src/templates/components/accordion/_examples.accordion.njk +84 -0
- package/src/templates/components/accordion-history/_examples.accordion-history.njk +90 -0
- package/src/templates/components/alert/_examples.alert.njk +12 -0
- package/src/templates/components/breadcrumbs/_examples.breadcrumbs.njk +90 -0
- package/src/templates/components/breadcrumbs/_template.breadcrumbs.njk +1 -1
- package/src/templates/components/button/_examples.button.njk +216 -0
- package/src/templates/components/button-loader/_examples.button-loader.njk +204 -0
- package/src/templates/components/card/_examples.card.njk +78 -0
- package/src/templates/components/character-count/_examples.character-count.njk +60 -0
- package/src/templates/components/checkboxes/_examples.checkboxes.njk +120 -0
- package/src/templates/components/collapsible/_examples.collapsible.njk +30 -0
- package/src/templates/components/date-input/_examples.date-input.njk +78 -0
- package/src/templates/components/datepicker/_examples.datepicker.njk +84 -0
- package/src/templates/components/datepicker/_template.datepicker.njk +1 -1
- package/src/templates/components/description-list/_examples.description-list.njk +66 -0
- package/src/templates/components/details/_examples.details.njk +24 -0
- package/src/templates/components/dialog/_examples.dialog.njk +18 -0
- package/src/templates/components/dropdown/_examples.dropdown.njk +90 -0
- package/src/templates/components/error-message/_examples.error-message.njk +12 -0
- package/src/templates/components/error-summary/_examples.error-summary.njk +30 -0
- package/src/templates/components/fieldset/_examples.fieldset.njk +18 -0
- package/src/templates/components/file-upload/_examples.file-upload.njk +30 -0
- package/src/templates/components/footer/_examples.footer.njk +108 -0
- package/src/templates/components/footer/_styles.footer.css +20 -20
- package/src/templates/components/footer/_template.footer.njk +21 -6
- package/src/templates/components/footer/params.footer.yaml +4 -4
- package/src/templates/components/header/_examples.header.njk +85 -1
- package/src/templates/components/header/_template.header.njk +20 -4
- package/src/templates/components/header/params.header.yaml +2 -2
- package/src/templates/components/header-advanced/_examples.header-advanced.njk +84 -7
- package/src/templates/components/header-advanced/_template.header-advanced.njk +3 -1
- package/src/templates/components/header-mini/_examples.header-mini.njk +15 -3
- package/src/templates/components/header-mini/_template.header-mini.njk +14 -2
- package/src/templates/components/header-mini/params.header-mini.yaml +1 -1
- package/src/templates/components/hint/_examples.hint.njk +12 -0
- package/src/templates/components/input/_examples.input.njk +120 -0
- package/src/templates/components/input/_template.input.njk +1 -1
- package/src/templates/components/input-group/_examples.input-group.njk +54 -0
- package/src/templates/components/item/_examples.item.njk +96 -0
- package/src/templates/components/label/_examples.label.njk +24 -0
- package/src/templates/components/links-list/_examples.links-list.njk +114 -0
- package/src/templates/components/listbox/_examples.listbox.njk +140 -20
- package/src/templates/components/media-object/_examples.media-object.njk +30 -0
- package/src/templates/components/menu-horizontal/_examples.menu-horizontal.njk +84 -0
- package/src/templates/components/menu-navigation/_examples.menu-navigation.njk +102 -0
- package/src/templates/components/menu-vertical/_examples.menu-vertical.njk +96 -0
- package/src/templates/components/menubar/_examples.menubar.njk +66 -0
- package/src/templates/components/modal/_examples.modal.njk +78 -0
- package/src/templates/components/nav/_examples.nav.njk +66 -0
- package/src/templates/components/notification/_examples.notification.njk +78 -0
- package/src/templates/components/pagination/_examples.pagination.njk +42 -0
- package/src/templates/components/pill/_examples.pill.njk +78 -0
- package/src/templates/components/radios/_examples.radios.njk +96 -0
- package/src/templates/components/searchbar/_examples.searchbar.njk +48 -0
- package/src/templates/components/searchbar/_template.searchbar.njk +1 -1
- package/src/templates/components/select/_examples.select.njk +54 -0
- package/src/templates/components/select/_template.select.njk +1 -1
- package/src/templates/components/skip-link/_examples.skip-link.njk +12 -0
- package/src/templates/components/spinner/_examples.spinner.njk +49 -1
- package/src/templates/components/status/_examples.status.njk +31 -1
- package/src/templates/components/status-item/_examples.status-item.njk +73 -1
- package/src/templates/components/table/_examples.table.njk +37 -1
- package/src/templates/components/table-advanced/_examples.table-advanced.njk +54 -0
- package/src/templates/components/table-advanced/_styles.table-advanced.css +0 -2
- package/src/templates/components/tabs/_examples.tabs.njk +72 -0
- package/src/templates/components/textarea/_examples.textarea.njk +54 -0
- package/src/templates/components/textarea/_template.textarea.njk +1 -1
- package/src/templates/components/toggle/_examples.toggle.njk +60 -0
- package/src/templates/components/tooltip/_examples.tooltip.njk +48 -0
- package/src/templates/components/tree/_examples.tree.njk +150 -0
- package/src/templates/components/treegrid/_examples.treegrid.njk +30 -0
- package/src/templates/components/treegrid/_template.treegrid.njk +1 -1
- package/src/templates/pages/_page.head.njk +11 -3
- package/vite.config.js +215 -0
- package/attached_assets/Pasted--desy-html-starter-Node-Version-https-img-shields-io-ba_1765448923362.txt +0 -431
- /package/{public/images/general-lg.svg → branding/images/header-background-lg.svg} +0 -0
- /package/{public/images/general.svg → branding/images/header-background.svg} +0 -0
- /package/{public/images/logo-ue.svg → branding/logos/eu/logo-eu.svg} +0 -0
- /package/{public/images → branding/logos/eu}/logo-feader.svg +0 -0
- /package/{public/images → branding/logos/eu}/logo-feder.svg +0 -0
- /package/{public/images → branding/logos/eu}/logo-fse.svg +0 -0
- /package/{public/images → branding/logos/eu}/logo-plurifondo.svg +0 -0
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
# desy-html Branding System
|
|
2
|
+
|
|
3
|
+
desy-html includes a brand customization system that allows adapting the design system for different government organizations.
|
|
4
|
+
|
|
5
|
+
## Quick Setup
|
|
6
|
+
|
|
7
|
+
### Step 1: Edit Configuration
|
|
8
|
+
|
|
9
|
+
Edit `branding/branding.config.js` with your organization's information:
|
|
10
|
+
|
|
11
|
+
```javascript
|
|
12
|
+
export default {
|
|
13
|
+
organization: {
|
|
14
|
+
name: 'My Organization',
|
|
15
|
+
website: 'https://my-site.gov',
|
|
16
|
+
},
|
|
17
|
+
logos: {
|
|
18
|
+
organization: {
|
|
19
|
+
compact: '/branding/logos/my-logo-compact.svg',
|
|
20
|
+
expanded: '/branding/logos/my-logo-expanded.svg',
|
|
21
|
+
mini: '/branding/logos/my-logo-mini.svg',
|
|
22
|
+
alt: 'My Organization',
|
|
23
|
+
},
|
|
24
|
+
eu: {
|
|
25
|
+
eu: '/branding/logos/eu/logo-eu.svg',
|
|
26
|
+
feder: '/branding/logos/eu/logo-feder.svg',
|
|
27
|
+
fse: '/branding/logos/eu/logo-fse.svg',
|
|
28
|
+
feader: '/branding/logos/eu/logo-feader.svg',
|
|
29
|
+
plurifondo: '/branding/logos/eu/logo-plurifondo.svg',
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Step 2: Replace Logos
|
|
36
|
+
|
|
37
|
+
Place your organization's logos in `/branding/logos/`:
|
|
38
|
+
|
|
39
|
+
- `my-logo-compact.svg` - Compact logo (icon only) for mobile header
|
|
40
|
+
- `my-logo-expanded.svg` - Expanded logo (icon + text) for desktop header
|
|
41
|
+
- `my-logo-mini.svg` - Mini logo (icon + text) for header-mini component
|
|
42
|
+
|
|
43
|
+
### Step 3: Rebuild
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npm run build
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Build-time vs Runtime
|
|
50
|
+
|
|
51
|
+
The branding system supports two customization modes:
|
|
52
|
+
|
|
53
|
+
### Build-time (Recommended)
|
|
54
|
+
|
|
55
|
+
Changes to `branding/branding.config.js` are applied during the build process. This is the most efficient option for permanent customizations.
|
|
56
|
+
|
|
57
|
+
**Advantages:**
|
|
58
|
+
- Better performance (no additional processing on the client)
|
|
59
|
+
- Values are injected directly into templates
|
|
60
|
+
- No flickering during page load
|
|
61
|
+
|
|
62
|
+
**Usage:** Simply edit `branding/branding.config.js` and run `npm run build`.
|
|
63
|
+
|
|
64
|
+
## Configuration Reference
|
|
65
|
+
|
|
66
|
+
### organization
|
|
67
|
+
|
|
68
|
+
Organization information.
|
|
69
|
+
|
|
70
|
+
| Field | Type | Required | Description |
|
|
71
|
+
|-------|------|----------|-------------|
|
|
72
|
+
| `name` | string | Yes | Full organization name |
|
|
73
|
+
| `nameShort` | string | No | Short name for limited spaces |
|
|
74
|
+
| `website` | string | Yes | Main website URL |
|
|
75
|
+
| `contact.address` | string | No | Postal address |
|
|
76
|
+
| `contact.city` | string | No | City and postal code |
|
|
77
|
+
| `contact.phone` | string | No | Phone number to display |
|
|
78
|
+
| `contact.phoneLink` | string | No | Phone in international format (+34...) |
|
|
79
|
+
|
|
80
|
+
### logos
|
|
81
|
+
|
|
82
|
+
Logo configuration.
|
|
83
|
+
|
|
84
|
+
| Field | Type | Required | Description |
|
|
85
|
+
|-------|------|----------|-------------|
|
|
86
|
+
| `logos.organization.compact` | string | Yes | Compact logo (icon only) for mobile/responsive header |
|
|
87
|
+
| `logos.organization.expanded` | string | Yes | Expanded logo (icon + text) for desktop header |
|
|
88
|
+
| `logos.organization.mini` | string | Yes | Mini logo (icon + text) for header-mini component |
|
|
89
|
+
| `logos.organization.alt` | string | Yes | Alternative text |
|
|
90
|
+
| `logos.eu.eu` | string | No | European Union logo |
|
|
91
|
+
| `logos.eu.feder` | string | No | FEDER logo |
|
|
92
|
+
| `logos.eu.fse` | string | No | FSE+ logo |
|
|
93
|
+
| `logos.eu.feader` | string | No | FEADER logo |
|
|
94
|
+
| `logos.eu.plurifondo` | string | No | Plurifondo logo |
|
|
95
|
+
|
|
96
|
+
### footer
|
|
97
|
+
|
|
98
|
+
Footer configuration.
|
|
99
|
+
|
|
100
|
+
| Field | Type | Required | Description |
|
|
101
|
+
|-------|------|----------|-------------|
|
|
102
|
+
| `license.name` | string | No | License name (e.g., "CC BY 4.0") |
|
|
103
|
+
| `license.url` | string | No | URL to full license text |
|
|
104
|
+
| `license.text` | string | No | Text preceding the link |
|
|
105
|
+
| `euFundsUrl` | string | No | URL to European funds page |
|
|
106
|
+
|
|
107
|
+
### colors
|
|
108
|
+
|
|
109
|
+
Brand colors.
|
|
110
|
+
|
|
111
|
+
| Field | Type | Required | Description |
|
|
112
|
+
|-------|------|----------|-------------|
|
|
113
|
+
| `primary.base` | string | No | Main primary color |
|
|
114
|
+
| `primary.light` | string | No | Light variant (backgrounds) |
|
|
115
|
+
| `primary.dark` | string | No | Dark variant (hover) |
|
|
116
|
+
|
|
117
|
+
### typography
|
|
118
|
+
|
|
119
|
+
Font configuration.
|
|
120
|
+
|
|
121
|
+
| Field | Type | Required | Description |
|
|
122
|
+
|-------|------|----------|-------------|
|
|
123
|
+
| `fontFamily.sans` | string | No | Sans-serif font family |
|
|
124
|
+
| `fontFamily.heading` | string | No | Heading font family |
|
|
125
|
+
| `fontUrl` | string | No | URL to load fonts (e.g., Google Fonts) |
|
|
126
|
+
|
|
127
|
+
### images
|
|
128
|
+
|
|
129
|
+
Additional images.
|
|
130
|
+
|
|
131
|
+
| Field | Type | Required | Description |
|
|
132
|
+
|-------|------|----------|-------------|
|
|
133
|
+
| `headerBackground` | string | No | Header background image |
|
|
134
|
+
| `headerBackgroundLg` | string | No | Large header background image |
|
|
135
|
+
|
|
136
|
+
## CSS Variables
|
|
137
|
+
|
|
138
|
+
The following CSS variables are available for runtime customization:
|
|
139
|
+
|
|
140
|
+
```css
|
|
141
|
+
:root {
|
|
142
|
+
/* Primary colors */
|
|
143
|
+
--branding-primary-base: #00607a;
|
|
144
|
+
--branding-primary-light: #d6eaf0;
|
|
145
|
+
--branding-primary-dark: #00475c;
|
|
146
|
+
|
|
147
|
+
/* Logo URLs */
|
|
148
|
+
--branding-logo-expanded: url('/branding/logos/...');
|
|
149
|
+
--branding-logo-mini: url('/branding/logos/...');
|
|
150
|
+
--branding-logo-compact: url('/branding/logos/...');
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Configuration Examples
|
|
155
|
+
|
|
156
|
+
### YourOrganization
|
|
157
|
+
|
|
158
|
+
```javascript
|
|
159
|
+
export default {
|
|
160
|
+
organization: {
|
|
161
|
+
name: 'YourOrganization',
|
|
162
|
+
website: 'https://www.example.com/',
|
|
163
|
+
},
|
|
164
|
+
logos: {
|
|
165
|
+
organization: {
|
|
166
|
+
compact: '/branding/logos/yourlogo-compact.svg',
|
|
167
|
+
expanded: '/branding/logos/yourlogo-expanded.svg',
|
|
168
|
+
mini: '/branding/logos/yourlogo-mini.svg',
|
|
169
|
+
alt: 'YourOrganization',
|
|
170
|
+
},
|
|
171
|
+
eu: {
|
|
172
|
+
eu: '/branding/logos/eu/logo-eu.svg',
|
|
173
|
+
feder: '/branding/logos/eu/logo-feder.svg',
|
|
174
|
+
fse: '/branding/logos/eu/logo-fse.svg',
|
|
175
|
+
feader: '/branding/logos/eu/logo-feader.svg',
|
|
176
|
+
plurifondo: '/branding/logos/eu/logo-plurifondo.svg',
|
|
177
|
+
},
|
|
178
|
+
},
|
|
179
|
+
typography: {
|
|
180
|
+
fontFamily: {
|
|
181
|
+
sans: '"Nunito", ui-sans-serif, system-ui, sans-serif',
|
|
182
|
+
heading: '"Inter", ui-sans-serif, system-ui, sans-serif',
|
|
183
|
+
},
|
|
184
|
+
fontUrl: 'https://fonts.googleapis.com/css2?family=Inter:wght@700&family=Nunito:wght@400;500;600;700&display=swap',
|
|
185
|
+
},
|
|
186
|
+
};
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## FAQ
|
|
190
|
+
|
|
191
|
+
### What fields are required?
|
|
192
|
+
|
|
193
|
+
You only need:
|
|
194
|
+
- `organization.name`
|
|
195
|
+
- `organization.website`
|
|
196
|
+
- `logos.organization.compact`
|
|
197
|
+
- `logos.organization.expanded`
|
|
198
|
+
- `logos.organization.mini`
|
|
199
|
+
- `logos.organization.alt`
|
|
200
|
+
|
|
201
|
+
See `branding/branding.config.yourorganization.js` for a minimal example.
|
|
202
|
+
|
|
203
|
+
### What format should the logos be in?
|
|
204
|
+
|
|
205
|
+
SVG is the recommended format for its scalability and performance. PNG and JPG are also supported. See the dimensions table above for recommended sizes.
|
|
206
|
+
|
|
207
|
+
### Can I use different logos for desktop and mobile?
|
|
208
|
+
|
|
209
|
+
Yes. Use:
|
|
210
|
+
- `logos.organization.expanded` for desktop (icon + text)
|
|
211
|
+
- `logos.organization.compact` for mobile (icon only)
|
|
212
|
+
- `logos.organization.mini` for header-mini component (icon + text)
|
|
213
|
+
|
|
214
|
+
### Are European funds mandatory?
|
|
215
|
+
|
|
216
|
+
No. The `logos.eu` section is optional and only needed if your project receives European funding. Place your EU logos in `branding/logos/eu/`.
|
|
217
|
+
|
|
218
|
+
### Where can I find complete examples?
|
|
219
|
+
|
|
220
|
+
- `branding/branding.config.yourorganization.js` - Minimal configuration
|
|
221
|
+
- `branding/branding.config.js` - Current project configuration (Gobierno de Aragón)
|
|
222
|
+
|
|
223
|
+
## Uso en Proyectos Externos
|
|
224
|
+
|
|
225
|
+
Puedes importar y utilizar el sistema de branding de desy-html en tus propios proyectos que dependan de `desy-html`.
|
|
226
|
+
|
|
227
|
+
### Requisitos
|
|
228
|
+
|
|
229
|
+
Asegúrate de tener `desy-html` instalado:
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
npm install desy-html
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### Importar el plugin
|
|
236
|
+
|
|
237
|
+
```javascript
|
|
238
|
+
// vite.config.js
|
|
239
|
+
import { brandingPlugin, loadBrandingConfig } from 'desy-html/branding/plugin';
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Configuración básica
|
|
243
|
+
|
|
244
|
+
```javascript
|
|
245
|
+
// vite.config.js
|
|
246
|
+
import { brandingPlugin, loadBrandingConfig } from 'desy-html/branding/plugin';
|
|
247
|
+
import { defineConfig } from 'vite';
|
|
248
|
+
|
|
249
|
+
export default defineConfig({
|
|
250
|
+
plugins: [
|
|
251
|
+
brandingPlugin(miConfiguracionBranding),
|
|
252
|
+
// ... otros plugins
|
|
253
|
+
]
|
|
254
|
+
});
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Cargar configuración desde archivo
|
|
258
|
+
|
|
259
|
+
Puedes cargar la configuración desde un archivo `branding/branding.config.js` en tu proyecto:
|
|
260
|
+
|
|
261
|
+
```javascript
|
|
262
|
+
// vite.config.js
|
|
263
|
+
import { brandingPlugin, loadBrandingConfig } from 'desy-html/branding/plugin';
|
|
264
|
+
import { defineConfig } from 'vite';
|
|
265
|
+
|
|
266
|
+
export default defineConfig({
|
|
267
|
+
plugins: [
|
|
268
|
+
brandingPlugin(await loadBrandingConfig('default', process.cwd())),
|
|
269
|
+
// ... otros plugins
|
|
270
|
+
]
|
|
271
|
+
});
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### Con variable de entorno
|
|
275
|
+
|
|
276
|
+
```javascript
|
|
277
|
+
// vite.config.js
|
|
278
|
+
import { brandingPlugin, loadBrandingConfig } from 'desy-html/branding/plugin';
|
|
279
|
+
import { defineConfig } from 'vite';
|
|
280
|
+
|
|
281
|
+
const brandingConfig = await loadBrandingConfig(
|
|
282
|
+
process.env.BRANDING_CONFIG || 'default',
|
|
283
|
+
process.cwd()
|
|
284
|
+
);
|
|
285
|
+
|
|
286
|
+
export default defineConfig({
|
|
287
|
+
plugins: [
|
|
288
|
+
brandingPlugin(brandingConfig),
|
|
289
|
+
// ... otros plugins
|
|
290
|
+
]
|
|
291
|
+
});
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### Estructura de configuración
|
|
295
|
+
|
|
296
|
+
La configuración sigue la misma estructura que en desy-html:
|
|
297
|
+
|
|
298
|
+
```javascript
|
|
299
|
+
// branding/branding.config.js
|
|
300
|
+
export default {
|
|
301
|
+
organization: {
|
|
302
|
+
name: 'Mi Organización',
|
|
303
|
+
website: 'https://mi-web.gob.es',
|
|
304
|
+
contact: {
|
|
305
|
+
address: 'Calle Principal, 1',
|
|
306
|
+
city: '01000 - Ciudad',
|
|
307
|
+
phone: '900 123 456',
|
|
308
|
+
phoneLink: '+34900123456',
|
|
309
|
+
},
|
|
310
|
+
},
|
|
311
|
+
|
|
312
|
+
logos: {
|
|
313
|
+
organization: {
|
|
314
|
+
compact: '/branding/logos/mi-logo-compact.svg',
|
|
315
|
+
mini: '/branding/logos/mi-logo-mini.svg',
|
|
316
|
+
expanded: '/branding/logos/mi-logo-expanded.svg',
|
|
317
|
+
alt: 'Mi Organización',
|
|
318
|
+
},
|
|
319
|
+
},
|
|
320
|
+
|
|
321
|
+
footer: {
|
|
322
|
+
license: {
|
|
323
|
+
name: 'CC BY 4.0',
|
|
324
|
+
url: 'https://creativecommons.org/licenses/by/4.0/',
|
|
325
|
+
text: 'Todo el contenido bajo licencia',
|
|
326
|
+
},
|
|
327
|
+
euFundsUrl: 'https://mi-web.gob.es/fondos-europeos',
|
|
328
|
+
},
|
|
329
|
+
|
|
330
|
+
typography: {
|
|
331
|
+
fontFamily: {
|
|
332
|
+
sans: '"Inter", ui-sans-serif, system-ui, sans-serif',
|
|
333
|
+
heading: '"Inter", ui-sans-serif, system-ui, sans-serif',
|
|
334
|
+
},
|
|
335
|
+
fontUrl: 'https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap',
|
|
336
|
+
},
|
|
337
|
+
|
|
338
|
+
images: {
|
|
339
|
+
headerBackground: '/branding/images/header-background.svg',
|
|
340
|
+
headerBackgroundLg: '/branding/images/header-background-lg.svg',
|
|
341
|
+
},
|
|
342
|
+
};
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### Logos
|
|
346
|
+
|
|
347
|
+
Los logos deben colocarse en la carpeta `branding/logos/` de tu proyecto:
|
|
348
|
+
|
|
349
|
+
```
|
|
350
|
+
mi-proyecto/
|
|
351
|
+
├── branding/
|
|
352
|
+
│ ├── logos/
|
|
353
|
+
│ │ ├── mi-logo-compact.svg
|
|
354
|
+
│ │ ├── mi-logo-mini.svg
|
|
355
|
+
│ │ ├── mi-logo-expanded.svg
|
|
356
|
+
│ │ ├── eu/
|
|
357
|
+
│ │ │ ├── logo-eu.svg
|
|
358
|
+
│ │ │ ├── logo-feder.svg
|
|
359
|
+
│ │ │ ├── logo-fse.svg
|
|
360
|
+
│ │ │ ├── logo-feader.svg
|
|
361
|
+
│ │ │ └── logo-plurifondo.svg
|
|
362
|
+
│ ├── images/
|
|
363
|
+
│ │ ├── header-background.svg
|
|
364
|
+
│ │ └── header-background-lg.svg
|
|
365
|
+
│ └── branding.config.js
|
|
366
|
+
└── vite.config.js
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
Los componentes de desy-html usarán automáticamente estos logos cuando estén configurados en `branding/branding.config.js`.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Branding Configuration
|
|
3
|
+
*
|
|
4
|
+
* This file contains all organization-specific branding and content.
|
|
5
|
+
* Customize these values to adapt the design system for your government organization.
|
|
6
|
+
*
|
|
7
|
+
* The default values are from Gobierno de Aragón (Spain) as a reference implementation.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export default {
|
|
11
|
+
// Organization Information
|
|
12
|
+
organization: {
|
|
13
|
+
name: 'Gobierno de Aragón',
|
|
14
|
+
website: 'https://www.aragon.es/',
|
|
15
|
+
contact: {
|
|
16
|
+
address: 'Edificio Pignatelli. Paseo María Agustín, 36',
|
|
17
|
+
city: '50004 - Zaragoza',
|
|
18
|
+
phone: '976 714 000',
|
|
19
|
+
phoneLink: '+34976714000',
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
// Logo Configuration
|
|
24
|
+
logos: {
|
|
25
|
+
organization: {
|
|
26
|
+
compact: '/branding/logos/aragon-compact.svg',
|
|
27
|
+
mini: '/branding/logos/aragon-mini.svg',
|
|
28
|
+
expanded: '/branding/logos/aragon-expanded.svg',
|
|
29
|
+
alt: 'Gobierno de Aragón',
|
|
30
|
+
},
|
|
31
|
+
eu: {
|
|
32
|
+
eu: '/branding/logos/eu/logo-eu.svg',
|
|
33
|
+
feder: '/branding/logos/eu/logo-feder.svg',
|
|
34
|
+
fse: '/branding/logos/eu/logo-fse.svg',
|
|
35
|
+
feader: '/branding/logos/eu/logo-feader.svg',
|
|
36
|
+
plurifondo: '/branding/logos/eu/logo-plurifondo.svg',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
|
|
40
|
+
// Footer Configuration
|
|
41
|
+
footer: {
|
|
42
|
+
license: {
|
|
43
|
+
name: 'CC BY 4.0',
|
|
44
|
+
url: 'https://creativecommons.org/licenses/by/4.0/legalcode.es',
|
|
45
|
+
text: 'Todo el contenido bajo licencia',
|
|
46
|
+
},
|
|
47
|
+
euFundsUrl: 'https://www.aragon.es/-/fondos-europeos-aragon',
|
|
48
|
+
},
|
|
49
|
+
|
|
50
|
+
// Typography
|
|
51
|
+
typography: {
|
|
52
|
+
fontFamily: {
|
|
53
|
+
sans: '"Open Sans", ui-sans-serif, system-ui, sans-serif',
|
|
54
|
+
heading: '"Open Sans", ui-sans-serif, system-ui, sans-serif',
|
|
55
|
+
},
|
|
56
|
+
// URL to CSS that loads the font (Google Fonts, self-hosted, etc.)
|
|
57
|
+
// Remove to use system fonts without external loading
|
|
58
|
+
fontUrl: 'https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap',
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
// Colors are configured in src/css/styles.css
|
|
62
|
+
// Edit the variables: --color-primary-base, --color-primary-light, --color-primary-dark
|
|
63
|
+
|
|
64
|
+
// Additional Images
|
|
65
|
+
images: {
|
|
66
|
+
headerBackground: '/branding/images/header-background.svg',
|
|
67
|
+
headerBackgroundLg: '/branding/images/header-background-lg.svg',
|
|
68
|
+
},
|
|
69
|
+
};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Branding Configuration - YourOrganization
|
|
3
|
+
*
|
|
4
|
+
* This file contains all organization-specific branding and content.
|
|
5
|
+
* Use BRANDING_CONFIG=yourorganization npm run dev to activate this configuration.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export default {
|
|
9
|
+
// Organization Information
|
|
10
|
+
organization: {
|
|
11
|
+
name: 'YourOrganization',
|
|
12
|
+
website: 'https://www.example.com/',
|
|
13
|
+
contact: {
|
|
14
|
+
address: 'Your Address, 123',
|
|
15
|
+
city: '12345 - Your City',
|
|
16
|
+
phone: '123 456 789',
|
|
17
|
+
phoneLink: '+34123456789',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
|
|
21
|
+
// Logo Configuration
|
|
22
|
+
logos: {
|
|
23
|
+
organization: {
|
|
24
|
+
compact: '/branding/logos/yourlogo-compact.svg',
|
|
25
|
+
mini: '/branding/logos/yourlogo-mini.svg',
|
|
26
|
+
expanded: '/branding/logos/yourlogo-expanded.svg',
|
|
27
|
+
alt: 'YourOrganization',
|
|
28
|
+
},
|
|
29
|
+
eu: {
|
|
30
|
+
eu: '/branding/logos/eu/logo-eu.svg',
|
|
31
|
+
feder: '/branding/logos/eu/logo-feder.svg',
|
|
32
|
+
fse: '/branding/logos/eu/logo-fse.svg',
|
|
33
|
+
feader: '/branding/logos/eu/logo-feader.svg',
|
|
34
|
+
plurifondo: '/branding/logos/eu/logo-plurifondo.svg',
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
// Footer Configuration
|
|
39
|
+
footer: {
|
|
40
|
+
license: {
|
|
41
|
+
name: 'CC BY 4.0',
|
|
42
|
+
url: 'https://creativecommons.org/licenses/by/4.0/legalcode.es',
|
|
43
|
+
text: 'Todo el contenido bajo licencia',
|
|
44
|
+
},
|
|
45
|
+
euFundsUrl: 'https://www.example.com/eu-funds',
|
|
46
|
+
},
|
|
47
|
+
|
|
48
|
+
// Typography
|
|
49
|
+
typography: {
|
|
50
|
+
fontFamily: {
|
|
51
|
+
sans: '"Nunito", ui-sans-serif, system-ui, sans-serif',
|
|
52
|
+
heading: '"Inter", ui-sans-serif, system-ui, sans-serif',
|
|
53
|
+
},
|
|
54
|
+
fontUrl: 'https://fonts.googleapis.com/css2?family=Inter:wght@700&family=Nunito:wght@400;500;600;700&display=swap',
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
// Colors are configured in src/css/styles.css
|
|
58
|
+
// Edit the variables: --color-primary-base, --color-primary-light, --color-primary-dark
|
|
59
|
+
|
|
60
|
+
// Additional Images
|
|
61
|
+
images: {
|
|
62
|
+
headerBackground: '/branding/images/header-background.svg',
|
|
63
|
+
headerBackgroundLg: '/branding/images/header-background-lg.svg',
|
|
64
|
+
},
|
|
65
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32" aria-label="Ir a la página de inicio de la aplicación" role="img"><defs><clipPath id="b-logo-mini"><path fill="rgb(252, 228, 0)" d="M0 0h32v32.001H0z"/></clipPath><clipPath id="a-logo-mini"><path d="M0 0h32v32H0z"/></clipPath></defs><g clip-path="url(#a-logo-mini)"><path fill="rgb(252, 228, 0)" d="M0 .305h32v32.001H0z"/><g clip-path="url(#b-logo-mini)" transform="translate(0 .305)"><g fill="#dd171b" fill-rule="evenodd"><path d="m31.997 6.145-7.686 1.539a14.764 14.764 0 0 1-8.028-1.042 15.267 15.267 0 0 0-5.073-1.846 12.725 12.725 0 0 0-3.59-.011l-5.13.918a94.41 94.41 0 0 1-2.491.442V.324a7.213 7.213 0 0 1 3.952-.09 10.087 10.087 0 0 1 2.118.951 17.859 17.859 0 0 0 4.36 1.993 14.13 14.13 0 0 0 6.7-.034l4.8-.872 5.016-.906 5.048-1.04ZM6.705 24.619a14.812 14.812 0 0 1 9.7 1.03 12.363 12.363 0 0 0 8.437 1.529l7.154-1.291v5.8a8.37 8.37 0 0 1-3.055.26 6.509 6.509 0 0 1-1.619-.464l-3.714-1.948a12.4 12.4 0 0 0-7.2-.838l-15.366 2.82L0 31.686v-5.8l1.28-.26 3.363-.623c.679-.125 1.393-.249 2.061-.385ZM-.003 15.32v-4.462l13.23-2.417a15.734 15.734 0 0 1 9.252 1.665 12.723 12.723 0 0 0 8.606.94l.914-.192v4.462L29.08 13.65a12.472 12.472 0 0 0-6.941-1.031l-8.131 1.483c-.974.182-2.921.532-2.921.532l-7.406 1.371a5.23 5.23 0 0 1-3.684-.685ZM31.997 16.851v4.393l-13.11 2.413a15.735 15.735 0 0 1-9.252-1.665 12.721 12.721 0 0 0-8.606-.94l-1.03.193v-4.394l3.035 1.6a12.476 12.476 0 0 0 6.941 1.03l8.13-1.483c.974-.182 2.922-.532 2.922-.532l7.406-1.371a5.219 5.219 0 0 1 3.564.756Z"/></g></g></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 144 32" width="144" height="32" class="fill-current hidden sm:block" aria-label="Ir a la página de inicio de la aplicación" role="img"><defs><clipPath id="b-logo-expanded"><path fill="rgb(252, 228, 0)" d="M0 0h31.509v31.495H0z"></path></clipPath><clipPath id="a-logo-expanded"><path d="M0 0h144v32H0z"></path></clipPath></defs><g clip-path="url(#a-logo-expanded)"><path fill="rgb(252, 228, 0)" d="M0 .205h31.509V31.7H0z"></path><g clip-path="url(#b-logo-expanded)" transform="translate(0 .205)"><g fill="#dd171b" fill-rule="evenodd"><path d="m31.509 6.048-7.568 1.515a14.545 14.545 0 0 1-7.905-1.025 15.04 15.04 0 0 0-5-1.817 12.536 12.536 0 0 0-3.535-.011l-5.051.9c-.8.156-1.639.3-2.453.434V.315A7.1 7.1 0 0 1 3.888.226a9.926 9.926 0 0 1 2.085.936 17.6 17.6 0 0 0 4.293 1.962 13.92 13.92 0 0 0 6.6-.034l4.728-.858 4.939-.892 4.97-1.024ZM6.602 24.229a14.592 14.592 0 0 1 9.555 1.014 12.178 12.178 0 0 0 8.307 1.5l7.044-1.271v5.706a8.247 8.247 0 0 1-3.008.256 6.4 6.4 0 0 1-1.594-.457l-3.657-1.917a12.217 12.217 0 0 0-7.092-.825L1.026 31.011 0 31.177v-5.706l1.26-.256 3.312-.613c.669-.123 1.371-.245 2.029-.379ZM-.003 15.077v-4.391l13.027-2.377a15.5 15.5 0 0 1 9.11 1.638 12.535 12.535 0 0 0 8.474.925l.9-.189v4.391l-2.874-1.639a12.286 12.286 0 0 0-6.835-1.014l-8.006 1.46c-.959.179-2.877.524-2.877.524l-7.292 1.349a5.152 5.152 0 0 1-3.627-.677ZM31.509 16.583v4.324L18.6 23.282a15.5 15.5 0 0 1-9.11-1.638 12.532 12.532 0 0 0-8.474-.925l-1.015.19v-4.324l2.988 1.572a12.291 12.291 0 0 0 6.835 1.014l8.006-1.46c.959-.178 2.877-.524 2.877-.524l7.292-1.349a5.142 5.142 0 0 1 3.51.745Z"></path></g></g><path d="M38.2 28.807v-8.551h1.393c2.893 0 4.478 1.522 4.478 4.286 0 2.829-1.521 4.265-4.5 4.265Zm10.4-11.4v14.294h9.47v-2.893h-6.277v-3.257h6.214v-2.893h-6.214v-2.379h6.277v-2.871Zm21.751 0-5.206 14.294h3.385l1.542-4.35h4.371l1.521 4.35h3.45L74.1 17.407Zm1.885 2.956-1.328 4.223h2.679Zm42.341 4.03h-3.192v4.5a4.206 4.206 0 0 1-1.371.193 4.251 4.251 0 0 1-4.242-4.5 4.443 4.443 0 0 1 4.735-4.65 7.481 7.481 0 0 1 4.071 1.243v-3.257a11.674 11.674 0 0 0-4.349-.857c-4.628 0-7.841 3.107-7.841 7.564 0 4.393 3.149 7.372 7.841 7.372a12.977 12.977 0 0 0 4.349-.75Zm16.132.129a7.424 7.424 0 1 0-7.391 7.436 7.122 7.122 0 0 0 7.393-7.436Zm-7.456-4.458c-2.4 0-4.006 1.822-4.006 4.5s1.65 4.5 4.071 4.5c2.4 0 3.985-1.8 3.985-4.5s-1.627-4.501-4.048-4.501Zm8.689-2.657v14.294h3.257v-9.108l5.762 9.108h3.021V17.407h-3.256v8.889l-5.532-8.889ZM46.922 7.33h-3.193v4.5a4.335 4.335 0 0 1-5.613-4.307 4.443 4.443 0 0 1 4.735-4.65 7.487 7.487 0 0 1 4.071 1.243V.859a11.674 11.674 0 0 0-4.35-.858c-4.628 0-7.841 3.107-7.841 7.565 0 4.393 3.15 7.371 7.841 7.371a12.99 12.99 0 0 0 4.35-.75Zm16.116.128a7.424 7.424 0 1 0-7.392 7.436 7.122 7.122 0 0 0 7.396-7.436Zm-7.456-4.457c-2.4 0-4.006 1.821-4.006 4.5s1.65 4.5 4.071 4.5c2.4 0 3.985-1.8 3.985-4.5s-1.626-4.5-4.047-4.5ZM64.107.344v14.293h5.914c3.15 0 4.992-1.565 4.992-4.243a3.717 3.717 0 0 0-2.978-3.728 3.133 3.133 0 0 0 1.95-2.936c.021-2.272-1.521-3.386-4.606-3.386Zm4.757 5.336c1.393 0 1.95-.386 1.95-1.35 0-.921-.536-1.264-2.057-1.264h-1.393V5.68Zm.429 6.043c1.585 0 2.271-.493 2.271-1.651 0-1.2-.707-1.671-2.4-1.671h-1.8v3.322ZM78.879.344h-3.192v14.293h3.192Zm1.39 0v14.293h9.47v-2.893h-6.278V8.487h6.214V5.594h-6.214V3.216h6.278V.345Zm50.463 7.114a7.424 7.424 0 1 0-7.392 7.436 7.122 7.122 0 0 0 7.395-7.436Zm-7.456-4.457c-2.4 0-4.006 1.821-4.006 4.5s1.65 4.5 4.071 4.5c2.4 0 3.985-1.8 3.985-4.5s-1.626-4.5-4.047-4.5ZM97.917 24.585l-1.35-4.223-1.328 4.223ZM83.249 31.7v-5.872h.407c2.057 0 2.271.214 3.642 3.75a7.159 7.159 0 0 0 .3.729l.278.664a6.4 6.4 0 0 0 .343.729h4.641l1.543-4.35h4.371l1.521 4.35h3.45l-5.314-14.294h-3.749L90.46 28.997c-.3-.622-.642-1.371-1.04-2.291a3.042 3.042 0 0 0-1.907-2.014 3.416 3.416 0 0 0 2.614-3.429c0-2.571-1.693-3.857-5.1-3.857H79.97V31.7Zm0-8.572h1.414c1.371 0 2.057-.493 2.057-1.521s-.622-1.478-2.014-1.478h-1.457Zm11.156-8.492V8.764h.407c2.057 0 2.271.214 3.642 3.75a6.982 6.982 0 0 0 .3.729l.278.665a6.37 6.37 0 0 0 .342.729h6.432l.018-9.169 5.745 9.169h3.021V.344h-3.256l.014 8.769-5.542-8.769h-3.257v13.3a29.76 29.76 0 0 1-1.975-4 3.043 3.043 0 0 0-1.907-2.014 3.415 3.415 0 0 0 2.614-3.428c0-2.572-1.693-3.857-5.1-3.857h-5.054v14.293Zm0-8.572h1.412c1.371 0 2.056-.493 2.056-1.521s-.621-1.478-2.013-1.478h-1.457Zm-59.44 11.342V31.7h4.778c4.842 0 7.692-2.657 7.692-7.158 0-4.479-2.914-7.136-7.863-7.136Z" fill="#161615" fill-rule="evenodd"></path></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 144 32" width="144" height="32" class="fill-current hidden sm:block" aria-label="Ir a la página de inicio de la aplicación" role="img"><defs><clipPath id="b-logo-expanded"><path fill="rgb(252, 228, 0)" d="M0 0h31.509v31.495H0z"></path></clipPath><clipPath id="a-logo-expanded"><path d="M0 0h144v32H0z"></path></clipPath></defs><g clip-path="url(#a-logo-expanded)"><path fill="rgb(252, 228, 0)" d="M0 .205h31.509V31.7H0z"></path><g clip-path="url(#b-logo-expanded)" transform="translate(0 .205)"><g fill="#dd171b" fill-rule="evenodd"><path d="m31.509 6.048-7.568 1.515a14.545 14.545 0 0 1-7.905-1.025 15.04 15.04 0 0 0-5-1.817 12.536 12.536 0 0 0-3.535-.011l-5.051.9c-.8.156-1.639.3-2.453.434V.315A7.1 7.1 0 0 1 3.888.226a9.926 9.926 0 0 1 2.085.936 17.6 17.6 0 0 0 4.293 1.962 13.92 13.92 0 0 0 6.6-.034l4.728-.858 4.939-.892 4.97-1.024ZM6.602 24.229a14.592 14.592 0 0 1 9.555 1.014 12.178 12.178 0 0 0 8.307 1.5l7.044-1.271v5.706a8.247 8.247 0 0 1-3.008.256 6.4 6.4 0 0 1-1.594-.457l-3.657-1.917a12.217 12.217 0 0 0-7.092-.825L1.026 31.011 0 31.177v-5.706l1.26-.256 3.312-.613c.669-.123 1.371-.245 2.029-.379ZM-.003 15.077v-4.391l13.027-2.377a15.5 15.5 0 0 1 9.11 1.638 12.535 12.535 0 0 0 8.474.925l.9-.189v4.391l-2.874-1.639a12.286 12.286 0 0 0-6.835-1.014l-8.006 1.46c-.959.179-2.877.524-2.877.524l-7.292 1.349a5.152 5.152 0 0 1-3.627-.677ZM31.509 16.583v4.324L18.6 23.282a15.5 15.5 0 0 1-9.11-1.638 12.532 12.532 0 0 0-8.474-.925l-1.015.19v-4.324l2.988 1.572a12.291 12.291 0 0 0 6.835 1.014l8.006-1.46c.959-.178 2.877-.524 2.877-.524l7.292-1.349a5.142 5.142 0 0 1 3.51.745Z"></path></g></g><path d="M38.2 28.807v-8.551h1.393c2.893 0 4.478 1.522 4.478 4.286 0 2.829-1.521 4.265-4.5 4.265Zm10.4-11.4v14.294h9.47v-2.893h-6.277v-3.257h6.214v-2.893h-6.214v-2.379h6.277v-2.871Zm21.751 0-5.206 14.294h3.385l1.542-4.35h4.371l1.521 4.35h3.45L74.1 17.407Zm1.885 2.956-1.328 4.223h2.679Zm42.341 4.03h-3.192v4.5a4.206 4.206 0 0 1-1.371.193 4.251 4.251 0 0 1-4.242-4.5 4.443 4.443 0 0 1 4.735-4.65 7.481 7.481 0 0 1 4.071 1.243v-3.257a11.674 11.674 0 0 0-4.349-.857c-4.628 0-7.841 3.107-7.841 7.564 0 4.393 3.149 7.372 7.841 7.372a12.977 12.977 0 0 0 4.349-.75Zm16.132.129a7.424 7.424 0 1 0-7.391 7.436 7.122 7.122 0 0 0 7.393-7.436Zm-7.456-4.458c-2.4 0-4.006 1.822-4.006 4.5s1.65 4.5 4.071 4.5c2.4 0 3.985-1.8 3.985-4.5s-1.627-4.501-4.048-4.501Zm8.689-2.657v14.294h3.257v-9.108l5.762 9.108h3.021V17.407h-3.256v8.889l-5.532-8.889ZM46.922 7.33h-3.193v4.5a4.335 4.335 0 0 1-5.613-4.307 4.443 4.443 0 0 1 4.735-4.65 7.487 7.487 0 0 1 4.071 1.243V.859a11.674 11.674 0 0 0-4.35-.858c-4.628 0-7.841 3.107-7.841 7.565 0 4.393 3.15 7.371 7.841 7.371a12.99 12.99 0 0 0 4.35-.75Zm16.116.128a7.424 7.424 0 1 0-7.392 7.436 7.122 7.122 0 0 0 7.396-7.436Zm-7.456-4.457c-2.4 0-4.006 1.821-4.006 4.5s1.65 4.5 4.071 4.5c2.4 0 3.985-1.8 3.985-4.5s-1.626-4.5-4.047-4.5ZM64.107.344v14.293h5.914c3.15 0 4.992-1.565 4.992-4.243a3.717 3.717 0 0 0-2.978-3.728 3.133 3.133 0 0 0 1.95-2.936c.021-2.272-1.521-3.386-4.606-3.386Zm4.757 5.336c1.393 0 1.95-.386 1.95-1.35 0-.921-.536-1.264-2.057-1.264h-1.393V5.68Zm.429 6.043c1.585 0 2.271-.493 2.271-1.651 0-1.2-.707-1.671-2.4-1.671h-1.8v3.322ZM78.879.344h-3.192v14.293h3.192Zm1.39 0v14.293h9.47v-2.893h-6.278V8.487h6.214V5.594h-6.214V3.216h6.278V.345Zm50.463 7.114a7.424 7.424 0 1 0-7.392 7.436 7.122 7.122 0 0 0 7.395-7.436Zm-7.456-4.457c-2.4 0-4.006 1.821-4.006 4.5s1.65 4.5 4.071 4.5c2.4 0 3.985-1.8 3.985-4.5s-1.626-4.5-4.047-4.5ZM97.917 24.585l-1.35-4.223-1.328 4.223ZM83.249 31.7v-5.872h.407c2.057 0 2.271.214 3.642 3.75a7.159 7.159 0 0 0 .3.729l.278.664a6.4 6.4 0 0 0 .343.729h4.641l1.543-4.35h4.371l1.521 4.35h3.45l-5.314-14.294h-3.749L90.46 28.997c-.3-.622-.642-1.371-1.04-2.291a3.042 3.042 0 0 0-1.907-2.014 3.416 3.416 0 0 0 2.614-3.429c0-2.571-1.693-3.857-5.1-3.857H79.97V31.7Zm0-8.572h1.414c1.371 0 2.057-.493 2.057-1.521s-.622-1.478-2.014-1.478h-1.457Zm11.156-8.492V8.764h.407c2.057 0 2.271.214 3.642 3.75a6.982 6.982 0 0 0 .3.729l.278.665a6.37 6.37 0 0 0 .342.729h6.432l.018-9.169 5.745 9.169h3.021V.344h-3.256l.014 8.769-5.542-8.769h-3.257v13.3a29.76 29.76 0 0 1-1.975-4 3.043 3.043 0 0 0-1.907-2.014 3.415 3.415 0 0 0 2.614-3.428c0-2.572-1.693-3.857-5.1-3.857h-5.054v14.293Zm0-8.572h1.412c1.371 0 2.056-.493 2.056-1.521s-.621-1.478-2.013-1.478h-1.457Zm-59.44 11.342V31.7h4.778c4.842 0 7.692-2.657 7.692-7.158 0-4.479-2.914-7.136-7.863-7.136Z" fill="#161615" fill-rule="evenodd"></path></g></svg>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32" aria-label="YourLogo" role="img">
|
|
2
|
+
<defs>
|
|
3
|
+
<clipPath id="clip-hex">
|
|
4
|
+
<path d="M16 1.5L29 9V23L16 30.5L3 23V9L16 1.5Z"/>
|
|
5
|
+
</clipPath>
|
|
6
|
+
</defs>
|
|
7
|
+
<!-- Hexagono exterior -->
|
|
8
|
+
<path d="M16 1.5L29 9V23L16 30.5L3 23V9L16 1.5Z" fill="#00607a" stroke="#00475c" stroke-width="1"/>
|
|
9
|
+
<!-- Cuadrado interior -->
|
|
10
|
+
<rect x="10" y="10" width="12" height="12" rx="1" fill="#ffffff"/>
|
|
11
|
+
<!-- Círculo centro -->
|
|
12
|
+
<circle cx="16" cy="16" r="3" fill="#00607a"/>
|
|
13
|
+
</svg>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 144 32" width="144" height="32" aria-label="YourLogo" role="img">
|
|
2
|
+
<defs>
|
|
3
|
+
<clipPath id="clip-hex-exp">
|
|
4
|
+
<path d="M16 1.5L29 9V23L16 30.5L3 23V9L16 1.5Z"/>
|
|
5
|
+
</clipPath>
|
|
6
|
+
</defs>
|
|
7
|
+
<!-- Icono (32x32 en el espacio izquierdo) -->
|
|
8
|
+
<!-- Hexagono exterior -->
|
|
9
|
+
<path d="M16 1.5L29 9V23L16 30.5L3 23V9L16 1.5Z" fill="#00607a" stroke="#00475c" stroke-width="1"/>
|
|
10
|
+
<!-- Cuadrado interior -->
|
|
11
|
+
<rect x="10" y="10" width="12" height="12" rx="1" fill="#ffffff"/>
|
|
12
|
+
<!-- Círculo centro -->
|
|
13
|
+
<circle cx="16" cy="16" r="3" fill="#00607a"/>
|
|
14
|
+
|
|
15
|
+
<!-- Texto YourLogo -->
|
|
16
|
+
<text x="42" y="21" font-family="Arial, Helvetica, sans-serif" font-size="14" font-weight="600" fill="#3c4c5c">YourLogo</text>
|
|
17
|
+
</svg>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 144 32" width="144" height="32" aria-label="YourLogo" role="img">
|
|
2
|
+
<defs>
|
|
3
|
+
<clipPath id="clip-hex-exp">
|
|
4
|
+
<path d="M16 1.5L29 9V23L16 30.5L3 23V9L16 1.5Z"/>
|
|
5
|
+
</clipPath>
|
|
6
|
+
</defs>
|
|
7
|
+
<!-- Icono (32x32 en el espacio izquierdo) -->
|
|
8
|
+
<!-- Hexagono exterior -->
|
|
9
|
+
<path d="M16 1.5L29 9V23L16 30.5L3 23V9L16 1.5Z" fill="#00607a" stroke="#00475c" stroke-width="1"/>
|
|
10
|
+
<!-- Cuadrado interior -->
|
|
11
|
+
<rect x="10" y="10" width="12" height="12" rx="1" fill="#ffffff"/>
|
|
12
|
+
<!-- Círculo centro -->
|
|
13
|
+
<circle cx="16" cy="16" r="3" fill="#00607a"/>
|
|
14
|
+
|
|
15
|
+
<!-- Texto YourLogo -->
|
|
16
|
+
<text x="42" y="21" font-family="Arial, Helvetica, sans-serif" font-size="14" font-weight="600" fill="#3c4c5c">YourLogo</text>
|
|
17
|
+
</svg>
|