diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 9bd7e4e6af..8c6b9b9078 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -687,6 +687,7 @@ textColor: "文字" saveAs: "名前を付けて保存" advanced: "高度" value: "値" +createdAt: "作成日時" updatedAt: "更新日時" saveConfirm: "保存しますか?" deleteConfirm: "削除しますか?" @@ -710,6 +711,11 @@ typingUsers: "{users}が入力中" jumpToSpecifiedDate: "特定の日付にジャンプ" showingPastTimeline: "過去のタイムラインを表示しています" clear: "クリア" +markAllAsRead: "全て既読にする" +goBack: "戻る" +unlikeConfirm: "いいね解除しますか?" +fullView: "フルビュー" +quitFullView: "フルビュー解除" _email: _follow: diff --git a/package.json b/package.json index b604c75f9c..91a6732d72 100644 --- a/package.json +++ b/package.json @@ -88,6 +88,7 @@ "@types/parsimmon": "1.10.6", "@types/portscanner": "2.1.0", "@types/pug": "2.0.4", + "@types/punycode": "2.1.0", "@types/qrcode": "1.4.0", "@types/random-seed": "0.3.3", "@types/ratelimiter": "3.4.1", @@ -180,7 +181,7 @@ "markdown-it": "12.0.4", "markdown-it-anchor": "7.1.0", "matter-js": "0.16.1", - "mfm-js": "0.12.0", + "mfm-js": "0.14.0", "mocha": "8.3.2", "moji": "0.5.1", "ms": "2.1.3", @@ -252,6 +253,7 @@ "vue-prism-editor": "2.0.0-alpha.2", "vue-router": "4.0.5", "vue-style-loader": "4.1.3", + "vue-svg-loader": "0.17.0-beta.2", "vuedraggable": "4.0.1", "web-push": "3.4.4", "webpack": "5.27.2", diff --git a/src/client/components/abuse-report-window.vue b/src/client/components/abuse-report-window.vue index 7dbb9657bd..df5b594c0b 100644 --- a/src/client/components/abuse-report-window.vue +++ b/src/client/components/abuse-report-window.vue @@ -8,19 +8,15 @@ -
+
-
- - {{ $ts.details }} - - -
+ + {{ $ts.details }} + +
-
- {{ $ts.send }} -
+ {{ $ts.send }}
@@ -80,6 +76,6 @@ export default defineComponent({ diff --git a/src/client/components/channel-preview.vue b/src/client/components/channel-preview.vue index e222ad7ae7..4dc633bcb7 100644 --- a/src/client/components/channel-preview.vue +++ b/src/client/components/channel-preview.vue @@ -123,7 +123,7 @@ export default defineComponent({ > footer { padding: 12px 16px; - border-top: solid 1px var(--divider); + border-top: solid 0.5px var(--divider); > span { opacity: 0.7; diff --git a/src/client/components/date-separated-list.vue b/src/client/components/date-separated-list.vue index be9f01ca1f..433655d6ed 100644 --- a/src/client/components/date-separated-list.vue +++ b/src/client/components/date-separated-list.vue @@ -37,14 +37,16 @@ export default defineComponent({ }); } + const noGap = [...document.querySelectorAll('._noGap_')].some(el => el.contains(this.$parent.$el)); + return h(this.$store.state.animation ? TransitionGroup : 'div', this.$store.state.animation ? { - class: 'sqadhkmv _list_', + class: 'sqadhkmv' + (noGap ? ' _block' : ''), name: 'list', tag: 'div', 'data-direction': this.direction, 'data-reversed': this.reversed ? 'true' : 'false', } : { - class: 'sqadhkmv _list_', + class: 'sqadhkmv', }, this.items.map((item, i) => { const el = this.$slots.default({ item: item @@ -117,11 +119,7 @@ export default defineComponent({ transform: translateY(-64px); } } -} - - diff --git a/src/client/components/drive.file.vue b/src/client/components/drive.file.vue index 03f2da008d..fb8b50d25a 100644 --- a/src/client/components/drive.file.vue +++ b/src/client/components/drive.file.vue @@ -330,8 +330,8 @@ export default defineComponent({ } > .thumbnail { - width: 128px; - height: 128px; + width: 110px; + height: 110px; margin: auto; } diff --git a/src/client/components/drive.vue b/src/client/components/drive.vue index 150d0d8774..103ae9c11e 100644 --- a/src/client/components/drive.vue +++ b/src/client/components/drive.vue @@ -11,7 +11,7 @@ {{ folder.name }}
-
.main { flex: 1; overflow: auto; + padding: var(--margin); &, * { user-select: none; @@ -735,7 +736,7 @@ export default defineComponent({ > .folder, > .file { flex-grow: 1; - width: 144px; + width: 128px; margin: 4px; box-sizing: border-box; } @@ -743,7 +744,7 @@ export default defineComponent({ > .padding { flex-grow: 1; pointer-events: none; - width: 144px + 8px; + width: 128px + 8px; } } diff --git a/src/client/components/emoji-picker-dialog.vue b/src/client/components/emoji-picker-dialog.vue index 5bdbc330ad..c4b12e2f61 100644 --- a/src/client/components/emoji-picker-dialog.vue +++ b/src/client/components/emoji-picker-dialog.vue @@ -123,7 +123,7 @@ export default defineComponent({ > .index { min-height: var(--height); position: relative; - border-bottom: solid 1px var(--divider); + border-bottom: solid 0.5px var(--divider); > .arrow { position: absolute; @@ -181,7 +181,7 @@ export default defineComponent({ } &.result { - border-bottom: solid 1px var(--divider); + border-bottom: solid 0.5px var(--divider); &:empty { display: none; diff --git a/src/client/components/emoji-picker-window.vue b/src/client/components/emoji-picker-window.vue index 5504eaecd6..53b6ae6b32 100644 --- a/src/client/components/emoji-picker-window.vue +++ b/src/client/components/emoji-picker-window.vue @@ -119,7 +119,7 @@ export default defineComponent({ > .index { min-height: var(--height); position: relative; - border-bottom: solid 1px var(--divider); + border-bottom: solid 0.5px var(--divider); > .arrow { position: absolute; @@ -177,7 +177,7 @@ export default defineComponent({ } &.result { - border-bottom: solid 1px var(--divider); + border-bottom: solid 0.5px var(--divider); &:empty { display: none; diff --git a/src/client/components/emoji-picker.vue b/src/client/components/emoji-picker.vue index 573833b9d3..a212c15049 100644 --- a/src/client/components/emoji-picker.vue +++ b/src/client/components/emoji-picker.vue @@ -402,7 +402,7 @@ export default defineComponent({ > .tab { flex: 1; height: 38px; - border-top: solid 1px var(--divider); + border-top: solid 0.5px var(--divider); &.active { border-top: solid 1px var(--accent); @@ -425,7 +425,7 @@ export default defineComponent({ > div { &:not(.index) { padding: 4px 0 8px 0; - border-top: solid 1px var(--divider); + border-top: solid 0.5px var(--divider); } > header { @@ -492,7 +492,7 @@ export default defineComponent({ } &.result { - border-bottom: solid 1px var(--divider); + border-bottom: solid 0.5px var(--divider); &:empty { display: none; diff --git a/src/client/components/form/base.vue b/src/client/components/form/base.vue index 249b49c675..84438a5b32 100644 --- a/src/client/components/form/base.vue +++ b/src/client/components/form/base.vue @@ -20,12 +20,16 @@ export default defineComponent({ diff --git a/src/client/components/form/input.vue b/src/client/components/form/input.vue index f0aa6b0534..c0fa3e716e 100644 --- a/src/client/components/form/input.vue +++ b/src/client/components/form/input.vue @@ -215,7 +215,7 @@ export default defineComponent({ } > .input { - $height: 52px; + $height: 48px; position: relative; > input { diff --git a/src/client/components/form/link.vue b/src/client/components/form/link.vue index 2efc6b58c9..af36bcf22c 100644 --- a/src/client/components/form/link.vue +++ b/src/client/components/form/link.vue @@ -66,6 +66,7 @@ export default defineComponent({ &.active { color: var(--accent); + background: var(--panelHighlight); } > .icon { diff --git a/src/client/components/form/radios.vue b/src/client/components/form/radios.vue index 4561df32e1..3daa7e5bbd 100644 --- a/src/client/components/form/radios.vue +++ b/src/client/components/form/radios.vue @@ -69,8 +69,8 @@ export default defineComponent({ display: inline-block; vertical-align: bottom; position: relative; - width: 20px; - height: 20px; + width: 16px; + height: 16px; margin-right: 8px; background: none; border: 2px solid var(--inputBorder); diff --git a/src/client/components/form/range.vue b/src/client/components/form/range.vue index 3452184c55..65d665c70a 100644 --- a/src/client/components/form/range.vue +++ b/src/client/components/form/range.vue @@ -69,7 +69,7 @@ export default defineComponent({ position: relative; > .main { - padding: 24px 16px; + padding: 22px 16px; > input { display: block; diff --git a/src/client/components/form/select.vue b/src/client/components/form/select.vue index b865372f56..01f28587dc 100644 --- a/src/client/components/form/select.vue +++ b/src/client/components/form/select.vue @@ -97,7 +97,7 @@ export default defineComponent({ font: inherit; font-weight: normal; font-size: 1em; - height: 52px; + height: 48px; background: none; border: none; border-radius: 0; diff --git a/src/client/components/form/switch.vue b/src/client/components/form/switch.vue index a2941c5996..e7ef714c49 100644 --- a/src/client/components/form/switch.vue +++ b/src/client/components/form/switch.vue @@ -57,7 +57,7 @@ export default defineComponent({ > .main { position: relative; display: flex; - padding: 16px; + padding: 14px 16px; cursor: pointer; > * { diff --git a/src/client/components/global/a.vue b/src/client/components/global/a.vue index a8a597b2bb..7ad62a7310 100644 --- a/src/client/components/global/a.vue +++ b/src/client/components/global/a.vue @@ -93,6 +93,10 @@ export default defineComponent({ os.pageWindow(this.to); }, + modalWindow() { + os.modalPageWindow(this.to); + }, + popout() { popout(this.to); }, @@ -111,6 +115,8 @@ export default defineComponent({ if (this.behavior) { if (this.behavior === 'window') { return this.window(); + } else if (this.behavior === 'modalWindow') { + return this.modalWindow(); } } diff --git a/src/client/components/global/acct.vue b/src/client/components/global/acct.vue index a969636a7e..70f2954cb0 100644 --- a/src/client/components/global/acct.vue +++ b/src/client/components/global/acct.vue @@ -1,5 +1,5 @@