@vaadin/aura 25.0.0-alpha19 → 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.
Files changed (36) hide show
  1. package/aura.css +26 -1
  2. package/dist/aura.css +1 -0
  3. package/dist/fonts/InstrumentSans/InstrumentSans.woff2 +0 -0
  4. package/package.json +13 -2
  5. package/src/color-scheme.css +1 -1
  6. package/src/color.css +54 -33
  7. package/src/components/accordion-details.css +37 -0
  8. package/src/components/app-layout.css +12 -20
  9. package/src/components/avatar.css +15 -0
  10. package/src/components/button.css +144 -0
  11. package/src/components/card.css +43 -0
  12. package/src/components/checkbox-radio.css +68 -0
  13. package/src/components/confirm-dialog.css +14 -0
  14. package/src/components/crud.css +12 -0
  15. package/src/components/date-picker.css +68 -0
  16. package/src/components/dialog.css +30 -0
  17. package/src/components/grid.css +27 -0
  18. package/src/components/input-container.css +37 -0
  19. package/src/components/item-overlay.css +76 -0
  20. package/src/components/login.css +42 -0
  21. package/src/components/master-detail-layout.css +40 -0
  22. package/src/components/menu-bar.css +17 -0
  23. package/src/components/message-input.css +30 -0
  24. package/src/components/multi-select-combo-box.css +12 -0
  25. package/src/components/notification.css +42 -0
  26. package/src/components/overlay.css +3 -3
  27. package/src/components/progress-bar.css +16 -0
  28. package/src/components/rich-text-editor.css +71 -0
  29. package/src/components/select.css +30 -0
  30. package/src/components/side-nav.css +65 -0
  31. package/src/components/upload.css +153 -0
  32. package/src/palette.css +23 -33
  33. package/src/shadow.css +1 -1
  34. package/src/size.css +4 -3
  35. package/src/surface.css +26 -8
  36. package/src/typography.css +5 -6
@@ -0,0 +1,65 @@
1
+ :where(:root, :host) {
2
+ --vaadin-side-nav-label-line-height: var(--aura-line-height-xs);
3
+ --vaadin-side-nav-label-font-weight: var(--aura-font-weight-medium);
4
+ --vaadin-side-nav-item-font-weight: var(--aura-font-weight-medium);
5
+ --vaadin-side-nav-item-border-width: 1px;
6
+ --vaadin-side-nav-items-gap: var(--vaadin-gap-xs);
7
+ }
8
+
9
+ vaadin-side-nav + vaadin-side-nav {
10
+ margin-top: var(--vaadin-gap-l);
11
+ }
12
+
13
+ vaadin-side-nav-item::part(content) {
14
+ transition:
15
+ color 120ms,
16
+ border-color 120ms,
17
+ background-color 120ms;
18
+ --aura-surface-level: 3;
19
+ }
20
+
21
+ vaadin-side-nav-item:not([disabled])::part(content):hover {
22
+ --vaadin-side-nav-item-color: var(--vaadin-text-color);
23
+ }
24
+
25
+ vaadin-side-nav-item[current]::part(content) {
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);
37
+ }
38
+
39
+ /* Filled variant */
40
+
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);
44
+ outline-offset: 2px;
45
+ }
46
+
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);
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/palette.css CHANGED
@@ -1,45 +1,35 @@
1
- :where(html) {
2
- --aura-red: light-dark(
3
- oklch(from var(--aura-accent-light) 0.55 c calc(clamp(380 - rem(h, 6), h + 20, 420 - rem(h, 6)) + 20)),
4
- oklch(from var(--aura-accent-dark) 0.7 c calc(clamp(380 - rem(h, 6), h + 20, 420 - rem(h, 6)) + 20))
5
- );
6
- --aura-orange: light-dark(
7
- oklch(from var(--aura-accent-light) 0.8 min(c + 0.1, 0.4) clamp(80 - rem(h, 6), h, 90 + rem(h, 6))),
8
- oklch(from var(--aura-accent-dark) 0.75 min(c + 0.1, 0.4) clamp(80 - rem(h, 6), h, 90 + rem(h, 6)))
9
- );
10
- --aura-yellow: light-dark(
11
- oklch(from var(--aura-accent-light) 0.9 min(c + 0.1, 0.4) clamp(100 - rem(h, 6), h, 105 - rem(h, 6))),
12
- oklch(from var(--aura-accent-dark) 0.85 min(c + 0.1, 0.4) clamp(100 - rem(h, 6), h, 105 - rem(h, 6)))
13
- );
14
- --aura-green: light-dark(
15
- oklch(from var(--aura-accent-light) 0.5 min(c + 0.05, 0.4) clamp(130 - rem(h, 6), h, 160 - rem(h, 6))),
16
- oklch(from var(--aura-accent-dark) 0.7 min(c + 0.05, 0.4) clamp(130 - rem(h, 6), h, 160 - rem(h, 6)))
17
- );
18
- --aura-blue: light-dark(
19
- oklch(from var(--aura-accent-light) 0.55 min(c + 0.05, 0.4) clamp(220 - rem(h, 6), h, 260 - rem(h, 6))),
20
- oklch(from var(--aura-accent-dark) 0.7 min(c + 0.05, 0.4) clamp(220 - rem(h, 6), h, 260 - rem(h, 6)))
21
- );
22
- --aura-purple: light-dark(
23
- oklch(from var(--aura-accent-light) 0.55 min(c + 0.05, 0.4) clamp(280 - rem(h, 6), h, 350 - rem(h, 6))),
24
- oklch(from var(--aura-accent-dark) 0.7 min(c + 0.05, 0.4) clamp(280 - rem(h, 6), h, 350 - rem(h, 6)))
25
- );
1
+ :where(:root, :host) {
2
+ --aura-red: oklch(0.6 0.22 25);
3
+ --aura-orange: oklch(0.61 0.4 93);
4
+ --aura-yellow: oklch(0.9 0.36 105);
5
+ --aura-green: oklch(0.6 0.28 160);
6
+ --aura-blue: oklch(0.6 0.3 240);
7
+ --aura-purple: oklch(0.6 0.3 280);
26
8
 
27
- --aura-red-text: color-mix(in srgb, var(--aura-red) calc(70% - 15% * var(--aura-contrast)), var(--vaadin-color));
9
+ --aura-red-text: color-mix(in srgb, var(--aura-red) calc(70% - 15% * var(--aura-contrast)), var(--vaadin-text-color));
28
10
  --aura-orange-text: color-mix(
29
11
  in srgb,
30
- var(--aura-orange) calc(60% - 15% * var(--aura-contrast)),
31
- var(--vaadin-color)
12
+ var(--aura-orange) calc(70% - 15% * var(--aura-contrast)),
13
+ var(--vaadin-text-color)
32
14
  );
33
15
  --aura-yellow-text: color-mix(
34
16
  in srgb,
35
- var(--aura-yellow) calc(55% - 15% * var(--aura-contrast)),
36
- var(--vaadin-color)
17
+ var(--aura-yellow) calc(65% - 15% * var(--aura-contrast)),
18
+ var(--vaadin-text-color)
19
+ );
20
+ --aura-green-text: color-mix(
21
+ in srgb,
22
+ var(--aura-green) calc(70% - 15% * var(--aura-contrast)),
23
+ var(--vaadin-text-color)
24
+ );
25
+ --aura-blue-text: color-mix(
26
+ in srgb,
27
+ var(--aura-blue) calc(70% - 15% * var(--aura-contrast)),
28
+ var(--vaadin-text-color)
37
29
  );
38
- --aura-green-text: color-mix(in srgb, var(--aura-green) calc(70% - 15% * var(--aura-contrast)), var(--vaadin-color));
39
- --aura-blue-text: color-mix(in srgb, var(--aura-blue) calc(70% - 15% * var(--aura-contrast)), var(--vaadin-color));
40
30
  --aura-purple-text: color-mix(
41
31
  in srgb,
42
32
  var(--aura-purple) calc(70% - 15% * var(--aura-contrast)),
43
- var(--vaadin-color)
33
+ var(--vaadin-text-color)
44
34
  );
45
35
  }
package/src/shadow.css CHANGED
@@ -1,4 +1,4 @@
1
- :where(html) {
1
+ :where(:root, :host) {
2
2
  --aura-shadow-color: light-dark(
3
3
  oklch(from var(--aura-background-light) calc(l - l * 0.8) calc(c / 10) h / 0.2),
4
4
  oklch(from var(--aura-background-dark) calc(l - l * 0.8) calc(c / 10) h / 0.2)
package/src/size.css CHANGED
@@ -1,13 +1,14 @@
1
- :where(html) {
1
+ :where(:root, :host) {
2
2
  --aura-base-size: 16;
3
3
  --_size-ref: 16;
4
4
  --aura-base-radius: 3;
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
- :where(html, [theme]) {
11
+ :where(:root, :host, [theme]) {
11
12
  --vaadin-padding-xs: round(
12
13
  var(--aura-base-size) * 0.25 * pow(var(--aura-base-size) / var(--_size-ref), 0.5) * 1px,
13
14
  1px
@@ -38,7 +39,7 @@
38
39
  }
39
40
 
40
41
  @media (pointer: coarse) {
41
- :where(html) {
42
+ :where(:root, :host) {
42
43
  --aura-base-size: 19;
43
44
  }
44
45
  }
package/src/surface.css CHANGED
@@ -1,14 +1,32 @@
1
- :where(html) {
1
+ :where(:root, :host) {
2
2
  --aura-surface-level: 1;
3
3
  }
4
4
 
5
5
  /* List all elements that are surfaces */
6
- html,
7
- [theme~='surface'],
8
- [theme~='surface-solid'],
6
+ :is(:root, :host),
7
+ .aura-surface,
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
- ::part(overlay) {
12
+ vaadin-button,
13
+ vaadin-card,
14
+ vaadin-checkbox::part(checkbox),
15
+ vaadin-details[theme~='filled'],
16
+ vaadin-master-detail-layout::part(detail),
17
+ vaadin-menu-bar-button,
18
+ vaadin-message-input,
19
+ vaadin-radio-button::part(radio),
20
+ vaadin-rich-text-editor,
21
+ vaadin-side-nav-item::part(content),
22
+ vaadin-upload,
23
+ vaadin-upload-file,
24
+ ::part(input-field),
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) {
12
30
  --aura-surface-opacity: 0.5;
13
31
 
14
32
  --aura-surface-solid: light-dark(
@@ -17,7 +35,7 @@ vaadin-app-layout::part(drawer),
17
35
  min(
18
36
  1,
19
37
  l + (0.98 - l) * 4 + var(--aura-surface-level) * (0.07 - 0.01 * var(--aura-contrast)) -
20
- var(--aura-surface-opacity) / 15
38
+ var(--aura-surface-opacity) / 20
21
39
  )
22
40
  clamp(0, c - l / 10 * var(--aura-surface-level) + var(--aura-surface-opacity) / 40, c) h
23
41
  ),
@@ -35,11 +53,11 @@ vaadin-app-layout::part(drawer),
35
53
  --vaadin-background-color: var(--aura-surface-solid);
36
54
  }
37
55
 
38
- [theme~='surface'] {
56
+ .aura-surface {
39
57
  background: var(--aura-surface) padding-box;
40
58
  }
41
59
 
42
- [theme~='surface-solid'] {
60
+ .aura-surface-solid {
43
61
  --aura-surface-opacity: 1;
44
62
  background: var(--aura-surface-solid) padding-box;
45
63
  }
@@ -1,6 +1,6 @@
1
1
  @import './fonts/InstrumentSans/InstrumentSans.css';
2
2
 
3
- :where(html) {
3
+ :where(:root, :host) {
4
4
  --aura-font-family-system: system-ui, ui-sans-serif, sans-serif;
5
5
  --aura-font-family-instrument-sans: 'Instrument Sans', var(--aura-font-family-system);
6
6
 
@@ -16,7 +16,7 @@
16
16
  }
17
17
 
18
18
  @media (pointer: fine) {
19
- :where(html) {
19
+ :where(:root, :host) {
20
20
  --aura-base-font-size: 14;
21
21
  }
22
22
  }
@@ -29,17 +29,16 @@
29
29
 
30
30
  @supports (-webkit-touch-callout: none) {
31
31
  @media (pointer: coarse) {
32
- :where(html) {
32
+ :where(:root, :host) {
33
33
  /* iOS/iPadOS optimizations */
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
  }
41
40
 
42
- :where(html, [theme]) {
41
+ :where(:root, :host, [theme]) {
43
42
  --aura-font-size-xs: round(var(--aura-font-size-s) / var(--aura-font-size-scale), 0.0625rem);
44
43
  --aura-font-size-s: round(var(--aura-font-size-m) / var(--aura-font-size-scale), 0.0625rem);
45
44
  --aura-font-size-m: round(var(--aura-base-font-size) / 16 * 1rem, 0.0625rem);
@@ -69,7 +68,7 @@
69
68
  text-size-adjust: none;
70
69
  }
71
70
 
72
- :where(body, :host, [theme]) {
71
+ :where(body, :host, [theme]:not(html)) {
73
72
  font-size: var(--aura-font-size-m);
74
73
  line-height: var(--aura-line-height-m);
75
74
  }