summaryrefslogtreecommitdiff
path: root/packages/frontend/src/ui/deck
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-01-10 09:53:01 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-01-10 09:53:01 +0900
commite4179336e4a5113f4fbd1498068f08246098250b (patch)
tree944ea5b42816ad892c7af2f91c5cf5e227b34b17 /packages/frontend/src/ui/deck
parentrefactor(client): use css modules (diff)
downloadmisskey-e4179336e4a5113f4fbd1498068f08246098250b.tar.gz
misskey-e4179336e4a5113f4fbd1498068f08246098250b.tar.bz2
misskey-e4179336e4a5113f4fbd1498068f08246098250b.zip
refactor(client): use css modules
Diffstat (limited to 'packages/frontend/src/ui/deck')
-rw-r--r--packages/frontend/src/ui/deck/column.vue156
1 files changed, 69 insertions, 87 deletions
diff --git a/packages/frontend/src/ui/deck/column.vue b/packages/frontend/src/ui/deck/column.vue
index cb945aa14b..62c2ab3968 100644
--- a/packages/frontend/src/ui/deck/column.vue
+++ b/packages/frontend/src/ui/deck/column.vue
@@ -1,31 +1,28 @@
<template>
<!-- sectionを利用しているのは、deck.vue側でcolumnに対してfirst-of-typeを効かせるため -->
<section
- v-hotkey="keymap" class="dnpfarvg"
- :class="{ paged: isMainColumn, naked, active, isStacked, draghover, dragging, dropready }"
+ v-hotkey="keymap"
+ :class="[$style.root, { [$style.paged]: isMainColumn, [$style.naked]: naked, [$style.active]: active, [$style.isStacked]: isStacked, [$style.draghover]: draghover, [$style.dragging]: dragging, [$style.dropready]: dropready }]"
@dragover.prevent.stop="onDragover"
@dragleave="onDragleave"
@drop.prevent.stop="onDrop"
>
<header
- :class="{ indicated }"
+ :class="[$style.header, { [$style.indicated]: indicated }]"
draggable="true"
@click="goTop"
@dragstart="onDragstart"
@dragend="onDragend"
@contextmenu.prevent.stop="onContextmenu"
>
- <button v-if="isStacked && !isMainColumn" class="toggleActive _button" @click="toggleActive">
+ <button v-if="isStacked && !isMainColumn" :class="$style.toggleActive" class="_button" @click="toggleActive">
<template v-if="active"><i class="ti ti-chevron-up"></i></template>
<template v-else><i class="ti ti-chevron-down"></i></template>
</button>
- <div class="action">
- <slot name="action"></slot>
- </div>
- <span class="header"><slot name="header"></slot></span>
- <button v-tooltip="i18n.ts.settings" class="menu _button" @click.stop="showSettingsMenu"><i class="ti ti-dots"></i></button>
+ <span :class="$style.title"><slot name="header"></slot></span>
+ <button v-tooltip="i18n.ts.settings" :class="$style.menu" class="_button" @click.stop="showSettingsMenu"><i class="ti ti-dots"></i></button>
</header>
- <div v-show="active" ref="body">
+ <div v-show="active" ref="body" :class="$style.body">
<slot></slot>
</div>
</section>
@@ -245,8 +242,8 @@ function onDrop(ev) {
}
</script>
-<style lang="scss" scoped>
-.dnpfarvg {
+<style lang="scss" module>
+.root {
--root-margin: 10px;
--deckColumnHeaderHeight: 40px;
@@ -293,7 +290,7 @@ function onDrop(ev) {
flex-basis: var(--deckColumnHeaderHeight);
min-height: var(--deckColumnHeaderHeight);
- > header.indicated {
+ > .header.indicated {
box-shadow: 4px 0px var(--accent) inset;
}
}
@@ -303,97 +300,82 @@ function onDrop(ev) {
-webkit-backdrop-filter: var(--blur, blur(10px));
backdrop-filter: var(--blur, blur(10px));
- > header {
+ > .header {
background: transparent;
box-shadow: none;
-
- > button {
- color: var(--fg);
- }
+ color: var(--fg);
}
}
&.paged {
background: var(--bg) !important;
}
+}
- > header {
- position: relative;
- display: flex;
- z-index: 2;
- line-height: var(--deckColumnHeaderHeight);
- height: var(--deckColumnHeaderHeight);
- padding: 0 16px;
- font-size: 0.9em;
- color: var(--panelHeaderFg);
- background: var(--panelHeaderBg);
- box-shadow: 0 1px 0 0 var(--panelHeaderDivider);
- cursor: pointer;
-
- &, * {
- user-select: none;
- }
-
- &.indicated {
- box-shadow: 0 3px 0 0 var(--accent);
- }
-
- > .header {
- display: inline-block;
- align-items: center;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
+.header {
+ position: relative;
+ display: flex;
+ z-index: 2;
+ line-height: var(--deckColumnHeaderHeight);
+ height: var(--deckColumnHeaderHeight);
+ padding: 0 16px;
+ font-size: 0.9em;
+ color: var(--panelHeaderFg);
+ background: var(--panelHeaderBg);
+ box-shadow: 0 1px 0 0 var(--panelHeaderDivider);
+ cursor: pointer;
- > span:only-of-type {
- width: 100%;
- }
+ &, * {
+ user-select: none;
+ }
- > .toggleActive,
- > .action > ::v-deep(*),
- > .menu {
- z-index: 1;
- width: var(--deckColumnHeaderHeight);
- line-height: var(--deckColumnHeaderHeight);
- color: var(--faceTextButton);
+ &.indicated {
+ box-shadow: 0 3px 0 0 var(--accent);
+ }
+}
- &:hover {
- color: var(--faceTextButtonHover);
- }
+.title {
+ display: inline-block;
+ align-items: center;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ width: 100%;
+}
- &:active {
- color: var(--faceTextButtonActive);
- }
- }
+.toggleActive,
+.menu {
+ z-index: 1;
+ width: var(--deckColumnHeaderHeight);
+ line-height: var(--deckColumnHeaderHeight);
+ color: var(--faceTextButton);
- > .toggleActive, > .action {
- margin-left: -16px;
- }
+ &:hover {
+ color: var(--faceTextButtonHover);
+ }
- > .action {
- z-index: 1;
- }
+ &:active {
+ color: var(--faceTextButtonActive);
+ }
+}
- > .action:empty {
- display: none;
- }
+.toggleActive {
+ margin-left: -16px;
+}
- > .menu {
- margin-left: auto;
- margin-right: -16px;
- }
- }
+.menu {
+ margin-left: auto;
+ margin-right: -16px;
+}
- > div {
- height: calc(100% - var(--deckColumnHeaderHeight));
- overflow-y: auto;
- overflow-x: hidden; // Safari does not supports clip
- overflow-x: clip;
- -webkit-overflow-scrolling: touch;
- box-sizing: border-box;
- container-type: inline-size;
- background-color: var(--bg);
- }
+.body {
+ height: calc(100% - var(--deckColumnHeaderHeight));
+ overflow-y: auto;
+ overflow-x: hidden; // Safari does not supports clip
+ overflow-x: clip;
+ -webkit-overflow-scrolling: touch;
+ box-sizing: border-box;
+ container-type: inline-size;
+ background-color: var(--bg);
}
</style>