Skip to content

Commit 86cd2da

Browse files
committed
refactor(MultiSelect): improve tags close button
1 parent 6dcfb38 commit 86cd2da

File tree

4 files changed

+43
-4
lines changed

4 files changed

+43
-4
lines changed

js/src/multi-select.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -611,9 +611,8 @@ class MultiSelect extends BaseComponent {
611611
tag.innerHTML = text
612612

613613
const closeBtn = document.createElement('button')
614-
closeBtn.classList.add(CLASS_NAME_TAG_DELETE, 'text-medium-emphasis')
614+
closeBtn.classList.add(CLASS_NAME_TAG_DELETE)
615615
closeBtn.setAttribute('aria-label', 'Close')
616-
closeBtn.innerHTML = '<span aria-hidden="true">&times;</span>'
617616

618617
tag.append(closeBtn)
619618

scss/_variables.scss

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1218,6 +1218,16 @@ $form-multi-select-tag-border-radius-lg: .375rem !default;
12181218
$form-multi-select-tag-padding-y: .0625rem !default;
12191219
$form-multi-select-tag-padding-x: .5rem !default;
12201220

1221+
$form-multi-select-tag-delete-width: .75rem !default;
1222+
$form-multi-select-tag-delete-height: .75rem !default;
1223+
$form-multi-select-tag-delete-color: $medium-emphasis !default;
1224+
$form-multi-select-tag-delete-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$form-multi-select-tag-delete-color}'><path d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/></svg>") !default;
1225+
$form-multi-select-tag-delete-hover-color: $high-emphasis !default;
1226+
$form-multi-select-tag-delete-hover-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$form-multi-select-tag-delete-hover-color}'><path d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/></svg>") !default;
1227+
$form-multi-select-tag-delete-focus-color: $high-emphasis !default;
1228+
$form-multi-select-tag-delete-focus-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$form-multi-select-tag-delete-focus-color}'><path d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/></svg>") !default;
1229+
$form-multi-select-tag-delete-bg-size: .5rem !default;
1230+
12211231
$form-multi-select-buttons-padding-y: .375rem !default;
12221232
$form-multi-select-buttons-padding-x: .375rem !default;
12231233

scss/forms/_form-multi-select.scss

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,16 @@
100100
--#{$prefix}form-multi-select-tag-border: #{$form-multi-select-tag-border-width} solid var(--#{$prefix}form-multi-select-tag-border-color);
101101
--#{$prefix}form-multi-select-tag-border-radius: #{$form-multi-select-tag-border-radius};
102102

103+
--#{$prefix}form-multi-select-tag-delete-width: #{$form-multi-select-tag-delete-width};
104+
--#{$prefix}form-multi-select-tag-delete-height: #{$form-multi-select-tag-delete-height};
105+
--#{$prefix}form-multi-select-tag-delete-color: #{$form-multi-select-tag-delete-color};
106+
--#{$prefix}form-multi-select-tag-delete-bg: #{$form-multi-select-tag-delete-bg};
107+
--#{$prefix}form-multi-select-tag-delete-hover-color: #{$form-multi-select-tag-delete-hover-color};
108+
--#{$prefix}form-multi-select-tag-delete-hover-bg: #{$form-multi-select-tag-delete-hover-bg};
109+
--#{$prefix}form-multi-select-tag-delete-focus-color: #{$form-multi-select-tag-delete-focus-color};
110+
--#{$prefix}form-multi-select-tag-delete-focus-bg: #{$form-multi-select-tag-delete-focus-bg};
111+
--#{$prefix}form-multi-select-tag-delete-bg-size: #{$form-multi-select-tag-delete-bg-size};
112+
103113
--#{$prefix}form-multi-select-selection-tags-gap: #{$form-multi-select-selection-tags-gap};
104114
--#{$prefix}form-multi-select-selection-tags-padding-y: #{$form-multi-select-selection-tags-padding-y};
105115
--#{$prefix}form-multi-select-selection-tags-padding-x: #{$form-multi-select-selection-tags-padding-x};
@@ -124,7 +134,6 @@ select.form-multi-select {
124134
}
125135

126136
.form-multi-select-input-group {
127-
// position: relative;
128137
display: flex;
129138
flex-wrap: wrap;
130139
align-items: stretch;
@@ -268,16 +277,27 @@ select.form-multi-select {
268277
}
269278

270279
.form-multi-select-tag {
280+
display: flex;
281+
align-items: center;
271282
padding: var(--#{$prefix}form-multi-select-tag-padding-y) var(--#{$prefix}form-multi-select-tag-padding-x);
272283
background-color: var(--#{$prefix}form-multi-select-tag-bg);
273284
border: var(--#{$prefix}form-multi-select-tag-border);
274285
@include border-radius(var(--#{$prefix}form-multi-select-tag-border-radius));
275286
}
276287

277288
.form-multi-select-tag-delete {
278-
padding: 0;
289+
position: relative;
290+
z-index: 2;
291+
box-sizing: content-box;
292+
width: var(--#{$prefix}form-multi-select-tag-delete-width);
293+
height: var(--#{$prefix}form-multi-select-tag-delete-height);
294+
padding: var(--#{$prefix}form-multi-select-tag-delete-padding-y) var(--#{$prefix}form-multi-select-tag-delete-padding-x);
279295
margin-inline-start: $spacer * .5;
280296
background-color: transparent;
297+
background-image: var(--#{$prefix}form-multi-select-tag-delete-bg);
298+
background-repeat: no-repeat;
299+
background-position: center;
300+
background-size: var(--#{$prefix}form-multi-select-tag-delete-bg-size);
281301
border: 0;
282302
}
283303

scss/themes/dark/_variables.scss

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,13 @@ $form-multi-select-disabled-bg-dt: $input-disabled-bg-dt !default;
356356
$form-multi-select-tag-bg-dt: $light-dt !default;
357357
$form-multi-select-tag-border-color-dt: $input-border-color-dt !default;
358358

359+
$form-multi-select-tag-delete-color-dt: $medium-emphasis-dt !default;
360+
$form-multi-select-tag-delete-bg-dt: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$form-multi-select-tag-delete-color-dt}'><path d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/></svg>") !default;
361+
$form-multi-select-tag-delete-hover-color-dt: $high-emphasis-dt !default;
362+
$form-multi-select-tag-delete-hover-bg-dt: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$form-multi-select-tag-delete-hover-color-dt}'><path d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/></svg>") !default;
363+
$form-multi-select-tag-delete-focus-color-dt: $high-emphasis-dt !default;
364+
$form-multi-select-tag-delete-focus-bg-dt: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$form-multi-select-tag-delete-focus-color-dt}'><path d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/></svg>") !default;
365+
359366
$form-multi-select-search-color-dt: $input-color-dt !default;
360367
$form-multi-select-search-bg-dt: transparent !default;
361368
$form-multi-select-search-border-color-dt: $input-border-color-dt !default;
@@ -404,6 +411,9 @@ $form-multi-select-theme-map: (
404411
"form-multi-select-focus-border-color": $form-multi-select-focus-border-color-dt,
405412
"form-multi-select-tag-bg": $form-multi-select-tag-bg-dt,
406413
"form-multi-select-tag-border-color": $form-multi-select-tag-border-color-dt,
414+
"form-multi-select-tag-delete-bg": $form-multi-select-tag-delete-bg-dt,
415+
"form-multi-select-tag-delete-hover-bg": $form-multi-select-tag-delete-hover-bg-dt,
416+
"form-multi-select-tag-delete-focus-bg": $form-multi-select-tag-delete-focus-bg-dt,
407417
"form-multi-select-search-color": $form-multi-select-search-color-dt,
408418
"form-multi-select-search-bg": $form-multi-select-search-bg-dt,
409419
"form-multi-select-search-border-color": $form-multi-select-search-border-color-dt,

0 commit comments

Comments
 (0)