Skip to content

Commit 22b964b

Browse files
authored
refactor: simplify and optimize some CSS selectors (#10677)
* refactor: optimize and simplify Aura selectors * revert :nth-child(1 of :not([slot])):nth-last-child(1 of :not([slot]))
1 parent 3a5c6bd commit 22b964b

File tree

10 files changed

+30
-40
lines changed

10 files changed

+30
-40
lines changed

packages/aura/src/components/accordion-details.css

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ vaadin-accordion-panel:not([theme~='no-padding'], [theme~='reverse'])::part(cont
1818
}
1919

2020
:is(vaadin-details, vaadin-accordion-panel)[theme~='reverse'] {
21-
[slot='summary']::part(content) {
21+
> [slot='summary']::part(content) {
2222
width: 100%;
2323
}
2424

25-
[slot='summary']::part(toggle) {
25+
> [slot='summary']::part(toggle) {
2626
order: 1;
2727
margin-inline-start: auto;
2828
}

packages/aura/src/components/app-layout.css

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ vaadin-app-layout[overlay]::part(drawer) {
3232
}
3333

3434
vaadin-app-layout:is([overlay], :not([drawer-opened])),
35-
vaadin-app-layout:not(:has([slot='drawer'])) {
35+
vaadin-app-layout:not([has-drawer]) {
3636
padding-inline-start: var(--aura-app-layout-inset);
3737
}
3838

@@ -52,18 +52,10 @@ vaadin-app-layout[has-navbar]::part(drawer) {
5252
}
5353

5454
vaadin-app-layout > vaadin-scroller[slot='drawer'] {
55-
--vaadin-scroller-padding-inline: var(--vaadin-padding-m);
56-
scrollbar-width: thin;
57-
}
58-
59-
vaadin-app-layout > vaadin-scroller:nth-child(1 of [slot='drawer']) {
6055
/* TODO would need a dedicated padding-top property */
56+
--vaadin-scroller-padding-inline: var(--vaadin-padding-m);
6157
--vaadin-scroller-padding-block: var(--vaadin-padding-s);
62-
}
63-
64-
vaadin-app-layout > vaadin-scroller:nth-last-child(1 of [slot='drawer']) {
65-
/* TODO would need a dedicated padding-bottom property */
66-
--vaadin-scroller-padding-block: var(--vaadin-padding-s);
58+
scrollbar-width: thin;
6759
}
6860

6961
vaadin-app-layout > :nth-child(1 of :not([slot])):nth-last-child(1 of :not([slot])) {

packages/aura/src/components/button.css

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,19 +35,19 @@ Increase padding, but only for buttons that don't have an icon in the default sl
3535
Buttons that place an icon in the default slot are assumed to be icon-only buttons.
3636
*/
3737
/* prettier-ignore */
38-
: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]))) {
38+
: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]))) {
3939
--vaadin-button-padding: round(var(--vaadin-padding-s) / 1.4, 1px)
4040
max(var(--vaadin-padding-m), round(var(--vaadin-radius-m) / 1.5, 1px));
4141
}
4242

4343
/* Decrease padding when an icon is placed in the prefix or suffix slot */
44-
:is(vaadin-button, vaadin-menu-bar-button):has([slot='prefix']:is(vaadin-icon, svg, i[class*='fa-'], vaadin-avatar)),
44+
:is(vaadin-button, vaadin-menu-bar-button):has(> [slot='prefix']:is(vaadin-icon, svg, i[class*='fa-'], vaadin-avatar)),
4545
vaadin-drawer-toggle:empty {
4646
padding-inline-start: max(var(--vaadin-padding-s), round(var(--vaadin-radius-m) / 1.75, 1px));
4747
}
4848

4949
/* prettier-ignore */
50-
: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)),
50+
: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)),
5151
vaadin-drawer-toggle:empty,
5252
vaadin-menu-bar-button[aria-haspopup='true']:not([slot='overflow']) {
5353
padding-inline-end: max(var(--vaadin-padding-s), round(var(--vaadin-radius-m) / 1.75, 1px));

packages/aura/src/components/confirm-dialog.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ vaadin-confirm-dialog::part(confirm-button) {
99
flex: 1;
1010
}
1111

12-
vaadin-confirm-dialog :is([slot='cancel-button'], [slot='reject-button'], [slot='confirm-button']) {
12+
vaadin-confirm-dialog > :is([slot='cancel-button'], [slot='reject-button'], [slot='confirm-button']) {
1313
display: flex;
1414
}

packages/aura/src/components/item-overlay.css

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@
1212
--vaadin-item-gap: var(--vaadin-gap-s);
1313
}
1414

15-
:is(
16-
vaadin-avatar-group-menu-item,
17-
vaadin-combo-box-item,
18-
vaadin-context-menu-item,
19-
vaadin-time-picker-item,
20-
vaadin-item,
21-
vaadin-menu-bar-item,
22-
vaadin-multi-select-combo-box-item,
23-
vaadin-select-item:where([role])
24-
) {
15+
vaadin-avatar-group-menu-item,
16+
vaadin-combo-box-item,
17+
vaadin-context-menu-item,
18+
vaadin-time-picker-item,
19+
vaadin-item,
20+
vaadin-menu-bar-item,
21+
vaadin-multi-select-combo-box-item,
22+
vaadin-select-item:where([role]) {
2523
font-weight: var(--aura-font-weight-medium);
2624
--vaadin-item-checkmark-color: var(--aura-accent-text-color);
2725
-webkit-user-select: none;

packages/aura/src/components/menu-bar.css

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
@media (any-hover: hover) {
88
/* Increase specificity to reset hover styles */
9-
vaadin-menu-bar-button vaadin-menu-bar-item:not([disabled]):not([tabindex]):hover {
9+
vaadin-menu-bar-button > vaadin-menu-bar-item:not([disabled]):not([tabindex]):hover {
1010
background: transparent;
1111
}
1212
}
@@ -20,11 +20,11 @@ vaadin-menu-bar-button[aria-haspopup='true']::part(suffix)::after {
2020
--vaadin-icon-visual-size: 90%;
2121
}
2222

23-
vaadin-menu-bar-button vaadin-menu-bar-item {
23+
vaadin-menu-bar-button > vaadin-menu-bar-item {
2424
padding-inline: 0;
2525
}
2626

27-
vaadin-menu-bar-button vaadin-menu-bar-item::part(content) {
27+
vaadin-menu-bar-button > vaadin-menu-bar-item::part(content) {
2828
padding-inline: 0;
2929
gap: var(--vaadin-button-gap, var(--vaadin-gap-s));
3030
}

packages/aura/src/components/message-input.css

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
1-
vaadin-message-input vaadin-text-area::part(input-field) {
1+
vaadin-message-input > vaadin-text-area::part(input-field) {
22
--vaadin-input-field-background: transparent;
33
}
44

5-
vaadin-message-input[theme~='icon-button'] vaadin-message-input-button {
5+
vaadin-message-input[theme~='icon-button'] > vaadin-message-input-button {
66
width: var(--vaadin-icon-size, 1lh);
77
height: var(--vaadin-icon-size, 1lh);
88
color: transparent;
99
position: relative;
1010
contain: strict;
1111
}
1212

13-
vaadin-message-input[theme~='icon-button'] vaadin-message-input-button::before {
13+
vaadin-message-input[theme~='icon-button'] > vaadin-message-input-button::before {
1414
content: '';
1515
position: absolute;
1616
inset: 0;
1717
mask-image: var(--_vaadin-icon-paper-airplane);
1818
background: var(--vaadin-button-text-color);
1919
}
2020

21-
vaadin-message-input[theme~='icon-button'][dir='rtl'] vaadin-message-input-button::before {
21+
vaadin-message-input[theme~='icon-button'][dir='rtl'] > vaadin-message-input-button::before {
2222
scale: -1;
2323
}
2424

2525
@media (forced-colors: active) {
26-
vaadin-message-input[theme~='icon-button'] vaadin-message-input-button {
26+
vaadin-message-input[theme~='icon-button'] > vaadin-message-input-button {
2727
forced-color-adjust: none;
2828
--vaadin-button-text-color: CanvasText;
2929
}

packages/aura/src/components/side-nav.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ vaadin-side-nav-item::part(toggle-button) {
5151

5252
/* Filled variant */
5353

54-
vaadin-side-nav[theme~='filled'] vaadin-side-nav-item[current]::part(content) {
54+
vaadin-side-nav[theme~='filled'] > vaadin-side-nav-item[current]::part(content) {
5555
--vaadin-side-nav-item-background: var(--aura-accent-color) border-box;
5656
--vaadin-side-nav-item-text-color: var(--aura-accent-contrast-color);
5757
--vaadin-text-color: var(--vaadin-side-nav-item-text-color);

packages/aura/src/components/tabs.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ vaadin-tab[selected] {
8989

9090
/* Filled variant */
9191

92-
vaadin-tabs[theme~='filled'] vaadin-tab[selected] {
92+
vaadin-tabs[theme~='filled'] > vaadin-tab[selected] {
9393
--vaadin-tab-background: var(--aura-accent-color) border-box;
9494
--vaadin-tab-text-color: var(--aura-accent-contrast-color);
9595
--vaadin-text-color: var(--aura-accent-contrast-color);

packages/aura/src/components/upload.css

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ vaadin-upload-file-list li {
5555
}
5656
}
5757

58-
vaadin-upload:not([theme~='no-border']) vaadin-upload-file-list:has(li) {
58+
vaadin-upload:not([theme~='no-border']) > vaadin-upload-file-list:has(> ul > li) {
5959
border-top: 1px solid var(--vaadin-border-color-secondary);
6060
margin: calc(var(--vaadin-upload-padding) * -1);
6161
margin-top: var(--vaadin-upload-padding);
@@ -130,13 +130,13 @@ vaadin-upload[theme~='no-border'] {
130130
--_divider-offset-end: 0px;
131131
outline-offset: 2px;
132132

133-
vaadin-upload-file-list::part(list) {
133+
> vaadin-upload-file-list::part(list) {
134134
display: flex;
135135
flex-direction: column;
136136
gap: var(--vaadin-gap-s);
137137
}
138138

139-
vaadin-upload-file-list li:first-child {
139+
> vaadin-upload-file-list li:first-child {
140140
margin-top: var(--vaadin-gap-s);
141141
}
142142

0 commit comments

Comments
 (0)