diff options
| author | Henry Jameson <me@hjkos.com> | 2020-07-28 01:54:40 +0300 |
|---|---|---|
| committer | Henry Jameson <me@hjkos.com> | 2020-07-28 01:54:40 +0300 |
| commit | 7870b3f7ec4ee2f7e900f62204f00f18c6bbdb6e (patch) | |
| tree | 4984e95244ab3f241fc56b12e979de76e8eb8bb9 /src | |
| parent | 65b6e23c00f09f3627e29987302cd16c9e069da2 (diff) | |
neater way to do hover thing with still image
Diffstat (limited to 'src')
| -rw-r--r-- | src/components/status/status.scss | 13 | ||||
| -rw-r--r-- | src/components/still-image/still-image.vue | 47 |
2 files changed, 27 insertions, 33 deletions
diff --git a/src/components/status/status.scss b/src/components/status/status.scss index 85e433c4..8797211e 100644 --- a/src/components/status/status.scss +++ b/src/components/status/status.scss @@ -10,16 +10,9 @@ $status-margin: 0.75em; border-left: 4px $fallback--cRed; border-left: 4px var(--cRed, $fallback--cRed); - // TODO find a way to do this in a cleaner way without JS - // stylelint-disable rscss/class-format - &:hover .avatar.animated { - canvas { - display: none; - } - - img { - visibility: visible; - } + &:hover .avatar { + --still-image-img: visible; + --still-image-canvas: hidden; } &.-focused { diff --git a/src/components/still-image/still-image.vue b/src/components/still-image/still-image.vue index 2ebf33ba..6fa055de 100644 --- a/src/components/still-image/still-image.vue +++ b/src/components/still-image/still-image.vue @@ -35,8 +35,16 @@ display: flex; align-items: center; - &:hover canvas { - display: none; + canvas { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + width: 100%; + height: 100%; + object-fit: contain; + visibility: var(--still-image-canvas, visible); } img { @@ -46,15 +54,6 @@ } &.animated { - &:hover::before, - img { - visibility: hidden; - } - - &:hover img { - visibility: visible - } - &::before { content: 'gif'; position: absolute; @@ -62,25 +61,27 @@ font-size: 10px; top: 5px; left: 5px; - background: rgba(127,127,127,.5); - color: #FFF; + background: rgba(127, 127, 127, 0.5); + color: #fff; display: block; padding: 2px 4px; border-radius: $fallback--tooltipRadius; border-radius: var(--tooltipRadius, $fallback--tooltipRadius); z-index: 2; } - } - canvas { - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - width: 100%; - height: 100%; - object-fit: contain; + &:hover canvas { + display: none; + } + + &:hover::before, + img { + visibility: var(--still-image-img, hidden); + } + + &:hover img { + visibility: visible; + } } } </style> |
