summaryrefslogtreecommitdiff
path: root/packages/frontend/src
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-01-15 11:22:58 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-01-15 11:22:58 +0900
commitdaddec8362d4e37c5681ecd3043a1ee3511570d6 (patch)
tree164f646c5fa5bde61735372d6df0004672e3a86a /packages/frontend/src
parent13.0.0-rc.7 (diff)
downloadmisskey-daddec8362d4e37c5681ecd3043a1ee3511570d6.tar.gz
misskey-daddec8362d4e37c5681ecd3043a1ee3511570d6.tar.bz2
misskey-daddec8362d4e37c5681ecd3043a1ee3511570d6.zip
refactor(client): use css modules
Diffstat (limited to 'packages/frontend/src')
-rw-r--r--packages/frontend/src/components/MkNotePreview.vue93
-rw-r--r--packages/frontend/src/components/MkVisibilityPicker.vue182
-rw-r--r--packages/frontend/src/components/MkWaitingDialog.vue34
3 files changed, 141 insertions, 168 deletions
diff --git a/packages/frontend/src/components/MkNotePreview.vue b/packages/frontend/src/components/MkNotePreview.vue
index 44d609561c..05a5ad262a 100644
--- a/packages/frontend/src/components/MkNotePreview.vue
+++ b/packages/frontend/src/components/MkNotePreview.vue
@@ -1,12 +1,12 @@
<template>
-<div class="fefdfafb">
- <MkAvatar class="avatar" :user="$i"/>
- <div class="main">
- <div class="header">
+<div :class="$style.root">
+ <MkAvatar :class="$style.avatar" :user="$i"/>
+ <div :class="$style.main">
+ <div :class="$style.header">
<MkUserName :user="$i"/>
</div>
- <div class="body">
- <div class="content">
+ <div>
+ <div :class="$style.content">
<Mfm :text="text.trim()" :author="$i" :i="$i"/>
</div>
</div>
@@ -22,75 +22,48 @@ const props = defineProps<{
}>();
</script>
-<style lang="scss" scoped>
-.fefdfafb {
+<style lang="scss" module>
+.root {
display: flex;
margin: 0;
padding: 0;
overflow: clip;
font-size: 0.95em;
+}
- > .avatar {
- flex-shrink: 0;
- display: block;
- margin: 0 10px 0 0;
- width: 40px;
- height: 40px;
- border-radius: 8px;
- pointer-events: none;
- }
-
- > .main {
- flex: 1;
- min-width: 0;
-
- > .header {
- margin-bottom: 2px;
- font-weight: bold;
- }
-
- > .body {
-
- > .cw {
- cursor: default;
- display: block;
- margin: 0;
- padding: 0;
- overflow-wrap: break-word;
+.avatar {
+ flex-shrink: 0 !important;
+ display: block !important;
+ margin: 0 10px 0 0 !important;
+ width: 40px !important;
+ height: 40px !important;
+ border-radius: 8px !important;
+ pointer-events: none !important;
+}
- > .text {
- margin-right: 8px;
- }
- }
+.main {
+ flex: 1;
+ min-width: 0;
+}
- > .content {
- > .text {
- cursor: default;
- margin: 0;
- padding: 0;
- }
- }
- }
- }
+.header {
+ margin-bottom: 2px;
+ font-weight: bold;
}
@container (min-width: 350px) {
- .fefdfafb {
- > .avatar {
- margin: 0 10px 0 0;
- width: 44px;
- height: 44px;
- }
+ .avatar {
+ margin: 0 10px 0 0 !important;
+ width: 44px !important;
+ height: 44px !important;
}
}
@container (min-width: 500px) {
- .fefdfafb {
- > .avatar {
- margin: 0 12px 0 0;
- width: 48px;
- height: 48px;
- }
+ .avatar {
+ margin: 0 12px 0 0 !important;
+ width: 48px !important;
+ height: 48px !important;
}
}
</style>
diff --git a/packages/frontend/src/components/MkVisibilityPicker.vue b/packages/frontend/src/components/MkVisibilityPicker.vue
index b05590e5ee..516b88c13d 100644
--- a/packages/frontend/src/components/MkVisibilityPicker.vue
+++ b/packages/frontend/src/components/MkVisibilityPicker.vue
@@ -1,42 +1,42 @@
<template>
<MkModal ref="modal" :z-priority="'high'" :src="src" @click="modal.close()" @closed="emit('closed')">
- <div class="gqyayizv _popup">
- <button key="public" class="_button item" :class="{ active: v === 'public' }" data-index="1" @click="choose('public')">
- <div class="icon"><i class="ti ti-world"></i></div>
- <div class="body">
- <span>{{ i18n.ts._visibility.public }}</span>
- <span>{{ i18n.ts._visibility.publicDescription }}</span>
+ <div class="_popup" :class="$style.root">
+ <button key="public" class="_button" :class="[$style.item, { [$style.active]: v === 'public' }]" data-index="1" @click="choose('public')">
+ <div :class="$style.icon"><i class="ti ti-world"></i></div>
+ <div :class="$style.body">
+ <span :class="$style.itemTitle">{{ i18n.ts._visibility.public }}</span>
+ <span :class="$style.itemDescription">{{ i18n.ts._visibility.publicDescription }}</span>
</div>
</button>
- <button key="home" class="_button item" :class="{ active: v === 'home' }" data-index="2" @click="choose('home')">
- <div class="icon"><i class="ti ti-home"></i></div>
- <div class="body">
- <span>{{ i18n.ts._visibility.home }}</span>
- <span>{{ i18n.ts._visibility.homeDescription }}</span>
+ <button key="home" class="_button" :class="[$style.item, { [$style.active]: v === 'home' }]" data-index="2" @click="choose('home')">
+ <div :class="$style.icon"><i class="ti ti-home"></i></div>
+ <div :class="$style.body">
+ <span :class="$style.itemTitle">{{ i18n.ts._visibility.home }}</span>
+ <span :class="$style.itemDescription">{{ i18n.ts._visibility.homeDescription }}</span>
</div>
</button>
- <button key="followers" class="_button item" :class="{ active: v === 'followers' }" data-index="3" @click="choose('followers')">
- <div class="icon"><i class="ti ti-lock"></i></div>
- <div class="body">
- <span>{{ i18n.ts._visibility.followers }}</span>
- <span>{{ i18n.ts._visibility.followersDescription }}</span>
+ <button key="followers" class="_button" :class="[$style.item, { [$style.active]: v === 'followers' }]" data-index="3" @click="choose('followers')">
+ <div :class="$style.icon"><i class="ti ti-lock"></i></div>
+ <div :class="$style.body">
+ <span :class="$style.itemTitle">{{ i18n.ts._visibility.followers }}</span>
+ <span :class="$style.itemDescription">{{ i18n.ts._visibility.followersDescription }}</span>
</div>
</button>
- <button key="specified" :disabled="localOnly" class="_button item" :class="{ active: v === 'specified' }" data-index="4" @click="choose('specified')">
- <div class="icon"><i class="ti ti-mail"></i></div>
- <div class="body">
- <span>{{ i18n.ts._visibility.specified }}</span>
- <span>{{ i18n.ts._visibility.specifiedDescription }}</span>
+ <button key="specified" :disabled="localOnly" class="_button" :class="[$style.item, { [$style.active]: v === 'specified' }]" data-index="4" @click="choose('specified')">
+ <div :class="$style.icon"><i class="ti ti-mail"></i></div>
+ <div :class="$style.body">
+ <span :class="$style.itemTitle">{{ i18n.ts._visibility.specified }}</span>
+ <span :class="$style.itemDescription">{{ i18n.ts._visibility.specifiedDescription }}</span>
</div>
</button>
- <div class="divider"></div>
- <button key="localOnly" class="_button item localOnly" :class="{ active: localOnly }" data-index="5" @click="localOnly = !localOnly">
- <div class="icon"><i class="ti ti-world-off"></i></div>
- <div class="body">
- <span>{{ i18n.ts._visibility.localOnly }}</span>
- <span>{{ i18n.ts._visibility.localOnlyDescription }}</span>
+ <div :class="$style.divider"></div>
+ <button key="localOnly" class="_button" :class="[$style.item, $style.localOnly, { [$style.active]: localOnly }]" data-index="5" @click="localOnly = !localOnly">
+ <div :class="$style.icon"><i class="ti ti-world-off"></i></div>
+ <div :class="$style.body">
+ <span :class="$style.itemTitle">{{ i18n.ts._visibility.localOnly }}</span>
+ <span :class="$style.itemDescription">{{ i18n.ts._visibility.localOnlyDescription }}</span>
</div>
- <div class="toggle"><i :class="localOnly ? 'ti ti-toggle-right' : 'ti ti-toggle-left'"></i></div>
+ <div :class="$style.toggle"><i :class="localOnly ? 'ti ti-toggle-right' : 'ti ti-toggle-left'"></i></div>
</button>
</div>
</MkModal>
@@ -79,81 +79,81 @@ function choose(visibility: typeof misskey.noteVisibilities[number]): void {
}
</script>
-<style lang="scss" scoped>
-.gqyayizv {
+<style lang="scss" module>
+.root {
width: 240px;
padding: 8px 0;
+}
- > .divider {
- margin: 8px 0;
- border-top: solid 0.5px var(--divider);
- }
+.divider {
+ margin: 8px 0;
+ border-top: solid 0.5px var(--divider);
+}
- > .item {
- display: flex;
- padding: 8px 14px;
- font-size: 12px;
- text-align: left;
- width: 100%;
- box-sizing: border-box;
+.item {
+ display: flex;
+ padding: 8px 14px;
+ font-size: 12px;
+ text-align: left;
+ width: 100%;
+ box-sizing: border-box;
- &:hover {
- background: rgba(0, 0, 0, 0.05);
- }
+ &:hover {
+ background: rgba(0, 0, 0, 0.05);
+ }
- &:active {
- background: rgba(0, 0, 0, 0.1);
- }
+ &:active {
+ background: rgba(0, 0, 0, 0.1);
+ }
- &.active {
- color: var(--fgOnAccent);
- background: var(--accent);
- }
+ &.active {
+ color: var(--fgOnAccent);
+ background: var(--accent);
+ }
- &.localOnly.active {
- color: var(--accent);
- background: inherit;
- }
+ &.localOnly.active {
+ color: var(--accent);
+ background: inherit;
+ }
+}
- > .icon {
- display: flex;
- justify-content: center;
- align-items: center;
- margin-right: 10px;
- width: 16px;
- top: 0;
- bottom: 0;
- margin-top: auto;
- margin-bottom: auto;
- }
+.icon {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-right: 10px;
+ width: 16px;
+ top: 0;
+ bottom: 0;
+ margin-top: auto;
+ margin-bottom: auto;
+}
- > .body {
- flex: 1 1 auto;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
+.body {
+ flex: 1 1 auto;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
- > span:first-child {
- display: block;
- font-weight: bold;
- }
+.itemTitle {
+ display: block;
+ font-weight: bold;
+}
- > span:last-child:not(:first-child) {
- opacity: 0.6;
- }
- }
+.itemDescription {
+ opacity: 0.6;
+}
- > .toggle {
- display: flex;
- justify-content: center;
- align-items: center;
- margin-left: 10px;
- width: 16px;
- top: 0;
- bottom: 0;
- margin-top: auto;
- margin-bottom: auto;
- }
- }
+.toggle {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-left: 10px;
+ width: 16px;
+ top: 0;
+ bottom: 0;
+ margin-top: auto;
+ margin-bottom: auto;
}
</style>
diff --git a/packages/frontend/src/components/MkWaitingDialog.vue b/packages/frontend/src/components/MkWaitingDialog.vue
index da835d21cc..da98da29d0 100644
--- a/packages/frontend/src/components/MkWaitingDialog.vue
+++ b/packages/frontend/src/components/MkWaitingDialog.vue
@@ -1,9 +1,9 @@
<template>
<MkModal ref="modal" :prefer-type="'dialog'" :z-priority="'high'" @click="success ? done() : () => {}" @closed="emit('closed')">
- <div class="iuyakobc" :class="{ iconOnly: (text == null) || success }">
- <i v-if="success" class="ti ti-check icon success"></i>
- <MkLoading v-else class="icon waiting" :em="true"/>
- <div v-if="text && !success" class="text">{{ text }}<MkEllipsis/></div>
+ <div :class="[$style.root, { [$style.iconOnly]: (text == null) || success }]">
+ <i v-if="success" :class="[$style.icon, $style.success]" class="ti ti-check"></i>
+ <MkLoading v-else :class="[$style.icon, $style.waiting]" :em="true"/>
+ <div v-if="text && !success" :class="$style.text">{{ text }}<MkEllipsis/></div>
</div>
</MkModal>
</template>
@@ -35,8 +35,8 @@ watch(() => props.showing, () => {
});
</script>
-<style lang="scss" scoped>
-.iuyakobc {
+<style lang="scss" module>
+.root {
margin: auto;
position: relative;
padding: 32px;
@@ -54,21 +54,21 @@ watch(() => props.showing, () => {
align-items: center;
justify-content: center;
}
+}
- > .icon {
- font-size: 32px;
-
- &.success {
- color: var(--accent);
- }
+.icon {
+ font-size: 32px;
- &.waiting {
- opacity: 0.7;
- }
+ &.success {
+ color: var(--accent);
}
- > .text {
- margin-top: 16px;
+ &.waiting {
+ opacity: 0.7;
}
}
+
+.text {
+ margin-top: 16px;
+}
</style>