refactor(client): use css modules
This commit is contained in:
parent
8a95e850ad
commit
d195b0dec7
1 changed files with 68 additions and 75 deletions
|
@ -1,22 +1,23 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-if="hide" class="qjewsnkg" @click="hide = false">
|
<div v-if="hide" :class="$style.hidden" @click="hide = false">
|
||||||
<ImgWithBlurhash class="bg" :hash="image.blurhash" :title="image.comment" :alt="image.comment"/>
|
<ImgWithBlurhash style="filter: brightness(0.5);" :hash="image.blurhash" :title="image.comment" :alt="image.comment"/>
|
||||||
<div class="text">
|
<div :class="$style.hiddenText">
|
||||||
<div class="wrapper">
|
<div :class="$style.hiddenTextWrapper">
|
||||||
<b style="display: block;"><i class="ti ti-alert-triangle"></i> {{ $ts.sensitive }}</b>
|
<b style="display: block;"><i class="ti ti-alert-triangle"></i> {{ $ts.sensitive }}</b>
|
||||||
<span style="display: block;">{{ $ts.clickToShow }}</span>
|
<span style="display: block;">{{ $ts.clickToShow }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="gqnyydlz">
|
<div v-else :class="$style.visible">
|
||||||
<a
|
<a
|
||||||
|
:class="$style.imageContainer"
|
||||||
:href="image.url"
|
:href="image.url"
|
||||||
:title="image.name"
|
:title="image.name"
|
||||||
>
|
>
|
||||||
<ImgWithBlurhash :hash="image.blurhash" :src="url" :alt="image.comment || image.name" :title="image.comment || image.name" :cover="false"/>
|
<ImgWithBlurhash :hash="image.blurhash" :src="url" :alt="image.comment || image.name" :title="image.comment || image.name" :cover="false"/>
|
||||||
<div v-if="image.type === 'image/gif'" class="gif">GIF</div>
|
<div v-if="image.type === 'image/gif'" :class="$style.gif">GIF</div>
|
||||||
</a>
|
</a>
|
||||||
<button v-tooltip="$ts.hide" class="_button hide" @click="hide = true"><i class="ti ti-eye-off"></i></button>
|
<button v-tooltip="$ts.hide" :class="$style.hide" class="_button" @click="hide = true"><i class="ti ti-eye-off"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -49,15 +50,12 @@ watch(() => props.image, () => {
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" module>
|
||||||
.qjewsnkg {
|
.hidden {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
> .bg {
|
|
||||||
filter: brightness(0.5);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
> .text {
|
.hiddenText {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
@ -67,25 +65,25 @@ watch(() => props.image, () => {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
> .wrapper {
|
.hiddenTextWrapper {
|
||||||
display: table-cell;
|
display: table-cell;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 0.8em;
|
font-size: 0.8em;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.gqnyydlz {
|
.visible {
|
||||||
position: relative;
|
position: relative;
|
||||||
//box-shadow: 0 0 0 1px var(--divider) inset;
|
//box-shadow: 0 0 0 1px var(--divider) inset;
|
||||||
background: var(--bg);
|
background: var(--bg);
|
||||||
--c: rgb(0 0 0 / 2%);
|
--c: rgb(0 0 0 / 2%);
|
||||||
background-image: linear-gradient(45deg, var(--c) 16.67%, var(--bg) 16.67%, var(--bg) 50%, var(--c) 50%, var(--c) 66.67%, var(--bg) 66.67%, var(--bg) 100%);
|
background-image: linear-gradient(45deg, var(--c) 16.67%, var(--bg) 16.67%, var(--bg) 50%, var(--c) 50%, var(--c) 66.67%, var(--bg) 66.67%, var(--bg) 100%);
|
||||||
background-size: 16px 16px;
|
background-size: 16px 16px;
|
||||||
|
}
|
||||||
|
|
||||||
> .hide {
|
.hide {
|
||||||
display: block;
|
display: block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
|
@ -98,13 +96,9 @@ watch(() => props.image, () => {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
top: 12px;
|
top: 12px;
|
||||||
right: 12px;
|
right: 12px;
|
||||||
|
|
||||||
> i {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
> a {
|
.imageContainer {
|
||||||
display: block;
|
display: block;
|
||||||
cursor: zoom-in;
|
cursor: zoom-in;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
@ -113,8 +107,9 @@ watch(() => props.image, () => {
|
||||||
background-position: center;
|
background-position: center;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
> .gif {
|
.gif {
|
||||||
background-color: var(--fg);
|
background-color: var(--fg);
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
color: var(--accentLighten);
|
color: var(--accentLighten);
|
||||||
|
@ -128,6 +123,4 @@ watch(() => props.image, () => {
|
||||||
top: 12px;
|
top: 12px;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
Loading…
Reference in a new issue