packages/bui-core/src/ItemSelector/ItemSelector.less (125 lines of code) (raw):
@import '@bifrostui/styles/mixins/index.less';
@{root-selector} {
--bui-item-selector-item-width: 111px;
--bui-item-selector-item-height: 36px;
--bui-item-selector-item-border-radius: 20px;
--bui-item-selector-item-margin: 4.5px 0 4.5px 9px;
--bui-item-selector-title-height: 45px;
--bui-item-selector-title-line-height: 45px;
--bui-item-selector-btn-close-size: 45px;
--bui-item-selector-btn-close-font-size: 20px;
--bui-item-selector-container-with-title-height: calc(
100% - var(--bui-item-selector-title-height)
);
--bui-item-selector-item-container-min-height: 500px;
--bui-item-selector-select-item-buttons-padding: 7.5px 0 0 3px;
--bui-item-selector-select-item-title-line-height: 15px;
--bui-item-selector-list-item-height: 45px;
--bui-item-selector-item-index-has-title-top: calc(
50% + var(--bui-item-selector-title-height) / 2
);
--bui-item-selector-index-item-height: 20px;
}
.bui-item-selector {
font-family: var(--bui-font-family);
height: 100%;
position: relative;
&-title {
width: 100%;
height: var(--bui-item-selector-title-height);
color: var(--bui-color-fg-default);
font-size: var(--bui-title-size-3);
line-height: var(--bui-item-selector-title-line-height);
text-align: center;
position: sticky;
top: 0;
z-index: 1004;
border-bottom: solid 1px var(--bui-color-border-default);
background-color: var(--bui-color-bg-view);
}
&-btn-close {
position: absolute;
top: 0;
right: 0;
width: var(--bui-item-selector-btn-close-size);
height: var(--bui-item-selector-btn-close-size);
color: var(--bui-color-fg-muted);
text-align: center;
font-size: var(--bui-item-selector-btn-close-font-size);
}
&-scroll-view-container {
height: 100%;
&.container-has-title {
height: var(--bui-item-selector-container-with-title-height);
}
}
&-all-item {
min-height: var(--bui-item-selector-item-container-min-height);
font-size: var(--bui-text-size-2);
width: 100%;
background: var(--bui-color-bg-view);
align-self: flex-start;
.select-item-buttons {
display: flex;
flex-flow: wrap;
padding: var(--bui-item-selector-select-item-buttons-padding);
}
.select-item-title {
font-size: var(--bui-title-size-4);
line-height: var(--bui-item-selector-select-item-title-line-height);
font-weight: var(--bui-font-weight-bold);
padding-left: var(--bui-spacing-lg);
padding-top: var(--bui-spacing-md);
}
}
&-list {
padding-left: var(--bui-spacing-lg);
list-style-type: none;
}
&-list-item {
height: var(--bui-item-selector-list-item-height);
font-size: var(--bui-title-size-4);
display: flex;
align-items: center;
&:not(:last-child) {
border-bottom: 0.5px solid var(--bui-color-border-default);
}
}
&-index-container {
z-index: 1001;
position: absolute;
white-space: nowrap;
right: 0;
top: 50%;
width: 40px;
will-change: transform;
// transform: translate(100%, -50%);
transform: translate(0, -50%);
transition:
opacity 0.2s ease-out,
transform 0.2s ease-out;
&.left-in {
opacity: 1;
transform: translate(0, -50%);
}
&.item-index-has-title {
top: var(--bui-item-selector-item-index-has-title-top);
}
ul {
margin: 0;
padding: 0;
float: left;
width: 100%;
touch-action: none;
}
li {
list-style: none;
height: var(--bui-item-selector-index-item-height);
text-align: center;
font-size: var(--bui-text-size-3);
color: var(--bui-color-info, --bui-color-info);
display: flex;
align-items: center;
justify-content: center;
}
}
}