vue-advanced-cropper
Version:
The advanced library to create your own croppers suited for any website design
290 lines (239 loc) • 5.83 kB
CSS
.vue-advanced-cropper {
text-align: center;
position: relative;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
max-height: 100%;
max-width: 100%;
direction: ltr; }
.vue-advanced-cropper__stretcher {
pointer-events: none;
position: relative;
max-width: 100%;
max-height: 100%; }
.vue-advanced-cropper__image {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
position: absolute;
-webkit-transform-origin: center;
transform-origin: center;
max-width: none ; }
.vue-advanced-cropper__background, .vue-advanced-cropper__foreground {
opacity: 1;
background: #000;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
position: absolute;
top: 50%;
left: 50%; }
.vue-advanced-cropper__foreground {
opacity: .5; }
.vue-advanced-cropper__boundaries {
opacity: 1;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
position: absolute;
left: 50%;
top: 50%; }
.vue-advanced-cropper__cropper-wrapper {
width: 100%;
height: 100%; }
.vue-advanced-cropper__image-wrapper {
overflow: hidden;
position: absolute;
width: 100%;
height: 100%; }
.vue-advanced-cropper__stencil-wrapper {
position: absolute; }
.vue-simple-line {
background: 0 0;
-webkit-transition: border .5s;
transition: border .5s;
border-color: rgba(255, 255, 255, 0.3);
border-width: 0;
border-style: solid; }
.vue-simple-line--north, .vue-simple-line--south {
height: 0;
width: 100%; }
.vue-simple-line--east, .vue-simple-line--west {
height: 100%;
width: 0; }
.vue-simple-line--east {
border-right-width: 1px; }
.vue-simple-line--west {
border-left-width: 1px; }
.vue-simple-line--south {
border-bottom-width: 1px; }
.vue-simple-line--north {
border-top-width: 1px; }
.vue-simple-line--hover {
opacity: 1;
border-color: #fff; }
.vue-simple-handler {
display: block;
background: #fff;
height: 10px;
width: 10px; }
.vue-preview-image {
overflow: hidden;
position: relative; }
.vue-preview-image__image {
pointer-events: none;
position: absolute;
max-width: unset ; }
.vue-handler-wrapper {
position: absolute;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
width: 30px;
height: 30px; }
.vue-handler-wrapper__draggable {
width: 100%;
height: 100%;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center; }
.vue-handler-wrapper--west-north {
left: 0;
top: 0;
cursor: nw-resize; }
.vue-handler-wrapper--north {
left: 50%;
top: 0;
cursor: n-resize; }
.vue-handler-wrapper--east-north {
left: 100%;
top: 0;
cursor: ne-resize; }
.vue-handler-wrapper--east {
left: 100%;
top: 50%;
cursor: e-resize; }
.vue-handler-wrapper--east-south {
left: 100%;
top: 100%;
cursor: se-resize; }
.vue-handler-wrapper--south {
left: 50%;
top: 100%;
cursor: s-resize; }
.vue-handler-wrapper--west-south {
left: 0;
top: 100%;
cursor: sw-resize; }
.vue-handler-wrapper--west {
left: 0;
top: 50%;
cursor: w-resize; }
.vue-handler-wrapper--disabled {
cursor: auto; }
.vue-draggable-area {
position: relative; }
.vue-canvas-preview-result {
overflow: hidden;
-webkit-box-sizing: border-box;
box-sizing: border-box;
position: absolute;
height: 100%;
width: 100%; }
.vue-canvas-preview-result__wrapper {
position: absolute; }
.vue-canvas-preview-result__image {
pointer-events: none;
position: absolute;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-transform-origin: center;
transform-origin: center;
max-width: unset ; }
.vue-preview-result {
overflow: hidden;
-webkit-box-sizing: border-box;
box-sizing: border-box;
position: absolute;
height: 100%;
width: 100%; }
.vue-preview-result__wrapper {
position: absolute; }
.vue-preview-result__image {
pointer-events: none;
position: absolute;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-transform-origin: center;
transform-origin: center;
will-change: transform;
max-width: none ; }
.vue-bounding-box {
position: relative;
height: 100%;
width: 100%; }
.vue-circle-stencil {
position: absolute;
height: 100%;
width: 100%;
-webkit-box-sizing: content-box;
box-sizing: content-box;
cursor: move; }
.vue-circle-stencil__preview {
border-radius: 50%; }
.vue-line-wrapper {
background: 0 0;
position: absolute;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center; }
.vue-line-wrapper--north, .vue-line-wrapper--south {
height: 12px;
width: 100%;
left: 0;
-webkit-transform: translateY(-50%);
transform: translateY(-50%); }
.vue-line-wrapper--north {
top: 0;
cursor: n-resize; }
.vue-line-wrapper--south {
top: 100%;
cursor: s-resize; }
.vue-line-wrapper--east, .vue-line-wrapper--west {
width: 12px;
height: 100%;
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
top: 0; }
.vue-line-wrapper--east {
left: 100%;
cursor: e-resize; }
.vue-line-wrapper--west {
left: 0;
cursor: w-resize; }
.vue-line-wrapper--disabled {
cursor: auto; }
.vue-rectangle-stencil {
position: absolute;
height: 100%;
width: 100%;
-webkit-box-sizing: border-box;
box-sizing: border-box; }
.vue-rectangle-stencil--movable {
cursor: move; }