summaryrefslogtreecommitdiff
path: root/src/client/components/ui/folder.vue
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-10-10 15:19:16 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2021-10-10 15:19:16 +0900
commitc33e93c66282839c3e721d651720a7573da41b25 (patch)
treee6d0c0f17b679de1345cdf0c68cfbfd7a44fdb96 /src/client/components/ui/folder.vue
parent:art: (diff)
downloadmisskey-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.vue23
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;