@vaadin/aura 25.0.0-alpha20 → 25.0.0-alpha21

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/aura.css CHANGED
@@ -6,22 +6,31 @@
6
6
  @import './src/surface.css';
7
7
  @import './src/typography.css';
8
8
 
9
+ @import './src/components/accordion-details.css';
9
10
  @import './src/components/app-layout.css';
10
11
  @import './src/components/avatar.css';
11
12
  @import './src/components/button.css';
12
13
  @import './src/components/card.css';
13
14
  @import './src/components/checkbox-radio.css';
15
+ @import './src/components/confirm-dialog.css';
16
+ @import './src/components/crud.css';
14
17
  @import './src/components/date-picker.css';
15
18
  @import './src/components/dialog.css';
16
19
  @import './src/components/grid.css';
17
20
  @import './src/components/input-container.css';
21
+ @import './src/components/item-overlay.css';
22
+ @import './src/components/login.css';
18
23
  @import './src/components/master-detail-layout.css';
24
+ @import './src/components/menu-bar.css';
19
25
  @import './src/components/message-input.css';
20
26
  @import './src/components/multi-select-combo-box.css';
21
27
  @import './src/components/notification.css';
22
28
  @import './src/components/overlay.css';
29
+ @import './src/components/progress-bar.css';
30
+ @import './src/components/rich-text-editor.css';
23
31
  @import './src/components/select.css';
24
32
  @import './src/components/side-nav.css';
33
+ @import './src/components/upload.css';
25
34
 
26
35
  :where(:root, :host) {
27
36
  cursor: default;
package/dist/aura.css CHANGED
@@ -1 +1 @@
1
- :where(:root,:host){--aura-contrast:1;--aura-accent-light:#1858d8;--aura-accent-dark:#3670e2;--_color-base:light-dark(oklch(from var(--aura-background-light) 0.1 calc(c / 2 + c * (1 - c)) h),oklch(from var(--aura-background-dark) 1 c h));--vaadin-text-color:light-dark(color-mix(in srgb,var(--_color-base) calc(90% + 5%*var(--aura-contrast)),transparent),color-mix(in srgb,#fff calc(90% + 5%*var(--aura-contrast)),transparent));--vaadin-text-color-secondary:light-dark(color-mix(in srgb,var(--_color-base) calc(55% + 10%*var(--aura-contrast)),transparent),color-mix(in srgb,var(--_color-base) calc(57% + 10%*var(--aura-contrast)),transparent));--vaadin-text-color-disabled:color-mix(in srgb,var(--_color-base) calc(30% + 10%*var(--aura-contrast)),transparent);--_border-color-base:light-dark(oklch(from var(--aura-background-light) 0.1 c h),oklch(from var(--aura-background-dark) 0.85 c h));--vaadin-border-color:color-mix(in srgb,var(--_border-color-base) calc(14% + 6%*var(--aura-contrast)),transparent);--vaadin-border-color-secondary:light-dark(color-mix(in srgb,var(--_border-color-base) max(5%,5% + 3% * var(--aura-contrast)),transparent),color-mix(in srgb,var(--_border-color-base) max(6%,5% + 5% * var(--aura-contrast)),transparent));--aura-background-light:oklch(from var(--aura-accent-light) min(1,l + (1 - l) * 0.9) calc(c * 0.05) h);--aura-background-dark:oklch(from var(--aura-accent-dark) max(0,l/2 - (1 - l) * 0.2) calc(c * 0.05) h);--aura-background:light-dark(var(--aura-background-light),var(--aura-background-dark));--_bg-alt:oklch(from var(--aura-background) calc(l + c) min(c,c * 2 - l/20) calc(h + 180 * var(--_safari-17-deg, 1deg) * l * c * 4));--_bg-accent:radial-gradient(circle at 0% 0%,light-dark(oklch(from var(--aura-background-light) min(1,l + c * 3) min(c,c * 3 - l/20) h),oklch(from var(--aura-background-dark) min(1,l + c) clamp(0,c * 1.5,0.4) h)),transparent 30%);--aura-app-background:var(--_bg-accent),radial-gradient(circle at 25% 0% in xyz,var(--aura-background) 33%,var(--_bg-alt));--aura-accent-color:light-dark(var(--aura-accent-light),var(--aura-accent-dark));--vaadin-focus-ring-color:var(--aura-accent-color);accent-color:var(--aura-accent-color);--aura-accent-contrast:light-dark(oklch(from var(--aura-accent-light) clamp(0,(0.62 - l) * 1000,1) 0 0),oklch(from var(--aura-accent-dark) clamp(0,(0.62 - l) * 1000,1) 0 0));--aura-accent-text-light:color-mix(in srgb,var(--aura-accent-light) calc(70% - 15%*var(--aura-contrast)),var(--vaadin-text-color));--aura-accent-text-dark:color-mix(in srgb,var(--aura-accent-dark) calc(70% - 15%*var(--aura-contrast)),var(--vaadin-text-color));--aura-accent-text:light-dark(var(--aura-accent-text-light),var(--aura-accent-text-dark));--vaadin-user-color:var(--aura-accent-color);--vaadin-background-container:color-mix(in srgb,var(--_color-base) calc(3% + min(3%, 1% * var(--aura-contrast))),transparent);--vaadin-background-container-strong:color-mix(in srgb,var(--_color-base) calc(7% + min(8%, 1.5% * var(--aura-contrast))),transparent);background:var(--aura-app-background);background-attachment:fixed;background-size:100vw 100vh;color:var(--vaadin-text-color)}@supports (color:hsl(0 0 0)){:where(:root,:host){--_safari-17-deg:1}}:where(h1,h2,h3,h4,h5,h6){color:var(--vaadin-text-color)}:where(:root,:host){--aura-color-scheme:light;--aura-content-color-scheme:var(--aura-color-scheme);--aura-notification-color-scheme:var(--aura-color-scheme)}html{color-scheme:var(--aura-color-scheme)}:where(:root,:host){--aura-red:oklch(0.6 0.22 25);--aura-orange:oklch(0.61 0.4 93);--aura-yellow:oklch(0.9 0.36 105);--aura-green:oklch(0.6 0.28 160);--aura-blue:oklch(0.6 0.3 240);--aura-purple:oklch(0.6 0.3 280);--aura-red-text:color-mix(in srgb,var(--aura-red) calc(70% - 15%*var(--aura-contrast)),var(--vaadin-text-color));--aura-orange-text:color-mix(in srgb,var(--aura-orange) calc(70% - 15%*var(--aura-contrast)),var(--vaadin-text-color));--aura-yellow-text:color-mix(in srgb,var(--aura-yellow) calc(65% - 15%*var(--aura-contrast)),var(--vaadin-text-color));--aura-green-text:color-mix(in srgb,var(--aura-green) calc(70% - 15%*var(--aura-contrast)),var(--vaadin-text-color));--aura-blue-text:color-mix(in srgb,var(--aura-blue) calc(70% - 15%*var(--aura-contrast)),var(--vaadin-text-color));--aura-purple-text:color-mix(in srgb,var(--aura-purple) calc(70% - 15%*var(--aura-contrast)),var(--vaadin-text-color))}:where(:root,:host){--aura-shadow-color:light-dark(oklch(from var(--aura-background-light) calc(l - l * 0.8) calc(c / 10) h/0.2),oklch(from var(--aura-background-dark) calc(l - l * 0.8) calc(c / 10) h/0.2));--aura-shadow-m:0 8px 16px -3px var(--aura-shadow-color)}:where(:root,:host){--aura-base-size:16;--_size-ref:16;--aura-base-radius:3;--vaadin-radius-s:min(0.25lh,round(var(--aura-base-radius) * 1px + 2px,1px));--vaadin-radius-m:round(var(--aura-base-radius) * 2px + 3px,1px);--vaadin-radius-l:round(var(--aura-base-radius) * 1.5px + 10px,1px)}:where(:root,:host,[theme]){--vaadin-padding-xs:round(var(--aura-base-size) * 0.25 * pow(var(--aura-base-size)/var(--_size-ref),0.5) * 1px,1px);--vaadin-padding-s:round(var(--aura-base-size) * 0.5 * pow(var(--aura-base-size)/var(--_size-ref),0.75) * 1px,1px);--vaadin-padding-m:round(var(--aura-base-size) * 0.75 * pow(var(--aura-base-size)/var(--_size-ref),0.3) * 1px,1px);--vaadin-padding-l:calc(var(--aura-base-size)*1px);--vaadin-padding-xl:round(var(--aura-base-size) * 1.5 * pow(var(--aura-base-size)/var(--_size-ref),0.1) * 1px,1px);--vaadin-padding-container:round(var(--vaadin-padding-s)/1.4,1px) max(var(--vaadin-padding-s),round(var(--vaadin-radius-m)/2,1px));--vaadin-gap-xs:var(--vaadin-padding-xs);--vaadin-gap-s:var(--vaadin-padding-s);--vaadin-gap-m:var(--vaadin-padding-m);--vaadin-gap-l:var(--vaadin-padding-l);--vaadin-gap-xl:var(--vaadin-padding-xl)}@media (pointer:coarse){:where(:root,:host){--aura-base-size:19}}:where(:root,:host){--aura-surface-level:1}.aura-surface,.aura-surface-solid,::part(input-field),::part(overlay),:is(:root,:host),vaadin-app-layout::part(drawer),vaadin-app-layout::part(navbar),vaadin-button,vaadin-card,vaadin-checkbox::part(checkbox),vaadin-master-detail-layout::part(detail),vaadin-menu-bar-button,vaadin-message-input,vaadin-radio-button::part(radio),vaadin-side-nav-item::part(content){--aura-surface-opacity:0.5;--aura-surface-solid:light-dark(oklch(from var(--aura-background-light) min(1,l + (0.98 - l) * 4 + var(--aura-surface-level) * (0.07 - 0.01 * var(--aura-contrast)) - var(--aura-surface-opacity)/20) clamp(0,c - l/10 * var(--aura-surface-level) + var(--aura-surface-opacity)/40,c) h),oklch(from var(--aura-background-dark) calc(max(l + 0.03, 0.25) + var(--aura-surface-level)*(0.03 - var(--aura-contrast)*0.008) - var(--aura-surface-opacity)/40) clamp(0,c * (1 + l),0.2) h));--aura-surface:color-mix(in oklab,var(--aura-surface-solid) calc(100%*var(--aura-surface-opacity)),transparent);--vaadin-background-color:var(--aura-surface-solid)}.aura-surface{background:var(--aura-surface) padding-box}.aura-surface-solid{--aura-surface-opacity:1;background:var(--aura-surface-solid) padding-box}@font-face{font-display:swap;font-family:Instrument Sans;font-style:normal;font-weight:400 700;src:url(fonts/InstrumentSans/InstrumentSans.woff2) format("woff2")}:where(:root,:host){--aura-font-family-system:system-ui,ui-sans-serif,sans-serif;--aura-font-family-instrument-sans:"Instrument Sans",var(--aura-font-family-system);--aura-font-family:var(--aura-font-family-instrument-sans);--aura-base-font-size:16;--aura-font-size-scale:1.125;--aura-base-line-height:1.4;--aura-font-weight:400;--aura-font-weight-medium:500;--aura-font-weight-semibold:600}@media (pointer:fine){:where(:root,:host){--aura-base-font-size:14}}@supports (-webkit-touch-callout:none){@media (pointer:coarse){:where(:root,:host){font:-apple-system-body;--aura-base-font-size:14}}}:where(:root,:host,[theme]){--aura-font-size-xs:round(var(--aura-font-size-s)/var(--aura-font-size-scale),0.0625rem);--aura-font-size-s:round(var(--aura-font-size-m)/var(--aura-font-size-scale),0.0625rem);--aura-font-size-m:round(var(--aura-base-font-size)/16 * 1rem,0.0625rem);--aura-font-size-l:round(var(--aura-font-size-m) * var(--aura-font-size-scale),0.0625rem);--aura-font-size-xl:round(var(--aura-font-size-l) * var(--aura-font-size-scale),0.0625rem);--aura-line-height-xs:round(var(--aura-font-size-xs) * var(--aura-base-line-height),0.125rem);--aura-line-height-s:round(var(--aura-font-size-s) * var(--aura-base-line-height),0.125rem);--aura-line-height-m:round(var(--aura-font-size-m) * var(--aura-base-line-height),0.125rem);--aura-line-height-l:round(var(--aura-font-size-l) * var(--aura-base-line-height),0.125rem);--aura-line-height-xl:round(var(--aura-font-size-xl) * var(--aura-base-line-height),0.125rem)}:where(body,:host){font-family:var(--aura-font-family);font-optical-sizing:auto;font-style:normal;font-weight:var(--aura-font-weight);-webkit-font-smoothing:var(--aura-font-smoothing,antialiased);-moz-osx-font-smoothing:var(--aura-font-smoothing,grayscale);-webkit-text-size-adjust:none;text-size-adjust:none}:where(body,:host,[theme]:not(html)){font-size:var(--aura-font-size-m);line-height:var(--aura-line-height-m)}:where(h1,h2,h3,h4,h5,h6){font-weight:var(--aura-font-weight-semibold);margin:0;text-wrap:balance}:where(h1){font-size:var(--aura-font-size-xl);line-height:var(--aura-line-height-xl)}:where(h2,h3){font-size:var(--aura-font-size-l);line-height:var(--aura-line-height-l)}:where(h4,h5){font-size:var(--aura-font-size-m);line-height:var(--aura-line-height-m)}:where(h6){font-size:var(--aura-font-size-s);line-height:var(--aura-line-height-s)}:where(:root,:host){--aura-app-layout-inset:1.5vmin;--aura-app-layout-radius:var(--vaadin-radius-l);--_aura-mdl-border:1px;--vaadin-app-layout-navbar-padding-top:0;--vaadin-app-layout-navbar-padding-bottom:0;--vaadin-app-layout-navbar-padding-inline-start:0;--vaadin-app-layout-navbar-padding-inline-end:0}@media (height <= 600px),(width <= 800px){html{--aura-app-layout-inset:0px!important;--_aura-mdl-border:0px}}html:has(vaadin-app-layout){&,body{box-sizing:border-box;height:100%;margin:0;width:100%}}vaadin-app-layout{--_app-layout-radius:clamp(0px,var(--aura-app-layout-radius),var(--aura-app-layout-inset) * 100);padding-block:var(--aura-app-layout-inset);padding-inline-end:var(--aura-app-layout-inset);padding-top:calc(var(--aura-app-layout-inset) + var(--_vaadin-app-layout-navbar-offset-size))}vaadin-app-layout[overlay]{&::part(drawer),&::part(navbar){--vaadin-app-layout-navbar-background:var(--aura-surface);--vaadin-app-layout-drawer-background:var(--aura-surface);--aura-surface-opacity:var(--aura-overlay-surface-opacity);-webkit-backdrop-filter:var(--aura-overlay-backdrop-filter);backdrop-filter:var(--aura-overlay-backdrop-filter)}}vaadin-app-layout:is([overlay],:not([drawer-opened])){padding-inline-start:var(--aura-app-layout-inset)}vaadin-app-layout::part(navbar){justify-content:space-between}vaadin-app-layout:not([overlay])::part(navbar){--vaadin-app-layout-navbar-background:transparent}vaadin-app-layout:not([overlay])::part(drawer){padding-block:var(--aura-app-layout-inset);padding-inline:max(0px,var(--aura-app-layout-inset) - var(--vaadin-padding-s))}vaadin-app-layout>vaadin-scroller[slot=drawer]{padding-inline:var(--vaadin-padding-m);scrollbar-width:thin}vaadin-app-layout>vaadin-scroller:nth-child(1 of [slot=drawer]){padding-top:var(--vaadin-padding-s)}vaadin-app-layout>vaadin-scroller:nth-last-child(1 of [slot=drawer]){padding-bottom:var(--vaadin-padding-s)}vaadin-app-layout>:nth-child(1 of :not([slot])):nth-last-child(1 of :not([slot])){background:linear-gradient(var(--aura-surface),var(--aura-surface)),var(--aura-app-background);background-clip:padding-box;background-origin:border-box;border:var(--_aura-mdl-border) solid var(--vaadin-border-color-secondary);border-block-width:min(var(--aura-app-layout-inset),var(--_aura-mdl-border));border-inline-end-width:min(var(--aura-app-layout-inset),var(--_aura-mdl-border));border-radius:var(--_app-layout-radius);box-sizing:border-box;color:var(--vaadin-text-color);color-scheme:var(--aura-content-color-scheme);min-height:100%}vaadin-app-layout>vaadin-master-detail-layout:nth-child(1 of :not([slot])):nth-last-child(1 of :not([slot])){&:not([drawer])::part(detail),&>vaadin-master-detail-layout{border-end-end-radius:var(--_app-layout-radius);border-start-end-radius:var(--_app-layout-radius)}&::part(backdrop){border-radius:calc(var(--_app-layout-radius) - var(--_aura-mdl-border))}&:is([drawer][has-detail]){border-color:light-dark(var(--vaadin-border-color),var(--vaadin-border-color-secondary))}}vaadin-app-layout:has([slot=navbar]):has([slot=drawer]){padding-top:var(--_vaadin-app-layout-navbar-offset-size);&::part(drawer){padding-top:0}}vaadin-app-layout:has([slot=drawer]):not([overlay]):not([drawer-opened])>:nth-child(1 of :not([slot])):nth-last-child(1 of :not([slot])){border-inline-start-width:min(var(--aura-app-layout-inset),var(--_aura-mdl-border))}vaadin-app-layout:has([slot=navbar]):has([slot=drawer])[drawer-opened]:not([overlay])>:nth-child(1 of :not([slot])):nth-last-child(1 of :not([slot])){border-start-start-radius:var(--aura-app-layout-radius)}vaadin-app-layout:has([slot=navbar]):has([slot=drawer])>:nth-child(1 of :not([slot])):nth-last-child(1 of :not([slot])){border-top-width:var(--_aura-mdl-border)}vaadin-app-layout:has([slot=navbar])>:is(:not([slot]),[slot=drawer]) vaadin-drawer-toggle:not([theme~=permanent]),vaadin-app-layout:not(:has([slot=navbar]))>[slot=drawer] vaadin-drawer-toggle:not([theme~=permanent]){display:none}:where(:root,:host){--vaadin-avatar-border-color:var(--vaadin-border-color-secondary);--vaadin-avatar-background:var(--vaadin-background-container);--vaadin-avatar-font-weight:var(--aura-font-weight-medium);--vaadin-avatar-font-size:var(--aura-font-size-m)}vaadin-avatar:not([img]){--_shade:color-mix(in srgb,var(--vaadin-border-color) 20%,transparent);background-image:linear-gradient(light-dark(transparent,var(--_shade)),transparent 50%,light-dark(var(--_shade),transparent))}:where(:root,:host){--vaadin-button-border-color:var(--vaadin-border-color);--vaadin-button-shadow:0 1px 4px -1px rgba(0,0,0,.07)}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle){position:relative;transition:scale .18s}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle):where(:not([theme~=tertiary])){--aura-surface-level:6;--aura-surface-opacity:0.3;box-shadow:var(--vaadin-button-shadow)}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle):not([theme~=primary],[theme~=tertiary]){background:var(--vaadin-button-background,var(--aura-surface) padding-box)}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle):where(:not([theme~=primary])){outline-offset:calc(var(--vaadin-button-border-width, 1px)*-1)}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle):where([theme~=primary]){outline-offset:2px}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle):not(:has(:is(vaadin-icon,svg,i[class*=fa-],vaadin-avatar):not([slot]))){--vaadin-button-padding:round(var(--vaadin-padding-s)/1.4,1px) max(var(--vaadin-padding-m),round(var(--vaadin-radius-m)/1.5,1px))}:is(vaadin-button,vaadin-menu-bar-button):has([slot=prefix]:is(vaadin-icon,svg,i[class*=fa-],vaadin-avatar)),vaadin-drawer-toggle:empty{padding-inline-start:max(var(--vaadin-padding-s),round(var(--vaadin-radius-m)/1.75,1px))}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle):has([slot=suffix]:is(vaadin-icon,svg,i[class*=fa-],vaadin-avatar)),vaadin-drawer-toggle:empty,vaadin-menu-bar-button[aria-haspopup=true]{padding-inline-end:max(var(--vaadin-padding-s),round(var(--vaadin-radius-m)/1.75,1px))}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle)[theme~=primary]{--vaadin-button-font-weight:var(--aura-font-weight-semibold);--vaadin-button-text-color:light-dark(var(--vaadin-background-color),var(--aura-background-dark))}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle)[disabled][theme~=primary]{--vaadin-button-text-color:var(--vaadin-text-color-secondary)}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle):not([disabled]):before{background-color:currentColor;border-radius:inherit;content:"";inset:calc(var(--vaadin-button-border-width, 1px)*-1);opacity:0;pointer-events:none;position:absolute;transition:opacity .1s,background-color .1s}@supports (color:hsl(0 0 0)){:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle):not([disabled]):before{background-color:oklch(from currentColor calc(l + .4 - c) c h)}}@media (any-hover:hover){:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle):hover:not([disabled],[active]):before{opacity:.05}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle)[theme~=primary]:hover:not([disabled],[active]):before{opacity:.12}}@media (min-resolution:2x){:is(vaadin-button,vaadin-menu-bar-button[first-visible][last-visible],vaadin-drawer-toggle)[active]:not([disabled],[aria-disabled=true]){scale:.98;transition-duration:50ms}}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle)[active]:not([disabled]):before{background:oklch(from currentColor min(c,1 - l + c) calc(c * .9) h);opacity:.08;transition-duration:0s}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle)[theme~=primary][active]:not([disabled]):before{opacity:.16}@container style(--_gap: 0){vaadin-menu-bar-button:not(:first-of-type){border-inline-start-color:transparent}}:where(:root,:host){--vaadin-card-title-font-weight:var(--aura-font-weight-medium);--vaadin-card-padding:var(--vaadin-padding-l);--vaadin-card-gap:var(--vaadin-gap-m) var(--vaadin-gap-l);--vaadin-card-border-color:var(--vaadin-border-color-secondary);--vaadin-card-background:var(--aura-surface) padding-box}vaadin-card{--vaadin-card-background:var(--aura-surface) padding-box;--aura-surface-level:2}vaadin-card[theme~=outlined]{border:var(--vaadin-card-border-width,1px) solid transparent;--vaadin-card-padding:calc(var(--vaadin-padding-l) - var(--vaadin-card-border-width, 1px))}vaadin-card[theme~=outlined]:before{inset:calc(var(--vaadin-card-border-width, 1px)*-1)}vaadin-card[theme~=outlined][theme~=cover-media] [slot=media]:is(img,video,svg,vaadin-icon){margin-inline:calc((var(--_padding) + var(--vaadin-card-border-width, 1px))*-1);margin-top:calc((var(--_padding) + var(--vaadin-card-border-width, 1px))*-1);width:calc(100% + (var(--_padding) + var(--vaadin-card-border-width, 1px))*2)}vaadin-card[theme~=elevated]{--aura-surface-opacity:0.7;--aura-surface-level:3;--_shadow-color:light-dark(oklch(from var(--aura-background-light) calc(l - l * 0.8) calc(c / 10) h/0.1),oklch(from var(--aura-background-dark) calc(l - l * 0.8) calc(c / 10) h/0.2));--vaadin-card-shadow:0 1px 6px -1px var(--_shadow-color);background-clip:padding-box}vaadin-card[theme~=stretch-media]:not([theme~=cover-media]) [slot=media]:is(img,video,svg,vaadin-icon){border-radius:var(--vaadin-radius-s)}:where(:root,:host){--vaadin-radio-button-dot-size:6px;--vaadin-checkbox-size:round(1lh - 2px,2px);--vaadin-radio-button-size:round(1lh - 2px,2px)}vaadin-checkbox::part(checkbox),vaadin-radio-button::part(radio){--vaadin-checkbox-background:var(--aura-surface);--vaadin-radio-button-background:var(--aura-surface);transition:background-color .1s}vaadin-checkbox:not([readonly],[disabled])::part(checkbox),vaadin-radio-button:not([disabled])::part(radio){--aura-surface-level:4;box-shadow:0 2px 1px -1px rgba(0,0,0,.07);--_shade:color-mix(in srgb,var(--vaadin-border-color-secondary) 50%,transparent);background-image:linear-gradient(light-dark(transparent,var(--_shade)),transparent 33%,transparent 66%,light-dark(var(--_shade),transparent))}vaadin-checkbox:not([checked],[indeterminate])::part(checkbox),vaadin-radio-button:not([checked])::part(radio){background-clip:padding-box}vaadin-checkbox:is([checked],[indeterminate]):not([readonly],[disabled])::part(checkbox){--vaadin-checkbox-background:var(--aura-accent-color);--vaadin-checkbox-color:var(--aura-accent-contrast)}vaadin-radio-button[checked]:not([readonly],[disabled])::part(radio){--vaadin-radio-button-background:var(--aura-accent-color);--vaadin-radio-button-color:var(--aura-accent-contrast)}vaadin-checkbox:not([readonly],[disabled])::part(checkbox):before,vaadin-radio-button:not([disabled])::part(radio):before{background-color:currentColor;border-radius:inherit;content:"";inset:calc(var(--vaadin-input-field-border-width, 1px)*-1);opacity:0;position:absolute;transition:opacity .1s,background-color .1s}@media (any-hover:hover){vaadin-checkbox:hover:not([readonly],[disabled],[active])::part(checkbox):before,vaadin-radio-button:hover:not([disabled],[active])::part(radio):before{opacity:.04}}vaadin-checkbox[active]:not([readonly],[disabled])::part(checkbox):before,vaadin-radio-button[active]:not([disabled])::part(radio):before{background:#000;opacity:.1}:where(:root,:host){--vaadin-date-picker-year-scroller-background:light-dark(var(--vaadin-background-container),transparent);--vaadin-date-picker-month-header-font-weight:var(--aura-font-weight-semibold);--vaadin-date-picker-date-selected-background:var(--aura-accent-color);--vaadin-date-picker-date-selected-color:var(--aura-accent-contrast)}:where(:root,:host,[theme]){--vaadin-date-picker-date-width:calc(var(--aura-font-size-m)*2.5);--vaadin-date-picker-year-scroller-width:calc(var(--aura-font-size-m)*3.5)}vaadin-date-picker-month-scroller,vaadin-date-picker-overlay-content::part(toolbar){background:var(--aura-surface)}vaadin-date-picker-year-scroller:before{background:var(--aura-surface-solid) padding-box;height:12px;width:12px}vaadin-date-picker-year::part(year-number){font-size:var(--aura-font-size-s);font-weight:var(--aura-font-weight-medium)}vaadin-date-picker-year[current]::part(year-number){font-weight:var(--aura-font-weight-semibold)}vaadin-date-picker-year[selected]{position:relative}vaadin-date-picker-year[selected]::part(year-number){color:var(--aura-accent-text)}vaadin-date-picker-year[selected]:after{background:var(--aura-accent-color);border-radius:var(--vaadin-radius-s);content:"";height:100%;position:absolute;top:-.5lh;inset-inline:3px;opacity:.1;z-index:-1}vaadin-date-picker-year::part(year-separator){height:8px;line-height:0;text-align:center;translate:0 -50%}vaadin-date-picker-year::part(year-separator):before{background:var(--vaadin-text-color-disabled);border-radius:50%;content:"";display:inline-block;height:3px;width:3px}:where(:root,:host){--vaadin-dialog-title-font-size:var(--aura-font-size-l);--vaadin-dialog-border-width:0px}vaadin-confirm-dialog,vaadin-dialog{color-scheme:var(--aura-content-color-scheme)}vaadin-confirm-dialog::part(overlay),vaadin-dialog::part(overlay){--vaadin-dialog-background:var(--aura-surface);--aura-surface-level:4;view-transition-name:vaadin-dialog}vaadin-confirm-dialog::part(message){color:var(--vaadin-text-color-secondary)}::view-transition-group(vaadin-dialog){border-radius:var(--vaadin-dialog-border-radius,var(--vaadin-radius-l));z-index:1}:where(:root,:host){--vaadin-grid-row-selected-background:linear-gradient(var(--vaadin-background-container),var(--vaadin-background-container))}vaadin-grid[theme~=no-border]::part(first-column-cell){--_cell-padding:var(--vaadin-padding-xs) var(--vaadin-padding-s) var(--vaadin-padding-xs) var(--vaadin-padding-l)}vaadin-grid[theme~=no-border]::part(last-column-cell){--_cell-padding:var(--vaadin-padding-xs) var(--vaadin-padding-l) var(--vaadin-padding-xs) var(--vaadin-padding-s)}vaadin-grid::part(active-nav-item){--vaadin-grid-cell-background:linear-gradient(var(--vaadin-background-container),var(--vaadin-background-container)) var(--vaadin-background-color)}:where(:root,:host,[theme]){--vaadin-input-field-background:var(--aura-surface);--vaadin-input-field-error-color:var(--aura-red)}::part(input-field),vaadin-input-container,vaadin-message-input{--vaadin-input-field-background:var(--aura-surface);--aura-surface-level:4;--aura-surface-opacity:0.7;background-clip:padding-box}:not([readonly],[disabled])::part(input-field),vaadin-message-input:not([readonly],[disabled]){box-shadow:0 2px 1px -1px rgba(0,0,0,.04)}[disabled]::part(input-field){--aura-surface-opacity:0.5;--aura-surface-level:1}::part(field-button){transition:color .1s}:not([readonly],[disabled])::part(field-button):active{color:var(--vaadin-text-color)}@media (any-hover:hover){:not([readonly],[disabled])::part(field-button):hover{color:var(--vaadin-text-color)}}vaadin-master-detail-layout::part(detail){--aura-surface-level:2;background:var(--aura-surface) padding-box}vaadin-master-detail-layout[drawer]::part(detail){--aura-surface-opacity:var(--aura-overlay-surface-opacity);-webkit-backdrop-filter:var(--aura-overlay-backdrop-filter);backdrop-filter:var(--aura-overlay-backdrop-filter);background:var(--aura-surface) padding-box;box-shadow:inset 1px 0 0 0 var(--aura-overlay-inner-outline-color),-1px 0 0 0 var(--aura-overlay-outline-color),var(--aura-shadow-m)}vaadin-master-detail-layout[containment=viewport][drawer]::part(detail){box-shadow:var(--aura-overlay-shadow)}vaadin-master-detail-layout[containment=viewport][drawer]::part(detail),vaadin-master-detail-layout[theme~=inset-drawer][drawer]::part(detail){border-radius:var(--_app-layout-radius);margin:calc(var(--aura-app-layout-inset)/2)}vaadin-master-detail-layout:not([drawer])::part(detail),vaadin-master-detail-layout>vaadin-master-detail-layout{border-end-end-radius:var(--_app-layout-radius);border-start-end-radius:var(--_app-layout-radius)}::view-transition-group(vaadin-mdl-backdrop),::view-transition-group(vaadin-mdl-detail),::view-transition-group(vaadin-mdl-master){border-radius:var(--_app-layout-radius);overflow:hidden}vaadin-message-input vaadin-text-area::part(input-field){--vaadin-input-field-background:transparent}vaadin-message-input[theme~=icon-button] vaadin-message-input-button{color:transparent;contain:strict;height:var(--vaadin-icon-size,1lh);position:relative;width:var(--vaadin-icon-size,1lh)}vaadin-message-input[theme~=icon-button] vaadin-message-input-button:before{background:var(--vaadin-button-text-color);content:"";inset:0;mask-image:var(--_vaadin-icon-paper-airplane);position:absolute}vaadin-message-input[theme~=icon-button][dir=rtl] vaadin-message-input-button:before{scale:-1}@media (forced-colors:active){vaadin-message-input[theme~=icon-button] vaadin-message-input-button{forced-color-adjust:none;--vaadin-button-text-color:CanvasText}}:where(:root,:host){--vaadin-chip-padding:0.4em;--vaadin-chip-background:var(--vaadin-background-container-strong)}vaadin-multi-select-combo-box-chip{--vaadin-chip-height:1lh;--vaadin-icon-size:1.25em;--vaadin-chip-padding:0.4em;--vaadin-chip-border-radius:var(--vaadin-radius-s);--vaadin-chip-border-width:0px}:where(:root,:host){--vaadin-notification-border-width:0px;--vaadin-ease-fluid:cubic-bezier(0.78,0,0.22,1)}vaadin-notification-container{color-scheme:var(--aura-notification-color-scheme)}vaadin-notification-card::part(overlay){--aura-surface-level:4;--vaadin-notification-background:var(--aura-surface);view-transition-name:vaadin-notification}::view-transition-group(vaadin-notification){border-radius:var(--vaadin-notification-border-radius,var(--vaadin-radius-l));z-index:1}@supports (background:-webkit-named-image(i)){::view-transition-group(vaadin-notification){backdrop-filter:none}}vaadin-notification-card vaadin-card{--vaadin-card-gap:var(--vaadin-gap-xs) var(--vaadin-gap-s);color:var(--vaadin-text-color-secondary)}vaadin-notification-card vaadin-button{--aura-surface-level:8;--aura-surface-opacity:0.3}:where(:root,:host){--vaadin-overlay-border-width:0px;--vaadin-overlay-backdrop-background:light-dark(oklch(from var(--aura-background-light) calc(l * 0.1) c h/0.15),rgba(0,0,0,.3));--aura-overlay-outline-color:light-dark(oklch(from var(--aura-background-light) 0.1 c h/max(0.04,0.03 + 0.04 * var(--aura-contrast))),oklch(from var(--aura-background-dark) 0.1 c h/max(0.04,0.03 + 0.04 * var(--aura-contrast))));--aura-overlay-inner-outline-color:hsla(0deg,0%,100%,max(3%,2% + 4% * var(--aura-contrast)));--aura-overlay-shadow:inset 0 0 0 1px var(--aura-overlay-inner-outline-color),0 0 0 1px var(--aura-overlay-outline-color),var(--aura-shadow-m);--aura-overlay-backdrop-filter:blur(12px) brightness(1.2) saturate(1.2);--aura-overlay-surface-opacity:0.85;@media (prefers-reduced-transparency:reduce){--aura-overlay-surface-opacity:1!important}}::part(overlay){--vaadin-overlay-background:var(--aura-surface);--aura-surface-level:4;--aura-surface-opacity:var(--aura-overlay-surface-opacity);-webkit-backdrop-filter:var(--aura-overlay-backdrop-filter);backdrop-filter:var(--aura-overlay-backdrop-filter);box-shadow:var(--aura-overlay-shadow);color:var(--vaadin-text-color);font-family:var(--aura-font-family);font-size:var(--aura-font-size-m);font-weight:var(--aura-font-weight);line-height:var(--aura-line-height-m)}vaadin-select-item::part(content){align-items:center;display:flex;gap:inherit}vaadin-select[theme~=subtle]::part(input-field){--vaadin-input-field-border-color:transparent;--vaadin-input-field-background:transparent}vaadin-select[theme~=subtle]::part(toggle-button){opacity:0;transition:opacity .2s;--vaadin-icon-size:0.75lh}vaadin-select[theme~=subtle][focus-ring]::part(toggle-button){opacity:1}@media (any-hover:hover){vaadin-select[theme~=subtle]:hover::part(toggle-button){opacity:1}}vaadin-select[theme~=auto-size]{--vaadin-field-default-width:auto}:where(:root,:host){--vaadin-side-nav-label-line-height:var(--aura-line-height-xs);--vaadin-side-nav-label-font-weight:var(--aura-font-weight-medium);--vaadin-side-nav-item-font-weight:var(--aura-font-weight-medium);--vaadin-side-nav-item-border-width:1px;--vaadin-side-nav-items-gap:var(--vaadin-gap-xs)}vaadin-side-nav+vaadin-side-nav{margin-top:var(--vaadin-gap-l)}vaadin-side-nav-item::part(content){background-clip:padding-box;transition:color .12s,border-color .12s,background-color .12s;--aura-surface-level:3}vaadin-side-nav-item:not([disabled])::part(content):hover{--vaadin-side-nav-item-color:var(--vaadin-text-color)}vaadin-side-nav-item[current]::part(content){--vaadin-side-nav-item-background:var(--aura-surface);--vaadin-side-nav-item-border-color:var(--vaadin-border-color-secondary)}vaadin-side-nav[theme~=contrast] vaadin-side-nav-item[current]::part(content){background:var(--aura-surface-solid);border-color:transparent;color-scheme:var(--_side-nav-current-item-color-scheme,dark);outline-offset:2px}vaadin-side-nav[theme~=contrast] vaadin-side-nav-item[current]>:not([slot=children]){--aura-red:var(--vaadin-text-color);--aura-red-text:var(--vaadin-text-color);--aura-orange:var(--vaadin-text-color);--aura-orange-text:var(--vaadin-text-color);--aura-yellow:var(--vaadin-text-color);--aura-yellow-text:var(--vaadin-text-color);--aura-green:var(--vaadin-text-color);--aura-green-text:var(--vaadin-text-color);--aura-blue:var(--vaadin-text-color);--aura-blue-text:var(--vaadin-text-color);--aura-purple:var(--vaadin-text-color);--aura-purple-text:var(--vaadin-text-color)}@container style(--aura-color-scheme: dark){[slot=drawer]{--_side-nav-current-item-color-scheme:light}}@container style(--aura-content-color-scheme: dark){vaadin-app-layout>:not([slot]){--_side-nav-current-item-color-scheme:light}}@container style(--aura-content-color-scheme: light){vaadin-app-layout>:not([slot]){--_side-nav-current-item-color-scheme:dark}}@media (prefers-color-scheme:dark){@container style(--aura-content-color-scheme: light dark){vaadin-app-layout>:not([slot]){--_side-nav-current-item-color-scheme:light}}@container style(--aura-color-scheme: light dark){[slot=drawer]{--_side-nav-current-item-color-scheme:light}}}vaadin-side-nav:not(:has([slot=label]))::part(label){display:none}:where(:root,:host){cursor:default;--_vaadin-icon-chevron-down: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="m6 9 6 6 6-6"/></svg>')}
1
+ :where(:root,:host){--aura-contrast:1;--aura-accent-light:#1858d8;--aura-accent-dark:#3670e2;--_color-base:light-dark(oklch(from var(--aura-background-light) 0.1 calc(c / 2 + c * (1 - c)) h),oklch(from var(--aura-background-dark) 1 c h));--aura-text-light:color-mix(in srgb,var(--_color-base) calc(90% + 5%*var(--aura-contrast)),transparent);--aura-text-dark:color-mix(in srgb,#fff calc(90% + 5%*var(--aura-contrast)),transparent);--vaadin-text-color:light-dark(var(--aura-text-light),var(--aura-text-dark));--vaadin-text-color-secondary:light-dark(color-mix(in srgb,var(--_color-base) calc(55% + 10%*var(--aura-contrast)),transparent),color-mix(in srgb,var(--_color-base) calc(57% + 10%*var(--aura-contrast)),transparent));--vaadin-text-color-disabled:color-mix(in srgb,var(--_color-base) calc(30% + 10%*var(--aura-contrast)),transparent);--_border-color-base:light-dark(oklch(from var(--aura-background-light) 0.1 c h),oklch(from var(--aura-background-dark) 0.85 c h));--vaadin-border-color:color-mix(in srgb,var(--_border-color-base) calc(14% + 6%*var(--aura-contrast)),transparent);--vaadin-border-color-secondary:light-dark(color-mix(in srgb,var(--_border-color-base) max(5%,5% + 3% * var(--aura-contrast)),transparent),color-mix(in srgb,var(--_border-color-base) max(6%,5% + 5% * var(--aura-contrast)),transparent));--aura-background-light:oklch(95% 0.005 260);--aura-background-dark:oklch(20% 0.01 260);--aura-background:light-dark(var(--aura-background-light),var(--aura-background-dark));--_bg-alt:oklch(from var(--aura-background) calc(l + c) min(c,c * 2 - l/20) calc(h + 180 * var(--_safari-17-deg, 1deg) * l * c * 4));--_bg-accent:radial-gradient(circle at 0% 0%,light-dark(oklch(from var(--aura-background-light) min(1,l + c * 3) min(c,c * 3) h),oklch(from var(--aura-background-dark) min(1,l + c) clamp(0,c * 1.5,0.4) h)),transparent 30%);--aura-app-background:var(--_bg-accent),radial-gradient(circle at 25% 0% in xyz,var(--aura-background) 33%,var(--_bg-alt)) var(--aura-background);--vaadin-focus-ring-color:var(--aura-accent-color);accent-color:var(--aura-accent-color);--vaadin-user-color:var(--aura-accent-color);--vaadin-background-container:color-mix(in srgb,var(--_color-base) calc(3% + min(3%, 1% * var(--aura-contrast))),transparent);--vaadin-background-container-strong:color-mix(in srgb,var(--_color-base) calc(7% + min(8%, 1.5% * var(--aura-contrast))),transparent);background:var(--aura-app-background);background-attachment:fixed;background-size:100vw 100vh;color:var(--vaadin-text-color)}:where(:root,:host),vaadin-button,vaadin-checkbox::part(checkbox),vaadin-context-menu-item,vaadin-crud-edit,vaadin-drawer-toggle,vaadin-menu-bar-button,vaadin-menu-bar-item,vaadin-radio-button::part(radio),vaadin-side-nav-item::part(content){--aura-accent-contrast-light:oklch(from var(--aura-accent-light) clamp(0,(0.62 - l) * 1000,1) 0 0/clamp(0.8,(0.62 - l) * 1000,1));--aura-accent-contrast-dark:oklch(from var(--aura-accent-dark) clamp(0,(0.62 - l) * 1000,1) 0 0/clamp(0.8,(0.62 - l) * 1000,1));--aura-accent-text-light:color-mix(in srgb,var(--aura-accent-light) calc(70% - 15%*var(--aura-contrast)),var(--vaadin-text-color));--aura-accent-text-dark:color-mix(in srgb,var(--aura-accent-dark) calc(70% - 15%*var(--aura-contrast)),var(--vaadin-text-color));--aura-accent-color:light-dark(var(--aura-accent-light),var(--aura-accent-dark));--aura-accent-contrast:light-dark(var(--aura-accent-contrast-light),var(--aura-accent-contrast-dark));--aura-accent-text:light-dark(var(--aura-accent-text-light),var(--aura-accent-text-dark))}@supports (color:hsl(0 0 0)){:where(:root,:host){--_safari-17-deg:1}}:where(h1,h2,h3,h4,h5,h6){color:var(--vaadin-text-color)}:where(:root,:host){--aura-color-scheme:light;--aura-content-color-scheme:var(--aura-color-scheme);--aura-notification-color-scheme:var(--aura-color-scheme)}html{color-scheme:var(--aura-color-scheme)}:where(:root,:host){--aura-red:oklch(0.6 0.22 25);--aura-orange:oklch(0.61 0.4 93);--aura-yellow:oklch(0.9 0.36 105);--aura-green:oklch(0.6 0.28 160);--aura-blue:oklch(0.6 0.3 240);--aura-purple:oklch(0.6 0.3 280);--aura-red-text:color-mix(in srgb,var(--aura-red) calc(70% - 15%*var(--aura-contrast)),var(--vaadin-text-color));--aura-orange-text:color-mix(in srgb,var(--aura-orange) calc(70% - 15%*var(--aura-contrast)),var(--vaadin-text-color));--aura-yellow-text:color-mix(in srgb,var(--aura-yellow) calc(65% - 15%*var(--aura-contrast)),var(--vaadin-text-color));--aura-green-text:color-mix(in srgb,var(--aura-green) calc(70% - 15%*var(--aura-contrast)),var(--vaadin-text-color));--aura-blue-text:color-mix(in srgb,var(--aura-blue) calc(70% - 15%*var(--aura-contrast)),var(--vaadin-text-color));--aura-purple-text:color-mix(in srgb,var(--aura-purple) calc(70% - 15%*var(--aura-contrast)),var(--vaadin-text-color))}:where(:root,:host){--aura-shadow-color:light-dark(oklch(from var(--aura-background-light) calc(l - l * 0.8) calc(c / 10) h/0.2),oklch(from var(--aura-background-dark) calc(l - l * 0.8) calc(c / 10) h/0.2));--aura-shadow-m:0 8px 16px -3px var(--aura-shadow-color)}:where(:root,:host){--aura-base-size:16;--_size-ref:16;--aura-base-radius:3;--vaadin-radius-s:min(0.25lh,round(var(--aura-base-radius) * 1px + 2px,1px));--vaadin-radius-m:round(var(--aura-base-radius) * 2px + 3px,1px);--vaadin-radius-l:round(var(--aura-base-radius) * 1.5px + 10px,1px);--vaadin-icon-stroke-width:1.75}:where(:root,:host,[theme]){--vaadin-padding-xs:round(var(--aura-base-size) * 0.25 * pow(var(--aura-base-size)/var(--_size-ref),0.5) * 1px,1px);--vaadin-padding-s:round(var(--aura-base-size) * 0.5 * pow(var(--aura-base-size)/var(--_size-ref),0.75) * 1px,1px);--vaadin-padding-m:round(var(--aura-base-size) * 0.75 * pow(var(--aura-base-size)/var(--_size-ref),0.3) * 1px,1px);--vaadin-padding-l:calc(var(--aura-base-size)*1px);--vaadin-padding-xl:round(var(--aura-base-size) * 1.5 * pow(var(--aura-base-size)/var(--_size-ref),0.1) * 1px,1px);--vaadin-padding-container:round(var(--vaadin-padding-s)/1.4,1px) max(var(--vaadin-padding-s),round(var(--vaadin-radius-m)/2,1px));--vaadin-gap-xs:var(--vaadin-padding-xs);--vaadin-gap-s:var(--vaadin-padding-s);--vaadin-gap-m:var(--vaadin-padding-m);--vaadin-gap-l:var(--vaadin-padding-l);--vaadin-gap-xl:var(--vaadin-padding-xl)}@media (pointer:coarse){:where(:root,:host){--aura-base-size:19}}:where(:root,:host){--aura-surface-level:1}.aura-surface,.aura-surface-solid,::part(input-field),::part(overlay),:is(:root,:host),vaadin-accordion-panel[theme~=filled],vaadin-app-layout::part(drawer),vaadin-app-layout::part(navbar),vaadin-button,vaadin-card,vaadin-checkbox::part(checkbox),vaadin-confirm-dialog::part(overlay),vaadin-crud-dialog::part(overlay),vaadin-details[theme~=filled],vaadin-dialog::part(overlay),vaadin-login-overlay::part(overlay),vaadin-master-detail-layout::part(detail),vaadin-menu-bar-button,vaadin-message-input,vaadin-radio-button::part(radio),vaadin-rich-text-editor,vaadin-side-nav-item::part(content),vaadin-upload,vaadin-upload-file{--aura-surface-opacity:0.5;--aura-surface-solid:light-dark(oklch(from var(--aura-background-light) min(1,l + (0.98 - l) * 4 + var(--aura-surface-level) * (0.07 - 0.01 * var(--aura-contrast)) - var(--aura-surface-opacity)/20) clamp(0,c - l/10 * var(--aura-surface-level) + var(--aura-surface-opacity)/40,c) h),oklch(from var(--aura-background-dark) calc(max(l + 0.03, 0.25) + var(--aura-surface-level)*(0.03 - var(--aura-contrast)*0.008) - var(--aura-surface-opacity)/40) clamp(0,c * (1 + l),0.2) h));--aura-surface:color-mix(in oklab,var(--aura-surface-solid) calc(100%*var(--aura-surface-opacity)),transparent);--vaadin-background-color:var(--aura-surface-solid)}.aura-surface{background:var(--aura-surface) padding-box}.aura-surface-solid{--aura-surface-opacity:1;background:var(--aura-surface-solid) padding-box}@font-face{font-display:swap;font-family:Instrument Sans;font-style:normal;font-weight:400 700;src:url(fonts/InstrumentSans/InstrumentSans.woff2) format("woff2")}:where(:root,:host){--aura-font-family-system:system-ui,ui-sans-serif,sans-serif;--aura-font-family-instrument-sans:"Instrument Sans",var(--aura-font-family-system);--aura-font-family:var(--aura-font-family-instrument-sans);--aura-base-font-size:16;--aura-font-size-scale:1.125;--aura-base-line-height:1.4;--aura-font-weight:400;--aura-font-weight-medium:500;--aura-font-weight-semibold:600}@media (pointer:fine){:where(:root,:host){--aura-base-font-size:14}}@supports (-webkit-touch-callout:none){@media (pointer:coarse){:where(:root,:host){font:-apple-system-body}}}:where(:root,:host,[theme]){--aura-font-size-xs:round(var(--aura-font-size-s)/var(--aura-font-size-scale),0.0625rem);--aura-font-size-s:round(var(--aura-font-size-m)/var(--aura-font-size-scale),0.0625rem);--aura-font-size-m:round(var(--aura-base-font-size)/16 * 1rem,0.0625rem);--aura-font-size-l:round(var(--aura-font-size-m) * var(--aura-font-size-scale),0.0625rem);--aura-font-size-xl:round(var(--aura-font-size-l) * var(--aura-font-size-scale),0.0625rem);--aura-line-height-xs:round(var(--aura-font-size-xs) * var(--aura-base-line-height),0.125rem);--aura-line-height-s:round(var(--aura-font-size-s) * var(--aura-base-line-height),0.125rem);--aura-line-height-m:round(var(--aura-font-size-m) * var(--aura-base-line-height),0.125rem);--aura-line-height-l:round(var(--aura-font-size-l) * var(--aura-base-line-height),0.125rem);--aura-line-height-xl:round(var(--aura-font-size-xl) * var(--aura-base-line-height),0.125rem)}:where(body,:host){font-family:var(--aura-font-family);font-optical-sizing:auto;font-style:normal;font-weight:var(--aura-font-weight);-webkit-font-smoothing:var(--aura-font-smoothing,antialiased);-moz-osx-font-smoothing:var(--aura-font-smoothing,grayscale);-webkit-text-size-adjust:none;text-size-adjust:none}:where(body,:host,[theme]:not(html)){font-size:var(--aura-font-size-m);line-height:var(--aura-line-height-m)}:where(h1,h2,h3,h4,h5,h6){font-weight:var(--aura-font-weight-semibold);margin:0;text-wrap:balance}:where(h1){font-size:var(--aura-font-size-xl);line-height:var(--aura-line-height-xl)}:where(h2,h3){font-size:var(--aura-font-size-l);line-height:var(--aura-line-height-l)}:where(h4,h5){font-size:var(--aura-font-size-m);line-height:var(--aura-line-height-m)}:where(h6){font-size:var(--aura-font-size-s);line-height:var(--aura-line-height-s)}:is(vaadin-details,vaadin-accordion-panel):not([theme~=no-padding])::part(content){padding:var(--vaadin-padding-container);padding-top:0}:is(vaadin-details,vaadin-accordion-panel):not([theme~=no-padding],[theme~=reverse])::part(content){margin-inline-start:calc(var(--vaadin-icon-size, 1lh) + var(--vaadin-details-summary-gap, var(--vaadin-gap-s)))}:is(vaadin-details,vaadin-accordion-panel)[theme~=reverse]{[slot=summary]::part(content){width:100%}[slot=summary]::part(toggle){margin-inline-start:auto;order:1}}:is(vaadin-details,vaadin-accordion-panel)[theme~=filled]{background:var(--aura-surface) padding-box;border:1px solid var(--vaadin-border-color-secondary);border-radius:var(--vaadin-radius-m);&:has(+:is(vaadin-details,vaadin-accordion-panel)[theme~=filled]){border-bottom-left-radius:0;border-bottom-right-radius:0}&+:is(vaadin-details,vaadin-accordion-panel)[theme~=filled]{border-top-color:transparent;border-top-left-radius:0;border-top-right-radius:0;margin-top:-1px}}:where(:root,:host){--aura-app-layout-inset:1.5vmin;--aura-app-layout-radius:var(--vaadin-radius-l);--_aura-mdl-border:1px;--vaadin-app-layout-navbar-padding-top:0;--vaadin-app-layout-navbar-padding-bottom:0;--vaadin-app-layout-navbar-padding-inline-start:0;--vaadin-app-layout-navbar-padding-inline-end:0}@media (height <= 600px),(width <= 800px){html{--aura-app-layout-inset:0px!important;--_aura-mdl-border:0px}}vaadin-app-layout{--_app-layout-radius:clamp(0px,var(--aura-app-layout-radius),var(--aura-app-layout-inset) * 100);padding-block:var(--aura-app-layout-inset);padding-inline-end:var(--aura-app-layout-inset);padding-top:calc(var(--aura-app-layout-inset) + var(--_vaadin-app-layout-navbar-offset-size))}vaadin-app-layout[overlay]{&::part(drawer),&::part(navbar){--vaadin-app-layout-navbar-background:var(--aura-surface);--vaadin-app-layout-drawer-background:var(--aura-surface);--aura-surface-opacity:var(--aura-overlay-surface-opacity);-webkit-backdrop-filter:var(--aura-overlay-backdrop-filter);backdrop-filter:var(--aura-overlay-backdrop-filter)}}vaadin-app-layout:is([overlay],:not([drawer-opened])){padding-inline-start:var(--aura-app-layout-inset)}vaadin-app-layout::part(navbar){justify-content:space-between}vaadin-app-layout:not([overlay])::part(navbar){--vaadin-app-layout-navbar-background:transparent}vaadin-app-layout:not([overlay])::part(drawer){padding-block:var(--aura-app-layout-inset);padding-inline:max(0px,var(--aura-app-layout-inset) - var(--vaadin-padding-s))}vaadin-app-layout>vaadin-scroller[slot=drawer]{padding-inline:var(--vaadin-padding-m);scrollbar-width:thin}vaadin-app-layout>vaadin-scroller:nth-child(1 of [slot=drawer]){padding-top:var(--vaadin-padding-s)}vaadin-app-layout>vaadin-scroller:nth-last-child(1 of [slot=drawer]){padding-bottom:var(--vaadin-padding-s)}vaadin-app-layout>:nth-child(1 of :not([slot])):nth-last-child(1 of :not([slot])){background:linear-gradient(var(--aura-surface),var(--aura-surface)),var(--aura-app-background);background-clip:padding-box;background-origin:border-box;border:var(--_aura-mdl-border) solid var(--vaadin-border-color-secondary);border-block-width:min(var(--aura-app-layout-inset),var(--_aura-mdl-border));border-inline-end-width:min(var(--aura-app-layout-inset),var(--_aura-mdl-border));border-radius:var(--_app-layout-radius);box-sizing:border-box;color:var(--vaadin-text-color);color-scheme:var(--aura-content-color-scheme);min-height:100%}vaadin-app-layout>vaadin-master-detail-layout:nth-child(1 of :not([slot])):nth-last-child(1 of :not([slot])){&:not([drawer])::part(detail),&>vaadin-master-detail-layout{border-end-end-radius:var(--_app-layout-radius);border-start-end-radius:var(--_app-layout-radius)}&::part(backdrop){border-radius:calc(var(--_app-layout-radius) - var(--_aura-mdl-border))}&:is([drawer][has-detail]){border-color:light-dark(var(--vaadin-border-color),var(--vaadin-border-color-secondary))}}vaadin-app-layout:has([slot=navbar]):has([slot=drawer]){padding-top:var(--_vaadin-app-layout-navbar-offset-size);&::part(drawer){padding-top:0}}vaadin-app-layout:has([slot=drawer]):not([overlay]):not([drawer-opened])>:nth-child(1 of :not([slot])):nth-last-child(1 of :not([slot])){border-inline-start-width:min(var(--aura-app-layout-inset),var(--_aura-mdl-border))}vaadin-app-layout:has([slot=navbar]):has([slot=drawer])[drawer-opened]:not([overlay])>:nth-child(1 of :not([slot])):nth-last-child(1 of :not([slot])){border-start-start-radius:var(--aura-app-layout-radius)}vaadin-app-layout:has([slot=navbar]):has([slot=drawer])>:nth-child(1 of :not([slot])):nth-last-child(1 of :not([slot])){border-top-width:var(--_aura-mdl-border)}vaadin-app-layout:has([slot=navbar])>:is(:not([slot]),[slot=drawer]) vaadin-drawer-toggle:not([theme~=permanent]),vaadin-app-layout:not(:has([slot=navbar]))>[slot=drawer] vaadin-drawer-toggle:not([theme~=permanent]){display:none}:where(:root,:host){--vaadin-avatar-border-color:var(--vaadin-border-color-secondary);--vaadin-avatar-background:var(--vaadin-background-container);--vaadin-avatar-font-weight:var(--aura-font-weight-medium);--vaadin-avatar-font-size:var(--aura-font-size-m)}vaadin-avatar:not([img]){--_shade:color-mix(in srgb,var(--vaadin-border-color) 20%,transparent);background-image:linear-gradient(light-dark(transparent,var(--_shade)),transparent 50%,light-dark(var(--_shade),transparent))}:where(:root,:host){--vaadin-button-shadow:0 1px 4px -1px rgba(0,0,0,.07)}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle,vaadin-crud-edit){position:relative;transition:scale .18s;--_accent:light-dark(oklch(from var(--aura-accent-light) calc(l + 0.2) c h/min(0.3,c/2)),oklch(from var(--aura-accent-dark) calc(l - 0.2) c h/min(0.3,c/2)));--_accent-border:light-dark(oklch(from var(--aura-accent-light) l calc(c / 2) h/calc(min(0.15, 0.1 + c / 2) + 0.1 * var(--aura-contrast))),oklch(from var(--aura-accent-dark) l calc(c / 2) h/calc(min(0.15, 0.1 + c / 2) + 0.1 * var(--aura-contrast))));--_background:linear-gradient(var(--_accent),var(--_accent)) var(--aura-surface) padding-box}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle,vaadin-crud-edit):where(:not([theme~=tertiary])){--aura-surface-level:6;--aura-surface-opacity:0.3;box-shadow:var(--vaadin-button-shadow)}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle,vaadin-crud-edit):not([theme~=primary],[theme~=tertiary]){background:var(--vaadin-button-background,var(--_background));--vaadin-button-border-color:var(--_accent-border)}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle,vaadin-crud-edit):where(:not([theme~=primary])){outline-offset:calc(var(--vaadin-button-border-width, 1px)*-1);--vaadin-button-text-color:var(--aura-accent-text)}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle,vaadin-crud-edit):not(:has(:is(vaadin-icon,svg,i[class*=fa-],vaadin-avatar):not([slot]))){--vaadin-button-padding:round(var(--vaadin-padding-s)/1.4,1px) max(var(--vaadin-padding-m),round(var(--vaadin-radius-m)/1.5,1px))}:is(vaadin-button,vaadin-menu-bar-button):has([slot=prefix]:is(vaadin-icon,svg,i[class*=fa-],vaadin-avatar)),vaadin-drawer-toggle:empty{padding-inline-start:max(var(--vaadin-padding-s),round(var(--vaadin-radius-m)/1.75,1px))}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle,vaadin-crud-edit):has([slot=suffix]:is(vaadin-icon,svg,i[class*=fa-],vaadin-avatar)),vaadin-drawer-toggle:empty,vaadin-menu-bar-button[aria-haspopup=true]:not([slot=overflow]){padding-inline-end:max(var(--vaadin-padding-s),round(var(--vaadin-radius-m)/1.75,1px))}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle,vaadin-crud-edit):where([theme~=primary]){outline-offset:2px;--vaadin-button-font-weight:var(--aura-font-weight-semibold);--vaadin-button-text-color:var(--aura-accent-contrast);--vaadin-button-background:var(--aura-accent-color);--vaadin-button-border-color:var(--vaadin-border-color-secondary);--vaadin-button-shadow:0 2px 3px -1px rgba(0,0,0,.24)}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle,vaadin-crud-edit)[disabled][theme~=primary]::part(label){color:color-mix(in srgb,currentColor 50%,transparent)}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle,vaadin-crud-edit):not([disabled]):before{background-color:currentColor;border-radius:inherit;content:"";inset:calc(var(--vaadin-button-border-width, 1px)*-1);opacity:0;pointer-events:none;position:absolute;transition:opacity .1s,background-color .1s}@supports (color:hsl(0 0 0)){:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle,vaadin-crud-edit):not([disabled]):before{background-color:oklch(from currentColor calc(l + .4 - c) c h/calc(1 - l / 2))}}@media (any-hover:hover){:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle,vaadin-crud-edit):hover:not([disabled],[active]):before{opacity:.03}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle,vaadin-crud-edit)[theme~=primary]:hover:not([disabled],[active]):before{opacity:.12}}@media (min-resolution:2x){:is(vaadin-button,vaadin-menu-bar-button[first-visible][last-visible],vaadin-drawer-toggle)[active]:not([disabled],[aria-disabled=true]){scale:.98;transition-duration:50ms}}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle,vaadin-crud-edit)[active]:not([disabled]){box-shadow:none}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle,vaadin-crud-edit)[active]:not([disabled]):before{background:oklch(from currentColor min(c,1 - l + c) calc(c * .9) h);opacity:.08;transition-duration:0s}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle,vaadin-crud-edit)[theme~=primary][active]:not([disabled]):before{opacity:.16}@container style(--_gap: 0){vaadin-menu-bar-button:not(:first-of-type){border-inline-start-color:transparent}}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle,vaadin-crud-edit):where(:not([theme~=accent])){--aura-accent-light:var(--aura-text-light);--aura-accent-dark:var(--aura-text-dark)}:is(vaadin-button,vaadin-menu-bar-button,vaadin-drawer-toggle,vaadin-crud-edit):is([theme~=danger],[theme~=error]){--aura-accent-light:var(--aura-red);--aura-accent-dark:var(--aura-red)}:where(:root,:host){--vaadin-card-title-font-weight:var(--aura-font-weight-medium);--vaadin-card-padding:var(--vaadin-padding-l);--vaadin-card-gap:var(--vaadin-gap-m) var(--vaadin-gap-l);--vaadin-card-border-color:var(--vaadin-border-color-secondary);--vaadin-card-background:var(--aura-surface) padding-box}vaadin-card{--vaadin-card-background:var(--aura-surface) padding-box;--aura-surface-level:2}vaadin-card[theme~=outlined]{border:var(--vaadin-card-border-width,1px) solid transparent;--vaadin-card-padding:calc(var(--vaadin-padding-l) - var(--vaadin-card-border-width, 1px))}vaadin-card[theme~=outlined]:before{inset:calc(var(--vaadin-card-border-width, 1px)*-1)}vaadin-card[theme~=outlined][theme~=cover-media] [slot=media]:is(img,video,svg,vaadin-icon){margin-inline:calc((var(--_padding) + var(--vaadin-card-border-width, 1px))*-1);margin-top:calc((var(--_padding) + var(--vaadin-card-border-width, 1px))*-1);width:calc(100% + (var(--_padding) + var(--vaadin-card-border-width, 1px))*2)}vaadin-card[theme~=elevated]{--aura-surface-opacity:0.7;--aura-surface-level:3;--_shadow-color:light-dark(oklch(from var(--aura-background-light) calc(l - l * 0.8) calc(c / 10) h/0.1),oklch(from var(--aura-background-dark) calc(l - l * 0.8) calc(c / 10) h/0.2));--vaadin-card-shadow:0 1px 6px -1px var(--_shadow-color);background-clip:padding-box}vaadin-card[theme~=stretch-media]:not([theme~=cover-media]) [slot=media]:is(img,video,svg,vaadin-icon){border-radius:var(--vaadin-radius-s)}:where(:root,:host){--vaadin-radio-button-dot-size:6px;--vaadin-checkbox-size:round(1lh - 2px,2px);--vaadin-radio-button-size:round(1lh - 2px,2px)}vaadin-checkbox::part(checkbox),vaadin-radio-button::part(radio){--vaadin-checkbox-background:var(--aura-surface);--vaadin-radio-button-background:var(--aura-surface);transition:background-color .1s}vaadin-checkbox:not([readonly],[disabled])::part(checkbox),vaadin-radio-button:not([disabled])::part(radio){--aura-surface-level:4;box-shadow:0 2px 1px -1px rgba(0,0,0,.07);--_shade:color-mix(in srgb,var(--vaadin-border-color-secondary) 50%,transparent);background-image:linear-gradient(light-dark(transparent,var(--_shade)),transparent 33%,transparent 66%,light-dark(var(--_shade),transparent))}vaadin-checkbox:not([checked],[indeterminate])::part(checkbox),vaadin-radio-button:not([checked])::part(radio){background-clip:padding-box}vaadin-checkbox:is([checked],[indeterminate]):not([readonly],[disabled])::part(checkbox){--vaadin-checkbox-background:var(--aura-accent-color);--vaadin-checkbox-color:var(--aura-accent-contrast);--vaadin-checkbox-border-color:var(--vaadin-border-color-secondary)}vaadin-radio-button[checked]:not([readonly],[disabled])::part(radio){--vaadin-radio-button-background:var(--aura-accent-color);--vaadin-radio-button-color:var(--aura-accent-contrast);--vaadin-radio-button-border-color:var(--vaadin-border-color-secondary)}vaadin-checkbox:not([readonly],[disabled])::part(checkbox):before,vaadin-radio-button:not([disabled])::part(radio):before{background-color:currentColor;border-radius:inherit;content:"";inset:calc(var(--vaadin-input-field-border-width, 1px)*-1);opacity:0;position:absolute;transition:opacity .1s,background-color .1s}@media (any-hover:hover){vaadin-checkbox:hover:not([readonly],[disabled],[active])::part(checkbox):before,vaadin-radio-button:hover:not([disabled],[active])::part(radio):before{opacity:.04}}vaadin-checkbox[active]:not([readonly],[disabled])::part(checkbox):before,vaadin-radio-button[active]:not([disabled])::part(radio):before{background:#000;opacity:.1}vaadin-confirm-dialog::part(footer){margin-inline-start:auto;width:fit-content}vaadin-confirm-dialog::part(cancel-button),vaadin-confirm-dialog::part(confirm-button),vaadin-confirm-dialog::part(reject-button){flex:1}vaadin-confirm-dialog :is([slot=cancel-button],[slot=reject-button],[slot=confirm-button]){display:flex}:where(:root,:host){--vaadin-crud-background:var(--aura-surface) padding-box}vaadin-crud-edit{padding:var(--vaadin-padding-xs);--vaadin-icon-visual-size:0.75lh}vaadin-crud::part(editor){background:var(--aura-surface)}:where(:root,:host){--vaadin-date-picker-year-scroller-background:light-dark(var(--vaadin-background-container),transparent);--vaadin-date-picker-month-header-font-weight:var(--aura-font-weight-semibold);--vaadin-date-picker-date-selected-background:var(--aura-accent-color);--vaadin-date-picker-date-selected-color:var(--aura-accent-contrast)}:where(:root,:host,[theme]){--vaadin-date-picker-date-width:calc(var(--aura-font-size-m)*2.5);--vaadin-date-picker-year-scroller-width:calc(var(--aura-font-size-m)*3.5)}vaadin-date-picker-month-scroller,vaadin-date-picker-overlay-content::part(toolbar){background:var(--aura-surface)}vaadin-date-picker-year-scroller:before{background:var(--aura-surface-solid) padding-box;height:12px;width:12px}vaadin-date-picker-year::part(year-number){font-size:var(--aura-font-size-s);font-weight:var(--aura-font-weight-medium)}vaadin-date-picker-year[current]::part(year-number){font-weight:var(--aura-font-weight-semibold)}vaadin-date-picker-year[selected]{position:relative}vaadin-date-picker-year[selected]::part(year-number){color:var(--aura-accent-text)}vaadin-date-picker-year[selected]:after{background:var(--aura-accent-color);border-radius:var(--vaadin-radius-s);content:"";height:100%;position:absolute;top:-.5lh;inset-inline:3px;opacity:.1;z-index:-1}vaadin-date-picker-year::part(year-separator){height:8px;line-height:0;text-align:center;translate:0 -50%}vaadin-date-picker-year::part(year-separator):before{background:var(--vaadin-text-color-disabled);border-radius:50%;content:"";display:inline-block;height:3px;width:3px}:where(:root,:host){--vaadin-dialog-title-font-size:var(--aura-font-size-l);--vaadin-dialog-border-width:0px}vaadin-confirm-dialog,vaadin-crud::part(overlay),vaadin-dialog{color-scheme:var(--aura-content-color-scheme)}vaadin-confirm-dialog::part(overlay),vaadin-dialog::part(overlay){--vaadin-dialog-background:var(--aura-surface);--aura-surface-level:4;view-transition-name:vaadin-dialog}vaadin-confirm-dialog::part(message){color:var(--vaadin-text-color-secondary)}::view-transition-group(vaadin-dialog){border-radius:var(--vaadin-dialog-border-radius,var(--vaadin-radius-l));z-index:1}:where(:root,:host){--vaadin-grid-row-selected-background-color:color-mix(in srgb,var(--aura-accent-color) 10%,transparent);--vaadin-grid-background:linear-gradient(var(--aura-surface),var(--aura-surface)) var(--aura-background) padding-box}:is(vaadin-grid,vaadin-crud-grid)::part(empty-state){align-items:center;display:flex;justify-content:center}vaadin-grid::part(active-nav-item){--vaadin-grid-row-highlight-background-color:var(--vaadin-background-container)}vaadin-grid-sorter::part(indicators){transition:color .12s}:is(vaadin-grid,vaadin-crud)[theme~=column-borders]{--vaadin-grid-column-border-width:1px}:is(vaadin-grid,vaadin-crud)[theme~=no-row-borders]{--vaadin-grid-row-border-width:0px}:where(:root,:host,[theme]){--vaadin-input-field-background:var(--aura-surface);--vaadin-input-field-error-color:var(--aura-red-text)}::part(input-field),vaadin-input-container,vaadin-message-input{--vaadin-input-field-background:var(--aura-surface);--aura-surface-level:4;--aura-surface-opacity:0.7;background-clip:padding-box}:not([readonly],[disabled])::part(input-field),vaadin-message-input:not([readonly],[disabled]){box-shadow:0 2px 1px -1px rgba(0,0,0,.04)}[disabled]::part(input-field){--aura-surface-opacity:0.5;--aura-surface-level:1}::part(field-button){transition:color .1s}:not([readonly],[disabled])::part(field-button):active{color:var(--vaadin-text-color)}@media (any-hover:hover){:not([readonly],[disabled])::part(field-button):hover{color:var(--vaadin-text-color)}}:where(:root,:host){--vaadin-item-overlay-padding:var(--vaadin-gap-xs);--vaadin-item-border-radius:calc(var(--vaadin-radius-m) - var(--vaadin-item-overlay-padding));--vaadin-item-checkmark-color:var(--aura-accent-text)}:is(vaadin-avatar-group-menu-item,vaadin-combo-box-item,vaadin-context-menu-item,vaadin-time-picker-item,vaadin-item,vaadin-menu-bar-item,vaadin-multi-select-combo-box-item,vaadin-select-item[role]){font-weight:var(--aura-font-weight-medium);--vaadin-item-checkmark-color:var(--aura-accent-text);&::part(checkmark){--vaadin-icon-visual-size:75%}&::part(content){display:flex}@media (any-hover:hover){&:not([disabled],[aria-disabled=true]):hover{background:color-mix(in srgb,var(--aura-accent-color) 10%,transparent);&[theme~=filled]{background:var(--aura-accent-color);color:var(--aura-accent-contrast);--vaadin-text-color:var(--aura-accent-contrast);--vaadin-text-color-secondary:color-mix(in srgb,var(--aura-accent-contrast) 70%,transparent);--vaadin-text-color-disabled:color-mix(in srgb,var(--aura-accent-contrast) 50%,transparent);--vaadin-item-checkmark-color:var(--aura-accent-contrast);>*{--aura-red:var(--aura-accent-contrast);--aura-red-text:var(--aura-accent-contrast);--aura-orange:var(--aura-accent-contrast);--aura-orange-text:var(--aura-accent-contrast);--aura-yellow:var(--aura-accent-contrast);--aura-yellow-text:var(--aura-accent-contrast);--aura-green:var(--aura-accent-contrast);--aura-green-text:var(--aura-accent-contrast);--aura-blue:var(--aura-accent-contrast);--aura-blue-text:var(--aura-accent-contrast);--aura-purple:var(--aura-accent-contrast);--aura-purple-text:var(--aura-accent-contrast)}}}}&[aria-expanded=true]:not(:hover){background:var(--vaadin-background-container-strong)}&[theme~=danger]{--aura-accent-light:var(--aura-red);--aura-accent-dark:var(--aura-red);color:var(--aura-red-text)}}[role=menu] [role=separator]{border-color:var(--vaadin-border-color);margin-block:var(--vaadin-gap-xs);margin-inline-start:calc(var(--vaadin-icon-size, 1lh) + var(--vaadin-item-gap, var(--vaadin-gap-s)) + var(--vaadin-gap-xs)*2)}:where(:root,:host){--vaadin-login-form-error-color:var(--aura-red-text);--vaadin-login-form-padding:var(--vaadin-padding-xl);--vaadin-login-overlay-brand-padding:var(--vaadin-padding-xl);--vaadin-login-overlay-brand-background:transparent;--vaadin-login-overlay-title-font-size:1.5em;--vaadin-login-overlay-title-line-height:1.2;--vaadin-login-overlay-title-font-weight:var(--aura-font-weight-semibold);--vaadin-login-overlay-title-color:var(--vaadin-text-color);--vaadin-login-overlay-description-color:var(--vaadin-text-color-secondary)}vaadin-login-form::part(error-message){background:color-mix(in srgb,var(--aura-red) 10%,transparent);border-radius:var(--vaadin-radius-m);padding:var(--vaadin-padding-m)}vaadin-login-form::part(error-message-title){font-weight:var(--aura-font-weight-semibold)}vaadin-login-overlay{--vaadin-overlay-backdrop-background:var(--aura-app-background);&::part(overlay){--aura-surface-level:2}&::part(brand){padding-bottom:0;text-align:center}&::part(form-title){display:none}[slot=title]{letter-spacing:-.03em}}vaadin-master-detail-layout::part(detail){--aura-surface-level:2;background:var(--aura-surface) padding-box}vaadin-master-detail-layout[drawer]::part(detail){--aura-surface-opacity:var(--aura-overlay-surface-opacity);-webkit-backdrop-filter:var(--aura-overlay-backdrop-filter);backdrop-filter:var(--aura-overlay-backdrop-filter);background:var(--aura-surface) padding-box;box-shadow:inset 1px 0 0 0 var(--aura-overlay-inner-outline-color),-1px 0 0 0 var(--aura-overlay-outline-color),var(--aura-shadow-m)}vaadin-master-detail-layout[containment=viewport][drawer]::part(detail){box-shadow:var(--aura-overlay-shadow)}vaadin-master-detail-layout[containment=viewport][drawer]::part(detail),vaadin-master-detail-layout[theme~=inset-drawer][drawer]::part(detail){border-radius:var(--_app-layout-radius);margin:calc(var(--aura-app-layout-inset)/2)}vaadin-master-detail-layout:not([drawer])::part(detail),vaadin-master-detail-layout>vaadin-master-detail-layout{border-end-end-radius:var(--_app-layout-radius);border-start-end-radius:var(--_app-layout-radius)}::view-transition-group(vaadin-mdl-backdrop),::view-transition-group(vaadin-mdl-detail),::view-transition-group(vaadin-mdl-master){border-radius:var(--_app-layout-radius);overflow:hidden}@container not style(--vaadin-menu-bar-gap){vaadin-menu-bar:not([has-single-button]) vaadin-menu-bar-button:not([first-visible]){border-inline-start-color:transparent}}@media (any-hover:hover){vaadin-menu-bar-button vaadin-menu-bar-item:not([disabled]):not([tabindex]):hover{background:transparent}}vaadin-menu-bar-button[slot=overflow]{font-family:system-ui,sans-serif;font-weight:600}vaadin-message-input vaadin-text-area::part(input-field){--vaadin-input-field-background:transparent}vaadin-message-input[theme~=icon-button] vaadin-message-input-button{color:transparent;contain:strict;height:var(--vaadin-icon-size,1lh);position:relative;width:var(--vaadin-icon-size,1lh)}vaadin-message-input[theme~=icon-button] vaadin-message-input-button:before{background:var(--vaadin-button-text-color);content:"";inset:0;mask-image:var(--_vaadin-icon-paper-airplane);position:absolute}vaadin-message-input[theme~=icon-button][dir=rtl] vaadin-message-input-button:before{scale:-1}@media (forced-colors:active){vaadin-message-input[theme~=icon-button] vaadin-message-input-button{forced-color-adjust:none;--vaadin-button-text-color:CanvasText}}:where(:root,:host){--vaadin-chip-padding:0.4em;--vaadin-chip-background:var(--vaadin-background-container-strong)}vaadin-multi-select-combo-box-chip{--vaadin-chip-height:1lh;--vaadin-icon-size:1.25em;--vaadin-chip-padding:0.4em;--vaadin-chip-border-radius:var(--vaadin-radius-s);--vaadin-chip-border-width:0px}:where(:root,:host){--vaadin-notification-border-width:0px;--vaadin-ease-fluid:cubic-bezier(0.78,0,0.22,1)}vaadin-notification-container{color-scheme:var(--aura-notification-color-scheme)}vaadin-notification-card::part(overlay){--aura-surface-level:4;--vaadin-notification-background:var(--aura-surface);view-transition-name:vaadin-notification}::view-transition-group(vaadin-notification){border-radius:var(--vaadin-notification-border-radius,var(--vaadin-radius-l));z-index:1}@supports (background:-webkit-named-image(i)){::view-transition-group(vaadin-notification){backdrop-filter:none}}vaadin-notification-card vaadin-card{--vaadin-card-gap:var(--vaadin-gap-xs) var(--vaadin-gap-s);color:var(--vaadin-text-color-secondary)}vaadin-notification-card vaadin-button{--aura-surface-level:8;--aura-surface-opacity:0.3}:where(:root,:host){--vaadin-overlay-border-width:0px;--vaadin-overlay-backdrop-background:light-dark(oklch(from var(--aura-background-light) calc(l * 0.1) c h/0.15),rgba(0,0,0,.3));--aura-overlay-outline-color:light-dark(oklch(from var(--aura-background-light) 0.1 c h/max(0.04,0.03 + 0.04 * var(--aura-contrast))),oklch(from var(--aura-background-dark) 0.1 c h/max(0.04,0.03 + 0.04 * var(--aura-contrast))));--aura-overlay-inner-outline-color:hsla(0deg,0%,100%,max(3%,2% + 4% * var(--aura-contrast)));--aura-overlay-shadow:inset 0 0 0 1px var(--aura-overlay-inner-outline-color),0 0 0 1px var(--aura-overlay-outline-color),var(--aura-shadow-m);--aura-overlay-backdrop-filter:blur(20px) brightness(1.1) saturate(1.2);--aura-overlay-surface-opacity:0.85;@media (prefers-reduced-transparency:reduce){--aura-overlay-surface-opacity:1!important}}::part(overlay){--vaadin-overlay-background:var(--aura-surface);--aura-surface-level:4;--aura-surface-opacity:var(--aura-overlay-surface-opacity);-webkit-backdrop-filter:var(--aura-overlay-backdrop-filter);backdrop-filter:var(--aura-overlay-backdrop-filter);box-shadow:var(--aura-overlay-shadow);color:var(--vaadin-text-color);font-family:var(--aura-font-family);font-size:var(--aura-font-size-m);font-weight:var(--aura-font-weight);line-height:var(--aura-line-height-m)}:where(:root,:host){--vaadin-progress-bar-border-width:0px;--vaadin-progress-bar-value-background:linear-gradient(90deg,var(--aura-accent-color),color-mix(in hsl,var(--aura-accent-color) 60%,#f6f4ee))}vaadin-progress-bar{height:var(--vaadin-gap-s);&[dir=rtl]::part(value){scale:-1}}:where(:root,:host){--vaadin-rich-text-editor-toolbar-background:transparent;--vaadin-rich-text-editor-toolbar-padding:var(--vaadin-padding-xs);--vaadin-rich-text-editor-toolbar-gap:var(--vaadin-gap-xs) var(--vaadin-gap-m);--vaadin-rich-text-editor-toolbar-button-background:transparent;--vaadin-rich-text-editor-toolbar-button-border-radius:calc(var(--vaadin-radius-m) - 2px);--vaadin-rich-text-editor-toolbar-button-padding:var(--vaadin-padding-xs);--vaadin-rich-text-editor-toolbar-button-text-color:var(--vaadin-text-color-secondary)}vaadin-rich-text-editor{--vaadin-icon-visual-size:90%;--vaadin-rich-text-editor-background:var(--aura-surface) padding-box;--aura-surface-level:4;--aura-surface-opacity:0.7!important;box-shadow:0 2px 1px -1px rgba(0,0,0,.04);&:not(:focus-within){--vaadin-rich-text-editor-toolbar-button-text-color:var(--vaadin-text-color-disabled)}}vaadin-rich-text-editor::part(toolbar){contain:paint}vaadin-rich-text-editor::part(toolbar-group){align-items:center;gap:1px}vaadin-rich-text-editor::part(toolbar-group):before{background:var(--vaadin-border-color-secondary);content:"";height:1lh;position:absolute;translate:calc(var(--vaadin-gap-m)/-2);width:1px}vaadin-rich-text-editor::part(toolbar-button){border:1px solid transparent;outline-offset:calc(var(--vaadin-focus-ring-width)*-1);position:relative;transition:color 80ms,background-color 80ms,scale .18s}vaadin-rich-text-editor::part(toolbar-button-pressed){--vaadin-rich-text-editor-toolbar-button-background:transparent}vaadin-rich-text-editor:focus-within::part(toolbar-button-pressed){--vaadin-rich-text-editor-toolbar-button-background:var(--vaadin-background-container-strong) padding-box;--vaadin-rich-text-editor-toolbar-button-text-color:var(--vaadin-text-color);border-color:var(--vaadin-text-color-disabled)}vaadin-rich-text-editor::part(toolbar-button):active{scale:.95;transition-duration:80ms,80ms,50ms}@media (any-hover:hover){vaadin-rich-text-editor::part(toolbar-button):hover{--vaadin-rich-text-editor-toolbar-button-background:var(--vaadin-background-container);--vaadin-rich-text-editor-toolbar-button-text-color:var(--vaadin-text-color)}}vaadin-select-item::part(content){align-items:center;display:flex;gap:inherit}vaadin-select[theme~=subtle]::part(input-field){--vaadin-input-field-border-color:transparent;--vaadin-input-field-background:transparent}vaadin-select[theme~=subtle]::part(toggle-button){opacity:0;transition:opacity .2s;--vaadin-icon-size:0.75lh}vaadin-select[theme~=subtle][focus-ring]::part(toggle-button){opacity:1}@media (any-hover:hover){vaadin-select[theme~=subtle]:hover::part(toggle-button){opacity:1}}vaadin-select[theme~=auto-size]{--vaadin-field-default-width:auto}:where(:root,:host){--vaadin-side-nav-label-line-height:var(--aura-line-height-xs);--vaadin-side-nav-label-font-weight:var(--aura-font-weight-medium);--vaadin-side-nav-item-font-weight:var(--aura-font-weight-medium);--vaadin-side-nav-item-border-width:1px;--vaadin-side-nav-items-gap:var(--vaadin-gap-xs)}vaadin-side-nav+vaadin-side-nav{margin-top:var(--vaadin-gap-l)}vaadin-side-nav-item::part(content){transition:color .12s,border-color .12s,background-color .12s;--aura-surface-level:3}vaadin-side-nav-item:not([disabled])::part(content):hover{--vaadin-side-nav-item-color:var(--vaadin-text-color)}vaadin-side-nav-item[current]::part(content){--_accent:light-dark(oklch(from var(--aura-accent-light) calc(l + 0.2) c h/min(0.3,c/2)),oklch(from var(--aura-accent-dark) calc(l - 0.2) c h/min(0.3,c/2)));--_accent-border:light-dark(oklch(from var(--aura-accent-light) l calc(c / 2) h/calc(min(0.15, 0.05 + c / 2) + 0.1 * var(--aura-contrast))),oklch(from var(--aura-accent-dark) l calc(c / 2) h/calc(min(0.15, 0.05 + c / 2) + 0.1 * var(--aura-contrast))));--vaadin-side-nav-item-background:linear-gradient(var(--_accent),var(--_accent)) var(--aura-surface) padding-box;--vaadin-side-nav-item-color:var(--aura-accent-text);--vaadin-side-nav-item-border-color:var(--_accent-border)}vaadin-side-nav[theme~=filled] vaadin-side-nav-item[current]::part(content){--vaadin-side-nav-item-background:var(--aura-accent-color) border-box;--vaadin-side-nav-item-color:var(--aura-accent-contrast);outline-offset:2px}vaadin-side-nav[theme~=filled] vaadin-side-nav-item[current]>:not([slot=children]):not([slot=tooltip]){--vaadin-text-color:var(--vaadin-side-nav-item-color);--vaadin-text-color-secondary:var(--vaadin-side-nav-item-color);--aura-accent-color:var(--vaadin-side-nav-item-color);--aura-accent-text:var(--vaadin-side-nav-item-color);--aura-red:var(--vaadin-side-nav-item-color);--aura-red-text:var(--vaadin-side-nav-item-color);--aura-orange:var(--vaadin-side-nav-item-color);--aura-orange-text:var(--vaadin-side-nav-item-color);--aura-yellow:var(--vaadin-side-nav-item-color);--aura-yellow-text:var(--vaadin-side-nav-item-color);--aura-green:var(--vaadin-side-nav-item-color);--aura-green-text:var(--vaadin-side-nav-item-color);--aura-blue:var(--vaadin-side-nav-item-color);--aura-blue-text:var(--vaadin-side-nav-item-color);--aura-purple:var(--vaadin-side-nav-item-color);--aura-purple-text:var(--vaadin-side-nav-item-color)}:where(:root,:host){--vaadin-upload-background:var(--aura-surface) padding-box;--vaadin-upload-border:1px solid var(--vaadin-border-color-secondary);--vaadin-upload-padding:var(--vaadin-padding-s);--vaadin-upload-file-list-divider-color:var(--vaadin-border-color-secondary);--vaadin-upload-file-list-divider-width:1px;--vaadin-upload-file-error-color:var(--vaadin-text-color-secondary);--vaadin-upload-file-warning-color:var(--aura-red);--vaadin-upload-file-done-color:var(--aura-green);--vaadin-upload-file-name-font-weight:var(--aura-font-weight-medium);--vaadin-upload-file-padding:var(--vaadin-padding-s);--vaadin-upload-file-gap:0 var(--vaadin-gap-s);--vaadin-upload-file-button-padding:var(--vaadin-upload-file-padding);--vaadin-upload-file-button-border-width:0;--vaadin-upload-file-status-font-size:var(--aura-font-size-s);--vaadin-upload-file-status-line-height:var(--aura-line-height-s);--vaadin-upload-file-error-font-size:var(--aura-font-size-s);--vaadin-upload-file-error-line-height:var(--aura-line-height-s);--vaadin-upload-drop-label-color:var(--vaadin-text-color-secondary);--vaadin-upload-drop-label-font-weight:var(--aura-font-weight-medium)}vaadin-upload{--_divider-offset-start:calc(var(--vaadin-padding-s) + var(--vaadin-icon-size, 1lh) + var(--vaadin-gap-s));--_divider-offset-end:var(--vaadin-padding-s)}vaadin-upload::part(primary-buttons){flex-wrap:wrap;gap:var(--vaadin-gap-s) var(--vaadin-gap-m)}vaadin-upload:not([nodrop]) vaadin-button[slot=add-button]{flex:1}vaadin-upload::part(drop-label){flex:100;margin-inline-start:calc(var(--vaadin-upload-padding)*-1);min-width:fit-content;padding:var(--vaadin-padding-xs) var(--vaadin-padding-s)}vaadin-upload[dragover-valid]{outline:var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);outline-offset:-1px}vaadin-upload-file-list li{margin-inline:var(--_divider-offset-start) var(--_divider-offset-end);&:first-child{margin-top:0}}vaadin-upload:not([theme~=no-border]) vaadin-upload-file-list:has(li){border-top:1px solid var(--vaadin-border-color-secondary);margin:calc(var(--vaadin-upload-padding)*-1);margin-top:var(--vaadin-upload-padding)}vaadin-upload-file{--vaadin-icon-visual-size:0.75lh;border-radius:var(--vaadin-radius-m);margin-inline:calc(var(--_divider-offset-start, 0)*-1) calc(var(--_divider-offset-end, 0)*-1);padding-block:var(--vaadin-padding-m);&::part(commands),&::part(done-icon),&::part(warning-icon){align-self:baseline}&:not([complete],[error])::part(done-icon){display:block}&:not([complete],[error])::part(done-icon):before{background:var(--vaadin-border-color-secondary)}&::part(commands){margin-block:calc(var(--vaadin-upload-file-button-padding)*-1);margin-inline-end:calc(var(--vaadin-upload-file-button-padding)*-1)}&::part(remove-button),&::part(retry-button){--vaadin-upload-file-button-text-color:var(--vaadin-text-color-secondary);outline-offset:calc(var(--vaadin-focus-ring-width)*-1)}vaadin-progress-bar{display:block;height:var(--vaadin-gap-xs);margin-top:var(--vaadin-gap-xs)}&:not([error])::part(status){display:-webkit-box;-webkit-line-clamp:2;max-height:2lh;-webkit-box-orient:vertical;overflow:hidden}&[complete]::part(status){height:1lh;max-height:0;transition:max-height .2s;visibility:hidden}&[complete] vaadin-progress-bar{height:0;margin-top:0;transition:height .2s;visibility:hidden}}vaadin-upload[theme~=no-border]{--vaadin-upload-padding:0;--vaadin-upload-background:transparent;--vaadin-upload-border:none;--vaadin-upload-file-list-divider-width:0;--_divider-offset-start:0px;--_divider-offset-end:0px;outline-offset:2px;vaadin-upload-file-list::part(list){display:flex;flex-direction:column;gap:var(--vaadin-gap-s)}vaadin-upload-file-list li:first-child{margin-top:var(--vaadin-gap-s)}vaadin-upload-file{background:var(--aura-surface) padding-box;border:1px solid var(--vaadin-border-color-secondary)}}@media (any-hover:hover){vaadin-upload-file::part(remove-button):hover,vaadin-upload-file::part(retry-button):hover{--vaadin-upload-file-button-text-color:var(--vaadin-text-color)}}:where(:root,:host){cursor:default;--_vaadin-icon-chevron-down: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="m6 9 6 6 6-6"/></svg>')}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/aura",
3
- "version": "25.0.0-alpha20",
3
+ "version": "25.0.0-alpha21",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -40,5 +40,5 @@
40
40
  "postcss-import": "^16.1.1",
41
41
  "postcss-url": "^10.1.3"
42
42
  },
43
- "gitHead": "c948aae591a30b432f3784000d4677674cae56e0"
43
+ "gitHead": "8fb9e9710c01449edf623a1aaac4655cdc11a933"
44
44
  }
package/src/color.css CHANGED
@@ -8,10 +8,9 @@
8
8
  oklch(from var(--aura-background-light) 0.1 calc(c / 2 + c * (1 - c)) h),
9
9
  oklch(from var(--aura-background-dark) 1 c h)
10
10
  );
11
- --vaadin-text-color: light-dark(
12
- color-mix(in srgb, var(--_color-base) calc(90% + 5% * var(--aura-contrast)), transparent),
13
- color-mix(in srgb, #fff calc(90% + 5% * var(--aura-contrast)), transparent)
14
- );
11
+ --aura-text-light: color-mix(in srgb, var(--_color-base) calc(90% + 5% * var(--aura-contrast)), transparent);
12
+ --aura-text-dark: color-mix(in srgb, #fff calc(90% + 5% * var(--aura-contrast)), transparent);
13
+ --vaadin-text-color: light-dark(var(--aura-text-light), var(--aura-text-dark));
15
14
  --vaadin-text-color-secondary: light-dark(
16
15
  color-mix(in srgb, var(--_color-base) calc(55% + 10% * var(--aura-contrast)), transparent),
17
16
  color-mix(in srgb, var(--_color-base) calc(57% + 10% * var(--aura-contrast)), transparent)
@@ -36,8 +35,10 @@
36
35
  color-mix(in srgb, var(--_border-color-base) max(6%, 5% + 5% * var(--aura-contrast)), transparent)
37
36
  );
38
37
 
39
- --aura-background-light: oklch(from var(--aura-accent-light) min(1, l + (1 - l) * 0.9) calc(c * 0.05) h);
40
- --aura-background-dark: oklch(from var(--aura-accent-dark) max(0, l/2 - (1 - l) * 0.2) calc(c * 0.05) h);
38
+ /* Using static values (vs relative colors) for these backgrounds improves first paint rendering performance quite much (~200ms) */
39
+ --aura-background-light: oklch(95% 0.005 260);
40
+ --aura-background-dark: oklch(20% 0.01 260);
41
+
41
42
  --aura-background: light-dark(var(--aura-background-light), var(--aura-background-dark));
42
43
 
43
44
  --_bg-alt: oklch(
@@ -46,34 +47,17 @@
46
47
  --_bg-accent: radial-gradient(
47
48
  circle at 0% 0%,
48
49
  light-dark(
49
- oklch(from var(--aura-background-light) min(1, l + c * 3) min(c, c * 3 - l/20) h),
50
+ oklch(from var(--aura-background-light) min(1, l + c * 3) min(c, c * 3) h),
50
51
  oklch(from var(--aura-background-dark) min(1, l + c) clamp(0, c * 1.5, 0.4) h)
51
52
  ),
52
53
  transparent 30%
53
54
  );
54
55
  --aura-app-background:
55
- var(--_bg-accent), radial-gradient(circle at 25% 0% in xyz, var(--aura-background) 33%, var(--_bg-alt));
56
+ var(--_bg-accent),
57
+ radial-gradient(circle at 25% 0% in xyz, var(--aura-background) 33%, var(--_bg-alt)) var(--aura-background);
56
58
 
57
- --aura-accent-color: light-dark(var(--aura-accent-light), var(--aura-accent-dark));
58
59
  --vaadin-focus-ring-color: var(--aura-accent-color);
59
60
  accent-color: var(--aura-accent-color);
60
- /* Workaround Safari 17 limitation and compute these separately for light and dark */
61
- --aura-accent-contrast: light-dark(
62
- oklch(from var(--aura-accent-light) clamp(0, (0.62 - l) * 1000, 1) 0 0),
63
- oklch(from var(--aura-accent-dark) clamp(0, (0.62 - l) * 1000, 1) 0 0)
64
- );
65
-
66
- --aura-accent-text-light: color-mix(
67
- in srgb,
68
- var(--aura-accent-light) calc(70% - 15% * var(--aura-contrast)),
69
- var(--vaadin-text-color)
70
- );
71
- --aura-accent-text-dark: color-mix(
72
- in srgb,
73
- var(--aura-accent-dark) calc(70% - 15% * var(--aura-contrast)),
74
- var(--vaadin-text-color)
75
- );
76
- --aura-accent-text: light-dark(var(--aura-accent-text-light), var(--aura-accent-text-dark));
77
61
 
78
62
  /* TODO probably broken for Safari 17 */
79
63
  --vaadin-user-color: var(--aura-accent-color);
@@ -96,6 +80,39 @@
96
80
  background-attachment: fixed;
97
81
  }
98
82
 
83
+ :where(:root, :host),
84
+ vaadin-button,
85
+ vaadin-context-menu-item,
86
+ vaadin-crud-edit,
87
+ vaadin-drawer-toggle,
88
+ vaadin-menu-bar-button,
89
+ vaadin-menu-bar-item,
90
+ vaadin-checkbox::part(checkbox),
91
+ vaadin-radio-button::part(radio),
92
+ vaadin-side-nav-item::part(content) {
93
+ --aura-accent-contrast-light: oklch(
94
+ from var(--aura-accent-light) clamp(0, (0.62 - l) * 1000, 1) 0 0 / clamp(0.8, (0.62 - l) * 1000, 1)
95
+ );
96
+ --aura-accent-contrast-dark: oklch(
97
+ from var(--aura-accent-dark) clamp(0, (0.62 - l) * 1000, 1) 0 0 / clamp(0.8, (0.62 - l) * 1000, 1)
98
+ );
99
+
100
+ --aura-accent-text-light: color-mix(
101
+ in srgb,
102
+ var(--aura-accent-light) calc(70% - 15% * var(--aura-contrast)),
103
+ var(--vaadin-text-color)
104
+ );
105
+ --aura-accent-text-dark: color-mix(
106
+ in srgb,
107
+ var(--aura-accent-dark) calc(70% - 15% * var(--aura-contrast)),
108
+ var(--vaadin-text-color)
109
+ );
110
+
111
+ --aura-accent-color: light-dark(var(--aura-accent-light), var(--aura-accent-dark));
112
+ --aura-accent-contrast: light-dark(var(--aura-accent-contrast-light), var(--aura-accent-contrast-dark));
113
+ --aura-accent-text: light-dark(var(--aura-accent-text-light), var(--aura-accent-text-dark));
114
+ }
115
+
99
116
  @supports (color: hsl(0 0 0)) {
100
117
  :where(:root, :host) {
101
118
  --_safari-17-deg: 1;
@@ -0,0 +1,37 @@
1
+ :is(vaadin-details, vaadin-accordion-panel):not([theme~='no-padding'])::part(content) {
2
+ padding: var(--vaadin-padding-container);
3
+ padding-top: 0;
4
+ }
5
+
6
+ :is(vaadin-details, vaadin-accordion-panel):not([theme~='no-padding'], [theme~='reverse'])::part(content) {
7
+ margin-inline-start: calc(var(--vaadin-icon-size, 1lh) + var(--vaadin-details-summary-gap, var(--vaadin-gap-s)));
8
+ }
9
+
10
+ :is(vaadin-details, vaadin-accordion-panel)[theme~='reverse'] {
11
+ [slot='summary']::part(content) {
12
+ width: 100%;
13
+ }
14
+
15
+ [slot='summary']::part(toggle) {
16
+ order: 1;
17
+ margin-inline-start: auto;
18
+ }
19
+ }
20
+
21
+ :is(vaadin-details, vaadin-accordion-panel)[theme~='filled'] {
22
+ background: var(--aura-surface) padding-box;
23
+ border-radius: var(--vaadin-radius-m);
24
+ border: 1px solid var(--vaadin-border-color-secondary);
25
+
26
+ &:has(+ :is(vaadin-details, vaadin-accordion-panel)[theme~='filled']) {
27
+ border-bottom-left-radius: 0;
28
+ border-bottom-right-radius: 0;
29
+ }
30
+
31
+ & + :is(vaadin-details, vaadin-accordion-panel)[theme~='filled'] {
32
+ margin-top: -1px;
33
+ border-top-color: transparent;
34
+ border-top-left-radius: 0;
35
+ border-top-right-radius: 0;
36
+ }
37
+ }
@@ -16,16 +16,6 @@
16
16
  }
17
17
  }
18
18
 
19
- html:has(vaadin-app-layout) {
20
- &,
21
- body {
22
- width: 100%;
23
- height: 100%;
24
- margin: 0;
25
- box-sizing: border-box;
26
- }
27
- }
28
-
29
19
  vaadin-app-layout {
30
20
  --_app-layout-radius: clamp(0px, var(--aura-app-layout-radius), var(--aura-app-layout-inset) * 100);
31
21
  padding-block: var(--aura-app-layout-inset);
@@ -1,29 +1,36 @@
1
1
  :where(:root, :host) {
2
- --vaadin-button-border-color: var(--vaadin-border-color);
3
2
  --vaadin-button-shadow: 0 1px 4px -1px hsla(0, 0%, 0%, 0.07);
4
3
  }
5
4
 
6
- :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle) {
5
+ :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle, vaadin-crud-edit) {
7
6
  transition: scale 180ms;
8
7
  position: relative;
9
- }
10
-
11
- :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle):where(:not([theme~='tertiary'])) {
8
+ --_accent: light-dark(
9
+ oklch(from var(--aura-accent-light) calc(l + 0.2) c h / min(0.3, c / 2)),
10
+ oklch(from var(--aura-accent-dark) calc(l - 0.2) c h / min(0.3, c / 2))
11
+ );
12
+ --_accent-border: light-dark(
13
+ oklch(from var(--aura-accent-light) l calc(c / 2) h / calc(min(0.15, 0.1 + c / 2) + 0.1 * var(--aura-contrast))),
14
+ oklch(from var(--aura-accent-dark) l calc(c / 2) h / calc(min(0.15, 0.1 + c / 2) + 0.1 * var(--aura-contrast)))
15
+ );
16
+ --_background: linear-gradient(var(--_accent), var(--_accent)) var(--aura-surface) padding-box;
17
+ }
18
+
19
+ :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle, vaadin-crud-edit):where(:not([theme~='tertiary'])) {
12
20
  --aura-surface-level: 6;
13
21
  --aura-surface-opacity: 0.3;
14
22
  box-shadow: var(--vaadin-button-shadow);
15
23
  }
16
24
 
17
- :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle):not([theme~='primary'], [theme~='tertiary']) {
18
- background: var(--vaadin-button-background, var(--aura-surface) padding-box);
25
+ /* prettier-ignore */
26
+ :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle, vaadin-crud-edit):not([theme~='primary'], [theme~='tertiary']) {
27
+ background: var(--vaadin-button-background, var(--_background));
28
+ --vaadin-button-border-color: var(--_accent-border);
19
29
  }
20
30
 
21
- :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle):where(:not([theme~='primary'])) {
31
+ :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle, vaadin-crud-edit):where(:not([theme~='primary'])) {
22
32
  outline-offset: calc(var(--vaadin-button-border-width, 1px) * -1);
23
- }
24
-
25
- :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle):where([theme~='primary']) {
26
- outline-offset: 2px;
33
+ --vaadin-button-text-color: var(--aura-accent-text);
27
34
  }
28
35
 
29
36
  /*
@@ -31,7 +38,7 @@ Increase padding, but only for buttons that don't have an icon in the default sl
31
38
  Buttons that place an icon in the default slot are assumed to be icon-only buttons.
32
39
  */
33
40
  /* prettier-ignore */
34
- :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle):not(:has(:is(vaadin-icon, svg, i[class*='fa-'], vaadin-avatar):not([slot]))) {
41
+ :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle, vaadin-crud-edit):not(:has(:is(vaadin-icon, svg, i[class*='fa-'], vaadin-avatar):not([slot]))) {
35
42
  --vaadin-button-padding: round(var(--vaadin-padding-s) / 1.4, 1px)
36
43
  max(var(--vaadin-padding-m), round(var(--vaadin-radius-m) / 1.5, 1px));
37
44
  }
@@ -43,22 +50,27 @@ vaadin-drawer-toggle:empty {
43
50
  }
44
51
 
45
52
  /* prettier-ignore */
46
- :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle):has([slot='suffix']:is(vaadin-icon, svg, i[class*='fa-'], vaadin-avatar)),
53
+ :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle, vaadin-crud-edit):has([slot='suffix']:is(vaadin-icon, svg, i[class*='fa-'], vaadin-avatar)),
47
54
  vaadin-drawer-toggle:empty,
48
- vaadin-menu-bar-button[aria-haspopup='true'] {
55
+ vaadin-menu-bar-button[aria-haspopup='true']:not([slot='overflow']) {
49
56
  padding-inline-end: max(var(--vaadin-padding-s), round(var(--vaadin-radius-m) / 1.75, 1px));
50
57
  }
51
58
 
52
- :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle)[theme~='primary'] {
59
+ :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle, vaadin-crud-edit):where([theme~='primary']) {
60
+ outline-offset: 2px;
53
61
  --vaadin-button-font-weight: var(--aura-font-weight-semibold);
54
- --vaadin-button-text-color: light-dark(var(--vaadin-background-color), var(--aura-background-dark));
62
+ --vaadin-button-text-color: var(--aura-accent-contrast);
63
+ --vaadin-button-background: var(--aura-accent-color);
64
+ --vaadin-button-border-color: var(--vaadin-border-color-secondary);
65
+ --vaadin-button-shadow: 0 2px 3px -1px hsla(0, 0%, 0%, 0.24);
55
66
  }
56
67
 
57
- :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle)[disabled][theme~='primary'] {
58
- --vaadin-button-text-color: var(--vaadin-text-color-secondary);
68
+ /* prettier-ignore */
69
+ :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle, vaadin-crud-edit)[disabled][theme~='primary']::part(label) {
70
+ color: color-mix(in srgb, currentColor 50%, transparent);
59
71
  }
60
72
 
61
- :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle):not([disabled])::before {
73
+ :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle, vaadin-crud-edit):not([disabled])::before {
62
74
  content: '';
63
75
  position: absolute;
64
76
  inset: calc(var(--vaadin-button-border-width, 1px) * -1);
@@ -72,18 +84,19 @@ vaadin-menu-bar-button[aria-haspopup='true'] {
72
84
  }
73
85
 
74
86
  @supports (color: hsl(0 0 0)) {
75
- :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle):not([disabled])::before {
76
- background-color: oklch(from currentColor calc(l + 0.4 - c) c h);
87
+ :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle, vaadin-crud-edit):not([disabled])::before {
88
+ background-color: oklch(from currentColor calc(l + 0.4 - c) c h / calc(1 - l / 2));
77
89
  }
78
90
  }
79
91
 
80
92
  @media (any-hover: hover) {
81
- :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle):hover:not([disabled], [active])::before {
82
- opacity: 0.05;
93
+ /* prettier-ignore */
94
+ :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle, vaadin-crud-edit):hover:not([disabled], [active])::before {
95
+ opacity: 0.03;
83
96
  }
84
97
 
85
98
  /* prettier-ignore */
86
- :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle)[theme~='primary']:hover:not([disabled], [active])::before {
99
+ :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle, vaadin-crud-edit)[theme~='primary']:hover:not([disabled], [active])::before {
87
100
  opacity: 0.12;
88
101
  }
89
102
  }
@@ -96,13 +109,18 @@ vaadin-menu-bar-button[aria-haspopup='true'] {
96
109
  }
97
110
  }
98
111
 
99
- :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle)[active]:not([disabled])::before {
112
+ :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle, vaadin-crud-edit)[active]:not([disabled]) {
113
+ box-shadow: none;
114
+ }
115
+
116
+ :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle, vaadin-crud-edit)[active]:not([disabled])::before {
100
117
  transition-duration: 0s;
101
118
  opacity: 0.08;
102
119
  background: oklch(from currentColor min(c, 1 - l + c) calc(c * 0.9) h);
103
120
  }
104
121
 
105
- :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle)[theme~='primary'][active]:not([disabled])::before {
122
+ /* prettier-ignore */
123
+ :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle, vaadin-crud-edit)[theme~='primary'][active]:not([disabled])::before {
106
124
  opacity: 0.16;
107
125
  }
108
126
 
@@ -111,3 +129,16 @@ vaadin-menu-bar-button[aria-haspopup='true'] {
111
129
  border-inline-start-color: transparent;
112
130
  }
113
131
  }
132
+
133
+ /* Color variants */
134
+
135
+ :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle, vaadin-crud-edit):where(:not([theme~='accent'])) {
136
+ --aura-accent-light: var(--aura-text-light);
137
+ --aura-accent-dark: var(--aura-text-dark);
138
+ }
139
+
140
+ /* prettier-ignore */
141
+ :is(vaadin-button, vaadin-menu-bar-button, vaadin-drawer-toggle, vaadin-crud-edit):is([theme~='danger'], [theme~='error']) {
142
+ --aura-accent-light: var(--aura-red);
143
+ --aura-accent-dark: var(--aura-red);
144
+ }
@@ -30,15 +30,15 @@ vaadin-radio-button:not([checked])::part(radio) {
30
30
  }
31
31
 
32
32
  vaadin-checkbox:is([checked], [indeterminate]):not([readonly], [disabled])::part(checkbox) {
33
- /* TODO add/use selection color */
34
33
  --vaadin-checkbox-background: var(--aura-accent-color);
35
34
  --vaadin-checkbox-color: var(--aura-accent-contrast);
35
+ --vaadin-checkbox-border-color: var(--vaadin-border-color-secondary);
36
36
  }
37
37
 
38
38
  vaadin-radio-button[checked]:not([readonly], [disabled])::part(radio) {
39
- /* TODO add/use selection color */
40
39
  --vaadin-radio-button-background: var(--aura-accent-color);
41
40
  --vaadin-radio-button-color: var(--aura-accent-contrast);
41
+ --vaadin-radio-button-border-color: var(--vaadin-border-color-secondary);
42
42
  }
43
43
 
44
44
  vaadin-checkbox:not([readonly], [disabled])::part(checkbox)::before,
@@ -0,0 +1,14 @@
1
+ vaadin-confirm-dialog::part(footer) {
2
+ width: fit-content;
3
+ margin-inline-start: auto;
4
+ }
5
+
6
+ vaadin-confirm-dialog::part(cancel-button),
7
+ vaadin-confirm-dialog::part(reject-button),
8
+ vaadin-confirm-dialog::part(confirm-button) {
9
+ flex: 1;
10
+ }
11
+
12
+ vaadin-confirm-dialog :is([slot='cancel-button'], [slot='reject-button'], [slot='confirm-button']) {
13
+ display: flex;
14
+ }
@@ -0,0 +1,12 @@
1
+ :where(:root, :host) {
2
+ --vaadin-crud-background: var(--aura-surface) padding-box;
3
+ }
4
+
5
+ vaadin-crud-edit {
6
+ padding: var(--vaadin-padding-xs);
7
+ --vaadin-icon-visual-size: 0.75lh;
8
+ }
9
+
10
+ vaadin-crud::part(editor) {
11
+ background: var(--aura-surface);
12
+ }
@@ -4,7 +4,8 @@
4
4
  }
5
5
 
6
6
  vaadin-dialog,
7
- vaadin-confirm-dialog {
7
+ vaadin-confirm-dialog,
8
+ vaadin-crud::part(overlay) {
8
9
  color-scheme: var(--aura-content-color-scheme);
9
10
  }
10
11
 
@@ -1,25 +1,27 @@
1
1
  :where(:root, :host) {
2
- /* TODO should likely be just a color prop, not a background-image */
3
- --vaadin-grid-row-selected-background: linear-gradient(
4
- var(--vaadin-background-container),
5
- var(--vaadin-background-container)
6
- );
2
+ --vaadin-grid-row-selected-background-color: color-mix(in srgb, var(--aura-accent-color) 10%, transparent);
3
+ --vaadin-grid-background: linear-gradient(var(--aura-surface), var(--aura-surface)) var(--aura-background) padding-box;
7
4
  }
8
5
 
9
- vaadin-grid[theme~='no-border']::part(first-column-cell) {
10
- /* TODO can't use --vaadin-grid-cell-padding, it only works on the host */
11
- /* quite difficult to override the cell padding when it’s on the slotted vaadin-grid-cell-content element */
12
- --_cell-padding: var(--vaadin-padding-xs) var(--vaadin-padding-s) var(--vaadin-padding-xs) var(--vaadin-padding-l);
13
- }
14
-
15
- vaadin-grid[theme~='no-border']::part(last-column-cell) {
16
- --_cell-padding: var(--vaadin-padding-xs) var(--vaadin-padding-l) var(--vaadin-padding-xs) var(--vaadin-padding-s);
6
+ :is(vaadin-grid, vaadin-crud-grid)::part(empty-state) {
7
+ display: flex;
8
+ align-items: center;
9
+ justify-content: center;
17
10
  }
18
11
 
19
12
  /* TODO custom part name: how should we indicate an active row? Should we have a built-in part name? */
20
13
  vaadin-grid::part(active-nav-item) {
21
- /* TODO should likely be just a color prop, not a background-image */
22
- /* TODO need a custom prop in grid base styles that can be used to just highlight a row, which works together with row stripes, selection color, etc. */
23
- --vaadin-grid-cell-background: linear-gradient(var(--vaadin-background-container), var(--vaadin-background-container))
24
- var(--vaadin-background-color);
14
+ --vaadin-grid-row-highlight-background-color: var(--vaadin-background-container);
15
+ }
16
+
17
+ vaadin-grid-sorter::part(indicators) {
18
+ transition: color 120ms;
19
+ }
20
+
21
+ :is(vaadin-grid, vaadin-crud)[theme~='column-borders'] {
22
+ --vaadin-grid-column-border-width: 1px;
23
+ }
24
+
25
+ :is(vaadin-grid, vaadin-crud)[theme~='no-row-borders'] {
26
+ --vaadin-grid-row-border-width: 0px;
25
27
  }
@@ -1,6 +1,6 @@
1
1
  :where(:root, :host, [theme]) {
2
2
  --vaadin-input-field-background: var(--aura-surface);
3
- --vaadin-input-field-error-color: var(--aura-red);
3
+ --vaadin-input-field-error-color: var(--aura-red-text);
4
4
  }
5
5
 
6
6
  ::part(input-field),
@@ -0,0 +1,76 @@
1
+ :where(:root, :host) {
2
+ --vaadin-item-overlay-padding: var(--vaadin-gap-xs);
3
+ --vaadin-item-border-radius: calc(var(--vaadin-radius-m) - var(--vaadin-item-overlay-padding));
4
+ --vaadin-item-checkmark-color: var(--aura-accent-text);
5
+ }
6
+
7
+ :is(
8
+ vaadin-avatar-group-menu-item,
9
+ vaadin-combo-box-item,
10
+ vaadin-context-menu-item,
11
+ vaadin-time-picker-item,
12
+ vaadin-item,
13
+ vaadin-menu-bar-item,
14
+ vaadin-multi-select-combo-box-item,
15
+ vaadin-select-item[role]
16
+ ) {
17
+ font-weight: var(--aura-font-weight-medium);
18
+ --vaadin-item-checkmark-color: var(--aura-accent-text);
19
+
20
+ &::part(checkmark) {
21
+ --vaadin-icon-visual-size: 75%;
22
+ }
23
+
24
+ &::part(content) {
25
+ display: flex;
26
+ }
27
+
28
+ @media (any-hover: hover) {
29
+ &:not([disabled], [aria-disabled='true']):hover {
30
+ background: color-mix(in srgb, var(--aura-accent-color) 10%, transparent);
31
+
32
+ &[theme~='filled'] {
33
+ background: var(--aura-accent-color);
34
+ color: var(--aura-accent-contrast);
35
+ --vaadin-text-color: var(--aura-accent-contrast);
36
+ --vaadin-text-color-secondary: color-mix(in srgb, var(--aura-accent-contrast) 70%, transparent);
37
+ --vaadin-text-color-disabled: color-mix(in srgb, var(--aura-accent-contrast) 50%, transparent);
38
+ --vaadin-item-checkmark-color: var(--aura-accent-contrast);
39
+
40
+ > * {
41
+ --aura-red: var(--aura-accent-contrast);
42
+ --aura-red-text: var(--aura-accent-contrast);
43
+ --aura-orange: var(--aura-accent-contrast);
44
+ --aura-orange-text: var(--aura-accent-contrast);
45
+ --aura-yellow: var(--aura-accent-contrast);
46
+ --aura-yellow-text: var(--aura-accent-contrast);
47
+ --aura-green: var(--aura-accent-contrast);
48
+ --aura-green-text: var(--aura-accent-contrast);
49
+ --aura-blue: var(--aura-accent-contrast);
50
+ --aura-blue-text: var(--aura-accent-contrast);
51
+ --aura-purple: var(--aura-accent-contrast);
52
+ --aura-purple-text: var(--aura-accent-contrast);
53
+ }
54
+ }
55
+ }
56
+ }
57
+
58
+ &[aria-expanded='true']:not(:hover) {
59
+ background: var(--vaadin-background-container-strong);
60
+ }
61
+
62
+ &[theme~='danger'] {
63
+ --aura-accent-light: var(--aura-red);
64
+ --aura-accent-dark: var(--aura-red);
65
+ color: var(--aura-red-text);
66
+ }
67
+ }
68
+
69
+ /* TODO is there a better selector? */
70
+ [role='menu'] [role='separator'] {
71
+ margin-block: var(--vaadin-gap-xs);
72
+ margin-inline-start: calc(
73
+ var(--vaadin-icon-size, 1lh) + var(--vaadin-item-gap, var(--vaadin-gap-s)) + var(--vaadin-gap-xs) * 2
74
+ );
75
+ border-color: var(--vaadin-border-color);
76
+ }
@@ -0,0 +1,42 @@
1
+ :where(:root, :host) {
2
+ --vaadin-login-form-error-color: var(--aura-red-text);
3
+ --vaadin-login-form-padding: var(--vaadin-padding-xl);
4
+ --vaadin-login-overlay-brand-padding: var(--vaadin-padding-xl);
5
+ --vaadin-login-overlay-brand-background: transparent;
6
+ --vaadin-login-overlay-title-font-size: 1.5em;
7
+ --vaadin-login-overlay-title-line-height: 1.2;
8
+ --vaadin-login-overlay-title-font-weight: var(--aura-font-weight-semibold);
9
+ --vaadin-login-overlay-title-color: var(--vaadin-text-color);
10
+ --vaadin-login-overlay-description-color: var(--vaadin-text-color-secondary);
11
+ }
12
+
13
+ vaadin-login-form::part(error-message) {
14
+ border-radius: var(--vaadin-radius-m);
15
+ padding: var(--vaadin-padding-m);
16
+ background: color-mix(in srgb, var(--aura-red) 10%, transparent);
17
+ }
18
+
19
+ vaadin-login-form::part(error-message-title) {
20
+ font-weight: var(--aura-font-weight-semibold);
21
+ }
22
+
23
+ vaadin-login-overlay {
24
+ --vaadin-overlay-backdrop-background: var(--aura-app-background);
25
+
26
+ &::part(overlay) {
27
+ --aura-surface-level: 2;
28
+ }
29
+
30
+ &::part(brand) {
31
+ text-align: center;
32
+ padding-bottom: 0;
33
+ }
34
+
35
+ &::part(form-title) {
36
+ display: none;
37
+ }
38
+
39
+ [slot='title'] {
40
+ letter-spacing: -0.03em;
41
+ }
42
+ }
@@ -0,0 +1,17 @@
1
+ @container not style(--vaadin-menu-bar-gap) {
2
+ vaadin-menu-bar:not([has-single-button]) vaadin-menu-bar-button:not([first-visible]) {
3
+ border-inline-start-color: transparent;
4
+ }
5
+ }
6
+
7
+ @media (any-hover: hover) {
8
+ /* Increase specificity to reset hover styles */
9
+ vaadin-menu-bar-button vaadin-menu-bar-item:not([disabled]):not([tabindex]):hover {
10
+ background: transparent;
11
+ }
12
+ }
13
+
14
+ vaadin-menu-bar-button[slot='overflow'] {
15
+ font-family: system-ui, sans-serif;
16
+ font-weight: 600;
17
+ }
@@ -12,7 +12,7 @@
12
12
  --aura-overlay-shadow:
13
13
  inset 0 0 0 1px var(--aura-overlay-inner-outline-color), 0 0 0 1px var(--aura-overlay-outline-color),
14
14
  var(--aura-shadow-m);
15
- --aura-overlay-backdrop-filter: blur(12px) brightness(1.2) saturate(1.2);
15
+ --aura-overlay-backdrop-filter: blur(20px) brightness(1.1) saturate(1.2);
16
16
  --aura-overlay-surface-opacity: 0.85;
17
17
 
18
18
  @media (prefers-reduced-transparency: reduce) {
@@ -0,0 +1,16 @@
1
+ :where(:root, :host) {
2
+ --vaadin-progress-bar-border-width: 0px;
3
+ --vaadin-progress-bar-value-background: linear-gradient(
4
+ 90deg,
5
+ var(--aura-accent-color),
6
+ color-mix(in hsl, var(--aura-accent-color) 60%, hsl(45, 31%, 95%))
7
+ );
8
+ }
9
+
10
+ vaadin-progress-bar {
11
+ height: var(--vaadin-gap-s);
12
+
13
+ &[dir='rtl']::part(value) {
14
+ scale: -1;
15
+ }
16
+ }
@@ -0,0 +1,71 @@
1
+ :where(:root, :host) {
2
+ --vaadin-rich-text-editor-toolbar-background: transparent;
3
+ --vaadin-rich-text-editor-toolbar-padding: var(--vaadin-padding-xs);
4
+ --vaadin-rich-text-editor-toolbar-gap: var(--vaadin-gap-xs) var(--vaadin-gap-m);
5
+ --vaadin-rich-text-editor-toolbar-button-background: transparent;
6
+ --vaadin-rich-text-editor-toolbar-button-border-radius: calc(var(--vaadin-radius-m) - 2px);
7
+ --vaadin-rich-text-editor-toolbar-button-padding: var(--vaadin-padding-xs);
8
+ --vaadin-rich-text-editor-toolbar-button-text-color: var(--vaadin-text-color-secondary);
9
+ }
10
+
11
+ vaadin-rich-text-editor {
12
+ --vaadin-icon-visual-size: 90%;
13
+ --vaadin-rich-text-editor-background: var(--aura-surface) padding-box;
14
+ --aura-surface-level: 4;
15
+ --aura-surface-opacity: 0.7 !important;
16
+ box-shadow: 0 2px 1px -1px hsla(0, 0%, 0%, 0.04);
17
+
18
+ &:not(:focus-within) {
19
+ --vaadin-rich-text-editor-toolbar-button-text-color: var(--vaadin-text-color-disabled);
20
+ }
21
+ }
22
+
23
+ vaadin-rich-text-editor::part(toolbar) {
24
+ contain: paint;
25
+ }
26
+
27
+ vaadin-rich-text-editor::part(toolbar-group) {
28
+ gap: 1px;
29
+ align-items: center;
30
+ }
31
+
32
+ vaadin-rich-text-editor::part(toolbar-group)::before {
33
+ content: '';
34
+ position: absolute;
35
+ width: 1px;
36
+ height: 1lh;
37
+ background: var(--vaadin-border-color-secondary);
38
+ translate: calc(var(--vaadin-gap-m) / -2);
39
+ }
40
+
41
+ vaadin-rich-text-editor::part(toolbar-button) {
42
+ transition:
43
+ color 80ms,
44
+ background-color 80ms,
45
+ scale 180ms;
46
+ outline-offset: calc(var(--vaadin-focus-ring-width) * -1);
47
+ border: 1px solid transparent;
48
+ position: relative;
49
+ }
50
+
51
+ vaadin-rich-text-editor::part(toolbar-button-pressed) {
52
+ --vaadin-rich-text-editor-toolbar-button-background: transparent;
53
+ }
54
+
55
+ vaadin-rich-text-editor:focus-within::part(toolbar-button-pressed) {
56
+ --vaadin-rich-text-editor-toolbar-button-background: var(--vaadin-background-container-strong) padding-box;
57
+ --vaadin-rich-text-editor-toolbar-button-text-color: var(--vaadin-text-color);
58
+ border-color: var(--vaadin-text-color-disabled);
59
+ }
60
+
61
+ vaadin-rich-text-editor::part(toolbar-button):active {
62
+ scale: 0.95;
63
+ transition-duration: 80ms, 80ms, 50ms;
64
+ }
65
+
66
+ @media (any-hover: hover) {
67
+ vaadin-rich-text-editor::part(toolbar-button):hover {
68
+ --vaadin-rich-text-editor-toolbar-button-background: var(--vaadin-background-container);
69
+ --vaadin-rich-text-editor-toolbar-button-text-color: var(--vaadin-text-color);
70
+ }
71
+ }
@@ -15,7 +15,6 @@ vaadin-side-nav-item::part(content) {
15
15
  color 120ms,
16
16
  border-color 120ms,
17
17
  background-color 120ms;
18
- background-clip: padding-box;
19
18
  --aura-surface-level: 3;
20
19
  }
21
20
 
@@ -24,67 +23,43 @@ vaadin-side-nav-item:not([disabled])::part(content):hover {
24
23
  }
25
24
 
26
25
  vaadin-side-nav-item[current]::part(content) {
27
- --vaadin-side-nav-item-background: var(--aura-surface);
28
- --vaadin-side-nav-item-border-color: var(--vaadin-border-color-secondary);
26
+ --_accent: light-dark(
27
+ oklch(from var(--aura-accent-light) calc(l + 0.2) c h / min(0.3, c / 2)),
28
+ oklch(from var(--aura-accent-dark) calc(l - 0.2) c h / min(0.3, c / 2))
29
+ );
30
+ --_accent-border: light-dark(
31
+ oklch(from var(--aura-accent-light) l calc(c / 2) h / calc(min(0.15, 0.05 + c / 2) + 0.1 * var(--aura-contrast))),
32
+ oklch(from var(--aura-accent-dark) l calc(c / 2) h / calc(min(0.15, 0.05 + c / 2) + 0.1 * var(--aura-contrast)))
33
+ );
34
+ --vaadin-side-nav-item-background: linear-gradient(var(--_accent), var(--_accent)) var(--aura-surface) padding-box;
35
+ --vaadin-side-nav-item-color: var(--aura-accent-text);
36
+ --vaadin-side-nav-item-border-color: var(--_accent-border);
29
37
  }
30
38
 
31
- /* Contrast variant */
39
+ /* Filled variant */
32
40
 
33
- vaadin-side-nav[theme~='contrast'] vaadin-side-nav-item[current]::part(content) {
34
- color-scheme: var(--_side-nav-current-item-color-scheme, dark);
35
- background: var(--aura-surface-solid);
36
- border-color: transparent;
41
+ vaadin-side-nav[theme~='filled'] vaadin-side-nav-item[current]::part(content) {
42
+ --vaadin-side-nav-item-background: var(--aura-accent-color) border-box;
43
+ --vaadin-side-nav-item-color: var(--aura-accent-contrast);
37
44
  outline-offset: 2px;
38
45
  }
39
46
 
40
- vaadin-side-nav[theme~='contrast'] vaadin-side-nav-item[current] > :not([slot='children']) {
41
- --aura-red: var(--vaadin-text-color);
42
- --aura-red-text: var(--vaadin-text-color);
43
- --aura-orange: var(--vaadin-text-color);
44
- --aura-orange-text: var(--vaadin-text-color);
45
- --aura-yellow: var(--vaadin-text-color);
46
- --aura-yellow-text: var(--vaadin-text-color);
47
- --aura-green: var(--vaadin-text-color);
48
- --aura-green-text: var(--vaadin-text-color);
49
- --aura-blue: var(--vaadin-text-color);
50
- --aura-blue-text: var(--vaadin-text-color);
51
- --aura-purple: var(--vaadin-text-color);
52
- --aura-purple-text: var(--vaadin-text-color);
53
- }
54
-
55
- @container style(--aura-color-scheme: dark) {
56
- [slot='drawer'] {
57
- --_side-nav-current-item-color-scheme: light;
58
- }
59
- }
60
-
61
- @container style(--aura-content-color-scheme: dark) {
62
- vaadin-app-layout > :not([slot]) {
63
- --_side-nav-current-item-color-scheme: light;
64
- }
65
- }
66
-
67
- @container style(--aura-content-color-scheme: light) {
68
- vaadin-app-layout > :not([slot]) {
69
- --_side-nav-current-item-color-scheme: dark;
70
- }
71
- }
72
-
73
- @media (prefers-color-scheme: dark) {
74
- @container style(--aura-content-color-scheme: light dark) {
75
- vaadin-app-layout > :not([slot]) {
76
- --_side-nav-current-item-color-scheme: light;
77
- }
78
- }
79
-
80
- @container style(--aura-color-scheme: light dark) {
81
- [slot='drawer'] {
82
- --_side-nav-current-item-color-scheme: light;
83
- }
84
- }
85
- }
86
-
87
- /* TODO bug in component/base styles: hide label part if no label is provided */
88
- vaadin-side-nav:not(:has([slot='label']))::part(label) {
89
- display: none;
47
+ /* Badges and other content that uses the palette inside a filled nav item */
48
+ vaadin-side-nav[theme~='filled'] vaadin-side-nav-item[current] > :not([slot='children']):not([slot='tooltip']) {
49
+ --vaadin-text-color: var(--vaadin-side-nav-item-color);
50
+ --vaadin-text-color-secondary: var(--vaadin-side-nav-item-color);
51
+ --aura-accent-color: var(--vaadin-side-nav-item-color);
52
+ --aura-accent-text: var(--vaadin-side-nav-item-color);
53
+ --aura-red: var(--vaadin-side-nav-item-color);
54
+ --aura-red-text: var(--vaadin-side-nav-item-color);
55
+ --aura-orange: var(--vaadin-side-nav-item-color);
56
+ --aura-orange-text: var(--vaadin-side-nav-item-color);
57
+ --aura-yellow: var(--vaadin-side-nav-item-color);
58
+ --aura-yellow-text: var(--vaadin-side-nav-item-color);
59
+ --aura-green: var(--vaadin-side-nav-item-color);
60
+ --aura-green-text: var(--vaadin-side-nav-item-color);
61
+ --aura-blue: var(--vaadin-side-nav-item-color);
62
+ --aura-blue-text: var(--vaadin-side-nav-item-color);
63
+ --aura-purple: var(--vaadin-side-nav-item-color);
64
+ --aura-purple-text: var(--vaadin-side-nav-item-color);
90
65
  }
@@ -0,0 +1,153 @@
1
+ :where(:root, :host) {
2
+ --vaadin-upload-background: var(--aura-surface) padding-box;
3
+ --vaadin-upload-border: 1px solid var(--vaadin-border-color-secondary);
4
+ --vaadin-upload-padding: var(--vaadin-padding-s);
5
+ --vaadin-upload-file-list-divider-color: var(--vaadin-border-color-secondary);
6
+ --vaadin-upload-file-list-divider-width: 1px;
7
+ --vaadin-upload-file-error-color: var(--vaadin-text-color-secondary);
8
+ --vaadin-upload-file-warning-color: var(--aura-red);
9
+ --vaadin-upload-file-done-color: var(--aura-green);
10
+ --vaadin-upload-file-name-font-weight: var(--aura-font-weight-medium);
11
+ --vaadin-upload-file-padding: var(--vaadin-padding-s);
12
+ --vaadin-upload-file-gap: 0 var(--vaadin-gap-s);
13
+ --vaadin-upload-file-button-padding: var(--vaadin-upload-file-padding);
14
+ --vaadin-upload-file-button-border-width: 0;
15
+ --vaadin-upload-file-status-font-size: var(--aura-font-size-s);
16
+ --vaadin-upload-file-status-line-height: var(--aura-line-height-s);
17
+ --vaadin-upload-file-error-font-size: var(--aura-font-size-s);
18
+ --vaadin-upload-file-error-line-height: var(--aura-line-height-s);
19
+ --vaadin-upload-drop-label-color: var(--vaadin-text-color-secondary);
20
+ --vaadin-upload-drop-label-font-weight: var(--aura-font-weight-medium);
21
+ }
22
+
23
+ vaadin-upload {
24
+ --_divider-offset-start: calc(var(--vaadin-padding-s) + var(--vaadin-icon-size, 1lh) + var(--vaadin-gap-s));
25
+ --_divider-offset-end: var(--vaadin-padding-s);
26
+ }
27
+
28
+ vaadin-upload::part(primary-buttons) {
29
+ flex-wrap: wrap;
30
+ gap: var(--vaadin-gap-s) var(--vaadin-gap-m);
31
+ }
32
+
33
+ vaadin-upload:not([nodrop]) vaadin-button[slot='add-button'] {
34
+ flex: 1;
35
+ }
36
+
37
+ vaadin-upload::part(drop-label) {
38
+ flex: 100;
39
+ padding: var(--vaadin-padding-xs) var(--vaadin-padding-s);
40
+ min-width: fit-content;
41
+ margin-inline-start: calc(var(--vaadin-upload-padding) * -1);
42
+ }
43
+
44
+ vaadin-upload[dragover-valid] {
45
+ outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);
46
+ outline-offset: -1px;
47
+ }
48
+
49
+ vaadin-upload-file-list li {
50
+ margin-inline: var(--_divider-offset-start) var(--_divider-offset-end);
51
+
52
+ &:first-child {
53
+ margin-top: 0;
54
+ }
55
+ }
56
+
57
+ vaadin-upload:not([theme~='no-border']) vaadin-upload-file-list:has(li) {
58
+ border-top: 1px solid var(--vaadin-border-color-secondary);
59
+ margin: calc(var(--vaadin-upload-padding) * -1);
60
+ margin-top: var(--vaadin-upload-padding);
61
+ }
62
+
63
+ vaadin-upload-file {
64
+ --vaadin-icon-visual-size: 0.75lh;
65
+ border-radius: var(--vaadin-radius-m);
66
+ padding-block: var(--vaadin-padding-m);
67
+ margin-inline: calc(var(--_divider-offset-start, 0) * -1) calc(var(--_divider-offset-end, 0) * -1);
68
+
69
+ &::part(done-icon),
70
+ &::part(warning-icon),
71
+ &::part(commands) {
72
+ align-self: baseline;
73
+ }
74
+
75
+ &:not([complete], [error])::part(done-icon) {
76
+ display: block;
77
+ }
78
+
79
+ &:not([complete], [error])::part(done-icon)::before {
80
+ background: var(--vaadin-border-color-secondary);
81
+ }
82
+
83
+ &::part(commands) {
84
+ margin-block: calc(var(--vaadin-upload-file-button-padding) * -1);
85
+ margin-inline-end: calc(var(--vaadin-upload-file-button-padding) * -1);
86
+ }
87
+
88
+ &::part(remove-button),
89
+ &::part(retry-button) {
90
+ --vaadin-upload-file-button-text-color: var(--vaadin-text-color-secondary);
91
+ outline-offset: calc(var(--vaadin-focus-ring-width) * -1);
92
+ }
93
+
94
+ vaadin-progress-bar {
95
+ display: block;
96
+ height: var(--vaadin-gap-xs);
97
+ margin-top: var(--vaadin-gap-xs);
98
+ }
99
+
100
+ &:not([error])::part(status) {
101
+ max-height: 2lh;
102
+ display: -webkit-box;
103
+ -webkit-line-clamp: 2;
104
+ -webkit-box-orient: vertical;
105
+ overflow: hidden;
106
+ }
107
+
108
+ &[complete]::part(status) {
109
+ height: 1lh; /* ensure some height to transition from */
110
+ visibility: hidden;
111
+ transition: 200ms max-height;
112
+ max-height: 0;
113
+ }
114
+
115
+ &[complete] vaadin-progress-bar {
116
+ visibility: hidden;
117
+ transition: 200ms height;
118
+ height: 0;
119
+ margin-top: 0;
120
+ }
121
+ }
122
+
123
+ vaadin-upload[theme~='no-border'] {
124
+ --vaadin-upload-padding: 0;
125
+ --vaadin-upload-background: transparent;
126
+ --vaadin-upload-border: none;
127
+ --vaadin-upload-file-list-divider-width: 0;
128
+ --_divider-offset-start: 0px;
129
+ --_divider-offset-end: 0px;
130
+ outline-offset: 2px;
131
+
132
+ vaadin-upload-file-list::part(list) {
133
+ display: flex;
134
+ flex-direction: column;
135
+ gap: var(--vaadin-gap-s);
136
+ }
137
+
138
+ vaadin-upload-file-list li:first-child {
139
+ margin-top: var(--vaadin-gap-s);
140
+ }
141
+
142
+ vaadin-upload-file {
143
+ background: var(--aura-surface) padding-box;
144
+ border: 1px solid var(--vaadin-border-color-secondary);
145
+ }
146
+ }
147
+
148
+ @media (any-hover: hover) {
149
+ vaadin-upload-file::part(remove-button):hover,
150
+ vaadin-upload-file::part(retry-button):hover {
151
+ --vaadin-upload-file-button-text-color: var(--vaadin-text-color);
152
+ }
153
+ }
package/src/size.css CHANGED
@@ -5,6 +5,7 @@
5
5
  --vaadin-radius-s: min(0.25lh, round(var(--aura-base-radius) * 1px + 2px, 1px));
6
6
  --vaadin-radius-m: round(var(--aura-base-radius) * 2px + 3px, 1px);
7
7
  --vaadin-radius-l: round(var(--aura-base-radius) * 1.5px + 10px, 1px);
8
+ --vaadin-icon-stroke-width: 1.75;
8
9
  }
9
10
 
10
11
  :where(:root, :host, [theme]) {
package/src/surface.css CHANGED
@@ -6,18 +6,27 @@
6
6
  :is(:root, :host),
7
7
  .aura-surface,
8
8
  .aura-surface-solid,
9
+ vaadin-accordion-panel[theme~='filled'],
9
10
  vaadin-app-layout::part(navbar),
10
11
  vaadin-app-layout::part(drawer),
11
12
  vaadin-button,
12
13
  vaadin-card,
13
14
  vaadin-checkbox::part(checkbox),
15
+ vaadin-details[theme~='filled'],
14
16
  vaadin-master-detail-layout::part(detail),
15
17
  vaadin-menu-bar-button,
16
18
  vaadin-message-input,
17
19
  vaadin-radio-button::part(radio),
20
+ vaadin-rich-text-editor,
18
21
  vaadin-side-nav-item::part(content),
22
+ vaadin-upload,
23
+ vaadin-upload-file,
19
24
  ::part(input-field),
20
- ::part(overlay) {
25
+ ::part(overlay),
26
+ vaadin-confirm-dialog::part(overlay),
27
+ vaadin-dialog::part(overlay),
28
+ vaadin-login-overlay::part(overlay),
29
+ vaadin-crud-dialog::part(overlay) {
21
30
  --aura-surface-opacity: 0.5;
22
31
 
23
32
  --aura-surface-solid: light-dark(
@@ -34,7 +34,6 @@
34
34
 
35
35
  /* Support iOS dynamic text size */
36
36
  font: -apple-system-body;
37
- --aura-base-font-size: 14;
38
37
  }
39
38
  }
40
39
  }