@qvant/qui-max
Version:
A Vue 3 Design system for Web.
206 lines (202 loc) • 6.48 kB
CSS
.q-picker-dropdown {
padding: 16px;
background-color: var(--color-tertiary-gray-ultra-light);
border-radius: var(--border-radius-base);
outline: none;
box-shadow: -1px -1px 3px rgb(var(--color-rgb-white)/25%), 1px 1px 3px rgb(var(--color-rgb-blue)/40%);
}
.q-picker-dropdown__base {
display: flex;
}
.q-picker-dropdown__footer {
display: flex;
margin-top: 16px;
}
.q-picker-dropdown__input {
width: 223px;
margin-right: auto;
}
.q-color-svpanel {
position: relative;
width: 100%;
min-width: 464px;
height: 208px;
cursor: pointer;
}
.q-color-svpanel::before, .q-color-svpanel::after {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
content: "";
}
.q-color-svpanel::before {
background-image: linear-gradient(90deg, var(--color-tertiary-white), transparent);
}
.q-color-svpanel::after {
background-image: linear-gradient(0deg, #000, transparent);
}
.q-color-svpanel__cursor {
position: absolute;
z-index: 1;
width: 8px;
height: 8px;
cursor: grab;
background-color: var(--color-tertiary-gray-lighter);
border-radius: 50%;
box-shadow: -1px -1px 3px rgb(var(--color-rgb-white)/25%), 1px 1px 3px rgb(var(--color-rgb-blue)/40%), 4px 4px 8px rgb(var(--color-rgb-blue)/40%), -4px -4px 12px var(--color-tertiary-white);
transform: translate(-4px, -4px);
}
.q-color-hue-slider {
position: relative;
flex: 0 0 16px;
width: 16px;
height: 208px;
margin-left: 16px;
cursor: pointer;
}
.q-color-hue-slider__bar {
width: 100%;
height: 100%;
background-image: linear-gradient(180deg, #f00 0, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00);
border-radius: var(--border-radius-base);
box-shadow: inset 2px 2px 4px rgb(var(--color-rgb-gray)/32%);
}
.q-color-hue-slider__thumb {
position: absolute;
top: 0;
left: 0;
z-index: 1;
width: 12px;
height: 8px;
margin: 2px;
background-color: var(--color-tertiary-white);
border-radius: 2px;
box-shadow: -1px -1px 3px rgb(var(--color-rgb-white)/25%), 1px 1px 3px rgb(var(--color-rgb-blue)/40%);
}
.q-color-alpha-slider {
position: relative;
width: calc(100% - 32px);
min-width: 464px;
height: 16px;
margin-top: 8px;
overflow: hidden;
cursor: pointer;
background-image: linear-gradient(45deg, var(--color-tertiary-gray-ultra-dark) 25%, transparent 25%), linear-gradient(-45deg, var(--color-tertiary-gray-ultra-dark) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--color-tertiary-gray-ultra-dark) 75%), linear-gradient(-45deg, transparent 75%, var(--color-tertiary-gray-ultra-dark) 75%);
background-position: 8px 16px, -8px 8px, 16px 8px, -16px 0;
background-size: 16px 16px;
border-radius: var(--border-radius-base);
box-shadow: inset 2px 2px 4px rgb(var(--color-rgb-gray)/32%);
}
.q-color-alpha-slider__bar {
width: 100%;
height: 100%;
}
.q-color-alpha-slider__thumb {
position: absolute;
top: 0;
left: 0;
z-index: 1;
width: 8px;
height: 12px;
margin: 2px;
background-color: var(--color-tertiary-white);
border-radius: 2px;
box-shadow: -1px -1px 3px rgb(var(--color-rgb-white)/25%), 1px 1px 3px rgb(var(--color-rgb-blue)/40%);
}
.q-color-picker-trigger {
display: inline-block;
cursor: pointer;
}
.q-color-picker-trigger__default {
position: relative;
display: block;
width: 40px;
height: 40px;
padding: 0;
font-size: 24px;
cursor: inherit;
border: none;
border-radius: var(--border-radius-base);
box-shadow: -1px -1px 3px rgb(var(--color-rgb-white)/25%), 1px 1px 3px rgb(var(--color-rgb-blue)/40%), 4px 4px 8px rgb(var(--color-rgb-blue)/40%), -4px -4px 12px var(--color-tertiary-white);
}
.q-color-picker-trigger__default:hover {
box-shadow: -1px -1px 4px rgb(var(--color-rgb-white)/25%), 1px 1px 4px rgb(var(--color-rgb-blue)/40%), 4px 4px 8px rgb(var(--color-rgb-blue)/40%), -4px -4px 8px rgb(var(--color-rgb-white)/80%);
}
.q-color-picker-trigger__default:focus {
outline: none;
box-shadow: -1px -1px 3px rgb(var(--color-rgb-white)/25%), 1px 1px 3px rgb(var(--color-rgb-blue)/40%);
}
.q-color-picker-trigger__default::before {
position: absolute;
top: 0;
left: 0;
display: block;
width: 100%;
height: 100%;
content: "";
background-image: linear-gradient(45deg, var(--color-tertiary-gray-ultra-dark) 25%, transparent 25%), linear-gradient(-45deg, var(--color-tertiary-gray-ultra-dark) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--color-tertiary-gray-ultra-dark) 75%), linear-gradient(-45deg, transparent 75%, var(--color-tertiary-gray-ultra-dark) 75%);
background-position: 8px 16px, -8px 8px, 16px 8px, -16px 0;
background-size: 16px 16px;
border-radius: var(--border-radius-base);
}
.q-color-picker-trigger_is-disabled .q-color-picker-trigger__default {
cursor: not-allowed;
background-color: var(--color-tertiary-gray);
box-shadow: -1px -1px 3px rgb(var(--color-rgb-white)/25%), 1px 1px 3px rgb(var(--color-rgb-blue)/40%);
}
.q-color-picker-trigger_is-disabled .q-color-picker-trigger__default::before {
display: none;
}
.q-color-picker-trigger__color {
position: absolute;
top: 0;
left: 0;
display: block;
width: 100%;
height: 100%;
overflow: hidden;
background-color: var(--color-tertiary-gray-light);
border-radius: var(--border-radius-base);
}
.q-color-picker-trigger__color::before {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
content: "";
opacity: 0;
transition: opacity ease 0.25s;
}
.q-color-picker-trigger__default:focus .q-color-picker-trigger__color::before {
background-color: rgb(var(--color-rgb-white)/10%);
opacity: 1;
}
.q-color-picker-trigger__default:hover .q-color-picker-trigger__color::before {
background-color: rgb(var(--color-rgb-gray)/10%);
opacity: 1;
}
.q-color-picker-trigger_is-disabled .q-color-picker-trigger__default:hover .q-color-picker-trigger__color::before {
opacity: 0;
}
.q-color-picker-trigger__icon {
position: relative;
z-index: 1;
line-height: 40px;
color: var(--color-primary-black);
transition: transform 0.25s ease, color 0.25s ease;
}
.q-color-picker-trigger_is-opened .q-color-picker-trigger__icon {
transform: rotate(-180deg);
}
.q-color-picker-trigger_is-disabled .q-color-picker-trigger__icon {
color: rgb(var(--color-rgb-gray)/64%);
}
.q-color-picker-trigger__icon_light {
color: var(--color-tertiary-white);
}
.q-color-picker-trigger_is-disabled .q-color-picker-trigger__icon_light {
color: rgb(var(--color-rgb-white)/64%);
}