@uploadcare/file-uploader
Version:
Building blocks for Uploadcare products integration
184 lines (157 loc) • 3.57 kB
CSS
uc-camera-source {
position: relative;
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
max-height: 100%;
overflow: hidden;
background-color: var(--uc-background);
border-radius: var(--uc-radius);
}
[uc-modal] > dialog:has(uc-camera-source[active]) {
width: 100%;
height: 100%;
}
uc-camera-source:not(.uc-initialized) .uc-controls {
display: none;
}
uc-camera-source video {
display: block;
width: 100%;
max-height: 100%;
object-fit: contain;
object-position: center center;
background-color: var(--uc-muted);
border-radius: var(--uc-radius);
}
uc-camera-source .uc-toolbar {
position: absolute;
bottom: 0;
display: flex;
justify-content: space-between;
width: 100%;
padding: var(--uc-padding);
background-color: var(--uc-background);
}
uc-camera-source .uc-content {
display: flex;
flex: 1;
justify-content: center;
width: 100%;
height: 100%;
padding: var(--uc-padding);
padding-top: 0;
overflow: hidden;
}
uc-camera-source .uc-message-box {
display: flex;
flex-direction: column;
grid-gap: 40px;
align-items: center;
justify-content: center;
padding: 40px 40px 0;
color: var(--uc-foreground);
}
uc-camera-source .uc-message-box button {
color: var(--uc-primary-foreground);
background-color: var(--uc-primary);
}
uc-camera-source .uc-shot-btn {
width: 58px;
height: 58px;
color: var(--uc-background);
background-color: var(--uc-primary-light);
border-radius: 50%;
opacity: 0.85;
transition:
bottom var(--uc-transition),
opacity var(--uc-transition),
transform var(--uc-transition);
}
uc-camera-source .uc-shot-btn:hover {
transform: scale(1.05);
opacity: 1;
}
uc-camera-source .uc-shot-btn:active {
transform: scale(1);
opacity: 1;
}
uc-camera-source .uc-shot-btn[disabled] {
bottom: -80px;
}
uc-camera-source .uc-shot-btn uc-icon svg {
width: 20px;
height: 20px;
}
uc-camera-source .uc-controls {
position: relative;
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: space-between;
padding: 0 var(--uc-padding) var(--uc-padding);
min-height: 74px;
}
uc-camera-source .uc-switcher {
display: flex;
gap: calc(var(--uc-padding) / 2);
}
uc-camera-source .uc-switch.uc-active {
background-color: var(--uc-secondary);
}
uc-camera-source .uc-camera-actions {
display: flex;
justify-content: center;
align-items: center;
gap: 5px;
}
uc-camera-source .uc-stop-record {
background-color: var(--uc-destructive-foreground-light);
opacity: 1;
}
:where(uc-camera-source:is(.uc-recording)) .uc-recording-timer uc-icon {
display: none;
}
:where(uc-camera-source:is(.uc-recording)) .uc-recording-timer {
pointer-events: none;
}
uc-camera-source .uc-recording-timer {
z-index: 1;
position: relative;
overflow: hidden;
}
:where(uc-camera-source) .uc-recording-timer uc-icon {
width: 10px;
height: 10px;
margin-right: 10px;
}
uc-camera-source .uc-recording-timer .uc-line {
position: absolute;
content: '';
bottom: 0;
left: 0;
right: 0;
height: 2px;
background-color: var(--uc-foreground-light);
transform: scaleX(0);
transform-origin: left;
transition: transform var(--uc-transition);
}
uc-camera-source .uc-btn-microphone {
z-index: 1;
}
uc-camera-source .uc-select {
display: flex;
}
uc-camera-source .uc-audio-select {
width: 98px;
}
uc-camera-source .uc-audio-select select {
width: 100%;
}
uc-camera-source .uc-camera-action {
position: absolute;
inset: 0 var(--uc-padding) var(--uc-padding);
margin: 0 auto;
}