v4web-components
Version:
Stencil Component Starter
349 lines (287 loc) • 9.78 kB
CSS
input {
border: none;
outline: none;
padding: 0;
background-color: rgba(0, 0, 0, 0);
color: var(--lab-ds-semantic-color-fg-default);
}
input[type='date']::-webkit-inner-spin-button,
input[type='date']::-webkit-calendar-picker-indicator {
display: none;
-webkit-appearance: none;
}
.v4-input {
display: flex;
flex-direction: column;
gap: var(--lab-ds-semantic-selectable-space-gap-xs);
color: var(--lab-ds-semantic-color-fg-default);
max-width: 100%;
}
.v4-input .input-title-container {
display: flex;
flex-direction: column;
gap: var(--lab-ds-semantic-selectable-space-gap-s);
}
.v4-input .title-text {
text-align: left;
font: var(--lab-ds-semantic-typography-heading-h8);
}
.v4-input.medium .title-text {
font: var(--lab-ds-semantic-typography-heading-h7);
}
.v4-input .helper-text {
display: flex;
align-items: center;
gap: var(--lab-ds-semantic-selectable-space-gap-xs);
font: var(--lab-ds-semantic-typography-body-none-decoration-p3-regular);
}
.clean-visible {
display: none;
}
.input-field {
width: 100%;
text-align: left;
}
.input-icon {
display: flex;
align-items: center;
border-style: solid;
border-radius: var(--lab-ds-semantic-selectable-border-radius-xs);
border-width: var(--lab-ds-semantic-selectable-border-width-m);
border-color: var(--lab-ds-semantic-selectable-color-border-default);
background-color: var(--lab-ds-semantic-selectable-color-bg-default);
padding-top: var(--lab-ds-semantic-selectable-space-padding-s);
padding-bottom: var(--lab-ds-semantic-selectable-space-padding-s);
padding-left: var(--lab-ds-semantic-selectable-space-padding-m);
padding-right: var(--lab-ds-semantic-selectable-space-padding-m);
gap: var(--lab-ds-semantic-selectable-space-gap-xs);
margin-bottom: 0;
cursor: pointer;
}
.medium .input-icon {
padding-top: var(--lab-ds-semantic-selectable-space-padding-sm);
padding-bottom: var(--lab-ds-semantic-selectable-space-padding-sm);
}
.input-icon .input-field {
color: var(--lab-ds-semantic-color-fg-enabled);
font: var(--lab-ds-semantic-typography-body-none-decoration-p2-regular);
}
.calendar-container {
display: flex;
font: var(--lab-ds-semantic-typography-body-none-decoration-p2-regular);
position: relative;
z-index: 10;
}
.hints {
position: absolute;
border-style: solid;
border-radius: var(--lab-ds-semantic-selectable-border-radius-xs);
border-width: var(--lab-ds-semantic-selectable-border-width-m);
box-shadow: var(--lab-ds-semantic-container-shadow-l);
box-sizing: border-box;
background-color: var(--lab-ds-semantic-selectable-color-bg-pure);
border-color: var(--lab-ds-semantic-selectable-color-border-default);
color: var(--lab-ds-semantic-color-fg-default);
}
.calendar-visible-container {
padding-right: var(--lab-ds-semantic-selectable-space-padding-sm);
padding-left: var(--lab-ds-semantic-selectable-space-padding-sm);
padding-bottom: var(--lab-ds-semantic-selectable-space-padding-sm);
padding-top: var(--lab-ds-semantic-selectable-space-padding-m);
gap: var(--lab-ds-semantic-selectable-space-gap-m);
}
.error .input-icon {
background-color: var(--lab-ds-semantic-selectable-color-bg-default);
border-color: var(--lab-ds-semantic-selectable-color-border-dark-error);
}
.icon.error {
color: var(--lab-ds-semantic-selectable-color-bg-dark-error);
}
.error .helper-text {
color: var(--lab-ds-semantic-selectable-color-bg-dark-error);
}
.input-icon:focus-within {
box-shadow: var(--lab-ds-semantic-selectable-shadow-m);
border-color: var(--lab-ds-semantic-selectable-color-primary-press);
}
.v4-input:not(.disabled) .input-icon:hover {
box-shadow: var(--lab-ds-semantic-selectable-shadow-s);
border-color: var(--lab-ds-semantic-selectable-color-primary-hover);
}
.v4-input:not(.disabled) .input-icon:active {
box-shadow: var(--lab-ds-semantic-selectable-shadow-m);
border-color: var(--lab-ds-semantic-selectable-color-primary-press);
}
.icon {
display: flex;
}
.v4-input.disabled .input-icon {
background-color: var(--lab-ds-semantic-selectable-color-bg-disabled);
border-color: var(--lab-ds-semantic-selectable-color-border-disabled);
color: var(--lab-ds-semantic-selectable-color-bg-dark-success);
}
.v4-input.disabled .title-text {
color: var(--lab-ds-semantic-color-fg-disabled);
}
.v4-input.disabled .input-field {
color: var(--lab-ds-semantic-color-fg-disabled);
}
.v4-input.disabled .icon {
color: var(--lab-ds-semantic-color-fg-disabled);
}
.v4-input.disabled .helper-text {
color: var(--lab-ds-semantic-color-fg-disabled);
}
/* css calendar */
.calendar {
display: flex;
flex-direction: column;
gap: var(--lab-ds-semantic-selectable-space-gap-m);
max-width: 22.938rem;
}
.header {
display: flex;
justify-content: space-between;
align-items: center;
}
.header .calendar-select {
display: flex;
align-items: center;
justify-content: center;
gap: var(--lab-ds-semantic-selectable-space-gap-s);
width: 100%;
cursor: pointer;
}
.calendar-select-text {
display: flex;
align-items: center;
justify-content: center;
font: var(--lab-ds-semantic-typography-body-none-decoration-p2-regular);
}
.calendar-select .icon-hidden {
opacity: 0;
}
.calendar .day-names span {
width: calc(100% / 7);
text-align: center;
}
.calendar .days-in-month span {
width: calc(100% / 7 - var(--lab-ds-semantic-selectable-space-gap-m));
text-align: center;
}
.day-names {
display: flex;
gap: var(--lab-ds-semantic-selectable-space-gap-m);
box-sizing: content-box;
font: var(--lab-ds-semantic-typography-heading-h6);
justify-content: space-between;
text-align: center;
}
.days-in-month {
display: flex;
flex-wrap: wrap;
gap: var(--lab-ds-semantic-selectable-space-gap-m);
justify-content: space-between;
text-align: center;
}
.days-in-month span {
outline: none;
display: flex;
cursor: pointer;
justify-content: center;
align-items: center;
color: var(--lab-ds-semantic-color-fg-default);
}
.days-in-month span i {
display: flex;
width: 2.5rem;
align-items: center;
justify-content: center;
aspect-ratio: 1;
font-style: normal;
border-radius: var(--lab-ds-semantic-selectable-border-radius-pill);
}
.days-in-month span.disabled span {
width: 2.5rem;
color: var(--lab-ds-semantic-color-fg-disabled);
opacity: var(--lab-ds-core-opacity-80);
cursor: default;
}
/** Material style **/
.material .days-in-month span:hover:not(.disabled) i:not(.selected) {
background: #e6d2f1;
color: var(--lab-ds-semantic-color-fg-default);
background-color: var(--lab-ds-semantic-selectable-color-bg-hover);
}
.material .days-in-month span:focus:not(.disabled) i:not(.selected) {
outline-style: solid;
outline-color: var(--lab-ds-semantic-selectable-color-primary-focus);
outline-width: var(--lab-ds-semantic-selectable-border-width-s);
}
.material .days-in-month i.active {
border: var(--lab-ds-semantic-selectable-border-width-s) solid var(--lab-ds-semantic-selectable-color-primary-default);
color: var(--lab-ds-semantic-selectable-color-primary-default);
}
.material .days-in-month span:hover:not(.disabled) i.active {
background-color: var(--lab-ds-semantic-selectable-color-primary-hover);
color: var(--lab-ds-semantic-color-fg-contrast-primary);
}
.material .days-in-month span:focus:not(.disabled) i.active:not(.selected) {
outline-style: solid;
border-color: rgba(0, 0, 0, 0);
color: var(--lab-ds-semantic-selectable-color-primary-default);
outline-color: var(--lab-ds-semantic-selectable-color-primary-focus);
outline-width: var(--lab-ds-semantic-selectable-border-width-s);
}
.material .days-in-month i.selected {
background-color: var(--lab-ds-semantic-selectable-color-primary-default);
color: var(--lab-ds-semantic-color-fg-contrast-primary);
}
.material .days-in-month span:hover:not(.disabled) i.selected {
background-color: var(--lab-ds-semantic-selectable-color-primary-hover);
color: var(--lab-ds-semantic-color-fg-contrast-primary);
}
.calendar-actions {
display: flex;
justify-content: end;
align-items: center;
gap: var(--lab-ds-semantic-selectable-space-gap-xl);
}
.calendar-month-select-container {
position: absolute;
z-index: 10;
width: calc(100% - 2 * var(--lab-ds-semantic-selectable-space-padding-sm));
overflow-y: auto;
max-height: 83%;
background-color: var(--lab-ds-semantic-selectable-color-bg-pure);
gap: var(--lab-ds-semantic-selectable-space-gap-m);
transition: all 200ms ease-in-out;
}
/* width */
.scroll-customized::-webkit-scrollbar {
width: 0.5rem;
height: 0;
}
/* Track */
.scroll-customized::-webkit-scrollbar-track {
background-color: var(--lab-ds-semantic-selectable-color-bg-default);
border-radius: var(--lab-ds-semantic-selectable-border-radius-pill);
}
/* Handle */
.scroll-customized::-webkit-scrollbar-thumb {
background-color: var(--lab-ds-semantic-selectable-color-primary-default);
border-radius: var(--lab-ds-semantic-selectable-border-radius-pill);
}
.calendar-year-select-container {
position: absolute;
z-index: 10;
width: calc(100% - 2 * var(--lab-ds-semantic-selectable-space-padding-sm));
max-height: 83%;
overflow-y: auto;
background-color: var(--lab-ds-semantic-selectable-color-bg-pure);
gap: var(--lab-ds-semantic-selectable-space-gap-m);
transition: all 200ms ease-in-out;
}
.calendar-select-radio-button {
padding: 0.5rem 0;
}