kahuna/public/js/directives/ui-crop-box/cropper-override.css (77 lines of code) (raw):
/* ==========================================================================
Override styles provided from cropperJS.
Applying the .easel selector to win on specificity and to keep the
styles componentised.
========================================================================== */
.easel .cropper-drag-box, .easel .cropper-face {
background-color: transparent;
}
.easel .cropper-canvas {
background-color: #bdbdbd;
background-image:
linear-gradient(45deg, white 25%, transparent 25%),
linear-gradient(135deg, white 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, white 75%),
linear-gradient(135deg, transparent 75%, white 75%);
background-size: 20px 20px;
background-position: 0 0, 10px 0, 10px -10px, 0px 10px;
opacity: .5;
}
.easel .cropper-view-box :first-child {
display: block;
height: 100%;
outline: 1px solid #39f;
outline-color: rgba(51, 153, 255, 0.75);
overflow: hidden;
width: 100%;
background-color: #bdbdbd;
background-image:
linear-gradient(45deg, white 25%, transparent 25%),
linear-gradient(135deg, white 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, white 75%),
linear-gradient(135deg, transparent 75%, white 75%);
background-size: 20px 20px;
background-position: 0 0, 10px 0, 10px -10px, 0px 10px;
}
/* circle guideline, works on any ratio (centered and with diameter the smaller of height/width) */
.easel.circular-guideline .cropper-crop-box::after {
display: block;
content: "";
position: relative; /* can't be absolute otherwise aspect-ratio doesn't work */
aspect-ratio: 1 / 1;
max-width: 100%;
max-height: 100%;
border: 1px white dashed;
mix-blend-mode: difference;
border-radius: 50%;
box-sizing: border-box;
left: 50%;
top: -50%; /* because position relative, we need to move it up by half the height of the container */
transform: translate(-50%, -50%); /* center the circle, these percentages refer to the circles own x & y */
pointer-events: none;
}
.easel.circular-mask .cropper-crop-box::after {
display: none;
}
/* circular mask, only works on 1:1 */
.easel.circular-mask .cropper-view-box {
border-radius: 50%;
}
/* GUTTERS to show what will be clipped if the 5:3 crop is used in 5:4 space */
.easel.hide-vertical-warning-gutters .cropper-view-box::before,
.easel.hide-vertical-warning-gutters .cropper-view-box::after {
visibility: hidden;
}
.easel.vertical-warning-gutters .cropper-view-box::before,
.easel.vertical-warning-gutters .cropper-view-box::after {
display: block;
content: '';
position: absolute;
z-index: 999;
width: 12.5%;
top: 0;
bottom: 0;
mix-blend-mode: difference;
opacity: 0.5;
pointer-events: none;
}
.easel.vertical-warning-gutters .cropper-view-box::before { /* left gutter */
left: 0;
background: repeating-linear-gradient(-45deg, transparent, white 1px, transparent 3px, transparent 6px);
}
.easel.vertical-warning-gutters .cropper-view-box::after { /* right gutter */
right: 0;
background: repeating-linear-gradient(45deg, transparent, white 1px, transparent 3px, transparent 6px);
}