Add double tap to zoom and swipe to dismiss to media modal in web UI (#34210)
Co-authored-by: ChaosExAnima <ChaosExAnima@users.noreply.github.com>
This commit is contained in:
parent
82acef50b0
commit
2e9b2df570
12 changed files with 537 additions and 695 deletions
app/javascript/styles/mastodon
|
@ -63,6 +63,7 @@ body {
|
|||
|
||||
&.with-modals--active {
|
||||
overflow-y: hidden;
|
||||
overscroll-behavior: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2448,49 +2448,6 @@ a.account__display-name {
|
|||
}
|
||||
}
|
||||
|
||||
.image-loader {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
scrollbar-width: none; /* Firefox */
|
||||
-ms-overflow-style: none; /* IE 10+ */
|
||||
|
||||
* {
|
||||
scrollbar-width: none; /* Firefox */
|
||||
-ms-overflow-style: none; /* IE 10+ */
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar,
|
||||
*::-webkit-scrollbar {
|
||||
width: 0;
|
||||
height: 0;
|
||||
background: transparent; /* Chrome/Safari/Webkit */
|
||||
}
|
||||
|
||||
.image-loader__preview-canvas {
|
||||
max-width: $media-modal-media-max-width;
|
||||
max-height: $media-modal-media-max-height;
|
||||
background: url('../images/void.png') repeat;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
.loading-bar__container {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.loading-bar {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
&.image-loader--amorphous .image-loader__preview-canvas {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.zoomable-image {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
|
@ -2498,13 +2455,61 @@ a.account__display-name {
|
|||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
scrollbar-width: none;
|
||||
overflow: hidden;
|
||||
user-select: none;
|
||||
|
||||
img {
|
||||
max-width: $media-modal-media-max-width;
|
||||
max-height: $media-modal-media-max-height;
|
||||
width: auto;
|
||||
height: auto;
|
||||
object-fit: contain;
|
||||
outline: 1px solid var(--media-outline-color);
|
||||
outline-offset: -1px;
|
||||
border-radius: 8px;
|
||||
touch-action: none;
|
||||
}
|
||||
|
||||
&--zoomed-in {
|
||||
z-index: 9999;
|
||||
cursor: grab;
|
||||
|
||||
img {
|
||||
outline: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&--dragging {
|
||||
cursor: grabbing;
|
||||
}
|
||||
|
||||
&--error img {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
&__preview {
|
||||
max-width: $media-modal-media-max-width;
|
||||
max-height: $media-modal-media-max-height;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
outline: 1px solid var(--media-outline-color);
|
||||
outline-offset: -1px;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
|
||||
canvas {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
z-index: -1;
|
||||
}
|
||||
}
|
||||
|
||||
.loading-indicator {
|
||||
z-index: 2;
|
||||
mix-blend-mode: luminosity;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5576,6 +5581,7 @@ a.status-card {
|
|||
z-index: 9999;
|
||||
pointer-events: none;
|
||||
user-select: none;
|
||||
overscroll-behavior: none;
|
||||
}
|
||||
|
||||
.modal-root__modal {
|
||||
|
@ -5709,7 +5715,7 @@ a.status-card {
|
|||
.picture-in-picture__footer {
|
||||
border-radius: 0;
|
||||
background: transparent;
|
||||
padding: 20px 0;
|
||||
padding: 16px;
|
||||
|
||||
.icon-button {
|
||||
color: $white;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue