diff --git a/CHANGELOG_CHERRYPICK.md b/CHANGELOG_CHERRYPICK.md
index 1b1fa92830..cb9663372b 100644
--- a/CHANGELOG_CHERRYPICK.md
+++ b/CHANGELOG_CHERRYPICK.md
@@ -38,6 +38,7 @@ Misskey의 전체 변경 사항을 확인하려면, [CHANGELOG.md#2024xx](CHANGE
- Feat: 사용자 메뉴에서 원격 서버를 관리할 수 있음 (kokonect-link/cherrypick#502)
- 서버 차단, 서버 사일런스, 서버 미디어 사일런스
- Feat: 노트 동작 버튼을 개인화할 수 있음 (kokonect-link/cherrypick#501)
+- Feat: 답글 대상 노트의 반투명 옵션을 선택할 수 있음 (kokonect-link/cherrypick#495)
- Enhance: CherryPick 업데이트 페이지를 제어판 목록에 추가함
- Enhance: Webhook 추가 버튼을 헤더로 이동해 디자인 개선
- Enhance: 노트 번역 영역에서도 이모지를 눌러 이모지 메뉴를 열 수 있음
diff --git a/locales/en-US.yml b/locales/en-US.yml
index 86869c591d..a7146c25e2 100644
--- a/locales/en-US.yml
+++ b/locales/en-US.yml
@@ -1,5 +1,6 @@
---
_lang_: "English"
+showReplyTargetNoteInSemiTransparent: "Show reply target note in semi-transparent"
noteFooterButton: "Show action buttons in notes"
collapseReplies: "Collapse notes written in reply"
collapseRepliesDescription: "Collapse and displays notes written as replies.\nReacted notes are not affected."
diff --git a/locales/index.d.ts b/locales/index.d.ts
index 0579036787..5f4972ad56 100644
--- a/locales/index.d.ts
+++ b/locales/index.d.ts
@@ -13,6 +13,10 @@ export interface Locale extends ILocale {
* 日本語
*/
"_lang_": string;
+ /**
+ * 返信対象ノートを半透明に表示
+ */
+ "showReplyTargetNoteInSemiTransparent": string;
/**
* ノートにアクションボタンを表示
*/
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index cc495ecb91..8de1ec1c25 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -1,5 +1,6 @@
_lang_: "日本語"
+showReplyTargetNoteInSemiTransparent: "返信対象ノートを半透明に表示"
noteFooterButton: "ノートにアクションボタンを表示"
collapseReplies: "返信のリノートのスマート省略"
collapseRepliesDescription: "返信で作成されたノートをたたんで表示します。\nリアクションしたノートは影響を受けません。"
diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml
index 10d8815caf..c4d231e301 100644
--- a/locales/ko-KR.yml
+++ b/locales/ko-KR.yml
@@ -1,5 +1,6 @@
---
_lang_: "한국어"
+showReplyTargetNoteInSemiTransparent: "답글 대상 노트를 반투명하게 표시"
noteFooterButton: "노트 동작 버튼"
collapseReplies: "답글로 작성된 노트 간략화하기"
collapseRepliesDescription: "답글로 작성된 노트를 접어서 표시해요.\n리액션한 노트는 영향을 받지 않아요."
diff --git a/packages/frontend/src/components/MkNote.vue b/packages/frontend/src/components/MkNote.vue
index a0da9b0ca1..9d18bda74a 100644
--- a/packages/frontend/src/components/MkNote.vue
+++ b/packages/frontend/src/components/MkNote.vue
@@ -52,10 +52,10 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
-
+
@@ -925,8 +925,11 @@ function emitUpdReaction(emoji: string, delta: number) {
}
.replyTo {
- opacity: 0.7;
padding-bottom: 0;
+
+ &.showReplyTargetNoteInSemiTransparent {
+ opacity: 0.7;
+ }
}
.renote {
@@ -1010,12 +1013,15 @@ function emitUpdReaction(emoji: string, delta: number) {
text-overflow: ellipsis;
white-space: nowrap;
font-size: 90%;
- opacity: 0.7;
cursor: pointer;
&:hover {
text-decoration: underline;
}
+
+ &.showReplyTargetNoteInSemiTransparent {
+ opacity: 0.7;
+ }
}
.article {
diff --git a/packages/frontend/src/components/MkNoteDetailed.vue b/packages/frontend/src/components/MkNoteDetailed.vue
index 6b20f9adff..b811abd874 100644
--- a/packages/frontend/src/components/MkNoteDetailed.vue
+++ b/packages/frontend/src/components/MkNoteDetailed.vue
@@ -48,7 +48,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
@@ -800,8 +800,11 @@ onMounted(() => {
}
.replyTo {
- opacity: 0.7;
padding-bottom: 0;
+
+ &.showReplyTargetNoteInSemiTransparent {
+ opacity: 0.7;
+ }
}
.replyToMore {
diff --git a/packages/frontend/src/pages/settings/general.vue b/packages/frontend/src/pages/settings/general.vue
index cb9870beab..5ae004e66f 100644
--- a/packages/frontend/src/pages/settings/general.vue
+++ b/packages/frontend/src/pages/settings/general.vue
@@ -96,6 +96,7 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts.showFixedPostFormInReplies }}{{ i18n.ts.showFixedPostFormInRepliesDescription }} CherryPick
{{ i18n.ts.allMediaNoteCollapse }} CherryPick
{{ i18n.ts.alwaysShowCw }} CherryPick
+ {{ i18n.ts.showReplyTargetNoteInSemiTransparent }} CherryPick
@@ -483,6 +484,7 @@ const showFixedPostFormInReplies = computed(defaultStore.makeGetterSetter('showF
const showingAnimatedImages = computed(defaultStore.makeGetterSetter('showingAnimatedImages'));
const allMediaNoteCollapse = computed(defaultStore.makeGetterSetter('allMediaNoteCollapse'));
const alwaysShowCw = computed(defaultStore.makeGetterSetter('alwaysShowCw'));
+const showReplyTargetNoteInSemiTransparent = computed(defaultStore.makeGetterSetter('showReplyTargetNoteInSemiTransparent'));
const nsfwOpenBehavior = computed(defaultStore.makeGetterSetter('nsfwOpenBehavior'));
const renoteVisibilitySelection = computed(defaultStore.makeGetterSetter('renoteVisibilitySelection'));
const forceRenoteVisibilitySelection = computed(defaultStore.makeGetterSetter('forceRenoteVisibilitySelection'));
@@ -568,6 +570,7 @@ watch([
renoteQuoteButtonSeparation,
allMediaNoteCollapse,
alwaysShowCw,
+ showReplyTargetNoteInSemiTransparent,
showReplyButtonInNoteFooter,
showRenoteButtonInNoteFooter,
showLikeButtonInNoteFooter,
diff --git a/packages/frontend/src/pages/settings/preferences-backups.vue b/packages/frontend/src/pages/settings/preferences-backups.vue
index 086a3c7f53..dd9b716250 100644
--- a/packages/frontend/src/pages/settings/preferences-backups.vue
+++ b/packages/frontend/src/pages/settings/preferences-backups.vue
@@ -148,6 +148,7 @@ const defaultStoreSaveKeys: (keyof typeof defaultStore['state'])[] = [
'showFixedPostFormInReplies',
'allMediaNoteCollapse',
'alwaysShowCw',
+ 'showReplyTargetNoteInSemiTransparent',
'nsfwOpenBehavior',
'removeModalBgColorForBlur',
'nicknameEnabled',
diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts
index db303357e2..e9ef030680 100644
--- a/packages/frontend/src/store.ts
+++ b/packages/frontend/src/store.ts
@@ -610,6 +610,10 @@ export const defaultStore = markRaw(new Storage('base', {
where: 'device',
default: false,
},
+ showReplyTargetNoteInSemiTransparent: {
+ where: 'device',
+ default: true,
+ },
nsfwOpenBehavior: {
where: 'device',
default: 'click' as 'click' | 'doubleClick',