react-color-gradient-picker-advance
Version:
Color picker for react
340 lines (337 loc) • 12.6 kB
CSS
* {
box-sizing: border-box; }
.ui-color-picker {
margin: 8px;
background-color: #FFFFFF;
display: flex;
flex-direction: column;
width: 280px;
user-select: none; }
.ui-color-picker .gradient-controls {
display: flex;
flex-direction: row;
align-items: center;
width: 100%;
margin-bottom: 8px;
margin-top: 5px;
height: 24px;
padding: 0 16px; }
.ui-color-picker .gradient-controls .gradient-type {
flex: 1;
display: flex; }
.ui-color-picker .gradient-controls .gradient-type .gradient-type-item {
height: 28px;
width: 28px;
border-radius: 50%;
position: relative;
cursor: pointer; }
.ui-color-picker .gradient-controls .gradient-type .gradient-type-item.active::after {
content: '';
display: block;
position: absolute;
top: -3px;
bottom: -3px;
left: -3px;
right: -3px;
border: 2px solid #1F2667;
border-radius: 50%; }
.ui-color-picker .gradient-controls .gradient-type .gradient-type-item.liner-gradient {
background: linear-gradient(270deg, #FFFFFF 0%, #1F2667 100%); }
.ui-color-picker .gradient-controls .gradient-type .gradient-type-item.radial-gradient {
margin-left: 8px;
background: radial-gradient(circle, #FFFFFF 0%, #1F2667 100%); }
.ui-color-picker .gradient-controls .gradient-degrees-options {
position: relative; }
.ui-color-picker .gradient-controls .gradient-degrees-options .gradient-degrees {
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
position: relative;
width: 28px;
height: 28px;
border: 3px solid #1F2667;
border-radius: 18px;
margin-right: 65px; }
.ui-color-picker .gradient-controls .gradient-degrees-options .gradient-degrees .gradient-degree-center {
position: relative;
width: 6px;
height: 22px;
pointer-events: none; }
.ui-color-picker .gradient-controls .gradient-degrees-options .gradient-degrees .gradient-degree-center .gradient-degree-pointer {
position: absolute;
width: 6px;
height: 6px;
top: 2px;
border-radius: 3px;
background: #1F2667; }
.ui-color-picker .gradient-controls .gradient-degrees-options .gradient-degree-value {
position: absolute;
top: 0;
right: 0;
width: 48px;
height: 28px;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid #bbbfc5;
border-radius: 6px; }
.ui-color-picker .gradient-controls .gradient-degrees-options .gradient-degree-value p {
text-align: center;
padding: 0 6px; }
.ui-color-picker .gradient-controls .gradient-degrees-options .gradient-degree-value-input {
position: absolute;
top: 0;
right: 6px;
width: 48px;
height: 28px;
display: flex;
align-items: center;
justify-content: center; }
.ui-color-picker .gradient-controls .gradient-degrees-options .gradient-degree-value-input input {
width: 60px; }
.ui-color-picker .gradient-controls .gradient-degrees-options .gradient-degree-value-input p {
position: absolute;
padding: 0px;
min-width: 10px;
text-align: center; }
.ui-color-picker .picker-area {
display: flex;
flex-direction: column;
padding: 0 16px; }
.ui-color-picker .picker-area.gradient-tab .picking-area {
margin-bottom: 10px; }
.ui-color-picker .picker-area .picking-area {
width: 100%;
height: 160px;
margin-bottom: 16px;
position: relative;
border-radius: 8px; }
.ui-color-picker .picker-area .picking-area:hover {
cursor: default; }
.ui-color-picker .picker-area .picking-area .picking-area-overlay1 {
height: 100%;
width: 100%;
background: linear-gradient(to right, white 0%, rgba(255, 255, 255, 0) 100%);
border-radius: 3px; }
.ui-color-picker .picker-area .picking-area .picking-area-overlay1 .picking-area-overlay2 {
height: 100%;
width: 100%;
background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, black 100%);
border-radius: 8px; }
.ui-color-picker .picker-area .preview {
display: flex;
flex-direction: row;
margin-bottom: 16px; }
.ui-color-picker .picker-area .preview .preview-box {
box-sizing: border-box;
height: 36px;
width: 36px;
border-radius: 8px;
border: 1px solid #EBEDF5; }
.ui-color-picker .picker-area .preview .color-hue-alpha {
display: flex;
flex-direction: column;
flex: 1;
margin-left: 6px; }
.ui-color-picker .picker-area .preview .color-hue-alpha .hue {
width: 100%;
position: relative;
border-radius: 10px;
margin-bottom: 8px;
padding: 0 7px;
background-color: red; }
.ui-color-picker .picker-area .preview .color-hue-alpha .hue .hue-area {
position: relative;
height: 14px;
background: -webkit-linear-gradient(left, #ff0000, #ff0080, #ff00ff, #8000ff, #0000ff, #0080ff, #00ffff, #00ff80, #00ff00, #80ff00, #ffff00, #ff8000, #ff0000);
background: -o-linear-gradient(left, #ff0000, #ff8000, #ffff00, #80ff00, #00ff00, #00ff80, #00ffff, #0080ff, #0000ff, #8000ff, #ff00ff, #ff0080, #ff0000);
background: -ms-linear-gradient(left, #ff0000, #ff8000, #ffff00, #80ff00, #00ff00, #00ff80, #00ffff, #0080ff, #0000ff, #8000ff, #ff00ff, #ff0080, #ff0000);
background: -moz-linear-gradient(left, #ff0000, #ff8000, #ffff00, #80ff00, #00ff00, #00ff80, #00ffff, #0080ff, #0000ff, #8000ff, #ff00ff, #ff0080, #ff0000);
background: linear-gradient(to right, #ff0000, #ff8000, #ffff00, #80ff00, #00ff00, #00ff80, #00ffff, #0080ff, #0000ff, #8000ff, #ff00ff, #ff0080, #ff0000); }
.ui-color-picker .picker-area .preview .color-hue-alpha .alpha {
position: relative;
width: 100%;
overflow: hidden;
border-radius: 10px;
height: 14px;
cursor: pointer; }
.ui-color-picker .picker-area .preview .color-hue-alpha .alpha .gradient {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0; }
.ui-color-picker .picker-area .preview .color-hue-alpha .alpha .alpha-area {
width: 100%;
height: 100%;
background: url("assets/images/alpha-background.svg");
background-size: auto;
background-position: 50% 50%;
border-radius: 10px;
padding: 0 7px; }
.ui-color-picker .picker-area .preview .color-hue-alpha .alpha .alpha-area .alpha-mask {
width: 100%;
height: 100%;
position: relative; }
.ui-color-picker .picker-area .gradient {
width: 100%;
height: 14px;
position: relative;
cursor: pointer;
border-radius: 10px;
margin-bottom: 8px;
padding: 0 7px; }
.ui-color-picker .picker-area .gradient .gradient-slider-container {
height: 100%;
width: 100%;
position: relative; }
.ui-color-picker .picker-area .picker-pointer {
position: absolute;
top: 1px;
height: 12px;
width: 12px;
border: 1px solid #FFFFFF;
background: transparent;
border-radius: 50%;
box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.3); }
.ui-color-picker .picker-area .picker-pointer .child-point {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
height: 3px;
width: 3px;
background: #FFFFFF;
border-radius: 50%;
opacity: 0;
transition: opacity 0.33s; }
.ui-color-picker .picker-area .picker-pointer .child-point.active {
opacity: 1; }
.ui-color-picker .color-preview-area {
margin-bottom: 8px;
padding: 0 16px; }
.ui-color-picker .color-preview-area .input-group {
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between; }
.ui-color-picker .color-preview-area .input-group .uc-field-group:not(:last-child) {
margin-right: 7px; }
.ui-color-picker .color-preview-area .hex {
width: 65px; }
.ui-color-picker .color-preview-area .rgb {
width: 40px; }
.ui-color-picker .colors {
padding: 3px 16px 0; }
.ui-color-picker .colors .colors-label {
display: flex;
align-items: center;
margin-bottom: 4px;
cursor: pointer; }
.ui-color-picker .colors .colors-label .uc-icon {
margin-right: 8px;
transition: transform 0.3s; }
.ui-color-picker .colors .colors-label .tp-text {
text-transform: uppercase; }
.ui-color-picker .colors .colors-label.show + .colors-item-container {
max-height: 80px;
padding-bottom: 16px; }
.ui-color-picker .colors .colors-label.show .uc-icon {
transform: rotate(-90deg); }
.ui-color-picker .colors .template {
display: flex;
flex-direction: column; }
.ui-color-picker .colors .global {
display: flex;
flex-direction: column;
align-items: flex-start; }
.ui-color-picker .colors .colors-item-container {
display: flex;
flex-wrap: wrap;
width: 100%;
transition: max-height 0.3s, padding-bottom 0.3s;
max-height: 0;
overflow: hidden; }
.ui-color-picker .colors .colors-item-container .colors-item {
height: 24px;
width: 24px;
border-radius: 50%;
background-color: #EBEDF5;
cursor: pointer;
position: relative;
margin-top: 4px;
flex-shrink: 0; }
.ui-color-picker .colors .colors-item-container .colors-item:not(.plus) {
border: 1px solid #EBEDF5; }
.ui-color-picker .colors .colors-item-container .colors-item.empty {
display: flex;
align-items: center;
justify-content: center; }
.ui-color-picker .colors .colors-item-container .colors-item.empty .line {
width: 2px;
height: 16px;
background-color: #8892B3;
border-radius: 1px;
transform: rotate(45deg); }
.ui-color-picker .colors .colors-item-container .colors-item.plus {
margin-bottom: 4px; }
.ui-color-picker .colors .colors-item-container .colors-item.plus .uc-icon {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
opacity: 1; }
.ui-color-picker .colors .colors-item-container .colors-item:not(:first-child):not(:nth-child(9)) {
margin-left: 8px; }
.ui-color-picker .colors .colors-item-container .colors-item .uc-icon {
position: absolute;
right: -8px;
top: -3px;
opacity: 0;
transition: opacity 0.3s; }
.ui-color-picker .colors .colors-item-container .colors-item:hover .uc-icon {
opacity: 1; }
.ui-color-picker .colors .colors-item-container .colors-item.active::after {
content: '';
display: block;
position: absolute;
top: -3px;
bottom: -3px;
left: -3px;
right: -3px;
border: 2px solid #8892B3;
border-radius: 50%; }
.input-field {
display: flex;
flex-shrink: 0;
align-items: center;
flex-direction: column; }
.input-field .label {
font-size: 12px;
line-height: 15px;
font-weight: 600;
margin-top: 6px;
margin-bottom: 0;
color: #1F2667; }
.input-field .input-container {
display: flex;
align-items: center;
position: relative;
width: 100%;
border-radius: 6px;
color: #28314d; }
.input-field .input-container .input {
width: 100%;
outline: 0;
color: #1F2667;
border-radius: inherit;
border: 1px solid #bbbfc5;
height: 24px;
font-size: 12px;
font-weight: 600;
padding: 0 6px; }