@@ -105,10 +105,10 @@ button.hasPopupMenu {
105105 --menu-mark-icon-size : 16px ;
106106 }
107107
108- > li {
108+ > button {
109109 display : flex;
110110 align-items : center;
111- list-style : none ;
111+ position : relative ;
112112 width : 100% ;
113113 height : 26px ;
114114 padding-inline : calc (var (--menu-mark-icon-size ) + var (--menuitem-gap ))
@@ -119,7 +119,7 @@ button.hasPopupMenu {
119119 border : 1px solid var (--menuitem-border-color );
120120 background : transparent;
121121
122- & : has ( button .selected ):: before {
122+ & .selected :: after {
123123 content : "" ;
124124 display : inline-block;
125125 width : 11px ;
@@ -129,101 +129,88 @@ button.hasPopupMenu {
129129 mask-image : var (--menuitem-checkmark-icon );
130130 background-color : var (--menu-text-color );
131131 position : absolute;
132- margin-inline-start : -16px ;
132+ inset-inline-start : var (--menuitem-gap );
133+ top : 50% ;
134+ transform : translateY (-50% );
133135 }
134136
135- & : has ( button : disabled ) {
137+ & : disabled {
136138 opacity : var (--disabled-opacity );
137- pointer-events : none;
138139
139- & : has ( button .selected ):: before {
140+ & .selected :: after {
140141 background-color : var (--menu-text-disabled-color );
141142 }
143+
144+ & : not (.noIcon )::before {
145+ background-color : var (--menu-text-disabled-color );
146+ }
147+
148+ > span {
149+ color : var (--menu-text-disabled-color );
150+ }
142151 }
143152
144- & : hover {
145- background : var (--menuitem-hover-bg );
146- background-blend-mode : var (--menuitem-hover-background-blend-mode );
147- > button {
153+ & : not (: disabled ) {
154+ & : hover {
155+ background : var (--menuitem-hover-bg );
156+ background-blend-mode : var (--menuitem-hover-background-blend-mode );
157+
148158 & : not (.noIcon )::before {
149159 background-color : var (--menuitem-text-hover-fg );
150160 }
161+
151162 > span {
152163 color : var (--menuitem-text-hover-fg );
153164 }
165+
166+ & .selected ::after {
167+ background-color : var (--menuitem-text-hover-fg );
168+ }
154169 }
155- & : has (button .selected )::before {
156- background-color : var (--menuitem-text-hover-fg );
170+
171+ & : active {
172+ background-color : var (--menuitem-active-bg );
173+ border-color : var (--menuitem-active-border-color );
174+
175+ > span {
176+ color : var (--menuitem-text-active-fg );
177+ }
157178 }
158- }
159179
160- & : active {
161- background -color: var (--menuitem-active-bg );
162- border -color: var (--menuitem-active-border-color );
163- > button > span {
164- color : var ( --menuitem-text-active-fg ) ;
180+ & : focus-visible {
181+ border -color: var (--menuitem-focus-border-color );
182+ background -color: var (--menuitem-focus-bg );
183+ outline : 2 px solid var ( --menuitem-focus-outline-color );
184+ outline-offset : 2 px ;
165185 }
166186 }
167187
168- & : has (> button : focus-visible ) {
169- border-color : var (--menuitem-focus-border-color );
170- background-color : var (--menuitem-focus-bg );
171- outline : 2px solid var (--menuitem-focus-outline-color );
172- outline-offset : 2px ;
188+ & : not (.noIcon )::before {
189+ display : inline-block;
190+ width : var (--menu-icon-size );
191+ height : var (--menu-icon-size );
192+ content : "" ;
193+ mask-size : cover;
194+ mask-position : center;
195+ background-color : var (--menu-text-color );
173196 }
174197
175- > button {
198+ > span {
176199 display : flex;
177- flex-direction : row;
178200 align-items : center;
201+ align-self : stretch;
179202 width : 100% ;
180- height : auto;
181- padding : var (--menuitem-gap );
182- gap : var (--menuitem-gap );
183- background : transparent;
184- border : none;
185-
186- & : not (.noIcon )::before {
187- display : inline-block;
188- width : var (--menu-icon-size );
189- height : var (--menu-icon-size );
190- content : "" ;
191- mask-size : cover;
192- mask-position : center;
193- background-color : var (--menu-text-color );
194- }
195-
196- & : focus-visible {
197- outline : none;
198- }
199-
200- > span {
201- display : inline-block;
202- width : max-content;
203- height : auto;
204- text-align : start;
205- color : var (--menu-text-color );
206- user-select : none;
207- padding-inline-start : 6px ;
208-
209- font : menu;
210- font-size : 13px ;
211- font-style : normal;
212- font-weight : 510 ;
213- line-height : normal;
214- }
215-
216- & : disabled {
217- pointer-events : none;
218-
219- & : not (.noIcon )::before {
220- background-color : var (--menu-text-disabled-color );
221- }
222-
223- > span {
224- color : var (--menu-text-disabled-color );
225- }
226- }
203+ min-width : max-content;
204+ text-align : start;
205+ color : var (--menu-text-color );
206+ user-select : none;
207+ padding-inline-start : 6px ;
208+
209+ font : menu;
210+ font-size : 13px ;
211+ font-style : normal;
212+ font-weight : 510 ;
213+ line-height : normal;
227214 }
228215 }
229216}
0 commit comments