|
64 | 64 | window.location.reload(); |
65 | 65 | }); |
66 | 66 |
|
67 | | - document.querySelector('#useNavbar').addEventListener('change', (e) => { |
| 67 | + const useNavbarToggle = document.querySelector('#useNavbar'); |
| 68 | + useNavbarToggle.addEventListener('change', (e) => { |
| 69 | + useNavbar(e.target.checked); |
| 70 | + }); |
| 71 | + |
| 72 | + function useNavbar(useNavbar) { |
| 73 | + useNavbarToggle.checked = useNavbar; |
68 | 74 | const drawerToggle = document.querySelector('vaadin-app-layout > header[slot] vaadin-drawer-toggle'); |
69 | | - if (e.target.checked) { |
| 75 | + if (useNavbar) { |
| 76 | + localStorage.setItem('aura-navbar', useNavbar); |
70 | 77 | document.querySelector('vaadin-app-layout > header[slot]').setAttribute('slot', 'navbar'); |
71 | 78 | document.querySelector('vaadin-app-layout > footer[slot]').setAttribute('slot', 'navbar'); |
72 | 79 | document.querySelector('vaadin-app-layout > header[slot]').prepend(drawerToggle); |
73 | 80 | } else { |
| 81 | + localStorage.removeItem('aura-navbar'); |
74 | 82 | document.querySelector('vaadin-app-layout > header[slot]').setAttribute('slot', 'drawer'); |
75 | 83 | document.querySelector('vaadin-app-layout > footer[slot]').setAttribute('slot', 'drawer'); |
76 | 84 | document.querySelector('vaadin-app-layout > header[slot]').append(drawerToggle); |
77 | 85 | } |
78 | | - }); |
| 86 | + } |
| 87 | + |
| 88 | + useNavbar(localStorage.getItem('aura-navbar') !== null); |
79 | 89 |
|
80 | 90 | const generateItems = (count) => { |
81 | 91 | return Array.from({ length: count }, (_, i) => ({ |
|
222 | 232 | root.innerHTML = `<span theme="badge ${badgeColors[model.index % badgeColors.length]}">Status</span>`; |
223 | 233 | }; |
224 | 234 | grid.querySelector('vaadin-grid-column.avatar').renderer = (root, col, model) => { |
225 | | - root.innerHTML = `<vaadin-avatar name="${model.item.name}"></vaadin-avatar>`; |
| 235 | + root.innerHTML = `<vaadin-avatar name="${model.item.name}" color-index="${model.index % 9}"></vaadin-avatar>`; |
226 | 236 | }; |
227 | 237 | } |
228 | 238 |
|
|
245 | 255 | } |
246 | 256 | }, |
247 | 257 | ); |
| 258 | + |
| 259 | + // Fake navigation: prevent navigation, update 'current' item manually |
| 260 | + document.querySelectorAll('vaadin-side-nav').forEach((nav) => { |
| 261 | + nav.addEventListener('click', (e) => { |
| 262 | + const item = e.target.closest('vaadin-side-nav-item'); |
| 263 | + if (item) { |
| 264 | + e.preventDefault(); |
| 265 | + item |
| 266 | + .closest('vaadin-side-nav') |
| 267 | + .parentNode.querySelectorAll('vaadin-side-nav-item') |
| 268 | + .forEach((item) => item.removeAttribute('current')); |
| 269 | + item.setAttribute('current', ''); |
| 270 | + } |
| 271 | + }); |
| 272 | + }); |
248 | 273 | </script> |
249 | 274 |
|
250 | 275 | <style> |
251 | 276 | html { |
252 | 277 | --icon-rotate-ccw: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/><path d="M3 3v5h5"/></svg>'); |
253 | 278 | } |
254 | 279 |
|
255 | | - html, body, vaadin-app-layout { |
| 280 | + html, |
| 281 | + body, |
| 282 | + vaadin-app-layout { |
256 | 283 | margin: 0; |
257 | 284 | height: 100%; |
258 | 285 | } |
259 | 286 |
|
| 287 | + body { |
| 288 | + transition: none !important; |
| 289 | + } |
| 290 | + |
| 291 | + [theme~='small'] { |
| 292 | + --aura-base-size: 12; |
| 293 | + --aura-base-font-size: 13; |
| 294 | + } |
| 295 | + |
| 296 | + vaadin-avatar[theme~='vaadin']::part(icon) { |
| 297 | + mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none"><path d="M11.1854 7.48145C11.7551 7.48145 12.2184 7.95693 12.2186 8.54199C12.2186 8.72558 12.1719 8.90779 12.0819 9.06934L8.86023 15.1895C8.8531 15.2033 8.84588 15.2156 8.83875 15.2285C8.69333 15.5564 8.3724 15.7852 7.9989 15.7852C7.62026 15.7851 7.29542 15.55 7.1532 15.2148C7.14827 15.206 7.14334 15.1978 7.13855 15.1885L3.91687 9.06738C3.82776 8.90728 3.78015 8.72555 3.78015 8.54199C3.78037 7.95699 4.24389 7.48154 4.81335 7.48145C5.27105 7.48145 5.58212 7.7112 5.7948 8.20996L7.99988 12.4307L10.2069 8.20508C10.4171 7.71153 10.7278 7.48156 11.1854 7.48145Z" fill="currentColor"/><path d="M15.2108 1C15.6505 1.00007 15.9997 1.36209 15.9999 1.80859V3.14258C15.9999 4.71011 15.2872 5.49403 13.6552 5.49414H10.035C8.95299 5.49419 8.84659 5.95787 8.84656 6.4082C8.84656 6.45438 8.84269 6.49396 8.83777 6.53613C8.81197 6.98687 8.4453 7.34557 7.995 7.3457C7.54459 7.3457 7.17686 6.98894 7.15125 6.53809C7.14633 6.49582 7.14343 6.45432 7.14343 6.4082C7.1434 5.95784 7.03606 5.49414 5.95398 5.49414H2.33484C0.702567 5.49414 -9.57545e-05 4.71022 -0.00012207 3.14258V1.80859C5.05523e-05 1.36204 0.337484 1 0.777222 1C1.21691 1.00006 1.55049 1.36208 1.55066 1.80859V2.25977C1.55078 2.76409 1.89158 3.13184 2.6366 3.13184H6.18542C7.79968 3.13207 7.92422 4.34896 7.97742 4.99316H8.01257C8.06578 4.3489 8.19 3.13184 9.80457 3.13184H13.3534C14.0982 3.13177 14.4157 2.77682 14.4159 2.27246L14.4178 1.80859C14.418 1.36204 14.7711 1 15.2108 1Z" fill="currentColor"/></svg>'); |
| 298 | + mask-size: 60%; |
| 299 | + } |
| 300 | + |
| 301 | + vaadin-avatar[theme~='square'] { |
| 302 | + border-radius: var(--vaadin-radius-m); |
| 303 | + } |
| 304 | + |
260 | 305 | /* TODO re-evaluate MDL API, how to achieve this */ |
261 | 306 | .dashboard-section::part(master) { |
262 | 307 | flex-basis: 15em; |
|
300 | 345 | <body> |
301 | 346 | <vaadin-app-layout> |
302 | 347 | <header slot="drawer" class="aura-view-header"> |
| 348 | + <vaadin-avatar |
| 349 | + theme="vaadin square" |
| 350 | + color-index="0" |
| 351 | + style="--vaadin-avatar-size: 1.25lh; margin-inline: var(--vaadin-padding-s)" |
| 352 | + ></vaadin-avatar> |
303 | 353 | <div class="aura-view-heading">Aura</div> |
304 | 354 | <vaadin-drawer-toggle theme="tertiary permanent"></vaadin-drawer-toggle> |
305 | 355 | </header> |
|
311 | 361 | <vaadin-side-nav-item path=""> |
312 | 362 | <vaadin-icon src="./assets/lucide-icons/chart-column-big.svg" slot="prefix"></vaadin-icon> |
313 | 363 | Dashboard |
314 | | - <span theme="badge" slot="suffix" aria-label="(2 new items)">2</span> |
| 364 | + <span theme="badge accent" slot="suffix" aria-label="(2 new items)">2</span> |
315 | 365 | </vaadin-side-nav-item> |
316 | 366 |
|
317 | 367 | <vaadin-side-nav-item> |
|
355 | 405 | <vaadin-avatar abbr="J" style="--vaadin-avatar-size: 1.25lh" slot="prefix" tabindex="-1"></vaadin-avatar> |
356 | 406 | <span>John Smith</span> |
357 | 407 | </vaadin-button> |
358 | | - <vaadin-button theme="tertiary" id="theme-editor-btn"> |
| 408 | + <vaadin-button theme="tertiary" id="theme-editor-btn" aria-label="Edit Theme"> |
359 | 409 | <vaadin-icon src="./assets/lucide-icons/palette.svg"></vaadin-icon> |
| 410 | + <vaadin-tooltip slot="tooltip" text="Edit Theme"></vaadin-tooltip> |
360 | 411 | </vaadin-button> |
| 412 | + <vaadin-popover for="theme-editor-btn" position="top-start" width="320px" theme="small"> |
| 413 | + <vaadin-vertical-layout |
| 414 | + class="editor" |
| 415 | + theme="padding" |
| 416 | + style="gap: var(--vaadin-gap-xl); align-items: stretch" |
| 417 | + > |
| 418 | + <h3>Edit Theme</h3> |
| 419 | + <vaadin-checkbox label="Use Navbar" id="useNavbar"></vaadin-checkbox> |
| 420 | + <aura-scheme-control property="--aura-color-scheme" label="--aura-color-scheme"></aura-scheme-control> |
| 421 | + <aura-scheme-control |
| 422 | + property="--aura-content-color-scheme" |
| 423 | + label="--aura-content-color-scheme" |
| 424 | + ></aura-scheme-control> |
| 425 | + <aura-scheme-control |
| 426 | + property="--aura-notification-color-scheme" |
| 427 | + label="--aura-notification-color-scheme" |
| 428 | + ></aura-scheme-control> |
| 429 | + <aura-color-control property="--aura-accent-light" label="--aura-accent-light"></aura-color-control> |
| 430 | + <aura-color-control property="--aura-background-light" label="--aura-background-light"></aura-color-control> |
| 431 | + <aura-color-control property="--aura-accent-dark" label="--aura-accent-dark"></aura-color-control> |
| 432 | + <aura-color-control property="--aura-background-dark" label="--aura-background-dark"></aura-color-control> |
| 433 | + <aura-number-control property="--aura-contrast" min="0" max="2" step="0.1"></aura-number-control> |
| 434 | + <aura-number-control |
| 435 | + property="--aura-overlay-surface-opacity" |
| 436 | + min="0.5" |
| 437 | + max="1" |
| 438 | + step="0.01" |
| 439 | + ></aura-number-control> |
| 440 | + <aura-inset-control></aura-inset-control> |
| 441 | + <aura-number-control property="--aura-base-radius" min="0" max="8" step="0.5"></aura-number-control> |
| 442 | + <aura-number-control property="--aura-base-size" min="12" max="20"></aura-number-control> |
| 443 | + <aura-number-control |
| 444 | + property="--aura-base-font-size" |
| 445 | + label="--aura-base-font-size" |
| 446 | + min="12" |
| 447 | + max="18" |
| 448 | + ></aura-number-control> |
| 449 | + <aura-font-family-control label="--aura-font-family"></aura-font-family-control> |
| 450 | + <hr /> |
| 451 | + <vaadin-button id="resetAll"> |
| 452 | + <vaadin-icon src="./assets/lucide-icons/rotate-ccw.svg" slot="prefix"></vaadin-icon> |
| 453 | + Reset All |
| 454 | + </vaadin-button> |
| 455 | + </vaadin-vertical-layout> |
| 456 | + </vaadin-popover> |
361 | 457 | </footer> |
362 | 458 |
|
363 | 459 | <vaadin-master-detail-layout master-min-size="14rem" detail-min-size="40rem" class="dashboard-section"> |
@@ -483,7 +579,7 @@ <h1>Components</h1> |
483 | 579 | } |
484 | 580 |
|
485 | 581 | .components-view .sizes > div { |
486 | | - background: currentColor; |
| 582 | + background: var(--aura-accent-color); |
487 | 583 | height: 4px; |
488 | 584 | width: var(--size); |
489 | 585 | } |
@@ -638,13 +734,22 @@ <h5>Sizes</h5> |
638 | 734 | </div> |
639 | 735 |
|
640 | 736 | <div class="aura-surface component"> |
641 | | - <div class="type-scale"> |
642 | | - <h1>Heading</h1> |
643 | | - <h2>Heading</h2> |
644 | | - <h3>Heading</h3> |
645 | | - <h4>Heading</h4> |
646 | | - <h5>Heading</h5> |
647 | | - <h6>Heading</h6> |
| 737 | + <div class="type-scale" style="font-weight: var(--aura-font-weight-semibold)"> |
| 738 | + <div style="font-size: var(--aura-font-size-xl); line-height: var(--aura-line-height-xl)"> |
| 739 | + Heading |
| 740 | + </div> |
| 741 | + <div style="font-size: var(--aura-font-size-l); line-height: var(--aura-line-height-l)"> |
| 742 | + Heading |
| 743 | + </div> |
| 744 | + <div style="font-size: var(--aura-font-size-m); line-height: var(--aura-line-height-m)"> |
| 745 | + Heading |
| 746 | + </div> |
| 747 | + <div style="font-size: var(--aura-font-size-s); line-height: var(--aura-line-height-x)"> |
| 748 | + Heading |
| 749 | + </div> |
| 750 | + <div style="font-size: var(--aura-font-size-xs); line-height: var(--aura-line-height-xs)"> |
| 751 | + Heading |
| 752 | + </div> |
648 | 753 | </div> |
649 | 754 | </div> |
650 | 755 |
|
@@ -695,53 +800,5 @@ <h6>Heading</h6> |
695 | 800 | </main> |
696 | 801 | </vaadin-master-detail-layout> |
697 | 802 | </vaadin-app-layout> |
698 | | - |
699 | | - <vaadin-popover |
700 | | - for="theme-editor-btn" |
701 | | - position="top-start" |
702 | | - width="320px" |
703 | | - style="--aura-base-size: 12; --aura-base-font-size: 13" |
704 | | - theme |
705 | | - > |
706 | | - <vaadin-vertical-layout class="editor" theme="padding" style="gap: var(--vaadin-gap-xl); align-items: stretch"> |
707 | | - <h3>Edit Theme</h3> |
708 | | - <vaadin-checkbox label="Use Navbar" id="useNavbar"></vaadin-checkbox> |
709 | | - <aura-scheme-control property="--aura-color-scheme" label="--aura-color-scheme"></aura-scheme-control> |
710 | | - <aura-scheme-control |
711 | | - property="--aura-content-color-scheme" |
712 | | - label="--aura-content-color-scheme" |
713 | | - ></aura-scheme-control> |
714 | | - <aura-scheme-control |
715 | | - property="--aura-notification-color-scheme" |
716 | | - label="--aura-notification-color-scheme" |
717 | | - ></aura-scheme-control> |
718 | | - <aura-color-control property="--aura-accent-light" label="--aura-accent-light"></aura-color-control> |
719 | | - <aura-color-control property="--aura-background-light" label="--aura-background-light"></aura-color-control> |
720 | | - <aura-color-control property="--aura-accent-dark" label="--aura-accent-dark"></aura-color-control> |
721 | | - <aura-color-control property="--aura-background-dark" label="--aura-background-dark"></aura-color-control> |
722 | | - <aura-number-control property="--aura-contrast" min="0" max="2" step="0.1"></aura-number-control> |
723 | | - <aura-number-control |
724 | | - property="--aura-overlay-surface-opacity" |
725 | | - min="0.5" |
726 | | - max="1" |
727 | | - step="0.01" |
728 | | - ></aura-number-control> |
729 | | - <aura-inset-control></aura-inset-control> |
730 | | - <aura-number-control property="--aura-base-radius" min="0" max="8" step="0.5"></aura-number-control> |
731 | | - <aura-number-control property="--aura-base-size" min="12" max="20"></aura-number-control> |
732 | | - <aura-number-control |
733 | | - property="--aura-base-font-size" |
734 | | - label="--aura-base-font-size" |
735 | | - min="12" |
736 | | - max="18" |
737 | | - ></aura-number-control> |
738 | | - <aura-font-family-control label="--aura-font-family"></aura-font-family-control> |
739 | | - <hr /> |
740 | | - <vaadin-button id="resetAll"> |
741 | | - <vaadin-icon src="./assets/lucide-icons/rotate-ccw.svg" slot="prefix"></vaadin-icon> |
742 | | - Reset All |
743 | | - </vaadin-button> |
744 | | - </vaadin-vertical-layout> |
745 | | - </vaadin-popover> |
746 | 803 | </body> |
747 | 804 | </html> |
0 commit comments