Kavita/UI/Web/src/app/manga-reader/manga-reader.component.scss
Joseph Milazzo 720c52f494
Reader Fixes and Enhancements (#880)
* Don't show an exception when bookmarking doesn't have anything to change.

* Cleaned up the bookmark code a bit.

* Implemented fullscreen mode in the web reader. Refactored User Settings to move Password and 3rd Party Clients to a tab rather than accordion. Removed color filters for web reader.

* Implemented fullscreen mode into book reader

* Added some code for toggling fullscreen which re-renders the screen to ensure the fitting works optimially

* Fixed an issue where moving from FitToScreen -> Split (L/R) wouldn't render the screen correctly due to canvas not being reset.

* Fixed bad optimization and scaling when drawing fit to screen

* Removed left/right highlights on page direction change in favor for icons. Double arrow will dictate the page change.

* Reduced overlay auto close time to 3 seconds

* Updated the paginging direction overlay to use icons and colors. Added a blur effect on menus

* Removed debug flags
2022-01-02 17:10:37 -08:00

257 lines
No EOL
4.2 KiB
SCSS

@use '../../theme/colors';
$center-width: 50%;
$side-width: 25%;
$dash-width: 3px;
$pointer-offset: 5px;
@media(min-width: 600px) {
.overlay .left .i {
left: 20px;
}
.overlay .right .i {
right: 20px;
}
}
.btn-icon {
color: white;
}
canvas {
position: absolute;
}
.reader {
background-color: black;
img {
align-items: center;
}
}
.loading {
position: absolute;
left: 48%;
top: 20%;
z-index: 1;
}
.title, .subtitle {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
.bottom-menu {
padding: 20px 20px;
}
.overlay {
background-color: rgba(0,0,0,0.5);
backdrop-filter: blur(10px);
color: white;
}
// Fitting Options
.full-height {
position: absolute;
margin: auto;
top: 0px;
left: 0;
right: 0;
bottom: 0px;
height: 100%;
}
.original {
position: absolute;
margin-left: auto;
margin-right: auto;
top: 0px;
bottom: 0px;
left: 0;
right: 0;
}
.full-width {
width: 100%;
}
.right {
position: fixed;
right: 0px;
top: 0px;
width: $side-width;
height: 100%;
background: rgba(0, 0, 0, 0);
z-index: 2;
cursor: pointer;
}
.top {
position: fixed;
right: 0px;
top: 0px;
width: 100%;
height: $side-width;
background: rgba(0, 0, 0, 0);
z-index: 2;
cursor: pointer;
}
.left {
position: fixed;
left: 0px;
top: 0px;
width: $side-width;
height: 100%;
background: rgba(0, 0, 0, 0);
z-index: 2;
cursor: pointer;
}
.bottom {
position: fixed;
left: 0px;
bottom: 0px;
width: 100%;
height: $side-width;
background: rgba(0, 0, 0, 0);
z-index: 2;
cursor: pointer;
}
// Splitting Icon
.split {
height: 20px;
width: 40px;
z-index: 1;
top: 0;
overflow: hidden;
border: 2px solid #ccc;
&::before {
margin-left: 30%;
}
/* Control the left side */
.left-side {
height: 20px;
width: 20px;
background-color: rgba(255, 255, 255, 0.6);
margin-top: -16px;
}
/* Control the right side */
.right-side {
height: 20px;
margin-left: 20px;
width: 20px;
background-color: rgba(255, 255, 255, 0.6);
margin-top: -16px;
}
.none {
background-color: rgba(255, 255, 255, 0.5);
}
}
::ng-deep {
.custom-slider .ngx-slider .ngx-slider-bar {
background: #e9ffe2;
height: 2px;
}
.custom-slider .ngx-slider .ngx-slider-selection {
background: colors.$primary-color;
}
.custom-slider .ngx-slider .ngx-slider-pointer {
width: 8px;
height: 16px;
top: auto; /* to remove the default positioning */
bottom: 0;
background-color: colors.$primary-color; // #333;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
}
.custom-slider .ngx-slider .ngx-slider-pointer:after {
display: none;
}
.custom-slider .ngx-slider .ngx-slider-bubble {
bottom: 14px;
font-weight: bold;
}
.custom-slider .ngx-slider .ngx-slider-limit {
font-weight: bold;
color: white !important;
}
.custom-slider .ngx-slider .ngx-slider-tick {
width: 1px;
height: 10px;
margin-left: 4px;
border-radius: 0;
background: #ffe4d1;
top: -1px;
}
.custom-slider .ngx-slider .ngx-slider-tick.ngx-slider-selected {
background: colors.$primary-color;
}
}
.webtoon-images {
text-align: center;
width: 100%;
}
.pagination-area {
display: flex;
align-items: center;
justify-content: center;
i {
color: white;
font-size: 42px;
}
}
.highlight {
background-color: rgba(65, 225, 100, 0.5) !important;
animation: fadein .5s both;
backdrop-filter: blur(10px);
}
.highlight-2 {
background-color: rgba(65, 105, 225, 0.5) !important;
animation: fadein .5s both;
backdrop-filter: blur(10px);
}
.bookmark-effect {
animation: bookmark 0.7s cubic-bezier(0.165, 0.84, 0.44, 1);
}
@keyframes bookmark {
0%, 100% {
border: 0px;
}
50% {
border: 5px solid colors.$primary-color;
}
}