@uploadcare/file-uploader
Version:
Building blocks for Uploadcare products integration
1,198 lines (1,050 loc) • 30.4 kB
CSS
/* TODO: we shuoud use basic theme there */
[uc-cloud-image-editor] {
--color-primary-accent: var(--uc-primary);
--color-text-base: var(--uc-foreground);
--color-text-accent-contrast: var(--uc-background);
--color-fill-contrast: var(--uc-background);
--color-modal-backdrop: oklch(0 0 0 / 0.1);
--color-image-background: var(--uc-muted);
--color-focus-ring: var(--color-primary-accent);
--color-crop-guides: var(--uc-foreground);
--font-size-ui: var(--uc-font-size);
--size-touch-area: var(--uc-button-size);
--size-panel-heading: calc(var(--uc-button-size) + var(--uc-padding) * 2);
--size-ui-min-width: 130px;
--size-line-width: 1px;
--size-modal-width: 650px;
--size-icon: calc(var(--uc-button-size) / 2);
/* TODO: remove icon size overrides */
--border-radius-editor: var(--uc-radius);
--border-radius-thumb: var(--uc-radius);
--border-radius-ui: var(--uc-radius);
--border-radius-base: var(--uc-radius);
--cldtr-gap-min: 5px;
--cldtr-gap-mid-1: 10px;
--cldtr-gap-mid-2: 15px;
--cldtr-gap-max: 20px;
--transition-duration-2: var(--transition-duration-all, 0.2s);
--transition-duration-3: var(--transition-duration-all, 0.3s);
--transition-duration-4: var(--transition-duration-all, 0.4s);
--transition-duration-5: var(--transition-duration-all, 0.5s);
--modal-header-opacity: 1;
--modal-header-height: var(--size-panel-heading);
--modal-toolbar-height: var(--size-panel-heading);
--transparent-pixel: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=');
display: block;
width: 100%;
height: 100%;
max-height: 100%;
}
[uc-cloud-image-editor] :is([can-handle-paste]:hover, [can-handle-paste]:focus) {
--can-handle-paste: 'true';
}
[uc-cloud-image-editor]
:is([tabindex][focus-visible], [tabindex]:hover, [with-effects][focus-visible], [with-effects]:hover) {
--filter-effect: var(--hover-filter) ;
--opacity-effect: var(--hover-opacity) ;
--color-effect: var(--hover-color-rgb) ;
--background-effect: var(--hover-background) ;
}
[uc-cloud-image-editor] :is([tabindex]:active, [with-effects]:active) {
--filter-effect: var(--down-filter) ;
--opacity-effect: var(--down-opacity) ;
--color-effect: var(--down-color-rgb) ;
--background-effect: var(--down-background) ;
}
[uc-cloud-image-editor] :is([tabindex][active], [with-effects][active]) {
--filter-effect: var(--active-filter) ;
--opacity-effect: var(--active-opacity) ;
--color-effect: var(--active-color-rgb) ;
--background-effect: var(--active-background) ;
}
[uc-cloud-image-editor] [hidden-scrollbar]::-webkit-scrollbar {
display: none;
}
[uc-cloud-image-editor] [hidden-scrollbar] {
-ms-overflow-style: none;
scrollbar-width: none;
}
[uc-cloud-image-editor].uc-editor_ON {
--modal-header-opacity: 0;
--modal-header-height: 0px;
--modal-toolbar-height: calc(var(--size-panel-heading) * 2);
}
[uc-cloud-image-editor].uc-editor_OFF {
--modal-header-opacity: 1;
--modal-header-height: var(--size-panel-heading);
--modal-toolbar-height: var(--size-panel-heading);
}
[uc-cloud-image-editor] > .uc-wrapper {
--l-min-img-height: var(--modal-toolbar-height);
--l-max-img-height: 100%;
--l-edit-button-width: 120px;
--l-toolbar-horizontal-padding: var(--cldtr-gap-mid-1);
position: relative;
display: grid;
grid-template-rows: minmax(var(--l-min-img-height), var(--l-max-img-height)) minmax(var(--modal-toolbar-height), auto);
height: 100%;
overflow: hidden;
overflow-y: auto;
}
@media only screen and (max-width: 800px) {
[uc-cloud-image-editor] > .uc-wrapper {
--l-edit-button-width: 70px;
--l-toolbar-horizontal-padding: var(--cldtr-gap-min);
}
}
[uc-cloud-image-editor] > .uc-wrapper > .uc-viewport {
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
}
[uc-cloud-image-editor] > .uc-wrapper > .uc-viewport > .uc-image_container > .uc-image {
--viewer-image-opacity: 1;
position: absolute;
top: 0px;
left: 0px;
z-index: 10;
display: block;
box-sizing: border-box;
width: 100%;
height: 100%;
object-fit: scale-down;
background-color: var(--color-image-background);
transform: scale(1);
opacity: var(--viewer-image-opacity);
user-select: none;
pointer-events: auto;
}
[uc-cloud-image-editor] > .uc-wrapper > .uc-viewport > .uc-image_container > .uc-image.uc-image_visible_viewer {
transition:
opacity var(--transition-duration-3) ease-in-out,
transform var(--transition-duration-4);
}
[uc-cloud-image-editor] > .uc-wrapper > .uc-viewport > .uc-image_container > .uc-image.uc-image_hidden_to_cropper {
--viewer-image-opacity: 0;
background-image: var(--transparent-pixel);
transform: scale(1);
transition:
transform var(--transition-duration-4),
opacity var(--transition-duration-3) steps(1, jump-end);
pointer-events: none;
}
[uc-cloud-image-editor] > .uc-wrapper > .uc-viewport > .uc-image_container > .uc-image.uc-image_hidden_effects {
--viewer-image-opacity: 0;
transform: scale(1);
transition:
opacity var(--transition-duration-3) cubic-bezier(0.5, 0, 1, 1),
transform var(--transition-duration-4);
pointer-events: none;
}
[uc-cloud-image-editor] > .uc-wrapper > .uc-viewport > .uc-image_container {
position: relative;
display: block;
width: 100%;
height: 100%;
background-color: var(--color-image-background);
transition: var(--transition-duration-3);
}
[uc-cloud-image-editor] > .uc-wrapper > .uc-toolbar {
position: relative;
transition: 0.3s;
}
[uc-cloud-image-editor] > .uc-wrapper > .uc-toolbar > .uc-toolbar_content {
position: absolute;
bottom: 0px;
left: 0px;
box-sizing: border-box;
width: 100%;
height: var(--modal-toolbar-height);
min-height: var(--size-panel-heading);
background-color: var(--color-fill-contrast);
}
[uc-cloud-image-editor] > .uc-wrapper > .uc-toolbar > .uc-toolbar_content.uc-toolbar_content__viewer {
display: flex;
align-items: center;
justify-content: space-between;
height: var(--size-panel-heading);
padding-right: var(--l-toolbar-horizontal-padding);
padding-left: var(--l-toolbar-horizontal-padding);
}
[uc-cloud-image-editor] > .uc-wrapper > .uc-toolbar > .uc-toolbar_content.uc-toolbar_content__editor {
display: flex;
}
[uc-cloud-image-editor] > .uc-wrapper > .uc-viewport > .uc-info_pan {
position: absolute;
user-select: none;
}
[uc-cloud-image-editor] > .uc-wrapper > .uc-viewport > .uc-file_type_outer {
position: absolute;
z-index: 2;
display: flex;
max-width: 120px;
transform: translateX(-40px);
user-select: none;
}
[uc-cloud-image-editor] > .uc-wrapper > .uc-viewport > .uc-file_type_outer > .uc-file_type {
padding: 4px 0.8em;
}
[uc-cloud-image-editor] > .uc-wrapper > .uc-network_problems_splash {
position: absolute;
z-index: 4;
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
background-color: var(--color-fill-contrast);
}
[uc-cloud-image-editor] > .uc-wrapper > .uc-network_problems_splash > .uc-network_problems_content {
display: flex;
flex: 1;
flex-direction: column;
align-items: center;
justify-content: center;
}
[uc-cloud-image-editor]
> .uc-wrapper
> .uc-network_problems_splash
> .uc-network_problems_content
> .uc-network_problems_icon {
display: flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
color: var(--uc-foreground);
background-color: var(--uc-muted);
border-radius: 50%;
}
[uc-cloud-image-editor]
> .uc-wrapper
> .uc-network_problems_splash
> .uc-network_problems_content
> .uc-network_problems_text {
margin-top: var(--cldtr-gap-max);
font-size: var(--font-size-ui);
color: var(--uc-foreground);
}
[uc-cloud-image-editor] > .uc-wrapper > .uc-network_problems_splash > .uc-network_problems_footer {
display: flex;
align-items: center;
justify-content: center;
height: var(--size-panel-heading);
}
uc-crop-frame > .uc-svg {
position: absolute;
top: 0px;
left: 0px;
z-index: 2;
width: 100%;
height: 100%;
border-top-left-radius: var(--border-radius-base);
border-top-right-radius: var(--border-radius-base);
opacity: inherit;
transition: var(--transition-duration-3);
}
uc-crop-frame > .uc-thumb {
--idle-color-rgb: var(--color-text-base);
--hover-color-rgb: var(--color-primary-accent);
--focus-color-rgb: var(--color-primary-accent);
--down-color-rgb: var(--color-primary-accent);
--color-effect: var(--idle-color-rgb);
color: var(--color-effect);
transition:
color var(--transition-duration-3),
opacity var(--transition-duration-3);
}
uc-crop-frame > .uc-thumb--visible {
opacity: 1;
pointer-events: auto;
}
uc-crop-frame > .uc-thumb--hidden {
opacity: 0;
pointer-events: none;
}
uc-crop-frame > .uc-guides {
transition: var(--transition-duration-3);
}
uc-crop-frame > .uc-guides--hidden {
opacity: 0;
}
uc-crop-frame > .uc-guides--semi-hidden {
opacity: 0.2;
}
uc-crop-frame > .uc-guides--visible {
opacity: 1;
}
uc-editor-button-control,
uc-editor-crop-button-control,
uc-editor-filter-control,
uc-editor-operation-control {
--l-base-min-width: var(--uc-button-size);
--l-base-height: var(--uc-button-size);
--opacity-effect: var(--idle-opacity);
--color-effect: var(--idle-color-rgb);
--background-effect: var(--idle-background);
--filter-effect: var(--idle-filter);
--idle-color-rgb: var(--uc-secondary-foreground);
--idle-opacity: 1;
--idle-filter: 1;
--idle-background: var(--uc-secondary);
--hover-color-rgb: var(--uc-secondary-foreground);
--hover-opacity: 1;
--hover-filter: 0.8;
--hover-background: var(--uc-secondary-hover);
--down-color-rgb: var(--hover-color-rgb);
--down-opacity: 1;
--down-filter: 0.6;
--down-background: var(--uc-secondary);
border-radius: var(--uc-radius);
}
uc-editor-button-control > button,
uc-editor-crop-button-control > button,
uc-editor-filter-control > button,
uc-editor-operation-control > button {
all: unset;
position: relative;
display: grid;
grid-template-columns: var(--l-base-min-width) auto;
grid-template-rows: 100%;
align-items: center;
height: var(--l-base-height);
color: var(--color-effect);
opacity: var(--opacity-effect);
cursor: pointer;
transition: var(--l-width-transition);
}
:where(uc-editor-button-control, uc-editor-crop-button-control, uc-editor-filter-control, uc-editor-operation-control)
> uc-icon
> svg {
width: var(--size-icon);
height: var(--size-icon);
}
uc-editor-filter-control > uc-icon.uc-original-icon > svg {
width: 100%;
height: 100%;
}
uc-editor-button-control.uc-active,
uc-editor-operation-control.uc-active,
uc-editor-crop-button-control.uc-active,
uc-editor-filter-control.uc-active {
--idle-color-rgb: var(--uc-primary-foreground);
--idle-background: var(--uc-primary);
--idle-opacity: 1;
--hover-color-rgb: var(--uc-primary-foreground);
--hover-background: var(--uc-primary);
--hover-opacity: 1;
}
uc-editor-filter-control.uc-not_active .uc-preview[loaded] {
opacity: 1;
}
uc-editor-filter-control.uc-active .uc-preview {
opacity: 0;
}
uc-editor-button-control.uc-not_active,
uc-editor-operation-control.uc-not_active,
uc-editor-crop-button-control.uc-not_active,
uc-editor-filter-control.uc-not_active {
--idle-color-rgb: var(--uc-secondary-foreground);
}
:where(.uc-contrast) uc-editor-button-control.uc-not_active,
:where(.uc-contrast) uc-editor-operation-control.uc-not_active,
:where(.uc-contrast) uc-editor-crop-button-control.uc-not_active,
:where(.uc-contrast) uc-editor-filter-control.uc-not_active {
--idle-background: transparent;
--hover-background: var(--uc-secondary);
outline: 1px solid var(--uc-border);
outline-offset: -1px;
}
uc-editor-button-control > button::before,
uc-editor-operation-control > button::before,
uc-editor-crop-button-control > button::before,
uc-editor-filter-control > button::before {
position: absolute;
content: '';
right: 0;
left: 0;
z-index: -1;
width: 100%;
height: 100%;
background-color: var(--background-effect);
border-radius: var(--border-radius-editor);
transition: var(--transition-duration-3);
}
uc-editor-button-control > button .uc-title,
uc-editor-operation-control > button .uc-title,
uc-editor-crop-button-control > button .uc-title,
uc-editor-filter-control > button .uc-title {
padding-right: var(--cldtr-gap-mid-1);
font-size: 0.7em;
letter-spacing: 1.004px;
text-transform: uppercase;
}
uc-editor-button-control > button uc-icon,
uc-editor-operation-control > button uc-icon,
uc-editor-crop-button-control > button uc-icon,
uc-editor-filter-control > button uc-icon {
pointer-events: none;
}
uc-editor-filter-control > button .uc-preview {
position: absolute;
right: 0;
left: 0;
z-index: -1;
width: 100%;
height: var(--l-base-height);
background-repeat: no-repeat;
background-size: contain;
border-radius: var(--border-radius-editor);
opacity: 0;
filter: brightness(var(--filter-effect));
transition: var(--transition-duration-3);
}
uc-editor-filter-control > .uc-original-icon {
color: var(--color-effect);
opacity: 0.3;
}
uc-editor-image-cropper {
position: absolute;
top: 0px;
left: 0px;
z-index: 10;
display: block;
width: 100%;
height: 100%;
opacity: 0;
pointer-events: none;
touch-action: none;
color: var(--color-crop-guides);
}
uc-editor-image-cropper.uc-active_from_editor {
transform: scale(1) translate(0px, 0px);
opacity: 1;
transition:
transform var(--transition-duration-4) cubic-bezier(0.37, 0, 0.63, 1) 0.4s,
opacity var(--transition-duration-3);
pointer-events: auto;
}
uc-editor-image-cropper.uc-active_from_viewer {
transform: scale(1) translate(0px, 0px);
opacity: 1;
transition:
transform var(--transition-duration-4) cubic-bezier(0.37, 0, 0.63, 1) 0.4s,
opacity var(--transition-duration-3);
pointer-events: auto;
}
uc-editor-image-cropper.uc-inactive_to_editor {
opacity: 0;
transition:
transform var(--transition-duration-4) cubic-bezier(0.37, 0, 0.63, 1),
opacity var(--transition-duration-3) calc(var(--transition-duration-3) + 0.05s);
pointer-events: none;
}
uc-editor-image-cropper > .uc-canvas {
position: absolute;
top: 0px;
left: 0px;
z-index: 1;
display: block;
width: 100%;
height: 100%;
}
uc-editor-image-fader {
position: absolute;
top: 0px;
left: 0px;
display: block;
width: 100%;
height: 100%;
}
uc-editor-image-fader.uc-active_from_viewer {
z-index: 3;
transform: scale(1);
opacity: 1;
transition:
transform var(--transition-duration-4),
opacity var(--transition-duration-3) steps(1, jump-start);
pointer-events: auto;
}
uc-editor-image-fader.uc-active_from_cropper {
z-index: 3;
transform: scale(1);
opacity: 1;
transition:
transform var(--transition-duration-4),
opacity var(--transition-duration-3) steps(1, jump-end);
pointer-events: auto;
}
uc-editor-image-fader.uc-inactive_to_cropper {
z-index: 3;
transform: scale(1);
opacity: 0;
transition:
transform var(--transition-duration-4),
opacity var(--transition-duration-3) steps(1, jump-end);
pointer-events: none;
}
uc-editor-image-fader .uc-fader-image {
position: absolute;
top: 0px;
left: 0px;
display: block;
width: 100%;
height: 100%;
object-fit: scale-down;
transform: scale(1);
user-select: none;
content-visibility: auto;
}
uc-editor-image-fader .uc-fader-image--preview {
background-color: var(--color-image-background);
border-top-left-radius: var(--border-radius-base);
border-top-right-radius: var(--border-radius-base);
transform: scale(1);
opacity: 0;
transition: var(--transition-duration-3);
}
uc-editor-scroller {
display: flex;
align-items: center;
width: 100%;
height: 100%;
overflow-x: scroll;
}
uc-editor-slider {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: var(--size-panel-heading);
}
uc-editor-toolbar {
position: relative;
width: 100%;
height: 100%;
}
@media only screen and (max-width: 600px) {
uc-editor-toolbar {
--l-tab-gap: var(--cldtr-gap-mid-1);
--l-slider-padding: var(--uc-padding);
--l-controls-padding: var(--uc-padding);
}
}
@media only screen and (min-width: 601px) {
uc-editor-toolbar {
--l-tab-gap: var(--cldtr-gap-max);
--l-slider-padding: var(--uc-padding);
--l-controls-padding: var(--uc-padding);
}
}
uc-editor-toolbar > .uc-toolbar-container {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
}
uc-editor-toolbar > .uc-toolbar-container > .uc-sub-toolbar {
position: absolute;
display: grid;
grid-template-rows: 1fr 1fr;
width: 100%;
height: 100%;
background-color: var(--color-fill-contrast);
transition:
opacity var(--transition-duration-3) ease-in-out,
transform var(--transition-duration-3) ease-in-out,
visibility var(--transition-duration-3) ease-in-out;
}
uc-editor-toolbar > .uc-toolbar-container > .uc-sub-toolbar.uc-sub-toolbar--visible {
transform: translateY(0px);
opacity: 1;
pointer-events: auto;
}
uc-editor-toolbar > .uc-toolbar-container > .uc-sub-toolbar.uc-sub-toolbar--top-hidden {
transform: translateY(100%);
opacity: 0;
pointer-events: none;
}
uc-editor-toolbar > .uc-toolbar-container > .uc-sub-toolbar.uc-sub-toolbar--bottom-hidden {
transform: translateY(-100%);
opacity: 0;
pointer-events: none;
}
uc-editor-toolbar > .uc-toolbar-container > .uc-sub-toolbar > .uc-controls-row {
display: flex;
align-items: center;
justify-content: space-between;
padding-right: var(--l-controls-padding);
padding-left: var(--l-controls-padding);
}
uc-editor-toolbar > .uc-toolbar-container > .uc-sub-toolbar > .uc-controls-row > .uc-tab-toggles {
position: relative;
display: grid;
grid-auto-flow: column;
grid-gap: 0px var(--l-tab-gap);
align-items: center;
height: 100%;
}
uc-editor-toolbar
> .uc-toolbar-container
> .uc-sub-toolbar
> .uc-controls-row
> .uc-tab-toggles
> .uc-tab-toggles_indicator {
position: absolute;
bottom: 0px;
left: 0px;
width: var(--size-touch-area);
height: 2px;
background-color: var(--uc-secondary-foreground);
transform: translateX(0px);
transition: transform var(--transition-duration-3);
}
uc-editor-toolbar > .uc-toolbar-container > .uc-sub-toolbar > .uc-tab-content-row {
position: relative;
}
uc-editor-toolbar > .uc-toolbar-container > .uc-sub-toolbar > .uc-tab-content-row > .uc-tab-content {
position: absolute;
top: 0px;
left: 0px;
display: flex;
width: 100%;
height: 100%;
overflow: hidden;
opacity: 0;
content-visibility: auto;
}
uc-editor-toolbar
> .uc-toolbar-container
> .uc-sub-toolbar
> .uc-tab-content-row
> .uc-tab-content.uc-tab-content--visible {
opacity: 1;
pointer-events: auto;
}
uc-editor-toolbar
> .uc-toolbar-container
> .uc-sub-toolbar
> .uc-tab-content-row
> .uc-tab-content.uc-tab-content--hidden {
opacity: 0;
pointer-events: none;
}
uc-editor-toolbar
> .uc-toolbar-container
> .uc-sub-toolbar
> .uc-controls-row
> .uc-tab-toggles
> .uc-tab-toggle.uc-tab-toggle--visible {
display: contents;
}
uc-editor-toolbar
> .uc-toolbar-container
> .uc-sub-toolbar
> .uc-controls-row
> .uc-tab-toggles
> .uc-tab-toggle.uc-tab-toggle--hidden {
display: none;
}
uc-editor-toolbar
> .uc-toolbar-container
> .uc-sub-toolbar
> .uc-controls-row
> .uc-tab-toggles.uc-tab-toggles--hidden {
display: none;
}
uc-editor-toolbar
> .uc-toolbar-container
> .uc-sub-toolbar
> .uc-controls-row
> .uc-tab-toggles
> .uc-tab-toggle
> uc-btn-ui {
width: var(--uc-button-size);
}
uc-editor-toolbar
> .uc-toolbar-container
> .uc-sub-toolbar
> .uc-controls-row
> .uc-tab-toggles
> .uc-tab-toggle
> uc-btn-ui
> uc-icon
> svg {
width: var(--size-icon);
height: var(--size-icon);
}
uc-editor-toolbar
> .uc-toolbar-container
> .uc-sub-toolbar
> .uc-tab-content-row
> .uc-tab-content
.uc-controls-list_align {
display: grid;
grid-template-areas: '. inner .';
grid-template-columns: 1fr auto 1fr;
box-sizing: border-box;
min-width: 100%;
padding-left: var(--uc-padding);
}
uc-editor-toolbar
> .uc-toolbar-container
> .uc-sub-toolbar
> .uc-tab-content-row
> .uc-tab-content
.uc-controls-list_inner {
display: grid;
grid-area: inner;
grid-auto-flow: column;
gap: 6px;
}
uc-editor-toolbar
> .uc-toolbar-container
> .uc-sub-toolbar
> .uc-tab-content-row
> .uc-tab-content
.uc-controls-list_inner:last-child {
padding-right: var(--uc-padding);
}
uc-editor-toolbar .uc-controls-list_last-item {
margin-right: var(--cldtr-gap-max);
}
uc-editor-toolbar .uc-info-tooltip_container {
position: absolute;
display: flex;
align-items: flex-start;
justify-content: center;
width: 100%;
height: 100%;
}
uc-editor-toolbar .uc-info-tooltip_wrapper {
position: absolute;
top: calc(-100% - var(--cldtr-gap-mid-2));
display: flex;
flex-direction: column;
justify-content: flex-end;
height: 100%;
pointer-events: none;
}
uc-editor-toolbar .uc-info-tooltip {
z-index: 3;
padding: 3px 6px;
color: var(--color-text-base);
font-size: 0.7em;
letter-spacing: 1px;
text-transform: uppercase;
background-color: var(--color-text-accent-contrast);
border-radius: var(--border-radius-editor);
transform: translateY(100%);
opacity: 0;
transition: var(--transition-duration-3);
}
uc-editor-toolbar .uc-info-tooltip_visible {
transform: translateY(0px);
opacity: 1;
}
uc-editor-toolbar .uc-slider {
padding-right: var(--l-slider-padding);
padding-left: var(--l-slider-padding);
}
uc-btn-ui > button {
--filter-effect: var(--idle-brightness);
--opacity-effect: var(--idle-opacity);
--color-effect: var(--idle-color-rgb);
--background-effect: var(--idle-background);
--l-transition-effect: var(
--css-transition,
color var(--transition-duration-2),
background-color var(--transition-duration-2),
filter var(--transition-duration-2)
);
all: unset;
display: inline-flex;
align-items: center;
box-sizing: var(--css-box-sizing, border-box);
height: var(--css-height, var(--uc-button-size));
padding-right: var(--css-padding-right, 14px);
padding-left: var(--css-padding-left, 14px);
font-size: 1em;
color: var(--color-effect);
background-color: var(--background-effect);
border-radius: var(--uc-radius);
opacity: var(--opacity-effect);
cursor: pointer;
filter: brightness(var(--filter-effect));
transition: var(--l-transition-effect);
user-select: none;
}
uc-btn-ui > button > uc-icon {
pointer-events: none;
}
uc-btn-ui .uc-text {
white-space: nowrap;
}
uc-btn-ui .uc-icon {
display: flex;
align-items: center;
justify-content: center;
color: var(--color-effect);
filter: brightness(var(--filter-effect));
transition: var(--l-transition-effect);
}
uc-btn-ui .uc-icon_left {
margin-right: var(--cldtr-gap-mid-1);
margin-left: 0px;
}
uc-btn-ui .uc-icon_right {
margin-right: 0px;
margin-left: var(--cldtr-gap-mid-1);
}
uc-btn-ui .uc-icon_single {
margin-right: 0px;
margin-left: 0px;
}
uc-btn-ui .uc-icon_hidden {
display: none;
margin: 0;
}
uc-btn-ui.uc-primary > button {
--idle-color-rgb: var(--uc-primary-foreground);
--idle-brightness: 1;
--idle-opacity: 1;
--idle-background: var(--uc-primary);
--hover-color-rgb: var(--uc-primary-foreground);
--hover-brightness: 1;
--hover-opacity: 1;
--hover-background: var(--uc-primary-hover);
--down-color-rgb: var(--uc-primary-foreground);
--down-brightness: 0.75;
--down-opacity: 1;
--down-background: var(--uc-primary);
--active-color-rgb: var(--uc-primary-foreground);
--active-brightness: 1;
--active-opacity: 1;
--active-background: var(--uc-primary);
}
uc-btn-ui.uc-primary-icon > button {
--idle-color-rgb: var(--uc-primary);
--idle-brightness: 1;
--idle-opacity: 1;
--idle-background: transparent;
--hover-color-rgb: var(--uc-primary);
--hover-brightness: 1;
--hover-opacity: 1;
--hover-background: var(--uc-primary-transparent);
--down-color-rgb: var(--uc-primary);
--down-brightness: 0.75;
--down-opacity: 1;
--down-background: var(--uc-primary-transparent);
--active-color-rgb: var(--uc-primary-foreground);
--active-brightness: 1;
--active-opacity: 1;
--active-background: var(--uc-primary);
padding: 0;
width: var(--uc-button-size);
}
uc-btn-ui.uc-secondary > button {
--idle-color-rgb: var(--uc-secondary-foreground);
--idle-brightness: 1;
--idle-opacity: 1;
--idle-background: var(--uc-secondary);
--hover-color-rgb: var(--uc-secondary-foreground);
--hover-brightness: 1;
--hover-opacity: 1;
--hover-background: var(--uc-secondary-hover);
--down-color-rgb: var(--uc-secondary-foreground);
--down-brightness: 1;
--down-opacity: 1;
--down-background: var(--uc-secondary-hover);
--active-color-rgb: var(--uc-secondary-foreground);
--active-brightness: 1;
--active-opacity: 1;
--active-background: transparent;
}
:where(.uc-contrast) uc-btn-ui.uc-secondary > button {
border: 1px solid var(--uc-border);
}
uc-btn-ui.uc-secondary-icon > button {
--idle-color-rgb: var(--uc-secondary-foreground);
--idle-brightness: 1;
--idle-opacity: 1;
--idle-background: transparent;
--hover-color-rgb: var(--uc-secondary-foreground);
--hover-brightness: 1;
--hover-opacity: 1;
--hover-background: var(--uc-secondary);
--down-color-rgb: var(--uc-secondary-foreground);
--down-brightness: 1;
--down-opacity: 1;
--down-background: var(--uc-secondary);
--active-color-rgb: var(--uc-secondary-foreground);
--active-brightness: 1;
--active-opacity: 1;
--active-background: transparent;
padding: 0;
width: var(--uc-button-size);
}
uc-btn-ui.uc-tab > button {
--idle-color-rgb: var(--uc-secondary-foreground);
--idle-brightness: 1;
--idle-opacity: 1;
--idle-background: transparent;
--hover-color-rgb: var(--uc-secondary-foreground);
--hover-brightness: 1;
--hover-opacity: 1;
--hover-background: var(--uc-secondary);
--down-color-rgb: var(--uc-secondary-foreground);
--down-brightness: 1;
--down-opacity: 1;
--down-background: var(--uc-secondary);
--active-color-rgb: var(--uc-secondary-foreground);
--active-brightness: 1;
--active-opacity: 1;
--active-background: transparent;
padding: 0;
width: var(--uc-button-size);
}
uc-btn-ui.uc-default > button {
--idle-color-rgb: var(--uc-secondary-foreground);
--idle-brightness: 1;
--idle-opacity: 1;
--idle-background: var(--uc-secondary);
--hover-color-rgb: var(--uc-secondary-foreground);
--hover-brightness: 1;
--hover-opacity: 1;
--hover-background: var(--uc-secondary-hover);
--down-color-rgb: var(--uc-secondary-foreground);
--down-brightness: 0.75;
--down-opacity: 1;
--down-background: var(--uc-secondary);
--active-color-rgb: var(--uc-primary);
--active-brightness: 1;
--active-opacity: 1;
--active-background: var(--uc-primary-transparent);
}
:where(.uc-contrast) uc-btn-ui.uc-default > button {
--idle-background: transparent;
--hover-background: var(--uc-secondary);
--active-background: var(--uc-foreground);
--active-color-rgb: var(--uc-background);
}
uc-line-loader-ui {
position: absolute;
top: 0px;
left: 0px;
z-index: 9999;
width: 100%;
height: 2px;
opacity: 0.5;
}
uc-line-loader-ui .uc-inner {
width: 25%;
max-width: 200px;
height: 100%;
}
uc-line-loader-ui .uc-line {
width: 100%;
height: 100%;
background-color: var(--uc-primary);
transform: translateX(-101%);
transition: transform 1s;
}
uc-slider-ui {
--l-thumb-size: 24px;
--l-zero-dot-size: 5px;
--l-zero-dot-offset: 2px;
--idle-color-rgb: var(--uc-foreground);
--hover-color-rgb: var(--uc-primary);
--down-color-rgb: var(--uc-primary);
--color-effect: var(--idle-color-rgb);
--l-color: var(--color-effect);
position: relative;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: calc(var(--l-thumb-size) + (var(--l-zero-dot-size) + var(--l-zero-dot-offset)) * 2);
}
uc-slider-ui .uc-thumb {
position: absolute;
left: 0px;
width: var(--l-thumb-size);
height: var(--l-thumb-size);
background-color: var(--l-color);
border-radius: 50%;
transform: translateX(0px);
opacity: 1;
transition:
opacity var(--transition-duration-2),
background-color var(--transition-duration-2);
}
uc-slider-ui .uc-steps {
position: absolute;
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
width: 100%;
height: 100%;
padding-right: calc(var(--l-thumb-size) / 2);
padding-left: calc(var(--l-thumb-size) / 2);
}
uc-slider-ui .uc-border-step {
width: 0px;
height: 10px;
border-right: 1px solid var(--uc-foreground);
opacity: 1;
transition: border-color var(--transition-duration-2);
}
uc-slider-ui .uc-minor-step {
width: 0px;
height: 4px;
border-right: 1px solid var(--uc-foreground);
opacity: 0.6;
transition: border-color var(--transition-duration-2);
}
uc-slider-ui .uc-zero-dot {
position: absolute;
top: calc(100% - var(--l-zero-dot-offset) * 2);
left: calc(var(--l-thumb-size) / 2 - var(--l-zero-dot-size) / 2);
width: var(--l-zero-dot-size);
height: var(--l-zero-dot-size);
background-color: var(--color-primary-accent);
border-radius: 50%;
opacity: 0;
transition: var(--transition-duration-3);
}
uc-slider-ui .uc-input {
position: absolute;
width: calc(100% - 10px);
height: 100%;
margin: 0;
cursor: pointer;
opacity: 0;
}
uc-presence-toggle.uc-transition {
transition:
opacity var(--transition-duration-3),
visibility var(--transition-duration-3);
}
uc-presence-toggle.uc-visible {
opacity: 1;
pointer-events: inherit;
}
uc-presence-toggle.uc-hidden {
opacity: 0;
pointer-events: none;
}
uc-presence-toggle.uc-initial {
display: none ;
transition: none ;
}
[uc-cloud-image-editor] [role='button']:focus-visible,
[uc-cloud-image-editor] button:focus-visible {
outline: 1px auto Highlight;
outline: 1px auto -webkit-focus-ring-color;
}
[uc-cloud-image-editor] .uc-cloud-mask {
pointer-events: none;
}