uppy/packages/@uppy/image-editor/src/cropper.scss
Evgenia Karunus 47e9f70761
More image editor improvements (#4676)
* Editor.jsx - make granular rotation [-45, 45] instead of [-45, 44]

* Editor.jsx - add labels to all buttons

* css - center granularRotation's label

* locale - Revert -> Cancel -> Reset

* locale - Rotate => Rotate 90°

Co-authored-by: Alexander Zaytsev <nqst@users.noreply.github.com>

* Update packages/@uppy/image-editor/src/locale.js

locale - Flip => Flip horizontally

Co-authored-by: Alexander Zaytsev <nqst@users.noreply.github.com>

* typo fix

* Editor.jsx - add cropbox limitation

* Editor.jsx - always behave as if cropbox is still wrapping the full image on rotation

* Editor.jsx - cropper settings => `.addEventListener`

* cropper.scss - move all Uppy-specific changes into `style.scss`

* css - enable theme-dependent backgrounds

* inputrange.scss - update the version, move all Uppy-specific changes into `style.scss`

* style.scss - improve toolbox styles

* style.scss - make slider :hover/:focus visible!

* prettier - run prettier on our new code

* image editor - fix Alex's "weird image" error

* image editor - add the `quality: 0.8` explanation

* image editor - set the minimum height and width of the cropbox

---------

Co-authored-by: Alexander Zaytsev <nqst@users.noreply.github.com>
2023-11-01 13:33:11 +00:00

304 lines
4.5 KiB
SCSS

/*!
* Cropper.js v1.5.6
* https://fengyuanchen.github.io/cropperjs
*
* Copyright 2015-present Chen Fengyuan
* Released under the MIT license
*
* Date: 2019-10-04T04:33:44.164Z
*/
.cropper-container {
position: relative;
font-size: 0;
line-height: 0;
direction: ltr;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: none;
touch-action: none;
}
.cropper-container img {
display: block;
width: 100%;
min-width: 0 !important;
max-width: none !important;
height: 100%;
min-height: 0 !important;
max-height: none !important;
image-orientation: 0deg;
}
.cropper-wrap-box,
.cropper-canvas,
.cropper-drag-box,
.cropper-crop-box,
.cropper-modal {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
.cropper-wrap-box,
.cropper-canvas {
overflow: hidden;
}
.cropper-drag-box {
background-color: #fff;
opacity: 0;
}
.cropper-modal {
background-color: #000;
opacity: 0.5;
}
.cropper-view-box {
display: block;
width: 100%;
height: 100%;
overflow: hidden;
outline: 1px solid #39f;
outline-color: rgba(51, 153, 255, 0.75);
}
.cropper-dashed {
position: absolute;
display: block;
border: 0 dashed #eee;
opacity: 0.5;
}
.cropper-dashed.dashed-h {
top: calc(100% / 3);
left: 0;
width: 100%;
height: calc(100% / 3);
border-top-width: 1px;
border-bottom-width: 1px;
}
.cropper-dashed.dashed-v {
top: 0;
left: calc(100% / 3);
width: calc(100% / 3);
height: 100%;
border-right-width: 1px;
border-left-width: 1px;
}
.cropper-center {
position: absolute;
top: 50%;
left: 50%;
display: block;
width: 0;
height: 0;
opacity: 0.75;
}
.cropper-center::before,
.cropper-center::after {
position: absolute;
display: block;
background-color: #eee;
content: ' ';
}
.cropper-center::before {
top: 0;
left: -3px;
width: 7px;
height: 1px;
}
.cropper-center::after {
top: -3px;
left: 0;
width: 1px;
height: 7px;
}
.cropper-face,
.cropper-line,
.cropper-point {
position: absolute;
display: block;
width: 100%;
height: 100%;
opacity: 0.1;
}
.cropper-face {
top: 0;
left: 0;
background-color: #fff;
}
.cropper-line {
background-color: #39f;
}
.cropper-line.line-e {
top: 0;
right: -3px;
width: 5px;
cursor: ew-resize;
}
.cropper-line.line-n {
top: -3px;
left: 0;
height: 5px;
cursor: ns-resize;
}
.cropper-line.line-w {
top: 0;
left: -3px;
width: 5px;
cursor: ew-resize;
}
.cropper-line.line-s {
bottom: -3px;
left: 0;
height: 5px;
cursor: ns-resize;
}
.cropper-point {
width: 5px;
height: 5px;
background-color: #39f;
opacity: 0.75;
}
.cropper-point.point-e {
top: 50%;
right: -3px;
margin-top: -3px;
cursor: ew-resize;
}
.cropper-point.point-n {
top: -3px;
left: 50%;
margin-left: -3px;
cursor: ns-resize;
}
.cropper-point.point-w {
top: 50%;
left: -3px;
margin-top: -3px;
cursor: ew-resize;
}
.cropper-point.point-s {
bottom: -3px;
left: 50%;
margin-left: -3px;
cursor: s-resize;
}
.cropper-point.point-ne {
top: -3px;
right: -3px;
cursor: nesw-resize;
}
.cropper-point.point-nw {
top: -3px;
left: -3px;
cursor: nwse-resize;
}
.cropper-point.point-sw {
bottom: -3px;
left: -3px;
cursor: nesw-resize;
}
.cropper-point.point-se {
right: -3px;
bottom: -3px;
width: 20px;
height: 20px;
cursor: nwse-resize;
opacity: 1;
}
@media (min-width: 768px) {
.cropper-point.point-se {
width: 15px;
height: 15px;
}
}
@media (min-width: 992px) {
.cropper-point.point-se {
width: 10px;
height: 10px;
}
}
@media (min-width: 1200px) {
.cropper-point.point-se {
width: 5px;
height: 5px;
opacity: 0.75;
}
}
.cropper-point.point-se::before {
position: absolute;
right: -50%;
bottom: -50%;
display: block;
width: 200%;
height: 200%;
background-color: #39f;
opacity: 0;
content: ' ';
}
.cropper-invisible {
opacity: 0;
}
.cropper-bg {
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC');
}
.cropper-hide {
position: absolute;
display: block;
width: 0;
height: 0;
}
.cropper-hidden {
display: none !important;
}
.cropper-move {
cursor: move;
}
.cropper-crop {
cursor: crosshair;
}
.cropper-disabled .cropper-drag-box,
.cropper-disabled .cropper-face,
.cropper-disabled .cropper-line,
.cropper-disabled .cropper-point {
cursor: not-allowed;
}