diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2021-10-10 15:19:16 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2021-10-10 15:19:16 +0900 |
| commit | c33e93c66282839c3e721d651720a7573da41b25 (patch) | |
| tree | e6d0c0f17b679de1345cdf0c68cfbfd7a44fdb96 /src/client/components/ui/folder.vue | |
| parent | :art: (diff) | |
| download | misskey-c33e93c66282839c3e721d651720a7573da41b25.tar.gz misskey-c33e93c66282839c3e721d651720a7573da41b25.tar.bz2 misskey-c33e93c66282839c3e721d651720a7573da41b25.zip | |
improve ui
Diffstat (limited to 'src/client/components/ui/folder.vue')
| -rw-r--r-- | src/client/components/ui/folder.vue | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/client/components/ui/folder.vue b/src/client/components/ui/folder.vue index eecf1d8be1..cc3da083c5 100644 --- a/src/client/components/ui/folder.vue +++ b/src/client/components/ui/folder.vue @@ -1,6 +1,6 @@ <template> <div class="ssazuxis" v-size="{ max: [500] }"> - <header @click="showBody = !showBody" class="_button"> + <header @click="showBody = !showBody" class="_button" :style="{ background: bg }"> <div class="title"><slot name="header"></slot></div> <div class="divider"></div> <button class="_button"> @@ -23,6 +23,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; +import * as tinycolor from 'tinycolor2'; const localStoragePrefix = 'ui:folder:'; @@ -41,6 +42,7 @@ export default defineComponent({ }, data() { return { + bg: null, showBody: (this.persistKey && localStorage.getItem(localStoragePrefix + this.persistKey)) ? localStorage.getItem(localStoragePrefix + this.persistKey) === 't' : this.expanded, }; }, @@ -51,6 +53,21 @@ export default defineComponent({ } } }, + mounted() { + function getParentBg(el: Element | null): string { + if (el == null || el.tagName === 'BODY') return 'var(--bg)'; + const bg = el.style.background || el.style.backgroundColor; + if (bg) { + return bg; + } else { + return getParentBg(el.parentElement); + } + } + const rawBg = getParentBg(this.$el); + const bg = tinycolor(rawBg.startsWith('var(') ? getComputedStyle(document.documentElement).getPropertyValue(rawBg.slice(4, -1)) : rawBg); + bg.setAlpha(0.85); + this.bg = bg.toRgbString(); + }, methods: { toggleContent(show: boolean) { this.showBody = show; @@ -100,12 +117,8 @@ export default defineComponent({ position: sticky; top: var(--stickyTop, 0px); padding: var(--x-padding); - background: var(--x-header, var(--panel)); - /* TODO panelの半透明バージョンをプログラマティックに作りたい - background: var(--X17); -webkit-backdrop-filter: var(--blur, blur(8px)); backdrop-filter: var(--blur, blur(20px)); - */ > .title { margin: 0; |