Compare commits

...

333 Commits

Author SHA1 Message Date
f56adce51f 9.0.0 2018-10-02 00:34:37 +09:00
35362ed3c7 Better example settings for TLS certification (#2793) 2018-10-01 19:29:02 +09:00
cd0b9a8e3f 非承認制アカウントのリモートフォローではフォロー許可待ちと表示しない (#2796) 2018-10-01 19:28:24 +09:00
110aadd65c 8.64.0 2018-10-01 00:15:17 +09:00
ff76c815b1 テーマインストール時の動作をわかりやすくしたりテーマをアンインストールできるようにしたり 2018-09-30 23:03:21 +09:00
1b9b8912ae Update post-form.vue (#2790) 2018-09-30 22:45:24 +09:00
579b61a806 Update tests 2018-09-30 14:46:18 +09:00
1e2b484929 profile banner が濃すぎるのを修正 (#2783) 2018-09-29 16:52:58 +09:00
25dd19dd8c 🎨 2018-09-29 09:11:06 +09:00
b8b4991a46 8.63.0 2018-09-29 00:51:13 +09:00
8b68c5da37 Merge pull request #2781 from syuilo/theme
Theme
2018-09-29 00:48:56 +09:00
f26e641905 wip 2018-09-29 00:48:02 +09:00
57669c9c03 wip 2018-09-29 00:44:23 +09:00
094d873f2e wip 2018-09-29 00:20:49 +09:00
7b42653271 wip 2018-09-29 00:03:28 +09:00
6a82e94c54 wip 2018-09-29 00:01:11 +09:00
1fa4d0d3f8 wip 2018-09-28 21:48:53 +09:00
d5818214f3 Fix 'URL is not defined' in MFM (#2782) 2018-09-28 20:54:14 +09:00
0c63ec8157 wip 2018-09-28 20:39:32 +09:00
8317a219a5 wip 2018-09-28 20:11:11 +09:00
ec652dd0ac wip 2018-09-28 20:03:14 +09:00
8e3dd75c85 wip 2018-09-28 19:59:19 +09:00
3f4de3b1cc wip 2018-09-28 17:49:37 +09:00
e0d3fd17ce wio 2018-09-28 16:13:47 +09:00
671c7cf06b wip 2018-09-28 16:08:09 +09:00
99a2c5b3fa wip 2018-09-28 15:58:23 +09:00
0343de95b8 wip 2018-09-28 15:56:50 +09:00
13f258308e wip 2018-09-28 15:34:34 +09:00
c627288bde wip 2018-09-28 14:26:20 +09:00
1eef90f6cb wip 2018-09-28 14:03:55 +09:00
29476ea3da wip 2018-09-28 12:20:22 +09:00
7609741680 wip 2018-09-28 12:13:08 +09:00
5df85b5feb wip 2018-09-28 12:10:15 +09:00
b4a4d784c3 wip 2018-09-28 12:07:28 +09:00
d715af0620 wip 2018-09-28 11:49:32 +09:00
fe8c384618 wip 2018-09-28 11:45:34 +09:00
47d4de75da wip 2018-09-28 11:44:23 +09:00
016c7fd2c4 wip 2018-09-28 11:43:15 +09:00
7ca5e33a3a wip 2018-09-28 11:40:47 +09:00
436773837b wip 2018-09-28 11:23:30 +09:00
fccfe19e13 wip 2018-09-28 11:18:56 +09:00
18be0d36f3 wip 2018-09-28 10:50:59 +09:00
9ea7de3564 wip 2018-09-28 10:14:58 +09:00
d1dce76e28 wip 2018-09-28 01:05:09 +09:00
f4bf824e79 wip 2018-09-28 00:51:17 +09:00
cbf5d4b71d wip 2018-09-28 00:48:17 +09:00
61e5cb2041 wip 2018-09-27 23:55:05 +09:00
38a6aa26bc wip 2018-09-27 23:17:33 +09:00
32942709bf wip 2018-09-27 23:09:23 +09:00
a0305c4c04 wip 2018-09-27 23:02:59 +09:00
74be1c81b1 wip 2018-09-27 22:59:56 +09:00
e82a44c03d wip 2018-09-27 22:55:17 +09:00
1e9eeeb980 wip 2018-09-27 22:50:34 +09:00
0c7111b438 wip 2018-09-27 22:30:52 +09:00
ef74653a4b wip 2018-09-27 22:25:10 +09:00
b032f78769 wip 2018-09-27 21:43:11 +09:00
7a0a8b5d2b wip 2018-09-27 19:32:06 +09:00
459b374d61 wip 2018-09-27 19:14:35 +09:00
cc6af402be wip 2018-09-27 18:01:23 +09:00
f3eeadcd8f wip 2018-09-27 17:42:51 +09:00
5b0b83faa7 wip 2018-09-27 17:29:57 +09:00
5f289e4767 wip 2018-09-27 16:58:00 +09:00
a36d73cb52 wip 2018-09-27 16:49:18 +09:00
9e319006f3 wip 2018-09-27 15:19:11 +09:00
7b8a2aef0f wip 2018-09-27 14:52:10 +09:00
4fe2f29478 wip 2018-09-27 14:32:48 +09:00
76a25917c0 wip 2018-09-27 13:54:53 +09:00
df6c9b1a1c wip 2018-09-27 12:55:10 +09:00
0ef64a6d0b wip 2018-09-27 11:55:17 +09:00
1eb6ad58d5 wip 2018-09-27 02:46:53 +09:00
49f8cfb0db wip 2018-09-27 02:35:13 +09:00
15a8b4c6e5 wip 2018-09-27 02:18:54 +09:00
97d68d7b31 example commit 2018-09-27 02:02:07 +09:00
4dde54e344 Clean up 2018-09-27 01:58:37 +09:00
3304cc106e wip 2018-09-27 01:54:10 +09:00
dabda21eb7 wip 2018-09-27 01:44:05 +09:00
0a64f638c6 wip 2018-09-27 01:32:04 +09:00
3cbdfcb43d wip 2018-09-27 00:54:37 +09:00
b6e33e93de wip 2018-09-26 20:47:11 +09:00
77b441f14c リプライで元の公開範囲を引き継ぐ (#2775)
* ホーム/フォロワー限定へのリプライは公開範囲を引き継ぐように

* ダイレクトへのリプライはダイレクトでリプライ先ユーザーを初期設定するように

* 非公開へのリプライでも元の公開範囲を引き継ぐ
2018-09-26 20:39:59 +09:00
297019c22c example commit 2018-09-26 20:38:16 +09:00
f5f2215b47 wip 2018-09-26 20:28:13 +09:00
904114740b wip 2018-09-26 20:19:35 +09:00
d2d3f7810e wip 2018-09-26 19:14:11 +09:00
2b07b3a873 wip 2018-09-26 18:59:37 +09:00
f6e4a1770e 8.62.0 2018-09-25 21:38:31 +09:00
31006507c0 ビルドごとにバージョンを変えるのを廃止 2018-09-25 21:28:06 +09:00
9ca6a6bf06 サーバーへの接続が不安定な時にサインアウトしないように 2018-09-25 21:23:26 +09:00
afdacf14b7 Add excludeNsfw option 2018-09-25 21:09:38 +09:00
5da18ba535 Fix #2766 2018-09-25 20:44:26 +09:00
e6cc937ac2 Check meta key 2018-09-24 20:57:32 +09:00
87091a2e03 8.61.0 2018-09-24 16:32:51 +09:00
59d67d3140 ピン留めを解除することができるようにしたり 2018-09-24 16:26:12 +09:00
7b4c307c46 🎨 2018-09-24 16:07:23 +09:00
92484be87f Resolve #2762 2018-09-24 16:02:01 +09:00
56b8f8b07d 8.60.0 2018-09-24 08:04:45 +09:00
722de35037 Add stats link 2018-09-24 08:02:07 +09:00
d93f76c1af ブロッカーへの警告はログイン時のみ表示するように 2018-09-24 08:00:10 +09:00
cba0dd5e17 Fix AP request error message is to long (#2760) 2018-09-24 07:35:39 +09:00
a2e2d5ba77 非ログイン時のユーザーページにインスタンスの紹介を表示するように 2018-09-23 19:55:15 +09:00
61e05cb50e 8.59.0 2018-09-23 16:13:33 +09:00
49e82adc6c mentionsを読み込むときも既読にするように 2018-09-23 16:05:46 +09:00
e4e668b327 Improve performance 2018-09-23 16:05:26 +09:00
8028c85c67 ダークモードのキーボードショートカット追加 2018-09-23 07:59:48 +09:00
28cb9cae51 8.58.0 2018-09-22 20:44:05 +09:00
7f2eb64131 fix(package): update @types/node to version 10.10.3 (#2753) 2018-09-22 20:42:05 +09:00
3e5330a92b 🎨 2018-09-22 20:39:12 +09:00
93e5e4afc0 🎨 2018-09-22 20:11:13 +09:00
aa5528d11e 🎨 2018-09-22 19:59:37 +09:00
251629ab61 🎨 2018-09-22 15:58:11 +09:00
82d94b5963 Fix #2747 2018-09-22 08:49:14 +09:00
8240901332 Merge pull request #2749 from syuilo/l10n_develop
New Crowdin translations
2018-09-22 05:12:06 +09:00
0a870b8e7e fix(package): update @types/node to version 10.10.2 (#2750) 2018-09-22 05:11:53 +09:00
88dd653fa5 New translations ja-JP.yml (Japanese, Kansai) 2018-09-22 03:31:27 +09:00
b712b70330 New translations ja-JP.yml (Japanese, Kansai) 2018-09-22 03:22:07 +09:00
a018c2f09f New translations ja-JP.yml (Japanese, Kansai) 2018-09-22 03:12:07 +09:00
04c16e53a5 New translations ja-JP.yml (Japanese, Kansai) 2018-09-22 03:01:43 +09:00
5e89e73f76 New translations ja-JP.yml (Japanese, Kansai) 2018-09-22 02:51:52 +09:00
2c9432d7a9 New translations ja-JP.yml (Japanese, Kansai) 2018-09-22 02:41:58 +09:00
19d1775b36 New translations ja-JP.yml (Japanese, Kansai) 2018-09-22 02:31:58 +09:00
ecc235c545 Fix bug 2018-09-21 16:43:46 +09:00
382b1d2250 8.57.1 2018-09-21 08:40:12 +09:00
629693355a Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-09-21 08:37:39 +09:00
00a3f8d392 Fix #2741 2018-09-21 08:37:26 +09:00
80b6e8090e fix(package): update @types/bcryptjs to version 2.4.2 (#2742) 2018-09-21 08:35:06 +09:00
a5f817d896 Fix #2744 2018-09-21 08:33:24 +09:00
51b0244cf2 fix(package): update websocket to version 1.0.28 (#2746)
Closes #2743
2018-09-21 04:30:29 +09:00
01131e2606 8.57.0 2018-09-20 17:23:55 +09:00
6283b7668e fix(package): update @types/koa-router to version 7.0.32 (#2740) 2018-09-20 17:23:26 +09:00
d058ecc4ea Resolve #2698 2018-09-20 17:21:16 +09:00
77a0450b5d 🎨 2018-09-20 16:21:51 +09:00
1dd1b9084f Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-09-20 16:16:08 +09:00
6341807d02 🎨 2018-09-20 16:16:01 +09:00
51a1f30225 fix(package): update @types/webpack to version 4.4.12 (#2739) 2018-09-20 06:29:03 +09:00
5422482696 Resolve #1153 2018-09-20 06:27:41 +09:00
cd7f8b080e Fix #2738 2018-09-20 04:56:24 +09:00
faf29b768f Make admin can delete any note 2018-09-19 17:29:03 +09:00
7576569dc9 8.56.0 2018-09-19 14:24:40 +09:00
ea3bcbbc37 キャッシュの設定を調整 2018-09-19 14:22:46 +09:00
d9f0e158a3 Implement #2736 2018-09-19 14:18:34 +09:00
195f676500 8.55.0 2018-09-19 08:38:18 +09:00
a9a2f4820b Add keyboard shortcut doc 2018-09-19 08:36:06 +09:00
8414db57f0 Specify AP Cache-Control (#2735) 2018-09-19 07:17:19 +09:00
609d68933e Add new shortcut 2018-09-19 02:51:06 +09:00
a23b8cebbc 8.54.0 2018-09-19 02:41:09 +09:00
89f6b03cd6 fix(package): update web-push to version 3.3.3 (#2733) 2018-09-19 02:39:57 +09:00
7bc9de03a6 fix(package): update webpack to version 4.19.1 (#2732) 2018-09-19 02:39:15 +09:00
3c865d6054 Add new shortcut 2018-09-19 02:35:32 +09:00
fd770b008e Add new shortcut 2018-09-19 02:32:44 +09:00
b0d60ef2c2 Add new shortcut 2018-09-19 02:27:19 +09:00
7b9cea06ef Fix 2018-09-19 02:26:06 +09:00
30608d3e22 8.53.0 2018-09-18 16:45:55 +09:00
8bf4e55338 Improve keyboard shortcuts 2018-09-18 16:45:20 +09:00
6ead1de383 Improve readability 2018-09-18 15:02:26 +09:00
3b628ec3c4 将来的にバグに繋がりかねない挙動を修正 2018-09-18 15:02:15 +09:00
0ed704d173 8.52.0 2018-09-18 14:54:01 +09:00
87b6ef0ec5 Improve keyboard shortcut 2018-09-18 14:53:17 +09:00
5184a07cf2 Improve usability 2018-09-18 14:50:13 +09:00
dba04cc59c Improve keyboard shortcuts 2018-09-18 14:43:54 +09:00
f4045fb5b3 Improve keyboard shortcuts 2018-09-18 14:39:18 +09:00
16c36163b4 Fix bug 2018-09-18 14:35:46 +09:00
1ac033ff18 Improve keyboard shortcut 2018-09-18 14:30:50 +09:00
ccfd48232a 8.51.0 2018-09-18 13:14:42 +09:00
429bf179dc Refactor: Better type annotations 2018-09-18 13:14:17 +09:00
8ba3fb13eb Fix bug 2018-09-18 13:12:41 +09:00
11496d887e Publish pinned notes (#2731) 2018-09-18 13:08:27 +09:00
bec48319ec 8.50.0 2018-09-18 12:43:24 +09:00
71a93b2b43 Refactor & Usability improvements 2018-09-18 12:42:56 +09:00
6ed3f9e414 リファクタリングなど 2018-09-18 12:34:41 +09:00
dc8f592c1f 8.49.0 2018-09-18 09:21:02 +09:00
f66c31c771 Improve usability & refactoring 2018-09-18 09:20:06 +09:00
55e2ae1408 Improve usability 2018-09-18 09:11:52 +09:00
19c72627fc Improve keyboard shortcut 2018-09-18 08:19:45 +09:00
2a4c53c3a4 8.48.0 2018-09-18 06:30:52 +09:00
1f2ebce8ed Resolve #1302 2018-09-18 06:29:47 +09:00
fcea9dacb7 Clean up: Remove unused import 2018-09-18 06:20:49 +09:00
908872f374 8.47.0 2018-09-18 05:36:14 +09:00
f688ceafb8 Merge pull request #2729 from syuilo/greenkeeper/@types/node-10.10.1
Update @types/node to the latest version 🚀
2018-09-18 05:35:49 +09:00
b47b5d6d8b Merge pull request #2728 from syuilo/l10n_develop
New Crowdin translations
2018-09-18 05:35:39 +09:00
31ce3aa312 キーボードショートカットを強化するなど 2018-09-18 05:35:06 +09:00
5b22d92e99 New translations ja-JP.yml (English) 2018-09-18 03:51:42 +09:00
df148e25da fix(package): update @types/node to version 10.10.1 2018-09-17 17:24:15 +00:00
4b26df5c3a New translations ja-JP.yml (English) 2018-09-18 02:19:32 +09:00
e765be4205 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-09-18 02:15:36 +09:00
f7d2457063 New translations ja-JP.yml (Norwegian) 2018-09-18 02:15:27 +09:00
6032d803aa New translations ja-JP.yml (Dutch) 2018-09-18 02:15:25 +09:00
0de371db38 New translations ja-JP.yml (Japanese, Kansai) 2018-09-18 02:15:22 +09:00
ce3797c4af 8.46.0 2018-09-18 02:15:19 +09:00
56dd8c298b New translations ja-JP.yml (Spanish) 2018-09-18 02:15:19 +09:00
3533257efe New translations ja-JP.yml (Russian) 2018-09-18 02:15:16 +09:00
dc2f08721d New translations ja-JP.yml (Portuguese) 2018-09-18 02:15:14 +09:00
66608a4131 New translations ja-JP.yml (Polish) 2018-09-18 02:15:11 +09:00
2fa90131eb New translations ja-JP.yml (Korean) 2018-09-18 02:15:08 +09:00
a51ed28db6 New translations ja-JP.yml (Italian) 2018-09-18 02:15:06 +09:00
5ec290663b New translations ja-JP.yml (German) 2018-09-18 02:15:03 +09:00
1374d6e34d New translations ja-JP.yml (French) 2018-09-18 02:15:00 +09:00
45ade17c58 New translations ja-JP.yml (English) 2018-09-18 02:14:57 +09:00
c753e26187 New translations ja-JP.yml (Chinese Simplified) 2018-09-18 02:14:54 +09:00
577929eed1 New translations ja-JP.yml (Catalan) 2018-09-18 02:14:51 +09:00
1fde8a8fb0 Merge pull request #2727 from syuilo/greenkeeper/@types/node-10.10.0
Update @types/node to the latest version 🚀
2018-09-18 02:14:32 +09:00
77e53cbf9e Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-09-18 02:14:16 +09:00
ab83e08bc7 メッセージタイムラインを追加 2018-09-18 02:14:12 +09:00
2fad6e6d5f Refactor 2018-09-18 02:13:42 +09:00
a3604a6c95 Merge pull request #2722 from syuilo/l10n_develop
New Crowdin translations
2018-09-17 23:12:54 +09:00
44f6fe6f1f Refactor: Extract shouldMuteThisNote function 2018-09-17 23:07:15 +09:00
311b4e90ca No lint when test 2018-09-17 22:51:25 +09:00
f5a937c523 Better hashtag parsing 2018-09-17 22:51:10 +09:00
0632a3ed3f fix(package): update @types/node to version 10.10.0 2018-09-17 08:10:08 +00:00
71bada97df 8.45.1 2018-09-17 12:19:54 +09:00
62509edcbe Refactor 2018-09-17 12:18:59 +09:00
f97cdfaa20 Fix #2725 2018-09-17 11:59:24 +09:00
67ec10e86d Add untilId param 2018-09-17 11:43:53 +09:00
481b3f2c58 New translations ja-JP.yml (English) 2018-09-17 09:11:27 +09:00
7d599a68ea pong 2018-09-17 09:07:46 +09:00
7ccff732b8 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-09-17 09:07:05 +09:00
7587c896d5 8.45.0 2018-09-17 09:06:56 +09:00
91297f1ab3 Merge pull request #2717 from syuilo/l10n_develop
New Crowdin translations
2018-09-17 09:06:25 +09:00
d872a16fe0 🎨 2018-09-17 09:05:51 +09:00
60aa35adf8 New translations ja-JP.yml (Norwegian) 2018-09-17 09:01:59 +09:00
5035b66773 New translations ja-JP.yml (Dutch) 2018-09-17 09:01:57 +09:00
fa9da8ecab New translations ja-JP.yml (Japanese, Kansai) 2018-09-17 09:01:54 +09:00
1f9bca7188 New translations ja-JP.yml (Spanish) 2018-09-17 09:01:52 +09:00
ffa5bdeb50 New translations ja-JP.yml (Russian) 2018-09-17 09:01:49 +09:00
e6bfb7398e New translations ja-JP.yml (Portuguese) 2018-09-17 09:01:47 +09:00
6def0c776f New translations ja-JP.yml (Polish) 2018-09-17 09:01:45 +09:00
24bae9eaed New translations ja-JP.yml (Korean) 2018-09-17 09:01:43 +09:00
fb5175a283 New translations ja-JP.yml (Italian) 2018-09-17 09:01:40 +09:00
6e49437154 New translations ja-JP.yml (German) 2018-09-17 09:01:38 +09:00
2511ed56ac New translations ja-JP.yml (French) 2018-09-17 09:01:35 +09:00
c4bfc99cf5 New translations ja-JP.yml (English) 2018-09-17 09:01:33 +09:00
4efe38440d New translations ja-JP.yml (Chinese Simplified) 2018-09-17 09:01:30 +09:00
4a5f2c3c40 New translations ja-JP.yml (Catalan) 2018-09-17 09:01:27 +09:00
109738ccb9 ハッシュタグタイムラインを実装 2018-09-17 09:00:20 +09:00
433dbe179d 8.44.1 2018-09-17 03:37:22 +09:00
b21b33831a Fix bug 2018-09-17 03:36:58 +09:00
020cc471da 8.44.0 2018-09-17 03:03:58 +09:00
43b47c4494 fontawesomeを5.3.1にアップデート (#2718) 2018-09-17 03:02:58 +09:00
8751d91794 Better stats page 2018-09-17 02:56:57 +09:00
374b276f5c Fix #2720 2018-09-17 02:45:30 +09:00
6138a74231 Fix #2101 2018-09-17 00:20:00 +09:00
25438c4d64 New translations ja-JP.yml (French) 2018-09-17 00:01:10 +09:00
ae6ce19886 8.43.0 2018-09-16 23:19:06 +09:00
e17a9bfd6f Merge pull request #2714 from syuilo/l10n_develop
New Crowdin translations
2018-09-16 23:17:22 +09:00
dc2055f5bc Fix bug 2018-09-16 23:15:15 +09:00
afeb8058b1 Add mentions column (Deck) 2018-09-16 23:15:02 +09:00
9299f99ac3 New translations ja-JP.yml (English) 2018-09-16 23:02:02 +09:00
858fc7ebcc New translations ja-JP.yml (Norwegian) 2018-09-16 22:51:36 +09:00
35089c65d3 New translations ja-JP.yml (Dutch) 2018-09-16 22:51:34 +09:00
643ca42829 New translations ja-JP.yml (Japanese, Kansai) 2018-09-16 22:51:31 +09:00
935dc4fe33 New translations ja-JP.yml (Spanish) 2018-09-16 22:51:29 +09:00
3a9e74feb1 New translations ja-JP.yml (Russian) 2018-09-16 22:51:27 +09:00
92e66fbf0c New translations ja-JP.yml (Portuguese) 2018-09-16 22:51:24 +09:00
a50515f569 New translations ja-JP.yml (Polish) 2018-09-16 22:51:22 +09:00
2f8f47acea New translations ja-JP.yml (Korean) 2018-09-16 22:51:19 +09:00
dcb296db93 New translations ja-JP.yml (Italian) 2018-09-16 22:51:17 +09:00
0bdae9ede7 New translations ja-JP.yml (German) 2018-09-16 22:51:15 +09:00
11290c2a0f New translations ja-JP.yml (French) 2018-09-16 22:51:13 +09:00
428b8f8669 New translations ja-JP.yml (English) 2018-09-16 22:51:10 +09:00
7ced10f84e New translations ja-JP.yml (Chinese Simplified) 2018-09-16 22:51:08 +09:00
8ac54139c9 New translations ja-JP.yml (Catalan) 2018-09-16 22:51:05 +09:00
32afe77a26 自分宛ての投稿をタイムラインで見れるように 2018-09-16 22:48:57 +09:00
6db8e33662 New translations ja-JP.yml (English) 2018-09-16 22:01:26 +09:00
569561f247 New translations ja-JP.yml (Norwegian) 2018-09-16 21:52:05 +09:00
d132d82acf New translations ja-JP.yml (Dutch) 2018-09-16 21:52:02 +09:00
9ba0db9372 New translations ja-JP.yml (Japanese, Kansai) 2018-09-16 21:51:59 +09:00
5d468b542d New translations ja-JP.yml (Spanish) 2018-09-16 21:51:57 +09:00
32273165c7 New translations ja-JP.yml (Russian) 2018-09-16 21:51:55 +09:00
46fdb75bf4 New translations ja-JP.yml (Portuguese) 2018-09-16 21:51:52 +09:00
baf381814b New translations ja-JP.yml (Polish) 2018-09-16 21:51:50 +09:00
e90387c14e New translations ja-JP.yml (Korean) 2018-09-16 21:51:48 +09:00
876790d499 New translations ja-JP.yml (Italian) 2018-09-16 21:51:45 +09:00
8b56edda4b New translations ja-JP.yml (German) 2018-09-16 21:51:43 +09:00
33352256d6 New translations ja-JP.yml (French) 2018-09-16 21:51:41 +09:00
e368ef11fa New translations ja-JP.yml (English) 2018-09-16 21:51:39 +09:00
045f7c3185 New translations ja-JP.yml (Chinese Simplified) 2018-09-16 21:51:36 +09:00
bf40e5a5c5 New translations ja-JP.yml (Catalan) 2018-09-16 21:51:34 +09:00
cda3635d97 enable-animations --> reduce-motion 2018-09-16 21:40:48 +09:00
2eb561f132 New translations ja-JP.yml (Portuguese) 2018-09-16 05:43:02 +09:00
b5f6465d61 New translations ja-JP.yml (Portuguese) 2018-09-16 05:31:03 +09:00
9725076c46 New translations ja-JP.yml (Portuguese) 2018-09-16 05:20:49 +09:00
f7228e79bb 8.42.0 2018-09-16 04:47:16 +09:00
d3e250288a Merge pull request #2713 from syuilo/l10n_develop
New Crowdin translations
2018-09-16 04:46:27 +09:00
38f8043cb2 New translations ja-JP.yml (English) 2018-09-16 04:41:03 +09:00
a61320ca8c Improve usability 2018-09-16 04:34:46 +09:00
4bc9bad34f New translations ja-JP.yml (Norwegian) 2018-09-16 04:33:11 +09:00
4392e64672 New translations ja-JP.yml (Dutch) 2018-09-16 04:33:09 +09:00
74a0d60766 New translations ja-JP.yml (Japanese, Kansai) 2018-09-16 04:33:06 +09:00
012a2b6b00 New translations ja-JP.yml (Spanish) 2018-09-16 04:33:02 +09:00
584bca7658 New translations ja-JP.yml (Russian) 2018-09-16 04:33:00 +09:00
5dcd96d926 New translations ja-JP.yml (Portuguese) 2018-09-16 04:32:58 +09:00
bd2be2815c New translations ja-JP.yml (Polish) 2018-09-16 04:32:55 +09:00
2a5635492a New translations ja-JP.yml (Korean) 2018-09-16 04:32:52 +09:00
eeea7527c1 New translations ja-JP.yml (Italian) 2018-09-16 04:32:49 +09:00
d943a9a2f4 New translations ja-JP.yml (German) 2018-09-16 04:32:47 +09:00
d4335f0e4d New translations ja-JP.yml (French) 2018-09-16 04:32:45 +09:00
054f7cbdaa New translations ja-JP.yml (English) 2018-09-16 04:32:42 +09:00
6ff95dab89 New translations ja-JP.yml (Chinese Simplified) 2018-09-16 04:32:40 +09:00
4461bde5da New translations ja-JP.yml (Catalan) 2018-09-16 04:32:38 +09:00
19152c28cb Fix bug 2018-09-16 04:31:55 +09:00
dda2967e2d Merge pull request #2611 from tamaina/improve-media
メディアリストにバナータイプのメディアビューを追加
2018-09-16 04:28:07 +09:00
a680bcda1f Fix 2018-09-16 04:27:10 +09:00
8d24fcba6a ✌️ 2018-09-16 04:26:01 +09:00
2a96429be8 バグ修正やデザイン調整など 2018-09-16 04:21:48 +09:00
5c6f376f4e New translations ja-JP.yml (Norwegian) 2018-09-16 03:51:51 +09:00
1b24fad95f New translations ja-JP.yml (Dutch) 2018-09-16 03:51:49 +09:00
87743d9ef9 New translations ja-JP.yml (Japanese, Kansai) 2018-09-16 03:51:46 +09:00
8ffd0abb1b New translations ja-JP.yml (Spanish) 2018-09-16 03:51:44 +09:00
2fed09ec18 New translations ja-JP.yml (Russian) 2018-09-16 03:51:42 +09:00
6daabb35de New translations ja-JP.yml (Portuguese) 2018-09-16 03:51:39 +09:00
59e98aa06c New translations ja-JP.yml (Polish) 2018-09-16 03:51:36 +09:00
3601d95733 New translations ja-JP.yml (Korean) 2018-09-16 03:51:34 +09:00
2c57dfd528 New translations ja-JP.yml (Italian) 2018-09-16 03:51:31 +09:00
2348f2586c New translations ja-JP.yml (German) 2018-09-16 03:51:29 +09:00
ed11f954aa New translations ja-JP.yml (French) 2018-09-16 03:51:26 +09:00
5765a8e38e New translations ja-JP.yml (English) 2018-09-16 03:51:24 +09:00
4a925fade1 New translations ja-JP.yml (Chinese Simplified) 2018-09-16 03:51:21 +09:00
fca86f43c4 New translations ja-JP.yml (Catalan) 2018-09-16 03:51:18 +09:00
12005de4c0 Merge pull request #2712 from syuilo/greenkeeper/vue-cropperjs-2.2.2
Update vue-cropperjs to the latest version 🚀
2018-09-16 03:50:03 +09:00
2e3d0d3435 Fix bug 2018-09-16 03:48:16 +09:00
7d76887517 アニメーションを無効にするオプションを実装 2018-09-16 03:46:53 +09:00
bf39ecd1e5 New translations ja-JP.yml (French) 2018-09-16 03:01:14 +09:00
7ebee09f74 fix(package): update vue-cropperjs to version 2.2.2 2018-09-15 13:57:29 +00:00
952a49f749 revert デスクトップの動画埋め込みを廃止 2018-09-15 22:22:41 +09:00
8f8c67ad6d Merge branch 'develop' into improve-media 2018-09-15 22:15:56 +09:00
4257fed500 fix mk-media darkmode 2018-09-05 19:46:55 +09:00
299f83684b media-banner darkmode 2018-09-05 18:01:47 +09:00
ebeaef94e2 Improve media list 2018-09-05 01:08:18 +09:00
2399ba05cd wip 2018-09-04 21:07:41 +09:00
8bcfa97349 wip 2018-09-04 21:06:02 +09:00
dd3e3ddcdd wip 2018-09-04 20:21:36 +09:00
2555e23b10 wip 2018-09-04 20:01:15 +09:00
1595683904 merge upstream 2018-09-04 19:24:23 +09:00
d8dcc4da27 Use string interpolation 2018-09-01 23:17:55 +09:00
298 changed files with 5657 additions and 4367 deletions

View File

@ -101,8 +101,8 @@ drive:
# TLS # TLS
# https: # https:
# # path for certification # # path for certification
# key: example-tls-key # key: /etc/letsencrypt/live/example.tld/privkey.pem
# cert: example-tls-cert # cert: /etc/letsencrypt/live/example.tld/fullchain.pem
# Elasticsearch # Elasticsearch
# elasticsearch: # elasticsearch:

View File

@ -5,6 +5,12 @@ ChangeLog
This document describes breaking changes only. This document describes breaking changes only.
9.0.0
-----
Misskey v8.64.0 を使っている方は、9.0.0に際しては特にすべきことはありません。
Misskey v8.64.0 に満たないバージョンをお使いの方は、一旦8.64.0にアップデートして(そして起動して)から9.0.0に再度アップデートしてください。
8.0.0 8.0.0
----- -----

View File

@ -78,7 +78,7 @@ gulp.task('build:copy', ['build:copy:views', 'build:copy:lang'], () =>
]).pipe(gulp.dest('./built/')) ]).pipe(gulp.dest('./built/'))
); );
gulp.task('test', ['lint', 'mocha']); gulp.task('test', ['mocha']);
gulp.task('lint', () => gulp.task('lint', () =>
gulp.src('./src/**/*.ts') gulp.src('./src/**/*.ts')

View File

@ -112,6 +112,7 @@ common:
always-show-nsfw: "常に閲覧注意のメディアを表示する" always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿" always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない" show-full-acct: "ユーザー名のホストを省略しない"
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ" this-setting-is-this-device-only: "このデバイスのみ"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。' do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi: reversi:
@ -154,7 +155,10 @@ common:
home: "ホーム" home: "ホーム"
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
hashtag: "ハッシュタグ"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
direct: "ダイレクト投稿"
notifications: "通知" notifications: "通知"
list: "リスト" list: "リスト"
swap-left: "左に移動" swap-left: "左に移動"
@ -257,6 +261,9 @@ common/views/components/connect-failed.troubleshooter.vue:
success-desc: "正常に接続できるようです。ページを再度読み込みしてください。" success-desc: "正常に接続できるようです。ページを再度読み込みしてください。"
flush: "キャッシュの削除" flush: "キャッシュの削除"
set-version: "バージョン指定" set-version: "バージョン指定"
common/views/components/media-banner.vue:
sensitive: "閲覧注意"
click-to-show: "クリックして表示"
common/views/components/cw-button.vue: common/views/components/cw-button.vue:
hide: "隠す" hide: "隠す"
show: "もっと見る" show: "もっと見る"
@ -803,7 +810,13 @@ desktop/views/components/timeline.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
list: "リスト" list: "リスト"
hashtag: "ハッシュタグ"
add-tag-timeline: "ハッシュタグを追加"
add-list: "リストを追加"
list-name: "リスト名"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん" adjective: "さん"
@ -1128,6 +1141,8 @@ mobile/views/pages/home.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/tag.vue: mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。" no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue: mobile/views/pages/welcome.vue:

View File

@ -112,6 +112,7 @@ common:
always-show-nsfw: "常に閲覧注意のメディアを表示する" always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿" always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない" show-full-acct: "ユーザー名のホストを省略しない"
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ" this-setting-is-this-device-only: "このデバイスのみ"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。' do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi: reversi:
@ -154,7 +155,10 @@ common:
home: "Startseite" home: "Startseite"
local: "Lokal" local: "Lokal"
hybrid: "ソーシャル" hybrid: "ソーシャル"
hashtag: "ハッシュタグ"
global: "Global" global: "Global"
mentions: "あなた宛て"
direct: "ダイレクト投稿"
notifications: "Mitteilungen" notifications: "Mitteilungen"
list: "Listen" list: "Listen"
swap-left: "Nach links" swap-left: "Nach links"
@ -257,6 +261,9 @@ common/views/components/connect-failed.troubleshooter.vue:
success-desc: "Die Verbindung scheint zu funktionieren. Bitte lade die Seite neu." success-desc: "Die Verbindung scheint zu funktionieren. Bitte lade die Seite neu."
flush: "Cache leeren" flush: "Cache leeren"
set-version: "Version angeben" set-version: "Version angeben"
common/views/components/media-banner.vue:
sensitive: "閲覧注意"
click-to-show: "クリックして表示"
common/views/components/cw-button.vue: common/views/components/cw-button.vue:
hide: "隠す" hide: "隠す"
show: "もっと見る" show: "もっと見る"
@ -803,7 +810,13 @@ desktop/views/components/timeline.vue:
local: "Lokal" local: "Lokal"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "Global" global: "Global"
mentions: "あなた宛て"
messages: "メッセージ"
list: "Listen" list: "Listen"
hashtag: "ハッシュタグ"
add-tag-timeline: "ハッシュタグを追加"
add-list: "リストを追加"
list-name: "リスト名"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん" adjective: "さん"
@ -1128,6 +1141,8 @@ mobile/views/pages/home.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/tag.vue: mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。" no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue: mobile/views/pages/welcome.vue:

View File

@ -110,8 +110,9 @@ common:
verified-user: "Verified account" verified-user: "Verified account"
disable-animated-mfm: "Disable animated texts in a post" disable-animated-mfm: "Disable animated texts in a post"
always-show-nsfw: "常に閲覧注意のメディアを表示する" always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿" always-mark-nsfw: "Always post with a warning about media attachment"
show-full-acct: "Do not omit the hostname from the username" show-full-acct: "Do not omit the hostname from the username"
reduce-motion: "Reduce motion in UI"
this-setting-is-this-device-only: "Only for this device" this-setting-is-this-device-only: "Only for this device"
do-not-use-in-production: 'As this is for development, do not use this in production.' do-not-use-in-production: 'As this is for development, do not use this in production.'
reversi: reversi:
@ -154,7 +155,10 @@ common:
home: "Home" home: "Home"
local: "Local" local: "Local"
hybrid: "Social" hybrid: "Social"
hashtag: "Hashtag"
global: "Global" global: "Global"
mentions: "Mentions"
direct: "ダイレクト投稿"
notifications: "Notifications" notifications: "Notifications"
list: "Lists" list: "Lists"
swap-left: "Move to the left" swap-left: "Move to the left"
@ -257,6 +261,9 @@ common/views/components/connect-failed.troubleshooter.vue:
success-desc: "Looks like we have a connection. Please reload the page." success-desc: "Looks like we have a connection. Please reload the page."
flush: "Clean cache" flush: "Clean cache"
set-version: "Specify version" set-version: "Specify version"
common/views/components/media-banner.vue:
sensitive: "NSFW"
click-to-show: "Click to show"
common/views/components/cw-button.vue: common/views/components/cw-button.vue:
hide: "Hide" hide: "Hide"
show: "See more" show: "See more"
@ -432,6 +439,7 @@ common/views/pages/follow.vue:
following: "Following" following: "Following"
follow: "Follow" follow: "Follow"
request-pending: "Pending follow request" request-pending: "Pending follow request"
follow-processing: "Processing follow"
follow-request: "Follow request" follow-request: "Follow request"
desktop: desktop:
banner-crop-title: "Crop the part that appears as a banner" banner-crop-title: "Crop the part that appears as a banner"
@ -558,6 +566,7 @@ desktop/views/components/follow-button.vue:
following: "Following" following: "Following"
follow: "Follow" follow: "Follow"
request-pending: "Pending follow request" request-pending: "Pending follow request"
follow-processing: "Processing follow"
follow-request: "Follow request" follow-request: "Follow request"
desktop/views/components/followers-window.vue: desktop/views/components/followers-window.vue:
followers: "{}'s followers" followers: "{}'s followers"
@ -803,7 +812,13 @@ desktop/views/components/timeline.vue:
local: "Local" local: "Local"
hybrid: "Social" hybrid: "Social"
global: "Global" global: "Global"
mentions: "Mentions"
messages: "Messages"
list: "Lists" list: "Lists"
hashtag: "Hashtag"
add-tag-timeline: "Add hashtag tl"
add-list: "Add list"
list-name: "List name"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "Welcome back," welcome-back: "Welcome back,"
adjective: "-san" adjective: "-san"
@ -1031,6 +1046,7 @@ mobile/views/components/follow-button.vue:
following: "Following" following: "Following"
follow: "Follow" follow: "Follow"
request-pending: "Pending follow request" request-pending: "Pending follow request"
follow-processing: "Processing follow"
follow-request: "Follow request" follow-request: "Follow request"
mobile/views/components/friends-maker.vue: mobile/views/components/friends-maker.vue:
title: "Let's follow them" title: "Let's follow them"
@ -1128,6 +1144,8 @@ mobile/views/pages/home.vue:
local: "Local" local: "Local"
hybrid: "Social" hybrid: "Social"
global: "Global" global: "Global"
mentions: "Mentions"
messages: "Messages"
mobile/views/pages/tag.vue: mobile/views/pages/tag.vue:
no-posts-found: "No posts \"{}\" found." no-posts-found: "No posts \"{}\" found."
mobile/views/pages/welcome.vue: mobile/views/pages/welcome.vue:

View File

@ -112,6 +112,7 @@ common:
always-show-nsfw: "常に閲覧注意のメディアを表示する" always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿" always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない" show-full-acct: "ユーザー名のホストを省略しない"
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ" this-setting-is-this-device-only: "このデバイスのみ"
do-not-use-in-production: 'Esto está en desarrollo, no usarlo para producción.' do-not-use-in-production: 'Esto está en desarrollo, no usarlo para producción.'
reversi: reversi:
@ -154,7 +155,10 @@ common:
home: "Inicio" home: "Inicio"
local: "Local" local: "Local"
hybrid: "Social" hybrid: "Social"
hashtag: "ハッシュタグ"
global: "Global" global: "Global"
mentions: "あなた宛て"
direct: "ダイレクト投稿"
notifications: "Notificaciones" notifications: "Notificaciones"
list: "Listado" list: "Listado"
swap-left: "Desplazar a la izq." swap-left: "Desplazar a la izq."
@ -257,6 +261,9 @@ common/views/components/connect-failed.troubleshooter.vue:
success-desc: "Parece que la conexión ha sido posible. Por favor refresca la página." success-desc: "Parece que la conexión ha sido posible. Por favor refresca la página."
flush: "Limpiar la memoria caché" flush: "Limpiar la memoria caché"
set-version: "Escoge la versión" set-version: "Escoge la versión"
common/views/components/media-banner.vue:
sensitive: "閲覧注意"
click-to-show: "クリックして表示"
common/views/components/cw-button.vue: common/views/components/cw-button.vue:
hide: "隠す" hide: "隠す"
show: "もっと見る" show: "もっと見る"
@ -803,7 +810,13 @@ desktop/views/components/timeline.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
list: "リスト" list: "リスト"
hashtag: "ハッシュタグ"
add-tag-timeline: "ハッシュタグを追加"
add-list: "リストを追加"
list-name: "リスト名"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "Bienvenido/a de vuelta," welcome-back: "Bienvenido/a de vuelta,"
adjective: "-san" adjective: "-san"
@ -1128,6 +1141,8 @@ mobile/views/pages/home.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/tag.vue: mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。" no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue: mobile/views/pages/welcome.vue:

View File

@ -112,8 +112,9 @@ common:
always-show-nsfw: "常に閲覧注意のメディアを表示する" always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿" always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない" show-full-acct: "ユーザー名のホストを省略しない"
this-setting-is-this-device-only: "このデバイスのみ" reduce-motion: "Réduire les animations dans linterface utilisateur"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。' this-setting-is-this-device-only: "Uniquement sur cet appareil"
do-not-use-in-production: 'Il sagit dune version de développement. Ne pas utiliser dans un environnement de production.'
reversi: reversi:
drawn: "Partie nulle" drawn: "Partie nulle"
my-turn: "Cest votre tour" my-turn: "Cest votre tour"
@ -154,7 +155,10 @@ common:
home: "Accueil" home: "Accueil"
local: "Local" local: "Local"
hybrid: "Social" hybrid: "Social"
hashtag: "ハッシュタグ"
global: "Global" global: "Global"
mentions: "Mentions"
direct: "ダイレクト投稿"
notifications: "Notifications" notifications: "Notifications"
list: "Liste" list: "Liste"
swap-left: "Déplacer à gauche" swap-left: "Déplacer à gauche"
@ -257,9 +261,12 @@ common/views/components/connect-failed.troubleshooter.vue:
success-desc: "Succès de la connexion au serveur de Misskey. Veuillez recharger la page." success-desc: "Succès de la connexion au serveur de Misskey. Veuillez recharger la page."
flush: "Vider le cache" flush: "Vider le cache"
set-version: "Choisissez une version" set-version: "Choisissez une version"
common/views/components/media-banner.vue:
sensitive: "Contenu sensible"
click-to-show: "Cliquer pour afficher"
common/views/components/cw-button.vue: common/views/components/cw-button.vue:
hide: "隠す" hide: "Masquer"
show: "もっと見る" show: "Voir plus"
common/views/components/messaging.vue: common/views/components/messaging.vue:
search-user: "Trouver un·e utilisateur·trice" search-user: "Trouver un·e utilisateur·trice"
you: "Vous" you: "Vous"
@ -465,7 +472,7 @@ desktop/views/components/charts.vue:
notes: "Publications" notes: "Publications"
users: "Utilisateurs" users: "Utilisateurs"
drive: "Drive" drive: "Drive"
network: "ネットワーク" network: "Réseau"
charts: charts:
notes: "投稿の増減 (統合)" notes: "投稿の増減 (統合)"
local-notes: "投稿の増減 (ローカル)" local-notes: "投稿の増減 (ローカル)"
@ -477,9 +484,9 @@ desktop/views/components/charts.vue:
drive-total: "ドライブ使用量の累計" drive-total: "ドライブ使用量の累計"
drive-files: "ドライブのファイル数の増減" drive-files: "ドライブのファイル数の増減"
drive-files-total: "ドライブのファイル数の累計" drive-files-total: "ドライブのファイル数の累計"
network-requests: "リクエスト" network-requests: "Requêtes"
network-time: "応答時間" network-time: "Temps de réponse"
network-usage: "通信量" network-usage: "Traffic"
desktop/views/components/choose-file-from-drive-window.vue: desktop/views/components/choose-file-from-drive-window.vue:
choose-file: "Sélection de fichiers" choose-file: "Sélection de fichiers"
upload: "Téléverser des fichiers à partir de votre ordinateur" upload: "Téléverser des fichiers à partir de votre ordinateur"
@ -673,7 +680,7 @@ desktop/views/components/settings.vue:
fetch-on-scroll-desc: "Chargement automatique du contenu lors du défilement de la page." fetch-on-scroll-desc: "Chargement automatique du contenu lors du défilement de la page."
note-visibility: "Visibilité de la publication" note-visibility: "Visibilité de la publication"
default-note-visibility: "Visibilité par défaut" default-note-visibility: "Visibilité par défaut"
remember-note-visibility: "投稿の公開範囲を記憶する" remember-note-visibility: "Se souvenir du mode de visibilité de la publication"
auto-popout: "Fenêtre contextuelle automatique" auto-popout: "Fenêtre contextuelle automatique"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。" auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "Paramètres avancés" advanced: "Paramètres avancés"
@ -786,7 +793,7 @@ desktop/views/components/settings.profile.vue:
birthday: "Date de naissance" birthday: "Date de naissance"
save: "Mettre à jour le profil" save: "Mettre à jour le profil"
locked-account: "Protéger votre compte" locked-account: "Protéger votre compte"
is-locked: "フォローを承認制にする" is-locked: "Demande dabonnement en attente dapprobation"
other: "Autre" other: "Autre"
is-bot: "Ce compte est un Bot" is-bot: "Ce compte est un Bot"
is-cat: "Ce compte est un Chat" is-cat: "Ce compte est un Chat"
@ -803,7 +810,13 @@ desktop/views/components/timeline.vue:
local: "Local" local: "Local"
hybrid: "Social" hybrid: "Social"
global: "Global" global: "Global"
mentions: "Mentions"
messages: "メッセージ"
list: "Listes" list: "Listes"
hashtag: "ハッシュタグ"
add-tag-timeline: "ハッシュタグを追加"
add-list: "リストを追加"
list-name: "リスト名"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "Content de vous revoir !" welcome-back: "Content de vous revoir !"
adjective: "さん" adjective: "さん"
@ -1128,6 +1141,8 @@ mobile/views/pages/home.vue:
local: "Local" local: "Local"
hybrid: "Social" hybrid: "Social"
global: "Global" global: "Global"
mentions: "Mentions"
messages: "メッセージ"
mobile/views/pages/tag.vue: mobile/views/pages/tag.vue:
no-posts-found: "Pas de message avec un hashtag {} trouvé." no-posts-found: "Pas de message avec un hashtag {} trouvé."
mobile/views/pages/welcome.vue: mobile/views/pages/welcome.vue:
@ -1168,9 +1183,9 @@ mobile/views/pages/settings/settings.profile.vue:
avatar: "Avatar" avatar: "Avatar"
banner: "Bannière" banner: "Bannière"
is-cat: "Ce compte est un Bot" is-cat: "Ce compte est un Bot"
is-locked: "フォローを承認制にする" is-locked: "Demande dabonnement en attente dapprobation"
advanced: "その他" advanced: "Avancé"
privacy: "プライバシー" privacy: "Vie privée"
save: "Mettre à jour le profil" save: "Mettre à jour le profil"
saved: "Profil mis à jour avec succès" saved: "Profil mis à jour avec succès"
uploading: "En cours d'envoi" uploading: "En cours d'envoi"
@ -1192,7 +1207,7 @@ mobile/views/pages/settings.vue:
dark-mode: "Mode nuit" dark-mode: "Mode nuit"
i-am-under-limited-internet: "J'ai un accès Internet limité" i-am-under-limited-internet: "J'ai un accès Internet limité"
circle-icons: "Utiliser des icônes circulaires" circle-icons: "Utiliser des icônes circulaires"
contrasted-acct: "ユーザー名にコントラストを付ける" contrasted-acct: "Nom dutilisateur contrasté"
timeline: "Fil d'actualité" timeline: "Fil d'actualité"
show-reply-target: "Afficher les réponses" show-reply-target: "Afficher les réponses"
show-my-renotes: "Afficher mes republications" show-my-renotes: "Afficher mes republications"

View File

@ -112,6 +112,7 @@ common:
always-show-nsfw: "常に閲覧注意のメディアを表示する" always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿" always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない" show-full-acct: "ユーザー名のホストを省略しない"
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ" this-setting-is-this-device-only: "このデバイスのみ"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。' do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi: reversi:
@ -154,7 +155,10 @@ common:
home: "ホーム" home: "ホーム"
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
hashtag: "ハッシュタグ"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
direct: "ダイレクト投稿"
notifications: "通知" notifications: "通知"
list: "リスト" list: "リスト"
swap-left: "左に移動" swap-left: "左に移動"
@ -257,6 +261,9 @@ common/views/components/connect-failed.troubleshooter.vue:
success-desc: "正常に接続できるようです。ページを再度読み込みしてください。" success-desc: "正常に接続できるようです。ページを再度読み込みしてください。"
flush: "キャッシュの削除" flush: "キャッシュの削除"
set-version: "バージョン指定" set-version: "バージョン指定"
common/views/components/media-banner.vue:
sensitive: "閲覧注意"
click-to-show: "クリックして表示"
common/views/components/cw-button.vue: common/views/components/cw-button.vue:
hide: "隠す" hide: "隠す"
show: "もっと見る" show: "もっと見る"
@ -803,7 +810,13 @@ desktop/views/components/timeline.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
list: "リスト" list: "リスト"
hashtag: "ハッシュタグ"
add-tag-timeline: "ハッシュタグを追加"
add-list: "リストを追加"
list-name: "リスト名"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん" adjective: "さん"
@ -1128,6 +1141,8 @@ mobile/views/pages/home.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/tag.vue: mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。" no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue: mobile/views/pages/welcome.vue:

View File

@ -119,6 +119,7 @@ common:
always-show-nsfw: "常に閲覧注意のメディアを表示する" always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿" always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない" show-full-acct: "ユーザー名のホストを省略しない"
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ" this-setting-is-this-device-only: "このデバイスのみ"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。' do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
@ -165,7 +166,10 @@ common:
home: "ホーム" home: "ホーム"
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
hashtag: "ハッシュタグ"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
direct: "ダイレクト投稿"
notifications: "通知" notifications: "通知"
list: "リスト" list: "リスト"
swap-left: "左に移動" swap-left: "左に移動"
@ -277,6 +281,35 @@ common/views/components/connect-failed.troubleshooter.vue:
flush: "キャッシュの削除" flush: "キャッシュの削除"
set-version: "バージョン指定" set-version: "バージョン指定"
common/views/components/media-banner.vue:
sensitive: "閲覧注意"
click-to-show: "クリックして表示"
common/views/components/theme.vue:
light-theme: "非ダークモード時に使用するテーマ"
dark-theme: "ダークモード時に使用するテーマ"
install-a-theme: "テーマのインストール"
theme-code: "テーマコード"
install: "インストール"
installed: "「{}」をインストールしました"
create-a-theme: "テーマの作成"
save-created-theme: "テーマを保存"
primary-color: "プライマリ カラー"
secondary-color: "セカンダリ カラー"
text-color: "文字色"
base-theme: "ベーステーマ"
base-theme-light: "Light"
base-theme-dark: "Dark"
theme-name: "テーマ名"
preview-created-theme: "プレビュー"
invalid-theme: "テーマが正しくありません。"
already-installed: "既にそのテーマはインストールされています。"
saved: "保存しました"
installed-themes: "インストールされたテーマ"
select-theme: "テーマを選択してください"
uninstall: "アンインストール"
uninstalled: "「{}」をアンインストールしました"
common/views/components/cw-button.vue: common/views/components/cw-button.vue:
hide: "隠す" hide: "隠す"
show: "もっと見る" show: "もっと見る"
@ -320,6 +353,7 @@ common/views/components/note-menu.vue:
copy-link: "リンクをコピー" copy-link: "リンクをコピー"
favorite: "お気に入り" favorite: "お気に入り"
pin: "ピン留め" pin: "ピン留め"
unpin: "ピン留め解除"
delete: "削除" delete: "削除"
delete-confirm: "この投稿を削除しますか?" delete-confirm: "この投稿を削除しますか?"
remote: "投稿元で見る" remote: "投稿元で見る"
@ -480,6 +514,7 @@ common/views/pages/follow.vue:
following: "フォロー中" following: "フォロー中"
follow: "フォロー" follow: "フォロー"
request-pending: "フォロー許可待ち" request-pending: "フォロー許可待ち"
follow-processing: "フォロー処理中"
follow-request: "フォロー申請" follow-request: "フォロー申請"
desktop: desktop:
@ -622,6 +657,7 @@ desktop/views/components/follow-button.vue:
following: "フォロー中" following: "フォロー中"
follow: "フォロー" follow: "フォロー"
request-pending: "フォロー許可待ち" request-pending: "フォロー許可待ち"
follow-processing: "フォロー処理中"
follow-request: "フォロー申請" follow-request: "フォロー申請"
desktop/views/components/followers-window.vue: desktop/views/components/followers-window.vue:
@ -753,6 +789,7 @@ desktop/views/components/settings.vue:
2fa: "二段階認証" 2fa: "二段階認証"
other: "その他" other: "その他"
license: "ライセンス" license: "ライセンス"
theme: "テーマ"
behaviour: "動作" behaviour: "動作"
fetch-on-scroll: "スクロールで自動読み込み" fetch-on-scroll: "スクロールで自動読み込み"
@ -771,9 +808,10 @@ desktop/views/components/settings.vue:
choose-wallpaper: "壁紙を選択" choose-wallpaper: "壁紙を選択"
delete-wallpaper: "壁紙を削除" delete-wallpaper: "壁紙を削除"
dark-mode: "ダークモード" dark-mode: "ダークモード"
use-shadow: "UIに影を使用"
rounded-corners: "UIの角を丸める"
circle-icons: "円形のアイコンを使用" circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける" contrasted-acct: "ユーザー名にコントラストを付ける"
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する" post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する" suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
show-clock-on-header: "右上に時計を表示する" show-clock-on-header: "右上に時計を表示する"
@ -782,7 +820,6 @@ desktop/views/components/settings.vue:
show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する" show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する" show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する"
show-maps: "マップの自動展開" show-maps: "マップの自動展開"
show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
sound: "サウンド" sound: "サウンド"
enable-sounds: "サウンドを有効にする" enable-sounds: "サウンドを有効にする"
@ -908,7 +945,13 @@ desktop/views/components/timeline.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
list: "リスト" list: "リスト"
hashtag: "ハッシュタグ"
add-tag-timeline: "ハッシュタグを追加"
add-list: "リストを追加"
list-name: "リスト名"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
@ -1191,6 +1234,7 @@ mobile/views/components/follow-button.vue:
following: "フォロー中" following: "フォロー中"
follow: "フォロー" follow: "フォロー"
request-pending: "フォロー許可待ち" request-pending: "フォロー許可待ち"
follow-processing: "フォロー処理中"
follow-request: "フォロー申請" follow-request: "フォロー申請"
mobile/views/components/friends-maker.vue: mobile/views/components/friends-maker.vue:
@ -1309,6 +1353,8 @@ mobile/views/pages/home.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/tag.vue: mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。" no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
@ -1400,6 +1446,7 @@ mobile/views/pages/settings.vue:
notification-position: "通知の表示" notification-position: "通知の表示"
notification-position-bottom: "下" notification-position-bottom: "下"
notification-position-top: "上" notification-position-top: "上"
theme: "テーマ"
behavior: "動作" behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み" fetch-on-scroll: "スクロールで自動読み込み"
note-visibility: "投稿の公開範囲" note-visibility: "投稿の公開範囲"

View File

@ -13,12 +13,12 @@ common:
rich-contents: "投稿" rich-contents: "投稿"
rich-contents-desc: "思っとること、タイガースの実況、他に言いたいことがあればなんでも言ってええで。いろんな構文あるから、好きにつこうてくれや。画像や動画、アンケートも添付できるで。" rich-contents-desc: "思っとること、タイガースの実況、他に言いたいことがあればなんでも言ってええで。いろんな構文あるから、好きにつこうてくれや。画像や動画、アンケートも添付できるで。"
reaction: "リアクション" reaction: "リアクション"
reaction-desc: "あなたの気持ちを伝える最も簡単な方法です。Misskeyは、他のユーザーの投稿に様々なリアクション付けることができます。いちどMisskeyのリアクション機能を体験してしまうと、もう「いいね」の概念しか存在しないSNSには戻れなくなるかもしれません。" reaction-desc: "「何思っとるか言うてみ?」言われても、わからんわ!リアクション使うて、エモーションをダイレクトに伝えるんや!Misskeyは、他のユーザーの投稿にいろんなリアクション付けられるんや。もう「いいね」とかいうもんだけのSNSには戻れへんわな。551の豚まん食うてみもう他の豚まん食えへんで"
ui: "インターフェス" ui: "インターフェス"
ui-desc: "どのようなUIが使いやすいかは人それぞれです。だから、Misskeyは自由度の高いUIを持っています。レイアウトやデザインを調整したり、カスタマイズ可能な様々なウィジェットを配置したりして、自分だけのホームを作ってください。" ui-desc: "このUIええ言うてたで、知らんけど。あんたの好みのUIなんて知ったこっちゃない。Misskeyは好きにいじれるからな、レイアウトやデザイン変えたり、色んなウィジェットひっつけたりして、あんただけのMisskey作って楽しんでな"
drive: "ドライブ" drive: "ドライブ"
drive-desc: "以前投稿したことのある画像をまた投稿したくなったことはありませんか?もしくは、アップロードしたファイルフォルダ分けして整理したくなったことはありませんかMisskeyの根幹に組み込まれたドライブ機能によってそれらが解決します。ファイルの共有も簡単です。" drive-desc: "「こないだの画像、どこやったかな…また投稿したいんやけど…」「さっきのファイルあのフォルダに直しといて」そんなこと言わんとって。Misskeyはもとからドライブ機能持っとるさかい、心配あらへん。ファイルの「わけわけ」したってな。"
outro: "他にもMisskeyにしかない機能はまだまだあるので、ぜひあなた自身の目で確かめてください。Misskeyは分散型SNSなので、このインスタンスが気に入らなければ他のインスタンスを試すこともできます。それでは、GLHF!" outro: "Misskeyの機能は無限大や知らんけど。知らん言うとるやんけ、あんたが見に行けやMisskeyは分散型SNSやから、ここがあかんくても他がある。阪神でもオリックスでもワイは応援するで"
adblock: adblock:
detected: "広告ブロッカーを無効にしてや" detected: "広告ブロッカーを無効にしてや"
warning: "<strong>Misskeyは広告を掲載してへん</strong>けど、広告をブロックしはる機能がおると一部の機能が利用できんくなったり、不具合が発生するかも分からん。知らんけど。" warning: "<strong>Misskeyは広告を掲載してへん</strong>けど、広告をブロックしはる機能がおると一部の機能が利用できんくなったり、不具合が発生するかも分からん。知らんけど。"
@ -84,11 +84,11 @@ common:
note-visibility: note-visibility:
public: "公開" public: "公開"
home: "ホーム" home: "ホーム"
home-desc: "ホームタイムラインにのみ公開" home-desc: "ホームタイムライン以外に見せんとって"
followers: "フォロワー" followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開" followers-desc: "自分のフォロワー以外に見せんとって"
specified: "ダイレクト" specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開" specified-desc: "今から言うユーザー以外に見せんとってや"
private: "非公開" private: "非公開"
note-placeholders: note-placeholders:
a: "今なにしてん?" a: "今なにしてん?"
@ -109,11 +109,12 @@ common:
use-contrast-reversi-stones: "リバーシのアイコンにコントラストをつけんで!" use-contrast-reversi-stones: "リバーシのアイコンにコントラストをつけんで!"
verified-user: "アメちゃん付きアカウント" verified-user: "アメちゃん付きアカウント"
disable-animated-mfm: "投稿内のちょろちょろ動いてんのを止める" disable-animated-mfm: "投稿内のちょろちょろ動いてんのを止める"
always-show-nsfw: "常に閲覧注意のメディアを表示する" always-show-nsfw: "閲覧注意?見せたらあかん?そんなん知らんわ、見せろや!"
always-mark-nsfw: "常にメディアを閲覧注意として投稿" always-mark-nsfw: "わからんからとりあえずメディアは見せたらあかん"
show-full-acct: "ユーザー名のホストを省略しない" show-full-acct: "ユーザー名のホストも出したる"
reduce-motion: "UI、動き過ぎや、静かにしてや"
this-setting-is-this-device-only: "このデバイスのみ" this-setting-is-this-device-only: "このデバイスのみ"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。' do-not-use-in-production: '開発ビルド。本番環境で使わんといて!知らんで!'
reversi: reversi:
drawn: "おあいこ" drawn: "おあいこ"
my-turn: "あんさんのターンや" my-turn: "あんさんのターンや"
@ -154,7 +155,10 @@ common:
home: "うち" home: "うち"
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
hashtag: "ハッシュタグ"
global: "グローバル" global: "グローバル"
mentions: "あんた宛て"
direct: "ダイレクト投稿"
notifications: "通知" notifications: "通知"
list: "リスト" list: "リスト"
swap-left: "左に移動や!" swap-left: "左に移動や!"
@ -257,9 +261,12 @@ common/views/components/connect-failed.troubleshooter.vue:
success-desc: "正常に接続できるようやわ。ページを再度読み込みしてな。" success-desc: "正常に接続できるようやわ。ページを再度読み込みしてな。"
flush: "キャッシュの削除" flush: "キャッシュの削除"
set-version: "バージョン指定" set-version: "バージョン指定"
common/views/components/media-banner.vue:
sensitive: "見せたらあかん"
click-to-show: "押してみ、見せたるわ"
common/views/components/cw-button.vue: common/views/components/cw-button.vue:
hide: "隠す" hide: "見せへんわ"
show: "もっと見る" show: "もっとあるやろ!"
common/views/components/messaging.vue: common/views/components/messaging.vue:
search-user: "ユーザーを探す" search-user: "ユーザーを探す"
you: "あんさん" you: "あんさん"
@ -296,7 +303,7 @@ common/views/components/note-menu.vue:
pin: "ピン留め" pin: "ピン留め"
delete: "ほかす" delete: "ほかす"
delete-confirm: "この投稿を削除してもええか?" delete-confirm: "この投稿を削除してもええか?"
remote: "投稿元で見る" remote: "投稿元に行ってみよか"
common/views/components/poll.vue: common/views/components/poll.vue:
vote-to: "「{}」に投票や!" vote-to: "「{}」に投票や!"
vote-count: "{}票" vote-count: "{}票"
@ -311,7 +318,7 @@ common/views/components/poll-editor.vue:
add: "+選択肢を追加" add: "+選択肢を追加"
destroy: "アンケートをほかそ" destroy: "アンケートをほかそ"
common/views/components/reaction-picker.vue: common/views/components/reaction-picker.vue:
choose-reaction: "リアクションを選択" choose-reaction: "リアクション、どれにするんや?"
common/views/components/signin.vue: common/views/components/signin.vue:
username: "ユーザー名" username: "ユーザー名"
password: "パスワード" password: "パスワード"
@ -323,7 +330,7 @@ common/views/components/signin.vue:
login-failed: "なんかログインできんかったわ。ユーザー名とパスワードとかを確認してや。" login-failed: "なんかログインできんかったわ。ユーザー名とパスワードとかを確認してや。"
common/views/components/signup.vue: common/views/components/signup.vue:
invitation-code: "招待コード" invitation-code: "招待コード"
invitation-info: "招待コードをお持ちでない方は、<a href=\"{}\">管理者</a>まで連絡ください。" invitation-info: "招待コードをもっとらんのやったら、<a href=\"{}\">管理者</a>まで連絡してや。"
username: "ユーザー名" username: "ユーザー名"
checking: "確認中や…" checking: "確認中や…"
available: "使えるで" available: "使えるで"
@ -331,7 +338,7 @@ common/views/components/signup.vue:
error: "通信あかんわ" error: "通信あかんわ"
invalid-format: "a~z、A~Z、0~9、_が使えるで" invalid-format: "a~z、A~Z、0~9、_が使えるで"
too-short: "1文字以上やで" too-short: "1文字以上やで"
too-long: "20文字以内でお願いします" too-long: "20文字以内で"
password: "パスワード" password: "パスワード"
password-placeholder: "8文字以上にしときや" password-placeholder: "8文字以上にしときや"
weak-password: "へぼいパスワード" weak-password: "へぼいパスワード"
@ -345,8 +352,8 @@ common/views/components/signup.vue:
create: "アカウント作成" create: "アカウント作成"
some-error: "何かよう分からんけど、アカウントの作成に失敗してしもたわ。すまんがもっぺん試してくれへんか?" some-error: "何かよう分からんけど、アカウントの作成に失敗してしもたわ。すまんがもっぺん試してくれへんか?"
common/views/components/special-message.vue: common/views/components/special-message.vue:
new-year: "Happy New Year!" new-year: "おおきに。今年もよろしゅう。"
christmas: "Merry Christmas!" christmas: "メリークリスマス!"
common/views/components/stream-indicator.vue: common/views/components/stream-indicator.vue:
connecting: "つないどるで" connecting: "つないどるで"
reconnecting: "つなぎ直すで" reconnecting: "つなぎ直すで"
@ -363,19 +370,19 @@ common/views/components/uploader.vue:
common/views/components/visibility-chooser.vue: common/views/components/visibility-chooser.vue:
public: "公開" public: "公開"
home: "ホーム" home: "ホーム"
home-desc: "ホームタイムラインにのみ公開" home-desc: "ホームタイムライン以外に見せんとって"
followers: "フォロワー" followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開" followers-desc: "自分のフォロワー以外に見せんとって"
specified: "ダイレクト" specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開" specified-desc: "今から言うユーザー以外に見せんとってや"
private: "非公開" private: "非公開"
common/views/components/trends.vue: common/views/components/trends.vue:
count: "{}人が投稿" count: "{}人が投稿"
empty: "トレンドなし" empty: "流行は自分で作るんや"
common/views/widgets/broadcast.vue: common/views/widgets/broadcast.vue:
fetching: "見てみるわ…" fetching: "見てみるわ…"
no-broadcasts: "お知らせはあらへんで" no-broadcasts: "お知らせはあらへんで"
have-a-nice-day: "良い一日を" have-a-nice-day: "おおきに"
next: "次" next: "次"
common/views/widgets/calendar.vue: common/views/widgets/calendar.vue:
year: "{}年" year: "{}年"
@ -429,21 +436,21 @@ common/views/widgets/tips.vue:
tips-line25: "対応ブラウザやったらMisskeyを開いとらんでも通知を受け取れんで" tips-line25: "対応ブラウザやったらMisskeyを開いとらんでも通知を受け取れんで"
common/views/pages/follow.vue: common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中" signed-in-as: "{}としてサインイン中"
following: "フォロー" following: "フォローしとる"
follow: "フォロー" follow: "フォロー"
request-pending: "フォロー許可待ち" request-pending: "フォローの許し待っとる"
follow-request: "フォロー申請" follow-request: "フォロー許してくれや!言うてみる"
desktop: desktop:
banner-crop-title: "バナーとして表示する部分を選択" banner-crop-title: "どこバナーとして出す?"
banner: "バナー" banner: "バナー"
uploading-banner: "新しいバナーをアップロードしとるで" uploading-banner: "新しいバナーをアップロードしとるで"
banner-updated: "バナーを更新したで" banner-updated: "バナーを更新したで"
choose-banner: "バナーにする画像選んでや" choose-banner: "バナーにする画像選んでや"
avatar-crop-title: "どこアバターとして出しとく?" avatar-crop-title: "どこアバターとして出しとく?"
avatar: "アバター" avatar: "アバター"
uploading-avatar: "新しいアバターをアップロードしています" uploading-avatar: "新しいアバターをアップロードしとるで"
avatar-updated: "アバターを更新しました" avatar-updated: "アバターを更新した"
choose-avatar: "アバターにする画像を選択" choose-avatar: "アバターにする画像選んでや"
invalid-filetype: "この形式のファイル無理やねん" invalid-filetype: "この形式のファイル無理やねん"
desktop/views/components/activity.chart.vue: desktop/views/components/activity.chart.vue:
total: "Black ... Total" total: "Black ... Total"
@ -452,7 +459,7 @@ desktop/views/components/activity.chart.vue:
renotes: "Green ... Renotes" renotes: "Green ... Renotes"
desktop/views/components/activity.vue: desktop/views/components/activity.vue:
title: "アクティビティ" title: "アクティビティ"
toggle: "表示を切り替え" toggle: "表示変える"
desktop/views/components/calendar.vue: desktop/views/components/calendar.vue:
title: "{1}年 {2} 月" title: "{1}年 {2} 月"
prev: "前の月" prev: "前の月"
@ -470,7 +477,7 @@ desktop/views/components/charts.vue:
notes: "投稿の増減(統合)" notes: "投稿の増減(統合)"
local-notes: "投稿の増減 (ローカル)" local-notes: "投稿の増減 (ローカル)"
remote-notes: "投稿の増減 (リモート)" remote-notes: "投稿の増減 (リモート)"
notes-total: "投稿の累計" notes-total: "全部の投稿"
users: "ユーザーの増減" users: "ユーザーの増減"
users-total: "ユーザーの累計" users-total: "ユーザーの累計"
drive: "ドライブ使用量の増減" drive: "ドライブ使用量の増減"
@ -481,21 +488,21 @@ desktop/views/components/charts.vue:
network-time: "応答時間" network-time: "応答時間"
network-usage: "通信量" network-usage: "通信量"
desktop/views/components/choose-file-from-drive-window.vue: desktop/views/components/choose-file-from-drive-window.vue:
choose-file: "ファイル選択" choose-file: "ファイル選択しとる"
upload: "PCからドライブにファイルをアップロード" upload: "PCからドライブにファイル上げる"
cancel: "やめとくわ" cancel: "やめとくわ"
ok: "決定" ok: "そうする"
choose-prompt: "ファイルを選択" choose-prompt: "ファイル選んでや"
desktop/views/components/choose-folder-from-drive-window.vue: desktop/views/components/choose-folder-from-drive-window.vue:
cancel: "やめとくわ" cancel: "やめとくわ"
ok: "決定" ok: "そうする"
choose-prompt: "フォルダを選択" choose-prompt: "フォルダ選んでや"
desktop/views/components/crop-window.vue: desktop/views/components/crop-window.vue:
skip: "クロップをスキップ" skip: "クロップせーへんわ"
cancel: "やめとくわ" cancel: "やめとくわ"
ok: "決定" ok: "そうする"
desktop/views/components/drive-window.vue: desktop/views/components/drive-window.vue:
used: "使用中" used: "使うとる"
drive: "ドライブ" drive: "ドライブ"
desktop/views/components/drive.file.vue: desktop/views/components/drive.file.vue:
avatar: "アイコン" avatar: "アイコン"
@ -531,17 +538,17 @@ desktop/views/components/drive.nav-folder.vue:
desktop/views/components/drive.vue: desktop/views/components/drive.vue:
search: "検索" search: "検索"
load-more: "もっとあらへんのか!" load-more: "もっとあらへんのか!"
empty-draghover: "ドロップですか?いいですよ、ボクはカワイイですからね" empty-draghover: "ドロップするにゃ!お魚以外なら何でもいいにゃ!"
empty-drive: "ドライブには何もあらへんで。" empty-drive: "ドライブには何もあらへんで。"
empty-drive-description: "右クリックして「ファイルをアップロード」を選んだり、ファイルをドラッグ&ドロップすることでもアップロードできます。" empty-drive-description: "右クリックして「ファイルをアップロード」を選んだり、ファイルをドラッグ&ドロップすることでもアップロードできんねん。"
empty-folder: "このフォルダーは空です" empty-folder: "このフォルダーは空"
unable-to-process: "あかん、無理やわ" unable-to-process: "あかん、無理やわ"
circular-reference-detected: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。" circular-reference-detected: "移動先のフォルダーは、移動するフォルダーのサブフォルダー。"
unhandled-error: "ようわからん" unhandled-error: "ようわからん"
url-upload: "URLアップロード" url-upload: "URLアップロード"
url-of-file: "このURLのファイルをアップロードしたいねん" url-of-file: "このURLのファイルをアップロードしたいねん"
url-upload-requested: "アップロードしたい言うといたで" url-upload-requested: "アップロードしたい言うといたで"
may-take-time: "アップロードが完了するまで時間かかる場合があります。" may-take-time: "アップロード終わるまで時間かかるわ、知らんけど。たこ焼き何個食べれるやろか…"
create-folder: "フォルダー作成" create-folder: "フォルダー作成"
folder-name: "フォルダー名" folder-name: "フォルダー名"
contextmenu: contextmenu:
@ -572,7 +579,7 @@ desktop/views/components/friends-maker.vue:
empty: "おもろいユーザー居らんかったわ" empty: "おもろいユーザー居らんかったわ"
fetching: "読みこんどるで…" fetching: "読みこんどるで…"
refresh: "もっとあるやろ!" refresh: "もっとあるやろ!"
close: "閉じる" close: "さいなら"
desktop/views/components/game-window.vue: desktop/views/components/game-window.vue:
game: "ゲーム" game: "ゲーム"
desktop/views/components/home.vue: desktop/views/components/home.vue:
@ -599,9 +606,9 @@ desktop/views/components/notes.note.vue:
reply: "返す" reply: "返す"
renote: "Renote" renote: "Renote"
add-reaction: "リアクション" add-reaction: "リアクション"
detail: "詳細" detail: "もっと"
private: "この投稿は非公開です" private: "この投稿は見せられへんわ"
deleted: "この投稿は削除されました" deleted: "この投稿なんか無くなってもうたわ"
desktop/views/components/notes.vue: desktop/views/components/notes.vue:
error: "あかん、読み込めへんわ" error: "あかん、読み込めへんわ"
retry: "もっぺん" retry: "もっぺん"
@ -649,11 +656,11 @@ desktop/views/components/renote-form.vue:
quote: "持ってくる…" quote: "持ってくる…"
cancel: "やめとくわ" cancel: "やめとくわ"
renote: "Renote" renote: "Renote"
reposting: "しています..." reposting: "やっとります..."
success: "Renoteしました!" success: "Renoteした"
failure: "Renoteに失敗しました" failure: "Renoteでけへん"
desktop/views/components/renote-form-window.vue: desktop/views/components/renote-form-window.vue:
title: "この投稿をRenoteしますか?" title: "この投稿をRenoteしてもええか?"
desktop/views/components/settings-window.vue: desktop/views/components/settings-window.vue:
settings: "設定" settings: "設定"
desktop/views/components/settings.vue: desktop/views/components/settings.vue:
@ -662,27 +669,27 @@ desktop/views/components/settings.vue:
apps: "アプリ" apps: "アプリ"
mute: "ミュート" mute: "ミュート"
drive: "ドライブ" drive: "ドライブ"
security: "セキュリティ" security: "守護神セキュリティ"
signin: "サインイン履歴" signin: "こんな感じでサインインしたらしいで"
password: "パスワード" password: "パスワード"
2fa: "二段階認証" 2fa: "二段階認証"
other: "その他" other: "その他"
license: "ライセンス" license: "ライセンス"
behaviour: "動" behaviour: "動"
fetch-on-scroll: "スクロールで自動読み込み" fetch-on-scroll: "スクロールしたらもっと見せてや"
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。" fetch-on-scroll-desc: "ページを下までスクロールしたときに自動でもっとコンテンツを読み込むで。"
note-visibility: "投稿の公開範囲" note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲" default-note-visibility: "もとからの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する" remember-note-visibility: "投稿の公開範囲おぼえといて"
auto-popout: "ウィンドウの自動ポップアウト" auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。" auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトすんで。この設定はブラウザに記憶されんで。"
advanced: "詳細設定" advanced: "もっと設定"
api-via-stream: "ストリームを経由したAPIリクエスト" api-via-stream: "ストリームを経由したAPIリクエスト"
api-via-stream-desc: "この設定をオンにすると、WebSocket接続を経由してAPIリクエストが行われんで(パフォーマンス向上するかも、知らんけど)。オフにすると、ネイティブの fetch API が利用されるで。この設定はこのデバイスのみ有効やで。" api-via-stream-desc: "この設定をオンにすると、WebSocket接続を経由してAPIリクエストが行われんで(パフォーマンス向上するかも、知らんけど)。オフにすると、ネイティブの fetch API が利用されるで。この設定はこのデバイスのみ有効やで。"
display: "デザインと表示" display: "見た感じ"
customize: "ホームをカスタマイズ" customize: "ホームをカスタマイズ"
choose-wallpaper: "壁紙を選択" choose-wallpaper: "壁紙選ぶ"
delete-wallpaper: "壁紙を削除" delete-wallpaper: "壁紙ほかす"
dark-mode: "夜にすんで" dark-mode: "夜にすんで"
circle-icons: "アイコンもタコ焼きも丸いやんな?" circle-icons: "アイコンもタコ焼きも丸いやんな?"
contrasted-acct: "ユーザー名ようわからんし見やすしといて" contrasted-acct: "ユーザー名ようわからんし見やすしといて"
@ -715,39 +722,39 @@ desktop/views/components/settings.vue:
cache-cleared: "キャッシュお掃除したで" cache-cleared: "キャッシュお掃除したで"
cache-cleared-desc: "もっぺんページ読みこみ直してくれや" cache-cleared-desc: "もっぺんページ読みこみ直してくれや"
auto-watch: "投稿勝手にウォッチしといてや" auto-watch: "投稿勝手にウォッチしといてや"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。" auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を勝手に受け取るようにすんで。"
about: "Misskeyについて" about: "Misskeyってなんや?"
operator: "このサーバーの運営者" operator: "このサーバー誰のや"
update: "Misskey Update" update: "Misskey Update"
version: "バージョン:" version: "バージョン:"
latest-version: "最新のバージョン:" latest-version: "最新のバージョン:"
update-checking: "アップデートを確認中" update-checking: "アップデートはあらへんか…"
do-update: "アップデートを確認" do-update: "アップデートあるか見てみる"
update-settings: "詳細設定" update-settings: "もっと設定"
prevent-update: "アップデートを延期する(非推奨)" prevent-update: "アップデートしたないわ、また今度や(やめときや)"
prevent-update-desc: "この設定をオンにしてもアップデートが反映される場合があります。この設定はこのデバイスのみ有効で。" prevent-update-desc: "この設定をオンにしとってもアップデートが反映される場合があるかも分からん、知らんけど気ぃつけてや。この設定はこのデバイスのみ有効で。"
no-updates: "利用可能な更新はありません" no-updates: "使える更新はあらへん"
no-updates-desc: "つこてるMisskeyは最新や" no-updates-desc: "つこてるMisskeyは最新や"
update-available: "新しいバージョンが利用可能や" update-available: "新しいバージョンが利用可能や"
update-available-desc: "ページを再度読み込みすると更新が適用されるで。" update-available-desc: "ページを再度読み込みすると更新が適用されるで。"
advanced-settings: "高度な設定" advanced-settings: "ワイにはわからん設定"
debug-mode: "デバッグモードを有効にする" debug-mode: "デバッグモードにしてみる"
debug-mode-desc: "この設定はブラウザに記憶されます。" debug-mode-desc: "この設定はブラウザに記憶されんで。"
experimental: "実験的機能を有効にする" experimental: "お試し機能使うてみる"
experimental-desc: "実験的機能を有効にするとMisskeyの動作が不安定になる可能性があります。この設定はブラウザに記憶されます。" experimental-desc: "実験的機能を有効にするとMisskeyの動作が不安定になるかも分からん、知らんけど気ぃつけてや。この設定はブラウザに記憶されんで。"
tools: "ツール" tools: "ツール"
task-manager: "タスクマネージャ" task-manager: "タスクマネージャ"
third-parties: "サードパーティ" third-parties: "サードパーティ"
desktop/views/components/settings.2fa.vue: desktop/views/components/settings.2fa.vue:
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。" intro: "二段階認証を設定すると、サインイン時にパスワードだけとちゃうくて、予め登録しておいた物理的なデバイス(例えばあんさんのスマートフォンなど)も必要になり、よりセキュリティが向上すんで。"
detail: "詳細..." detail: "詳細..."
url: "https://www.google.co.jp/intl/ja/landing/2step/" url: "https://www.google.co.jp/intl/ja/landing/2step/"
caution: "登録したデバイスを紛失するなどした場合、Misskeyにサインインできくなりますのでご注意ください。" caution: "登録したデバイスを紛失してもうたら、もうMisskeyにサインインできくなるで。"
register: "デバイス登録する" register: "デバイス登録する"
already-registered: "既に設定は完了しています。" already-registered: "もう設定終わっとるわ"
unregister: "設定を解除" unregister: "設定をほかす"
unregistered: "二段階認証が無効になりました。" unregistered: "二段階認証もうせーへんで"
enter-password: "パスワードを入力してください" enter-password: "パスワードを入れてや"
authenticator: "まず、Google Authenticatorとかのをつこてるデバイスにインストールしてや:" authenticator: "まず、Google Authenticatorとかのをつこてるデバイスにインストールしてや:"
howtoinstall: "インストール方法はここやで" howtoinstall: "インストール方法はここやで"
scan: "んで、ここに出とるQRコードをスキャンしてな:" scan: "んで、ここに出とるQRコードをスキャンしてな:"
@ -772,28 +779,28 @@ desktop/views/components/settings.mute.vue:
no-users: "ミュートしているユーザーはおらんで" no-users: "ミュートしているユーザーはおらんで"
desktop/views/components/settings.password.vue: desktop/views/components/settings.password.vue:
reset: "パスワードを変更する" reset: "パスワードを変更する"
enter-current-password: "現在のパスワードを入力してください" enter-current-password: "のパスワードを入れてや"
enter-new-password: "新しいパスワードを入力してください" enter-new-password: "さらのパスワード入れてや"
enter-new-password-again: "もう一度新しいパスワードを入力してください" enter-new-password-again: "もういっぺんさらのパスワードを入れてや"
not-match: "新しいパスワードが一致しません" not-match: "パスワードがおうとらん"
changed: "パスワードを変更しました" changed: "パスワード変えたわ"
desktop/views/components/settings.profile.vue: desktop/views/components/settings.profile.vue:
avatar: "アイコン" avatar: "アイコン"
choice-avatar: "画像を選択" choice-avatar: "画像選んでや"
name: "名前" name: "名前"
location: "場所" location: "場所"
description: "自己紹介" description: "ワイのこと"
birthday: "誕生日" birthday: "誕生日"
save: "保存" save: "保存"
locked-account: "アカウントの保護" locked-account: "アカウント守る"
is-locked: "フォローを承認制にする" is-locked: "他人のフォローは許してからや!"
other: "その他" other: "その他"
is-bot: "このアカウントはBotで" is-bot: "このアカウントはBotで"
is-cat: "このアカウントはCatで" is-cat: "このアカウントはCatで"
profile-updated: "プロフィールを更新しました" profile-updated: "プロフィールを更新した"
desktop/views/components/sub-note-content.vue: desktop/views/components/sub-note-content.vue:
private: "この投稿は非公開です" private: "この投稿は見せられへんわ"
deleted: "この投稿は削除されました" deleted: "この投稿なんか無くなってもうたわ"
media-count: "{}つのメディア" media-count: "{}つのメディア"
poll: "アンケート" poll: "アンケート"
desktop/views/components/taskmanager.vue: desktop/views/components/taskmanager.vue:
@ -803,21 +810,27 @@ desktop/views/components/timeline.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あんた宛て"
messages: "メッセージ"
list: "リスト" list: "リスト"
hashtag: "ハッシュタグ"
add-tag-timeline: "ハッシュタグ増やす"
add-list: "リストに入れる"
list-name: "リスト名"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえり、" welcome-back: "おかえり、"
adjective: "ん" adjective: "ん"
desktop/views/components/ui.header.account.vue: desktop/views/components/ui.header.account.vue:
profile: "プロフィール" profile: "プロフィール"
drive: "ドライブ" drive: "ドライブ"
favorites: "お気に入り" favorites: "お気に入り"
lists: "リスト" lists: "リスト"
follow-requests: "フォロー申請" follow-requests: "フォロー許してくれや!言うてみる"
customize: "ホームをカスタマイズ" customize: "ホームをカスタマイズ"
admin: "管理" admin: "管理"
settings: "設定" settings: "設定"
signout: "サインアウト" signout: "さいなら"
dark: "闇に飲まれる" dark: "ナイトゲームじゃ!"
desktop/views/components/ui.header.nav.vue: desktop/views/components/ui.header.nav.vue:
home: "ホーム" home: "ホーム"
deck: "デッキ" deck: "デッキ"
@ -830,9 +843,9 @@ desktop/views/components/ui.header.post.vue:
desktop/views/components/ui.header.search.vue: desktop/views/components/ui.header.search.vue:
placeholder: "検索" placeholder: "検索"
desktop/views/components/received-follow-requests-window.vue: desktop/views/components/received-follow-requests-window.vue:
title: "フォロー申請" title: "フォロー許してくれや!言うてみる"
accept: "承認" accept: "許す"
reject: "拒否" reject: "許さん"
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "リスト" title: "リスト"
create-list: "新しいリストを作成" create-list: "新しいリストを作成"
@ -843,14 +856,14 @@ desktop/views/components/user-preview.vue:
followers: "フォロワー" followers: "フォロワー"
desktop/views/components/users-list.vue: desktop/views/components/users-list.vue:
all: "すべて" all: "すべて"
iknow: "知り合い" iknow: "知っとる"
load-more: "もっと" load-more: "もっと"
fetching: "読み込んでいます" fetching: "読みこんどるで…"
desktop/views/components/users-list-item.vue: desktop/views/components/users-list-item.vue:
followed: "フォローされています" followed: "フォローされとるで"
desktop/views/components/window.vue: desktop/views/components/window.vue:
popout: "ポップアウト" popout: "ポップアウト"
close: "閉じる" close: "さいなら"
desktop/views/pages/admin/admin.vue: desktop/views/pages/admin/admin.vue:
dashboard: "ダッシュボード" dashboard: "ダッシュボード"
drive: "ドライブ" drive: "ドライブ"
@ -858,15 +871,15 @@ desktop/views/pages/admin/admin.vue:
update: "更新" update: "更新"
desktop/views/pages/admin/admin.dashboard.vue: desktop/views/pages/admin/admin.dashboard.vue:
dashboard: "ダッシュボード" dashboard: "ダッシュボード"
all-users: "全てのユーザー" all-users: "知り合い全員や"
original-users: "このインスタンスのユーザー" original-users: "ここの人らだけ"
all-notes: "全ての投稿" all-notes: "全ての投稿"
original-notes: "このインスタンスの投稿" original-notes: "このインスタンスの投稿"
invite: "招待" invite: "来てや"
desktop/views/pages/admin/admin.suspend-user.vue: desktop/views/pages/admin/admin.suspend-user.vue:
suspend-user: "ユーザーの凍結" suspend-user: "ユーザーの凍結"
suspend: "凍結" suspend: "凍結"
suspended: "凍結しました" suspended: "凍結した"
desktop/views/pages/admin/admin.unsuspend-user.vue: desktop/views/pages/admin/admin.unsuspend-user.vue:
unsuspend-user: "ユーザーの凍結の解除" unsuspend-user: "ユーザーの凍結の解除"
unsuspend: "凍結の解除" unsuspend: "凍結の解除"
@ -876,33 +889,33 @@ desktop/views/pages/admin/admin.verify-user.vue:
verify: "公式アカウントにする" verify: "公式アカウントにする"
verified: "公式アカウントにしたで" verified: "公式アカウントにしたで"
desktop/views/pages/admin/admin.unverify-user.vue: desktop/views/pages/admin/admin.unverify-user.vue:
unverify-user: "ユーザーの公式アカウント解除" unverify-user: "ユーザーの公式アカウントにせーへん"
unverify: "公式アカウントを解除する" unverify: "公式アカウントにはさせへんで"
unverified: "公式アカウントを解除しました" unverified: "公式アカウントを解除した"
desktop/views/pages/deck/deck.tl-column.vue: desktop/views/pages/deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ" is-media-only: "メディア投稿だけや"
is-media-view: "メディアビュー" is-media-view: "メディアビュー"
edit: "オプション" edit: "オプション"
desktop/views/pages/deck/deck.note.vue: desktop/views/pages/deck/deck.note.vue:
reposted-by: "{}がRenote" reposted-by: "{}がRenote"
private: "この投稿は非公開です" private: "この投稿は見せられへんわ"
deleted: "この投稿は削除されました" deleted: "この投稿なんか無くなってもうたわ"
desktop/views/pages/stats/stats.vue: desktop/views/pages/stats/stats.vue:
all-users: "全てのユーザー" all-users: "全てのユーザー"
original-users: "このインスタンスのユーザー" original-users: "ここの人らだけ"
all-notes: "全ての投稿" all-notes: "全ての投稿"
original-notes: "このインスタンスの投稿" original-notes: "このインスタンスの投稿"
desktop/views/pages/welcome.vue: desktop/views/pages/welcome.vue:
about: "詳しく..." about: "もっと…"
gotit: "わかった" gotit: "ほい"
signin: "サインイン" signin: "サインイン"
signup: "サインアップ" signup: "サインアップ"
signin-button: "サインイン中…" signin-button: "サインイン中…"
signup-button: "サインアップ" signup-button: "サインアップ"
timeline: "タイムライン" timeline: "タイムライン"
announcements: "お知らせ" announcements: "知っときや"
photos: "最近の画像" photos: "最近の画像"
powered-by-misskey: "Powered by <b>Misskey</b>." powered-by-misskey: "<b>Misskey</b>のおかげや"
info: "情報" info: "情報"
desktop/views/pages/drive.vue: desktop/views/pages/drive.vue:
title: "ドライブ" title: "ドライブ"
@ -911,41 +924,41 @@ desktop/views/pages/favorites.vue:
desktop/views/pages/home-customize.vue: desktop/views/pages/home-customize.vue:
title: "ホームをカスタマイズ" title: "ホームをカスタマイズ"
desktop/views/pages/note.vue: desktop/views/pages/note.vue:
prev: "前の投稿" prev: "前のやつ"
next: "次の投稿" next: "次のやつ"
desktop/views/pages/selectdrive.vue: desktop/views/pages/selectdrive.vue:
title: "ファイルを選択してください" title: "ファイルを選択して"
ok: "決定" ok: "決定"
cancel: "やめとくわ" cancel: "やめとくわ"
upload: "PCからドライブにファイルをアップロード" upload: "PCからドライブにファイル上げる"
desktop/views/pages/search.vue: desktop/views/pages/search.vue:
not-available: "検索機能はインスタンスの設定で無効になっています。" not-available: "検索機能は使えへんわ。管理者がそう言うとる。"
not-found: "「{}」に関する投稿は見つかりませんでした。" not-found: "「{}」に関する投稿はあらへん。"
desktop/views/pages/share.vue: desktop/views/pages/share.vue:
share-with: "{}で共有" share-with: "{}で共有"
desktop/views/pages/tag.vue: desktop/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。" no-posts-found: "ハッシュタグ「{}」が付けられた投稿はあらへん。"
desktop/views/pages/user-list.users.vue: desktop/views/pages/user-list.users.vue:
users: "ユーザー" users: "ユーザー"
add-user: "ユーザーを追加" add-user: "ユーザー増やす"
username: "ユーザー名" username: "ユーザー名"
desktop/views/pages/user/user.followers-you-know.vue: desktop/views/pages/user/user.followers-you-know.vue:
title: "知り合いのフォロワー" title: "知っとるフォロワー"
loading: "読み込み中" loading: "読み込んどる…"
no-users: "知り合いのフォロワーはいません" no-users: "フォロワー全員知らんわ"
desktop/views/pages/user/user.friends.vue: desktop/views/pages/user/user.friends.vue:
title: "よ話すユーザー" title: "よ話すツレ"
loading: "読み込み中" loading: "読み込んどる…"
no-users: "よ話すユーザーはいません" no-users: "よ話すツレは居らん"
desktop/views/pages/user/user.vue: desktop/views/pages/user/user.vue:
is-suspended: "このユーザーは凍結されています。" is-suspended: "このユーザーはあかんわ。凍結されとる。"
is-remote: "このユーザーはリモートユーザーです。" is-remote: "このユーザーはリモートユーザー。"
view-remote: "正確な情報を見る" view-remote: "ちゃんとした情報を見る"
desktop/views/pages/user/user.home.vue: desktop/views/pages/user/user.home.vue:
last-used-at: "最終アクセス" last-used-at: "最後いつ来た?"
desktop/views/pages/user/user.photos.vue: desktop/views/pages/user/user.photos.vue:
title: "写真" title: "写真"
loading: "読み込み中" loading: "読み込んどる…"
no-photos: "写真はあらへんで" no-photos: "写真はあらへんで"
desktop/views/pages/user/user.profile.vue: desktop/views/pages/user/user.profile.vue:
follows-you: "フォローされとるで" follows-you: "フォローされとるで"
@ -961,12 +974,12 @@ desktop/views/pages/user/user.header.vue:
posts: "投稿" posts: "投稿"
following: "フォロー" following: "フォロー"
followers: "フォロワー" followers: "フォロワー"
is-bot: "このアカウントはBotです" is-bot: "このアカウントはBot"
desktop/views/pages/user/user.timeline.vue: desktop/views/pages/user/user.timeline.vue:
default: "投稿" default: "投稿"
with-replies: "投稿と返信" with-replies: "投稿と返信"
with-media: "メディア" with-media: "メディア"
empty: "このユーザーはまだ何も投稿していないようです。" empty: "このユーザーはまだ何も投稿しとらんようや。"
desktop/views/widgets/messaging.vue: desktop/views/widgets/messaging.vue:
title: "メッセージ" title: "メッセージ"
desktop/views/widgets/notifications.vue: desktop/views/widgets/notifications.vue:
@ -980,76 +993,76 @@ desktop/views/widgets/post-form.vue:
title: "投稿" title: "投稿"
note: "投稿" note: "投稿"
desktop/views/widgets/profile.vue: desktop/views/widgets/profile.vue:
update-banner: "クリックバナー編集" update-banner: "クリックしてバナー編集"
update-avatar: "クリックアバター編集" update-avatar: "クリックしてアバター編集"
desktop/views/widgets/trends.vue: desktop/views/widgets/trends.vue:
title: "トレンド" title: "流行"
refresh: "他を見る" refresh: "他を見る"
nothing: "ありません!" nothing: "あらへん!"
desktop/views/widgets/users.vue: desktop/views/widgets/users.vue:
title: "おすすめユーザー" title: "おすすめユーザー"
refresh: "他を見る" refresh: "他を見る"
no-one: "いません!" no-one: "おらん!"
mobile/views/components/drive.vue: mobile/views/components/drive.vue:
drive: "ドライブ" drive: "ドライブ"
used: "使用中" used: "使うとる"
folder-count: "フォルダ" folder-count: "フォルダ"
count-separator: "、" count-separator: "、"
file-count: "ファイル" file-count: "ファイル"
load-more: "もっと読み込む" load-more: "もっとあらへんのか!"
nothing-in-drive: "ドライブには何もあらへんで。" nothing-in-drive: "ドライブには何もあらへんで。"
folder-is-empty: "このフォルダは空です" folder-is-empty: "このフォルダ何もないわ"
prompt: "何をしますか(数字を入力してください): <1 → ファイルをアップロード | 2 → ファイルをURLでアップロード | 3 → フォルダ作成 | 4 → このフォルダ名を変更 | 5 → このフォルダを移動 | 6 → このフォルダを削除>" prompt: "何すんの(数字を入れてや): <1 → ファイルをアップロード | 2 → ファイルをURLでアップロード | 3 → フォルダ作成 | 4 → このフォルダ名を変更 | 5 → このフォルダを移動 | 6 → このフォルダを削除>"
deletion-alert: "ごめんなさい!フォルダの削除は未実装です...。" deletion-alert: "フォルダの削除は未実装やねん...。堪忍な!"
folder-name: "フォルダー名" folder-name: "フォルダー名"
root-rename-alert: "現在る場所はルートで、フォルダではないため名前の変更はできません。名前を変更したいフォルダに移動してからやってください。" root-rename-alert: "現在る場所はルートで、フォルダとちゃうから名前の変更はできん。名前を変更したいフォルダに移動してからやって。"
root-move-alert: "現在る場所はルートで、フォルダではないため移動はできません。移動したいフォルダに移動してからやってください。" root-move-alert: "現在る場所はルートで、フォルダとちゃうから移動はできん。移動したいフォルダに移動してからやって。"
url-prompt: "アップロードしたいファイルのURL" url-prompt: "このURLのファイルをアップロードしたいねん"
uploading: "アップロードをリクエストしました。アップロードが完了するまで時間がかかる場合があります。" uploading: "アップロードをリクエストした。アップロードが完了するまで時間がかかるかも分からん、知らんけど。"
mobile/views/components/drive-file-detail.vue: mobile/views/components/drive-file-detail.vue:
rename: "名前を変" rename: "名前を変えるで"
mobile/views/components/drive-file-chooser.vue: mobile/views/components/drive-file-chooser.vue:
select-file: "ファイルを選択" select-file: "ファイル選んでや"
mobile/views/components/drive-folder-chooser.vue: mobile/views/components/drive-folder-chooser.vue:
select-folder: "フォルダーを選択" select-folder: "フォルダ選んでや"
mobile/views/components/drive.file.vue: mobile/views/components/drive.file.vue:
nsfw: "閲覧注意" nsfw: "ちょっと見せられへんわ"
mobile/views/components/drive.file-detail.vue: mobile/views/components/drive.file-detail.vue:
download: "ダウンロード" download: "ダウンロード"
rename: "名前を変" rename: "名前を変えるで"
move: "移動" move: "移動"
hash: "ハッシュ(md5)" hash: "ハッシュ(md5)"
exif: "EXIF" exif: "EXIF"
nsfw: "閲覧注意" nsfw: "ちょっと見せられへんわ"
mobile/views/components/media-image.vue: mobile/views/components/media-image.vue:
sensitive: "閲覧注意" sensitive: "見たらあかんで"
click-to-show: "クリックして表示" click-to-show: "押してみ、見せたるわ"
mobile/views/components/media-video.vue: mobile/views/components/media-video.vue:
sensitive: "閲覧注意" sensitive: "ちょっと見せられへんわ"
click-to-show: "クリックして表示" click-to-show: "押してみ、見せたるわ"
mobile/views/components/follow-button.vue: mobile/views/components/follow-button.vue:
following: "フォロー" following: "フォローしとる"
follow: "フォロー" follow: "フォロー"
request-pending: "フォロー許可待ち" request-pending: "フォローの許し待っとる"
follow-request: "フォロー申請" follow-request: "フォロー許してくれや!言うてみる"
mobile/views/components/friends-maker.vue: mobile/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー" title: "おもろそうやな"
empty: "おすすめのユーザーは見つかりませんでした。" empty: "おすすめのユーザーはおらん。"
fetching: "読み込んでいます" fetching: "読みこんどるで…"
refresh: "もっと見る" refresh: "もっとあるやろ!"
close: "閉じる" close: "さいなら"
mobile/views/components/note.vue: mobile/views/components/note.vue:
reposted-by: "{}がRenote" reposted-by: "{}がRenote"
private: "この投稿は非公開です" private: "この投稿は見せられへんわ"
deleted: "この投稿は削除されました" deleted: "この投稿なんか無くなってもうたわ"
location: "位置情報" location: "ここおるで:"
mobile/views/components/note-detail.vue: mobile/views/components/note-detail.vue:
reply: "返" reply: "返"
reaction: "リアクション" reaction: "リアクション"
reposted-by: "{}がRenote" reposted-by: "{}がRenote"
private: "この投稿は非公開です" private: "この投稿は見せられへんわ"
deleted: "この投稿は削除されました" deleted: "この投稿なんか無くなってもうたわ"
location: "位置情報" location: "ここおるで:"
mobile/views/components/note-preview.vue: mobile/views/components/note-preview.vue:
admin: "admin" admin: "admin"
bot: "bot" bot: "bot"
@ -1059,55 +1072,55 @@ mobile/views/components/note-sub.vue:
bot: "bot" bot: "bot"
cat: "cat" cat: "cat"
mobile/views/components/notes.vue: mobile/views/components/notes.vue:
failed: "読み込みに失敗しました。" failed: "あかん、読み込めへんわ"
retry: "リトライ" retry: "もっぺん"
mobile/views/components/notifications.vue: mobile/views/components/notifications.vue:
more: "もっと見る" more: "もっとあるやろ!"
empty: "ありません!" empty: "あらへん!"
mobile/views/components/post-form.vue: mobile/views/components/post-form.vue:
add-visible-user: "ユーザーを追加" add-visible-user: "ユーザー増やす"
submit: "投稿" submit: "投稿"
reply: "返" reply: "返"
renote: "Renote" renote: "Renote"
quote-placeholder: "この投稿を引用... (オプション)" quote-placeholder: "この投稿を持ってくる(オプション)"
reply-placeholder: "この投稿への返信..." reply-placeholder: "この投稿への返信..."
cw-placeholder: "内容への注釈 (オプション)" cw-placeholder: "内容への注釈 (オプション)"
location-alert: "あんさんのつことる端末は位置情報に対応しとらんみたいやわ、知らんけど。" location-alert: "あんさんのつことる端末は位置情報に対応しとらんみたいやわ、知らんけど。"
error: "エラー" error: "エラー"
username-prompt: "ユーザー名を入力してや" username-prompt: "ユーザー名を入力してや"
mobile/views/components/sub-note-content.vue: mobile/views/components/sub-note-content.vue:
private: "この投稿は非公開です" private: "この投稿は見せられへんわ"
deleted: "この投稿は削除されました" deleted: "この投稿なんか無くなってもうたわ"
media-count: "{}つのメディア" media-count: "{}つのメディア"
poll: "アンケート" poll: "アンケート"
mobile/views/components/timeline.vue: mobile/views/components/timeline.vue:
empty: "投稿がありません" empty: "投稿はあらへん"
load-more: "もっと" load-more: "もっと"
mobile/views/components/ui.header.vue: mobile/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえり、"
adjective: "ん" adjective: "ん"
mobile/views/components/ui.nav.vue: mobile/views/components/ui.nav.vue:
timeline: "タイムライン" timeline: "タイムライン"
notifications: "通知" notifications: "通知"
messaging: "メッセージ" messaging: "メッセージ"
follow-requests: "フォロー申請" follow-requests: "フォロー許してくれや!言うてみる"
search: "検索" search: "検索"
drive: "ドライブ" drive: "ドライブ"
favorites: "お気に入り" favorites: "お気に入り"
user-lists: "リスト" user-lists: "リスト"
widgets: "ウィジェット" widgets: "ウィジェット"
game: "ゲーム" game: "ゲーム"
darkmode: "ダークモード" darkmode: "ナイトゲームや"
settings: "設定" settings: "設定"
admin: "管理" admin: "管理"
about: "Misskeyについて" about: "Misskeyってなんや?"
mobile/views/components/user-timeline.vue: mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿していないようです。" no-notes: "このユーザーは投稿しとらんようや。"
no-notes-with-media: "メディア付き投稿はありません。" no-notes-with-media: "メディア付き投稿はあらへん。"
load-more: "もっと" load-more: "もっと"
mobile/views/components/users-list.vue: mobile/views/components/users-list.vue:
all: "すべて" all: "すべて"
known: "知り合い" known: "知っとる"
load-more: "もっと" load-more: "もっと"
mobile/views/pages/favorites.vue: mobile/views/pages/favorites.vue:
title: "お気に入り" title: "お気に入り"
@ -1116,9 +1129,9 @@ mobile/views/pages/user-lists.vue:
enter-list-name: "リスト名を入力してや" enter-list-name: "リスト名を入力してや"
mobile/views/pages/drive.vue: mobile/views/pages/drive.vue:
drive: "ドライブ" drive: "ドライブ"
more: "もっと見る" more: "もっとあるやろ!"
mobile/views/pages/signup.vue: mobile/views/pages/signup.vue:
lets-start: "📦 始めましょう" lets-start: "📦 始めようや"
mobile/views/pages/followers.vue: mobile/views/pages/followers.vue:
followers-of: "{}のフォロワー" followers-of: "{}のフォロワー"
mobile/views/pages/following.vue: mobile/views/pages/following.vue:
@ -1128,34 +1141,36 @@ mobile/views/pages/home.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あんた宛て"
messages: "メッセージ"
mobile/views/pages/tag.vue: mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{}」が付けられた投稿はあらへんで。" no-posts-found: "ハッシュタグ「{}」が付けられた投稿はあらへんで。"
mobile/views/pages/welcome.vue: mobile/views/pages/welcome.vue:
signup: "新規登録" signup: "新規登録"
mobile/views/pages/widgets.vue: mobile/views/pages/widgets.vue:
dashboard: "ダッシュボード" dashboard: "ダッシュボード"
widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。" widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできんで。ウィジェットを移動するんやったら「三」をドラッグしてや。ウィジェットを削除するんやったら「x」をタップしてや。いくつかのウィジェットはタップしたったら表示を変更できるかも分からん、知らんけど。"
add-widget: "追加" add-widget: "増やす"
customization-tips: "カスタマイズのヒント" customization-tips: "カスタマイズのヒント"
mobile/views/pages/widgets/activity.vue: mobile/views/pages/widgets/activity.vue:
activity: "アクティビティ" activity: "やっとること"
mobile/views/pages/share.vue: mobile/views/pages/share.vue:
share-with: "{}で共有" share-with: "{}で「わけわけ」"
mobile/views/pages/messaging.vue: mobile/views/pages/messaging.vue:
messaging: "メッセージ" messaging: "メッセージ"
mobile/views/pages/messaging-room.vue: mobile/views/pages/messaging-room.vue:
messaging: "メッセージ" messaging: "メッセージ"
mobile/views/pages/received-follow-requests.vue: mobile/views/pages/received-follow-requests.vue:
title: "フォロー申請" title: "フォロー許してくれや!"
accept: "承認" accept: "許す"
reject: "拒否" reject: "許さん"
mobile/views/pages/note.vue: mobile/views/pages/note.vue:
title: "投稿" title: "投稿"
prev: "前の投稿" prev: "前のやつ"
next: "次の投稿" next: "次のやつ"
mobile/views/pages/notifications.vue: mobile/views/pages/notifications.vue:
notifications: "通知" notifications: "通知"
read-all: "すべての通知を既読にしますか?" read-all: "通知全部読んだか?"
mobile/views/pages/games/reversi.vue: mobile/views/pages/games/reversi.vue:
reversi: "リバーシ" reversi: "リバーシ"
mobile/views/pages/settings/settings.profile.vue: mobile/views/pages/settings/settings.profile.vue:
@ -1163,12 +1178,12 @@ mobile/views/pages/settings/settings.profile.vue:
name: "名前" name: "名前"
account: "アカウント" account: "アカウント"
location: "場所" location: "場所"
description: "自己紹介" description: "ワイのこと"
birthday: "誕生日" birthday: "誕生日"
avatar: "アイコン" avatar: "アイコン"
banner: "バナー" banner: "バナー"
is-cat: "このアカウントはCatです" is-cat: "このアカウントはCat"
is-locked: "フォローを承認制にする" is-locked: "他人のフォローは許してからや!"
advanced: "その他" advanced: "その他"
privacy: "プライバシー" privacy: "プライバシー"
save: "保存" save: "保存"

View File

@ -112,6 +112,7 @@ common:
always-show-nsfw: "常に閲覧注意のメディアを表示する" always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿" always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない" show-full-acct: "ユーザー名のホストを省略しない"
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ" this-setting-is-this-device-only: "このデバイスのみ"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。' do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi: reversi:
@ -154,7 +155,10 @@ common:
home: "홈" home: "홈"
local: "로컬" local: "로컬"
hybrid: "소셜" hybrid: "소셜"
hashtag: "ハッシュタグ"
global: "글로벌" global: "글로벌"
mentions: "あなた宛て"
direct: "ダイレクト投稿"
notifications: "통지" notifications: "통지"
list: "목록" list: "목록"
swap-left: "左に移動" swap-left: "左に移動"
@ -257,6 +261,9 @@ common/views/components/connect-failed.troubleshooter.vue:
success-desc: "正常に接続できるようです。ページを再度読み込みしてください。" success-desc: "正常に接続できるようです。ページを再度読み込みしてください。"
flush: "キャッシュの削除" flush: "キャッシュの削除"
set-version: "バージョン指定" set-version: "バージョン指定"
common/views/components/media-banner.vue:
sensitive: "閲覧注意"
click-to-show: "クリックして表示"
common/views/components/cw-button.vue: common/views/components/cw-button.vue:
hide: "隠す" hide: "隠す"
show: "もっと見る" show: "もっと見る"
@ -803,7 +810,13 @@ desktop/views/components/timeline.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
list: "リスト" list: "リスト"
hashtag: "ハッシュタグ"
add-tag-timeline: "ハッシュタグを追加"
add-list: "リストを追加"
list-name: "リスト名"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん" adjective: "さん"
@ -1128,6 +1141,8 @@ mobile/views/pages/home.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/tag.vue: mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。" no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue: mobile/views/pages/welcome.vue:

View File

@ -112,6 +112,7 @@ common:
always-show-nsfw: "常に閲覧注意のメディアを表示する" always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿" always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない" show-full-acct: "ユーザー名のホストを省略しない"
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ" this-setting-is-this-device-only: "このデバイスのみ"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。' do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi: reversi:
@ -154,7 +155,10 @@ common:
home: "ホーム" home: "ホーム"
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
hashtag: "ハッシュタグ"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
direct: "ダイレクト投稿"
notifications: "通知" notifications: "通知"
list: "リスト" list: "リスト"
swap-left: "左に移動" swap-left: "左に移動"
@ -257,6 +261,9 @@ common/views/components/connect-failed.troubleshooter.vue:
success-desc: "Het verbinden lijkt te lukken. Herlaad de pagina." success-desc: "Het verbinden lijkt te lukken. Herlaad de pagina."
flush: "Cache leegmaken" flush: "Cache leegmaken"
set-version: "Versie opgeven" set-version: "Versie opgeven"
common/views/components/media-banner.vue:
sensitive: "閲覧注意"
click-to-show: "クリックして表示"
common/views/components/cw-button.vue: common/views/components/cw-button.vue:
hide: "隠す" hide: "隠す"
show: "もっと見る" show: "もっと見る"
@ -803,7 +810,13 @@ desktop/views/components/timeline.vue:
local: "Lokaal" local: "Lokaal"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "Algemeen" global: "Algemeen"
mentions: "あなた宛て"
messages: "メッセージ"
list: "Lijsten" list: "Lijsten"
hashtag: "ハッシュタグ"
add-tag-timeline: "ハッシュタグを追加"
add-list: "リストを追加"
list-name: "リスト名"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん" adjective: "さん"
@ -1128,6 +1141,8 @@ mobile/views/pages/home.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/tag.vue: mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。" no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue: mobile/views/pages/welcome.vue:

View File

@ -112,6 +112,7 @@ common:
always-show-nsfw: "常に閲覧注意のメディアを表示する" always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿" always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない" show-full-acct: "ユーザー名のホストを省略しない"
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ" this-setting-is-this-device-only: "このデバイスのみ"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。' do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi: reversi:
@ -154,7 +155,10 @@ common:
home: "ホーム" home: "ホーム"
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
hashtag: "ハッシュタグ"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
direct: "ダイレクト投稿"
notifications: "通知" notifications: "通知"
list: "リスト" list: "リスト"
swap-left: "左に移動" swap-left: "左に移動"
@ -257,6 +261,9 @@ common/views/components/connect-failed.troubleshooter.vue:
success-desc: "正常に接続できるようです。ページを再度読み込みしてください。" success-desc: "正常に接続できるようです。ページを再度読み込みしてください。"
flush: "キャッシュの削除" flush: "キャッシュの削除"
set-version: "バージョン指定" set-version: "バージョン指定"
common/views/components/media-banner.vue:
sensitive: "閲覧注意"
click-to-show: "クリックして表示"
common/views/components/cw-button.vue: common/views/components/cw-button.vue:
hide: "隠す" hide: "隠す"
show: "もっと見る" show: "もっと見る"
@ -803,7 +810,13 @@ desktop/views/components/timeline.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
list: "リスト" list: "リスト"
hashtag: "ハッシュタグ"
add-tag-timeline: "ハッシュタグを追加"
add-list: "リストを追加"
list-name: "リスト名"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん" adjective: "さん"
@ -1128,6 +1141,8 @@ mobile/views/pages/home.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/tag.vue: mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。" no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue: mobile/views/pages/welcome.vue:

View File

@ -112,6 +112,7 @@ common:
always-show-nsfw: "常に閲覧注意のメディアを表示する" always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿" always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない" show-full-acct: "ユーザー名のホストを省略しない"
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ" this-setting-is-this-device-only: "このデバイスのみ"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。' do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi: reversi:
@ -154,7 +155,10 @@ common:
home: "Strona główna" home: "Strona główna"
local: "Lokalne" local: "Lokalne"
hybrid: "Społeczność" hybrid: "Społeczność"
hashtag: "ハッシュタグ"
global: "Globalne" global: "Globalne"
mentions: "あなた宛て"
direct: "ダイレクト投稿"
notifications: "Powiadomienia" notifications: "Powiadomienia"
list: "Listy" list: "Listy"
swap-left: "Przesuń w lewo" swap-left: "Przesuń w lewo"
@ -257,6 +261,9 @@ common/views/components/connect-failed.troubleshooter.vue:
success-desc: "Wygląda na to, że udało się połączyć. Odśwież stronę." success-desc: "Wygląda na to, że udało się połączyć. Odśwież stronę."
flush: "Wyczyść pamięć podręczną" flush: "Wyczyść pamięć podręczną"
set-version: "Określ wersję" set-version: "Określ wersję"
common/views/components/media-banner.vue:
sensitive: "閲覧注意"
click-to-show: "クリックして表示"
common/views/components/cw-button.vue: common/views/components/cw-button.vue:
hide: "隠す" hide: "隠す"
show: "もっと見る" show: "もっと見る"
@ -803,7 +810,13 @@ desktop/views/components/timeline.vue:
local: "Lokalne" local: "Lokalne"
hybrid: "Społeczność" hybrid: "Społeczność"
global: "Globalne" global: "Globalne"
mentions: "あなた宛て"
messages: "メッセージ"
list: "Listy" list: "Listy"
hashtag: "ハッシュタグ"
add-tag-timeline: "ハッシュタグを追加"
add-list: "リストを追加"
list-name: "リスト名"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "Witaj ponownie," welcome-back: "Witaj ponownie,"
adjective: "さん" adjective: "さん"
@ -1128,6 +1141,8 @@ mobile/views/pages/home.vue:
local: "Lokalne" local: "Lokalne"
hybrid: "Społeczność" hybrid: "Społeczność"
global: "Globalne" global: "Globalne"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/tag.vue: mobile/views/pages/tag.vue:
no-posts-found: "Nie znaleziono wpisów zawierających „{}”." no-posts-found: "Nie znaleziono wpisów zawierających „{}”."
mobile/views/pages/welcome.vue: mobile/views/pages/welcome.vue:

View File

@ -7,12 +7,12 @@ common:
about-title: "Uma ⭐ do fediverso." about-title: "Uma ⭐ do fediverso."
about: "Obrigado por encontrar Misskey. Uma <b>plataforma descentralizada de microblog</b> nascida na Terra. Já que ela existe no Fediverso (um universo onde várias plataformas de mídia social são organizadas), ela é ligada com outras plataformas.Por que você não tira uma folga do agito e confusão da cidade, e mergulha em uma nova internet?" about: "Obrigado por encontrar Misskey. Uma <b>plataforma descentralizada de microblog</b> nascida na Terra. Já que ela existe no Fediverso (um universo onde várias plataformas de mídia social são organizadas), ela é ligada com outras plataformas.Por que você não tira uma folga do agito e confusão da cidade, e mergulha em uma nova internet?"
intro: intro:
title: "Misskeyって?" title: "O que é Misskey?"
about: "Misskeyはオープンソースの<b>分散型マイクロブログSNS</b>です。リッチで高度にカスタマイズできるUI、投稿へのリアクション、ファイルを一元管理できるドライブなど、先進的な機能を揃えています。また、Fediverseと呼ばれるネットワークに接続できるため、他のSNSともやり取りできます。例えば、あなたが何か投稿すると、その投稿はMisskeyだけでなく他のSNSにも伝わります。ちょうどある惑星から他の惑星に電波を発信している様子をイメージしてください。" about: "Misskey é um <b>serviço de microblog descentralizado</b>. Personalização sofisticada da interface, variedade de reações a posts, armazenamento de arquivos grátis com gerenciamento integrado e outras funções avançadas estão disponíveis. Um sistema em rede chamado \"Fediverso\" permite que nos comuniquemos com usuários em outras redes sociais. Se você postar algo, por exemplo, seu post não será mandado apenas para o Misskey, mas também para o Mastodon. Apenas imagine que o planeta está enviando ondas de rádio para outros planetas para se comunicar."
features: "特徴" features: "Recursos"
rich-contents: "投稿" rich-contents: "Post"
rich-contents-desc: "自分の考え、話題の出来事、皆と共有したいことについて発信してください。必要であれば、様々な構文を使って投稿を装飾したり、好きな画像、動画などのファイルやアンケートを添付することもできます。" rich-contents-desc: "Apenas poste suas ideias, temas do momento e qualquer coisa que você queira compartilhar. Você pode querer decorar suas palavras, anexar suas imagens favoritas, enviar arquivos, inclusive vídeos ou criar uma enquete. Essas são as coisas que você pode fazer em Misskey."
reaction: "リアクション" reaction: "Reações"
reaction-desc: "あなたの気持ちを伝える最も簡単な方法です。Misskeyは、他のユーザーの投稿に様々なリアクションを付けることができます。いちどMisskeyのリアクション機能を体験してしまうと、もう「いいね」の概念しか存在しないSNSには戻れなくなるかもしれません。" reaction-desc: "あなたの気持ちを伝える最も簡単な方法です。Misskeyは、他のユーザーの投稿に様々なリアクションを付けることができます。いちどMisskeyのリアクション機能を体験してしまうと、もう「いいね」の概念しか存在しないSNSには戻れなくなるかもしれません。"
ui: "インターフェース" ui: "インターフェース"
ui-desc: "どのようなUIが使いやすいかは人それぞれです。だから、Misskeyは自由度の高いUIを持っています。レイアウトやデザインを調整したり、カスタマイズ可能な様々なウィジェットを配置したりして、自分だけのホームを作ってください。" ui-desc: "どのようなUIが使いやすいかは人それぞれです。だから、Misskeyは自由度の高いUIを持っています。レイアウトやデザインを調整したり、カスタマイズ可能な様々なウィジェットを配置したりして、自分だけのホームを作ってください。"
@ -112,6 +112,7 @@ common:
always-show-nsfw: "常に閲覧注意のメディアを表示する" always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿" always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない" show-full-acct: "ユーザー名のホストを省略しない"
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ" this-setting-is-this-device-only: "このデバイスのみ"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。' do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi: reversi:
@ -154,7 +155,10 @@ common:
home: "Início" home: "Início"
local: "Local" local: "Local"
hybrid: "Social" hybrid: "Social"
hashtag: "ハッシュタグ"
global: "Global" global: "Global"
mentions: "あなた宛て"
direct: "ダイレクト投稿"
notifications: "Notificações" notifications: "Notificações"
list: "Listas" list: "Listas"
swap-left: "Mover para a esquerda" swap-left: "Mover para a esquerda"
@ -257,6 +261,9 @@ common/views/components/connect-failed.troubleshooter.vue:
success-desc: "正常に接続できるようです。ページを再度読み込みしてください。" success-desc: "正常に接続できるようです。ページを再度読み込みしてください。"
flush: "Limpar o cache" flush: "Limpar o cache"
set-version: "バージョン指定" set-version: "バージョン指定"
common/views/components/media-banner.vue:
sensitive: "閲覧注意"
click-to-show: "クリックして表示"
common/views/components/cw-button.vue: common/views/components/cw-button.vue:
hide: "隠す" hide: "隠す"
show: "もっと見る" show: "もっと見る"
@ -803,7 +810,13 @@ desktop/views/components/timeline.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
list: "リスト" list: "リスト"
hashtag: "ハッシュタグ"
add-tag-timeline: "ハッシュタグを追加"
add-list: "リストを追加"
list-name: "リスト名"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん" adjective: "さん"
@ -1128,6 +1141,8 @@ mobile/views/pages/home.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/tag.vue: mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。" no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue: mobile/views/pages/welcome.vue:
@ -1160,23 +1175,23 @@ mobile/views/pages/games/reversi.vue:
reversi: "リバーシ" reversi: "リバーシ"
mobile/views/pages/settings/settings.profile.vue: mobile/views/pages/settings/settings.profile.vue:
title: "プロフィール" title: "プロフィール"
name: "名前" name: "Nome"
account: "アカウント" account: "Conta"
location: "場所" location: "Lugar"
description: "自己紹介" description: "Biografia"
birthday: "誕生日" birthday: "Data de nascimento"
avatar: "アイコン" avatar: "Avatar"
banner: "バナー" banner: "Capa"
is-cat: "このアカウントはCatです" is-cat: "Esta conta é gato"
is-locked: "フォローを承認制にする" is-locked: "Pedido para seguir precisa ser aprovado"
advanced: "その他" advanced: "Avançado"
privacy: "プライバシー" privacy: "Provacidade"
save: "保存" save: "Atualizar perfil"
saved: "プロフィールを保存しました" saved: "Perfil atualizado"
uploading: "アップロード中" uploading: "Enviando"
upload-failed: "アップロードに失敗しました" upload-failed: "Falha ao enviar"
mobile/views/pages/search.vue: mobile/views/pages/search.vue:
search: "検索" search: "Pesquisar"
empty: "「{}」に関する投稿は見つかりませんでした。" empty: "「{}」に関する投稿は見つかりませんでした。"
not-found: "「{}」に関する投稿は見つかりませんでした。" not-found: "「{}」に関する投稿は見つかりませんでした。"
mobile/views/pages/selectdrive.vue: mobile/views/pages/selectdrive.vue:
@ -1213,47 +1228,47 @@ mobile/views/pages/settings.vue:
load-raw-images: "添付された画像を高画質で表示する" load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する" load-remote-media: "リモートサーバーのメディアを表示する"
twitter: "Twitter連携" twitter: "Twitter連携"
twitter-connect: "Twitterアカウントに接続する" twitter-connect: "Conectar à sua conta no Twitter"
twitter-reconnect: "再接続する" twitter-reconnect: "Reconectar"
twitter-disconnect: "切断する" twitter-disconnect: "Desconectar"
update: "Misskey Update" update: "Atualizar Misskey"
version: "バージョン:" version: "Versão atual;"
latest-version: "最新のバージョン:" latest-version: "Última versão:"
update-checking: "アップデートを確認中" update-checking: "Verificando atualizações"
check-for-updates: "アップデートを確認" check-for-updates: "Verificar atualizações"
no-updates: "利用可能な更新はありません" no-updates: "Sem atualizações"
no-updates-desc: "お使いのMisskeyは最新です。" no-updates-desc: "Seu Misskey está atualizado"
update-available: "新しいバージョンが利用可能です" update-available: "Uma nova versão está disponível"
update-available-desc: "ページを再度読み込みすると更新が適用されます。" update-available-desc: "Atualizações vão ser aplicadas depois de recarregar a página"
settings: "設定" settings: "Configurações"
signout: "サインアウト" signout: "Sair"
sound: "サウンド" sound: "Sons"
enable-sounds: "サウンドを有効にする" enable-sounds: "Ativar sons"
mobile/views/pages/user.vue: mobile/views/pages/user.vue:
follows-you: "フォローされています" follows-you: "Te segue"
following: "フォロー" following: "Seguindo"
followers: "フォロワー" followers: "Seguidores"
notes: "投稿" notes: "Posts"
overview: "概要" overview: "概要"
timeline: "タイムライン" timeline: "Linha do tempo"
media: "メディア" media: "Mídia"
is-suspended: "このユーザーは凍結されています。" is-suspended: "Esta conta foi suspensa"
is-remote: "Este é uma usuário remoto. O perfil que vê aqui pode não estar completo." is-remote: "Este é uma usuário remoto. O perfil que vê aqui pode não estar completo."
view-remote: "Ver o perfil completo." view-remote: "Ver o perfil completo."
mobile/views/pages/user/home.vue: mobile/views/pages/user/home.vue:
recent-notes: "Notas recentes" recent-notes: "Notas recentes"
images: "Imagens" images: "Imagens"
activity: "Atividade" activity: "Atividade"
keywords: "キーワード" keywords: "Palavras chave"
domains: "頻出ドメイン" domains: "Domínios"
frequently-replied-users: "よく会話するユーザー" frequently-replied-users: "Perguntas frequentes"
followers-you-know: "Seguidores que você conhece" followers-you-know: "Seguidores que você conhece"
last-used-at: "Ativo pela última vez:" last-used-at: "Ativo pela última vez:"
mobile/views/pages/user/home.followers-you-know.vue: mobile/views/pages/user/home.followers-you-know.vue:
loading: "Carregando" loading: "Carregando"
no-users: "知り合いのユーザーはいません" no-users: "知り合いのユーザーはいません"
mobile/views/pages/user/home.friends.vue: mobile/views/pages/user/home.friends.vue:
loading: "読み込み中" loading: "Carregando"
no-users: "よく会話するユーザーはいません" no-users: "よく会話するユーザーはいません"
mobile/views/pages/user/home.notes.vue: mobile/views/pages/user/home.notes.vue:
loading: "Carregando" loading: "Carregando"
@ -1263,14 +1278,14 @@ mobile/views/pages/user/home.photos.vue:
no-photos: "Sem fotos" no-photos: "Sem fotos"
docs: docs:
edit-this-page-on-github: "間違いや改善点を見つけましたか?" edit-this-page-on-github: "間違いや改善点を見つけましたか?"
edit-this-page-on-github-link: "このページをGitHubで編集" edit-this-page-on-github-link: "Edite esta página no GitHub!"
api: api:
entities: entities:
properties: "プロパティ" properties: "Propriedades"
endpoints: endpoints:
params: "パラメータ" params: "Parâmetros"
no-params: "パラメータはありません" no-params: "Sem parâmetros"
res: "レスポンス" res: "Resposta"
require-credential: "このエンドポイントは認証情報が必須です。" require-credential: "このエンドポイントは認証情報が必須です。"
require-permission: "このエンドポイントは{permission}の権限を必要とします。" require-permission: "このエンドポイントは{permission}の権限を必要とします。"
has-limit: "レートリミットがあります。" has-limit: "レートリミットがあります。"

View File

@ -112,6 +112,7 @@ common:
always-show-nsfw: "常に閲覧注意のメディアを表示する" always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿" always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない" show-full-acct: "ユーザー名のホストを省略しない"
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ" this-setting-is-this-device-only: "このデバイスのみ"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。' do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi: reversi:
@ -154,7 +155,10 @@ common:
home: "ホーム" home: "ホーム"
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
hashtag: "ハッシュタグ"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
direct: "ダイレクト投稿"
notifications: "通知" notifications: "通知"
list: "リスト" list: "リスト"
swap-left: "左に移動" swap-left: "左に移動"
@ -257,6 +261,9 @@ common/views/components/connect-failed.troubleshooter.vue:
success-desc: "正常に接続できるようです。ページを再度読み込みしてください。" success-desc: "正常に接続できるようです。ページを再度読み込みしてください。"
flush: "キャッシュの削除" flush: "キャッシュの削除"
set-version: "バージョン指定" set-version: "バージョン指定"
common/views/components/media-banner.vue:
sensitive: "閲覧注意"
click-to-show: "クリックして表示"
common/views/components/cw-button.vue: common/views/components/cw-button.vue:
hide: "隠す" hide: "隠す"
show: "もっと見る" show: "もっと見る"
@ -803,7 +810,13 @@ desktop/views/components/timeline.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
list: "リスト" list: "リスト"
hashtag: "ハッシュタグ"
add-tag-timeline: "ハッシュタグを追加"
add-list: "リストを追加"
list-name: "リスト名"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん" adjective: "さん"
@ -1128,6 +1141,8 @@ mobile/views/pages/home.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/tag.vue: mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。" no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue: mobile/views/pages/welcome.vue:

View File

@ -112,6 +112,7 @@ common:
always-show-nsfw: "常に閲覧注意のメディアを表示する" always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿" always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない" show-full-acct: "ユーザー名のホストを省略しない"
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ" this-setting-is-this-device-only: "このデバイスのみ"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。' do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi: reversi:
@ -154,7 +155,10 @@ common:
home: "ホーム" home: "ホーム"
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
hashtag: "ハッシュタグ"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
direct: "ダイレクト投稿"
notifications: "通知" notifications: "通知"
list: "リスト" list: "リスト"
swap-left: "左に移動" swap-left: "左に移動"
@ -257,6 +261,9 @@ common/views/components/connect-failed.troubleshooter.vue:
success-desc: "正常に接続できるようです。ページを再度読み込みしてください。" success-desc: "正常に接続できるようです。ページを再度読み込みしてください。"
flush: "キャッシュの削除" flush: "キャッシュの削除"
set-version: "バージョン指定" set-version: "バージョン指定"
common/views/components/media-banner.vue:
sensitive: "閲覧注意"
click-to-show: "クリックして表示"
common/views/components/cw-button.vue: common/views/components/cw-button.vue:
hide: "隠す" hide: "隠す"
show: "もっと見る" show: "もっと見る"
@ -803,7 +810,13 @@ desktop/views/components/timeline.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
list: "リスト" list: "リスト"
hashtag: "ハッシュタグ"
add-tag-timeline: "ハッシュタグを追加"
add-list: "リストを追加"
list-name: "リスト名"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん" adjective: "さん"
@ -1128,6 +1141,8 @@ mobile/views/pages/home.vue:
local: "ローカル" local: "ローカル"
hybrid: "ソーシャル" hybrid: "ソーシャル"
global: "グローバル" global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/tag.vue: mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。" no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue: mobile/views/pages/welcome.vue:

View File

@ -1,8 +1,8 @@
{ {
"name": "misskey", "name": "misskey",
"author": "syuilo <i@syuilo.com>", "author": "syuilo <i@syuilo.com>",
"version": "8.41.0", "version": "9.0.0",
"clientVersion": "1.0.9716", "clientVersion": "1.0.10049",
"codename": "nighthike", "codename": "nighthike",
"main": "./built/index.js", "main": "./built/index.js",
"private": true, "private": true,
@ -20,14 +20,14 @@
"format": "gulp format" "format": "gulp format"
}, },
"dependencies": { "dependencies": {
"@fortawesome/fontawesome": "1.1.8", "@fortawesome/fontawesome-svg-core": "1.2.4",
"@fortawesome/fontawesome-free-brands": "5.0.13", "@fortawesome/free-brands-svg-icons": "5.3.1",
"@fortawesome/fontawesome-free-regular": "5.0.13", "@fortawesome/free-regular-svg-icons": "5.3.1",
"@fortawesome/fontawesome-free-solid": "5.0.13", "@fortawesome/free-solid-svg-icons": "5.3.1",
"@koa/cors": "2.2.2", "@koa/cors": "2.2.2",
"@prezzemolo/rap": "0.1.2", "@prezzemolo/rap": "0.1.2",
"@prezzemolo/zip": "0.0.3", "@prezzemolo/zip": "0.0.3",
"@types/bcryptjs": "2.4.1", "@types/bcryptjs": "2.4.2",
"@types/dateformat": "1.0.1", "@types/dateformat": "1.0.1",
"@types/debug": "0.0.30", "@types/debug": "0.0.30",
"@types/deep-equal": "1.0.1", "@types/deep-equal": "1.0.1",
@ -51,7 +51,7 @@
"@types/koa-logger": "3.1.0", "@types/koa-logger": "3.1.0",
"@types/koa-mount": "3.0.1", "@types/koa-mount": "3.0.1",
"@types/koa-multer": "1.0.0", "@types/koa-multer": "1.0.0",
"@types/koa-router": "7.0.31", "@types/koa-router": "7.0.32",
"@types/koa-send": "4.1.1", "@types/koa-send": "4.1.1",
"@types/koa-views": "2.0.3", "@types/koa-views": "2.0.3",
"@types/koa__cors": "2.2.3", "@types/koa__cors": "2.2.3",
@ -60,7 +60,7 @@
"@types/mocha": "5.2.3", "@types/mocha": "5.2.3",
"@types/mongodb": "3.1.7", "@types/mongodb": "3.1.7",
"@types/ms": "0.7.30", "@types/ms": "0.7.30",
"@types/node": "10.9.4", "@types/node": "10.10.3",
"@types/portscanner": "2.1.0", "@types/portscanner": "2.1.0",
"@types/pug": "2.0.4", "@types/pug": "2.0.4",
"@types/qrcode": "1.2.0", "@types/qrcode": "1.2.0",
@ -75,9 +75,10 @@
"@types/single-line-log": "1.1.0", "@types/single-line-log": "1.1.0",
"@types/speakeasy": "2.0.2", "@types/speakeasy": "2.0.2",
"@types/systeminformation": "3.23.0", "@types/systeminformation": "3.23.0",
"@types/tinycolor2": "1.4.1",
"@types/tmp": "0.0.33", "@types/tmp": "0.0.33",
"@types/uuid": "3.4.4", "@types/uuid": "3.4.4",
"@types/webpack": "4.4.11", "@types/webpack": "4.4.12",
"@types/webpack-stream": "3.2.10", "@types/webpack-stream": "3.2.10",
"@types/websocket": "0.0.40", "@types/websocket": "0.0.40",
"@types/ws": "6.0.1", "@types/ws": "6.0.1",
@ -194,6 +195,7 @@
"systeminformation": "3.45.6", "systeminformation": "3.45.6",
"syuilo-password-strength": "0.0.1", "syuilo-password-strength": "0.0.1",
"textarea-caret": "3.1.0", "textarea-caret": "3.1.0",
"tinycolor2": "1.4.1",
"tmp": "0.0.33", "tmp": "0.0.33",
"ts-loader": "4.4.1", "ts-loader": "4.4.1",
"ts-node": "7.0.1", "ts-node": "7.0.1",
@ -206,22 +208,24 @@
"v-animate-css": "0.0.2", "v-animate-css": "0.0.2",
"vue": "2.5.17", "vue": "2.5.17",
"vue-chartjs": "3.4.0", "vue-chartjs": "3.4.0",
"vue-cropperjs": "2.2.1", "vue-color": "2.6.0",
"vue-cropperjs": "2.2.2",
"vue-js-modal": "1.3.26", "vue-js-modal": "1.3.26",
"vue-json-tree-view": "2.1.4", "vue-json-tree-view": "2.1.4",
"vue-loader": "15.4.2", "vue-loader": "15.4.2",
"vue-router": "3.0.1", "vue-router": "3.0.1",
"vue-style-loader": "4.1.2", "vue-style-loader": "4.1.2",
"vue-svg-inline-loader": "1.1.3",
"vue-template-compiler": "2.5.17", "vue-template-compiler": "2.5.17",
"vuedraggable": "2.16.0", "vuedraggable": "2.16.0",
"vuewordcloud": "18.7.11", "vuewordcloud": "18.7.11",
"vuex": "3.0.1", "vuex": "3.0.1",
"vuex-persistedstate": "2.5.4", "vuex-persistedstate": "2.5.4",
"web-push": "3.3.2", "web-push": "3.3.3",
"webfinger.js": "2.6.6", "webfinger.js": "2.6.6",
"webpack": "4.19.0", "webpack": "4.19.1",
"webpack-cli": "3.1.0", "webpack-cli": "3.1.0",
"websocket": "1.0.26", "websocket": "1.0.28",
"ws": "6.0.0", "ws": "6.0.0",
"xev": "2.0.1" "xev": "2.0.1"
}, },

View File

@ -27,7 +27,7 @@ body
z-index 65536 z-index 65536
.bar .bar
background $theme-color background var(--primary)
position fixed position fixed
z-index 65537 z-index 65537
@ -44,7 +44,7 @@ body
right 0px right 0px
width 100px width 100px
height 100% height 100%
box-shadow 0 0 10px $theme-color, 0 0 5px $theme-color box-shadow 0 0 10px var(--primary), 0 0 5px var(--primary)
opacity 1 opacity 1
transform rotate(3deg) translate(0px, -4px) transform rotate(3deg) translate(0px, -4px)
@ -64,8 +64,8 @@ body
box-sizing border-box box-sizing border-box
border solid 2px transparent border solid 2px transparent
border-top-color $theme-color border-top-color var(--primary)
border-left-color $theme-color border-left-color var(--primary)
border-radius 50% border-radius 50%
animation progress-spinner 400ms linear infinite animation progress-spinner 400ms linear infinite

View File

@ -1,3 +1,35 @@
<template> <template>
<router-view id="app"></router-view> <router-view id="app" v-hotkey.global="keymap"></router-view>
</template> </template>
<script lang="ts">
import Vue from 'vue';
import { url, lang } from './config';
import applyTheme from './common/scripts/theme';
const darkTheme = require('../theme/dark');
const halloweenTheme = require('../theme/halloween');
export default Vue.extend({
computed: {
keymap(): any {
return {
'h|slash': this.help,
'd': this.dark
};
}
},
methods: {
help() {
window.open(`${url}/docs/${lang}/keyboard-shortcut`, '_blank');
},
dark() {
this.$store.commit('device/set', {
key: 'darkmode',
value: !this.$store.state.device.darkmode
});
}
}
});
</script>

View File

@ -20,6 +20,16 @@
const langs = LANGS; const langs = LANGS;
//#region Apply theme
const theme = localStorage.getItem('theme');
if (theme) {
Object.entries(JSON.parse(theme)).forEach(([k, v]) => {
if (k == 'meta') return;
document.documentElement.style.setProperty(`--${k}`, v.toString());
});
}
//#endregion
//#region Load settings //#region Load settings
let settings = null; let settings = null;
const vuex = localStorage.getItem('vuex'); const vuex = localStorage.getItem('vuex');
@ -84,13 +94,6 @@
app = isMobile ? 'mobile' : 'desktop'; app = isMobile ? 'mobile' : 'desktop';
} }
// Dark/Light
if (settings) {
if (settings.device.darkmode) {
document.documentElement.setAttribute('data-darkmode', 'true');
}
}
// Script version // Script version
const ver = localStorage.getItem('v') || VERSION; const ver = localStorage.getItem('v') || VERSION;

View File

@ -0,0 +1,110 @@
import keyCode from './keycode';
import { concat } from '../../../prelude/array';
type pattern = {
which: string[];
ctrl?: boolean;
shift?: boolean;
alt?: boolean;
};
type action = {
patterns: pattern[];
callback: Function;
};
const getKeyMap = keymap => Object.entries(keymap).map(([patterns, callback]): action => {
const result = {
patterns: [],
callback: callback
} as action;
result.patterns = patterns.split('|').map(part => {
const pattern = {
which: [],
ctrl: false,
alt: false,
shift: false
} as pattern;
part.trim().split('+').forEach(key => {
key = key.trim().toLowerCase();
switch (key) {
case 'ctrl': pattern.ctrl = true; break;
case 'alt': pattern.alt = true; break;
case 'shift': pattern.shift = true; break;
default: pattern.which = keyCode(key).map(k => k.toLowerCase());
}
});
return pattern;
});
return result;
});
const ignoreElemens = ['input', 'textarea'];
export default {
install(Vue) {
Vue.directive('hotkey', {
bind(el, binding) {
el._hotkey_global = binding.modifiers.global === true;
const actions = getKeyMap(binding.value);
// flatten
const reservedKeys = concat(concat(actions.map(a => a.patterns.map(p => p.which))));
el.dataset.reservedKeys = reservedKeys.map(key => `'${key}'`).join(' ');
el._keyHandler = (e: KeyboardEvent) => {
const key = e.code.toLowerCase();
const targetReservedKeys = document.activeElement ? ((document.activeElement as any).dataset || {}).reservedKeys || '' : '';
if (document.activeElement && ignoreElemens.some(el => document.activeElement.matches(el))) return;
for (const action of actions) {
if (el._hotkey_global && targetReservedKeys.includes(`'${key}'`)) break;
const matched = action.patterns.some(pattern => {
const matched = pattern.which.includes(key) &&
pattern.ctrl == e.ctrlKey &&
pattern.shift == e.shiftKey &&
pattern.alt == e.altKey &&
e.metaKey == false;
if (matched) {
e.preventDefault();
e.stopPropagation();
action.callback(e);
return true;
} else {
return false;
}
});
if (matched) {
break;
}
}
};
if (el._hotkey_global) {
document.addEventListener('keydown', el._keyHandler);
} else {
el.addEventListener('keydown', el._keyHandler);
}
},
unbind(el) {
if (el._hotkey_global) {
document.removeEventListener('keydown', el._keyHandler);
} else {
el.removeEventListener('keydown', el._keyHandler);
}
}
});
}
};

View File

@ -0,0 +1,33 @@
export default (input: string): string[] => {
if (Object.keys(aliases).some(a => a.toLowerCase() == input.toLowerCase())) {
const codes = aliases[input];
return Array.isArray(codes) ? codes : [codes];
} else {
return [input];
}
};
export const aliases = {
'esc': 'Escape',
'enter': ['Enter', 'NumpadEnter'],
'up': 'ArrowUp',
'down': 'ArrowDown',
'left': 'ArrowLeft',
'right': 'ArrowRight',
'plus': ['NumpadAdd', 'Semicolon'],
};
/*!
* Programatically add the following
*/
// lower case chars
for (let i = 97; i < 123; i++) {
const char = String.fromCharCode(i);
aliases[char] = `Key${char.toUpperCase()}`;
}
// numbers
for (let i = 0; i < 10; i++) {
aliases[i] = [`Numpad${i}`, `Digit${i}`];
}

View File

@ -1,8 +1,8 @@
require('fuckadblock');
declare const fuckAdBlock: any; declare const fuckAdBlock: any;
export default (os) => { export default (os) => {
require('fuckadblock');
function adBlockDetected() { function adBlockDetected() {
os.apis.dialog({ os.apis.dialog({
title: '%fa:exclamation-triangle%%i18n:common.adblock.detected%', title: '%fa:exclamation-triangle%%i18n:common.adblock.detected%',

View File

@ -0,0 +1,13 @@
import Stream from './stream';
import MiOS from '../../../mios';
export class HashtagStream extends Stream {
constructor(os: MiOS, me, q) {
super(os, 'hashtag', me ? {
i: me.token,
q: JSON.stringify(q)
} : {
q: JSON.stringify(q)
});
}
}

View File

@ -50,6 +50,30 @@ export class HomeStream extends Stream {
}); });
}); });
this.on('unreadMention', () => {
os.store.dispatch('mergeMe', {
hasUnreadMentions: true
});
});
this.on('readAllUnreadMentions', () => {
os.store.dispatch('mergeMe', {
hasUnreadMentions: false
});
});
this.on('unreadSpecifiedNote', () => {
os.store.dispatch('mergeMe', {
hasUnreadSpecifiedNotes: true
});
});
this.on('readAllUnreadSpecifiedNotes', () => {
os.store.dispatch('mergeMe', {
hasUnreadSpecifiedNotes: false
});
});
this.on('clientSettingUpdated', x => { this.on('clientSettingUpdated', x => {
os.store.commit('settings/set', { os.store.commit('settings/set', {
key: x.key, key: x.key,

View File

@ -259,15 +259,13 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .mk-autocomplete
root(isDark)
position fixed position fixed
z-index 65535 z-index 65535
max-width 100% max-width 100%
margin-top calc(1em + 8px) margin-top calc(1em + 8px)
overflow hidden overflow hidden
background isDark ? #313543 : #fff background var(--faceHeader)
border solid 1px rgba(#000, 0.1) border solid 1px rgba(#000, 0.1)
border-radius 4px border-radius 4px
transition top 0.1s ease, left 0.1s ease transition top 0.1s ease, left 0.1s ease
@ -299,16 +297,16 @@ root(isDark)
text-overflow ellipsis text-overflow ellipsis
&:hover &:hover
background isDark ? rgba(#fff, 0.1) : rgba(#000, 0.1) background var(--autocompleteItemHoverBg)
&[data-selected='true'] &[data-selected='true']
background $theme-color background var(--primary)
&, * &, *
color #fff !important color #fff !important
&:active &:active
background darken($theme-color, 10%) background var(--primaryDarken10)
&, * &, *
color #fff !important color #fff !important
@ -325,15 +323,15 @@ root(isDark)
.name .name
margin 0 8px 0 0 margin 0 8px 0 0
color isDark ? rgba(#fff, 0.8) : rgba(#000, 0.8) color var(--autocompleteItemText)
.username .username
color isDark ? rgba(#fff, 0.3) : rgba(#000, 0.3) color var(--autocompleteItemTextSub)
> .hashtags > li > .hashtags > li
.name .name
color isDark ? rgba(#fff, 0.8) : rgba(#000, 0.8) color var(--autocompleteItemText)
> .emojis > li > .emojis > li
@ -343,15 +341,9 @@ root(isDark)
width 24px width 24px
.name .name
color isDark ? rgba(#fff, 0.8) : rgba(#000, 0.8) color var(--autocompleteItemText)
.alias .alias
margin 0 0 0 8px margin 0 0 0 8px
color isDark ? rgba(#fff, 0.3) : rgba(#000, 0.3) color var(--autocompleteItemTextSub)
.mk-autocomplete[data-darkmode]
root(true)
.mk-autocomplete:not([data-darkmode])
root(false)
</style> </style>

View File

@ -58,6 +58,11 @@ export default Vue.extend({
}; };
} }
}, },
mounted() {
if (this.user.avatarColor) {
this.$el.style.color = `rgb(${this.user.avatarColor.slice(0, 3).join(',')})`;
}
},
methods: { methods: {
onClick(e) { onClick(e) {
this.$emit('click', e); this.$emit('click', e);
@ -67,8 +72,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
.mk-avatar
root(isDark)
display inline-block display inline-block
vertical-align bottom vertical-align bottom
@ -79,7 +83,7 @@ root(isDark)
&.cat::before, &.cat::before,
&.cat::after &.cat::after
background #df548f background #df548f
border solid 4px isDark ? #e0eefd : #202224 border solid 4px currentColor
box-sizing border-box box-sizing border-box
content '' content ''
display inline-block display inline-block
@ -105,9 +109,4 @@ root(isDark)
transition border-radius 1s ease transition border-radius 1s ease
z-index 1 z-index 1
.mk-avatar[data-darkmode]
root(true)
.mk-avatar:not([data-darkmode])
root(false)
</style> </style>

View File

@ -39,7 +39,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl'
.mk-connect-failed .mk-connect-failed
width 100% width 100%
@ -70,17 +70,17 @@ export default Vue.extend({
display block display block
margin 1em auto 0 auto margin 1em auto 0 auto
padding 8px 10px padding 8px 10px
color $theme-color-foreground color var(--primaryForeground)
background $theme-color background var(--primary)
&:focus &:focus
outline solid 3px rgba($theme-color, 0.3) outline solid 3px var(--primaryAlpha03)
&:hover &:hover
background lighten($theme-color, 10%) background var(--primaryLighten10)
&:active &:active
background darken($theme-color, 10%) background var(--primaryDarken10)
> .thanks > .thanks
display block display block

View File

@ -22,23 +22,17 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
root(isDark) .nrvgflfuaxwgkxoynpnumyookecqrrvh
display inline-block display inline-block
padding 4px 8px padding 4px 8px
font-size 0.7em font-size 0.7em
color isDark ? #393f4f : #fff color var(--cwButtonFg)
background isDark ? #687390 : #b1b9c1 background var(--cwButtonBg)
border-radius 2px border-radius 2px
cursor pointer cursor pointer
user-select none user-select none
&:hover &:hover
background isDark ? #707b97 : #bbc4ce background var(--cwButtonHoverBg)
.nrvgflfuaxwgkxoynpnumyookecqrrvh[data-darkmode]
root(true)
.nrvgflfuaxwgkxoynpnumyookecqrrvh:not([data-darkmode])
root(false)
</style> </style>

View File

@ -9,7 +9,7 @@
</template> </template>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl'
.a .a
display block display block
@ -18,8 +18,8 @@
display block display block
//fill #151513 //fill #151513
//color #fff //color #fff
fill $theme-color fill var(--primary)
color $theme-color-foreground color var(--primaryForeground)
.octo-arm .octo-arm
transform-origin 130px 106px transform-origin 130px 106px

View File

@ -304,9 +304,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .xqnhankfuuilcwvhgsopeqncafzsquya
root(isDark)
text-align center text-align center
> .go-index > .go-index
@ -319,7 +317,7 @@ root(isDark)
> header > header
padding 8px padding 8px
border-bottom dashed 1px isDark ? #4c5761 : #c4cdd4 border-bottom dashed 1px var(--reversiGameHeaderLine)
a a
color inherit color inherit
@ -386,30 +384,30 @@ root(isDark)
user-select none user-select none
&.empty &.empty
border solid 2px isDark ? #51595f : #eee border solid 2px var(--reversiGameEmptyCell)
&.empty.can &.empty.can
background isDark ? #51595f : #eee background var(--reversiGameEmptyCell)
&.empty.myTurn &.empty.myTurn
border-color isDark ? #6a767f : #ddd border-color var(--reversiGameEmptyCellMyTurn)
&.can &.can
background isDark ? #51595f : #eee background var(--reversiGameEmptyCellCanPut)
cursor pointer cursor pointer
&:hover &:hover
border-color darken($theme-color, 10%) border-color var(--primaryDarken10)
background $theme-color background var(--primary)
&:active &:active
background darken($theme-color, 10%) background var(--primaryDarken10)
&.prev &.prev
box-shadow 0 0 0 4px rgba($theme-color, 0.7) box-shadow 0 0 0 4px var(--primaryAlpha07)
&.isEnded &.isEnded
border-color isDark ? #6a767f : #ddd border-color var(--reversiGameEmptyCellMyTurn)
&.none &.none
border-color transparent !important border-color transparent !important
@ -458,10 +456,4 @@ root(isDark)
margin 0 8px margin 0 8px
min-width 70px min-width 70px
.xqnhankfuuilcwvhgsopeqncafzsquya[data-darkmode]
root(true)
.xqnhankfuuilcwvhgsopeqncafzsquya:not([data-darkmode])
root(false)
</style> </style>

View File

@ -138,9 +138,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .phgnkghfpyvkrvwiajkiuoxyrdaqpzcx
root(isDark)
> h1 > h1
margin 0 margin 0
padding 24px padding 24px
@ -148,7 +146,7 @@ root(isDark)
text-align center text-align center
font-weight normal font-weight normal
color #fff color #fff
background linear-gradient(to bottom, isDark ? #45730e : #8bca3e, isDark ? #464300 : #d6cf31) background linear-gradient(to bottom, var(--reversiBannerGradientStart), var(--reversiBannerGradientEnd))
& + p & + p
margin 0 margin 0
@ -156,7 +154,7 @@ root(isDark)
margin-bottom 12px margin-bottom 12px
text-align center text-align center
font-size 14px font-size 14px
border-bottom solid 1px isDark ? #535f65 : #d3d9dc border-bottom solid 1px var(--faceDivider)
> .play > .play
margin 0 auto margin 0 auto
@ -171,14 +169,14 @@ root(isDark)
padding 16px padding 16px
font-size 14px font-size 14px
text-align left text-align left
background isDark ? #282c37 : #f5f5f5 background var(--reversiDescBg)
border-radius 8px border-radius 8px
> section > section
margin 0 auto margin 0 auto
padding 0 16px 16px 16px padding 0 16px 16px 16px
max-width 500px max-width 500px
border-top solid 1px isDark ? #535f65 : #d3d9dc border-top solid 1px var(--faceDivider)
> h2 > h2
margin 0 margin 0
@ -189,9 +187,9 @@ root(isDark)
.invitation .invitation
margin 8px 0 margin 8px 0
padding 8px padding 8px
color isDark ? #fff : #677f84 color var(--text)
background isDark ? #282c37 : #fff background var(--face)
box-shadow 0 2px 16px rgba(#000, isDark ? 0.7 : 0.15) box-shadow 0 2px 16px var(--reversiListItemShadow)
border-radius 6px border-radius 6px
cursor pointer cursor pointer
@ -200,13 +198,13 @@ root(isDark)
user-select none user-select none
&:focus &:focus
border-color $theme-color border-color var(--primary)
&:hover &:hover
background isDark ? #313543 : #f5f5f5 box-shadow 0 0 0 100px inset rgba(0, 0, 0, 0.05)
&:active &:active
background isDark ? #1e222b : #eee box-shadow 0 0 0 100px inset rgba(0, 0, 0, 0.1)
> .avatar > .avatar
width 32px width 32px
@ -221,9 +219,9 @@ root(isDark)
display block display block
margin 8px 0 margin 8px 0
padding 8px padding 8px
color isDark ? #fff : #677f84 color var(--text)
background isDark ? #282c37 : #fff background var(--face)
box-shadow 0 2px 16px rgba(#000, isDark ? 0.7 : 0.15) box-shadow 0 2px 16px var(--reversiListItemShadow)
border-radius 6px border-radius 6px
cursor pointer cursor pointer
@ -232,10 +230,10 @@ root(isDark)
user-select none user-select none
&:hover &:hover
background isDark ? #313543 : #f5f5f5 box-shadow 0 0 0 100px inset rgba(0, 0, 0, 0.05)
&:active &:active
background isDark ? #1e222b : #eee box-shadow 0 0 0 100px inset rgba(0, 0, 0, 0.1)
> .avatar > .avatar
width 32px width 32px
@ -246,10 +244,4 @@ root(isDark)
margin 0 8px margin 0 8px
line-height 32px line-height 32px
.phgnkghfpyvkrvwiajkiuoxyrdaqpzcx[data-darkmode]
root(true)
.phgnkghfpyvkrvwiajkiuoxyrdaqpzcx:not([data-darkmode])
root(false)
</style> </style>

View File

@ -47,9 +47,9 @@
</header> </header>
<div> <div>
<mk-switch v-model="game.settings.isLlotheo" @change="updateSettings" text="%i18n:@is-llotheo%"/> <ui-switch v-model="game.settings.isLlotheo" @change="updateSettings">%i18n:@is-llotheo%</ui-switch>
<mk-switch v-model="game.settings.loopedBoard" @change="updateSettings" text="%i18n:@looped-map%"/> <ui-switch v-model="game.settings.loopedBoard" @change="updateSettings">%i18n:@looped-map%</ui-switch>
<mk-switch v-model="game.settings.canPutEverywhere" @change="updateSettings" text="%i18n:@can-put-everywhere%"/> <ui-switch v-model="game.settings.canPutEverywhere" @change="updateSettings">%i18n:@can-put-everywhere%</ui-switch>
</div> </div>
</div> </div>
@ -60,7 +60,7 @@
<div> <div>
<template v-for="item in form"> <template v-for="item in form">
<mk-switch v-if="item.type == 'switch'" v-model="item.value" :key="item.id" :text="item.label" @change="onChangeForm(item)">{{ item.desc || '' }}</mk-switch> <ui-switch v-if="item.type == 'switch'" v-model="item.value" :key="item.id" :text="item.label" @change="onChangeForm(item)">{{ item.desc || '' }}</ui-switch>
<div class="card" v-if="item.type == 'radio'" :key="item.id"> <div class="card" v-if="item.type == 'radio'" :key="item.id">
<header> <header>
@ -252,11 +252,9 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .urbixznjwwuukfsckrwzwsqzsxornqij
root(isDark)
text-align center text-align center
background isDark ? #191b22 : #f9f9f9 background var(--bg)
> header > header
padding 8px padding 8px
@ -273,10 +271,10 @@ root(isDark)
> select > select
width 100% width 100%
padding 12px 14px padding 12px 14px
background isDark ? #282C37 : #fff background var(--face)
border 1px solid isDark ? #6a707d : #dcdfe6 border 1px solid var(--reversiMapSelectBorder)
border-radius 4px border-radius 4px
color isDark ? #fff : #606266 color var(--text)
cursor pointer cursor pointer
transition border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) transition border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1)
-webkit-appearance none -webkit-appearance none
@ -284,17 +282,18 @@ root(isDark)
appearance none appearance none
&:hover &:hover
border-color isDark ? #a7aebd : #c0c4cc border-color var(--reversiMapSelectHoverBorder)
&:focus &:focus
&:active &:active
border-color $theme-color border-color var(--primary)
> div > div
> .random > .random
padding 32px 0 padding 32px 0
font-size 64px font-size 64px
color isDark ? #4e5961 : #d8d8d8 color var(--text)
opacity 0.7
> .board > .board
display grid display grid
@ -302,11 +301,11 @@ root(isDark)
width 300px width 300px
height 300px height 300px
margin 0 auto margin 0 auto
color isDark ? #fff : #444 color var(--text)
> div > div
background transparent background transparent
border solid 2px isDark ? #6a767f : #ddd border solid 2px var(--faceDivider)
border-radius 6px border-radius 6px
overflow hidden overflow hidden
cursor pointer cursor pointer
@ -331,32 +330,26 @@ root(isDark)
.card .card
max-width 400px max-width 400px
border-radius 4px border-radius 4px
background isDark ? #282C37 : #fff background var(--face)
color isDark ? #fff : #303133 color var(--text)
box-shadow 0 2px 12px 0 rgba(#000, isDark ? 0.7 : 0.1) box-shadow 0 2px 12px 0 var(--reversiRoomFormShadow)
> header > header
padding 18px 20px padding 18px 20px
border-bottom 1px solid isDark ? #1c2023 : #ebeef5 border-bottom 1px solid var(--faceDivider)
> div > div
padding 20px padding 20px
color isDark ? #fff : #606266 color var(--text)
> footer > footer
position sticky position sticky
bottom 0 bottom 0
padding 16px padding 16px
background rgba(isDark ? #191b22 : #fff, 0.9) background var(--reversiRoomFooterBg)
border-top solid 1px isDark ? #606266 : #c4cdd4 border-top solid 1px var(--faceDivider)
> .status > .status
margin 0 0 16px 0 margin 0 0 16px 0
.urbixznjwwuukfsckrwzwsqzsxornqij[data-darkmode]
root(true)
.urbixznjwwuukfsckrwzwsqzsxornqij:not([data-darkmode])
root(false)
</style> </style>

View File

@ -156,11 +156,9 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .vchtoekanapleubgzioubdtmlkribzfd
color var(--text)
root(isDark) background var(--bg)
color isDark ? #fff : #677f84
background isDark ? #191b22 : #fff
> .matching > .matching
> h1 > h1
@ -177,10 +175,4 @@ root(isDark)
text-align center text-align center
border-top dashed 1px #c4cdd4 border-top dashed 1px #c4cdd4
.vchtoekanapleubgzioubdtmlkribzfd[data-darkmode]
root(true)
.vchtoekanapleubgzioubdtmlkribzfd:not([data-darkmode])
root(false)
</style> </style>

View File

@ -26,7 +26,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
root(isDark) .mk-google
display flex display flex
margin 8px 0 margin 8px 0
@ -37,31 +37,25 @@ root(isDark)
height 40px height 40px
font-family sans-serif font-family sans-serif
font-size 16px font-size 16px
color isDark ? #dee4e8 : #55595c color var(--googleSearchFg)
background isDark ? #191b22 : #fff background var(--googleSearchBg)
border solid 1px isDark ? #495156 : #dadada border solid 1px var(--googleSearchBorder)
border-radius 4px 0 0 4px border-radius 4px 0 0 4px
&:hover &:hover
border-color isDark ? #777c86 : #b0b0b0 border-color var(--googleSearchHoverBorder)
> button > button
flex-shrink 0 flex-shrink 0
padding 0 16px padding 0 16px
border solid 1px isDark ? #495156 : #dadada border solid 1px var(--googleSearchBorder)
border-left none border-left none
border-radius 0 4px 4px 0 border-radius 0 4px 4px 0
&:hover &:hover
background-color isDark ? #2e3440 : #eee background-color var(--googleSearchHoverButton)
&:active &:active
box-shadow 0 2px 4px rgba(#000, 0.15) inset box-shadow 0 2px 4px rgba(#000, 0.15) inset
.mk-google[data-darkmode]
root(true)
.mk-google:not([data-darkmode])
root(false)
</style> </style>

View File

@ -1,5 +1,7 @@
import Vue from 'vue'; import Vue from 'vue';
import theme from './theme.vue';
import instance from './instance.vue';
import cwButton from './cw-button.vue'; import cwButton from './cw-button.vue';
import tagCloud from './tag-cloud.vue'; import tagCloud from './tag-cloud.vue';
import trends from './trends.vue'; import trends from './trends.vue';
@ -29,7 +31,6 @@ import messagingRoom from './messaging-room.vue';
import urlPreview from './url-preview.vue'; import urlPreview from './url-preview.vue';
import twitterSetting from './twitter-setting.vue'; import twitterSetting from './twitter-setting.vue';
import fileTypeIcon from './file-type-icon.vue'; import fileTypeIcon from './file-type-icon.vue';
import Switch from './switch.vue';
import Reversi from './games/reversi/reversi.vue'; import Reversi from './games/reversi/reversi.vue';
import welcomeTimeline from './welcome-timeline.vue'; import welcomeTimeline from './welcome-timeline.vue';
import uiInput from './ui/input.vue'; import uiInput from './ui/input.vue';
@ -43,6 +44,8 @@ import uiSelect from './ui/select.vue';
import formButton from './ui/form/button.vue'; import formButton from './ui/form/button.vue';
import formRadio from './ui/form/radio.vue'; import formRadio from './ui/form/radio.vue';
Vue.component('mk-theme', theme);
Vue.component('mk-instance', instance);
Vue.component('mk-cw-button', cwButton); Vue.component('mk-cw-button', cwButton);
Vue.component('mk-tag-cloud', tagCloud); Vue.component('mk-tag-cloud', tagCloud);
Vue.component('mk-trends', trends); Vue.component('mk-trends', trends);
@ -72,7 +75,6 @@ Vue.component('mk-messaging-room', messagingRoom);
Vue.component('mk-url-preview', urlPreview); Vue.component('mk-url-preview', urlPreview);
Vue.component('mk-twitter-setting', twitterSetting); Vue.component('mk-twitter-setting', twitterSetting);
Vue.component('mk-file-type-icon', fileTypeIcon); Vue.component('mk-file-type-icon', fileTypeIcon);
Vue.component('mk-switch', Switch);
Vue.component('mk-reversi', Reversi); Vue.component('mk-reversi', Reversi);
Vue.component('mk-welcome-timeline', welcomeTimeline); Vue.component('mk-welcome-timeline', welcomeTimeline);
Vue.component('ui-input', uiInput); Vue.component('ui-input', uiInput);

View File

@ -0,0 +1,51 @@
<template>
<div class="nhasjydimbopojusarffqjyktglcuxjy" v-if="meta">
<div class="banner" :style="{ backgroundImage: meta.bannerUrl ? `url(${meta.bannerUrl})` : null }"></div>
<h1>{{ meta.name }}</h1>
<p v-html="meta.description || '%i18n:common.about%'"></p>
<router-link to="/">%i18n:@start%</router-link>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
export default Vue.extend({
data() {
return {
meta: null
}
},
created() {
(this as any).os.getMeta().then(meta => {
this.meta = meta;
});
}
});
</script>
<style lang="stylus" scoped>
.nhasjydimbopojusarffqjyktglcuxjy
color var(--text)
background var(--face)
text-align center
> .banner
height 100px
background-position center
background-size cover
> h1
margin 16px
font-size 16px
> p
margin 16px
font-size 14px
> a
display block
padding-bottom 16px
</style>

View File

@ -0,0 +1,85 @@
<template>
<div class="mk-media-banner">
<div class="sensitive" v-if="media.isSensitive && hide" @click="hide = false">
<span class="icon">%fa:exclamation-triangle%</span>
<b>%i18n:@sensitive%</b>
<span>%i18n:@click-to-show%</span>
</div>
<div class="audio" v-else-if="media.type.startsWith('audio')">
<audio class="audio"
:src="media.url"
:title="media.name"
controls
ref="audio"
preload="metadata" />
</div>
<a class="download" v-else
:href="media.url"
:title="media.name"
:download="media.name"
>
<span class="icon">%fa:download%</span>
<b>{{ media.name }}</b>
</a>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
export default Vue.extend({
props: {
media: {
type: Object,
required: true
}
},
data() {
return {
hide: true
};
}
})
</script>
<style lang="stylus" scoped>
.mk-media-banner
width 100%
border-radius 4px
margin-top 4px
overflow hidden
> .download,
> .sensitive
display flex
align-items center
font-size 12px
padding 8px 12px
white-space nowrap
> *
display block
> b
overflow hidden
text-overflow ellipsis
> *:not(:last-child)
margin-right .2em
> .icon
font-size 1.6em
> .download
background var(--noteAttachedFile)
> .sensitive
background #111
color #fff
> .audio
.audio
display block
width 100%
</style>

View File

@ -1,18 +1,27 @@
<template> <template>
<div class="mk-media-list"> <div class="mk-media-list">
<div :data-count="mediaList.length" ref="grid"> <template v-for="media in mediaList.filter(media => !previewable(media))">
<template v-for="media in mediaList"> <x-banner :media="media" :key="media.id"/>
<mk-media-video :video="media" :key="media.id" v-if="media.type.startsWith('video')" :inline-playable="mediaList.length === 1"/>
<mk-media-image :image="media" :key="media.id" v-else :raw="raw"/>
</template> </template>
<div v-if="mediaList.filter(media => previewable(media)).length > 0" class="gird-container">
<div :data-count="mediaList.filter(media => previewable(media)).length" ref="grid">
<template v-for="media in mediaList">
<mk-media-video :video="media" :key="media.id" v-if="media.type.startsWith('video')"/>
<mk-media-image :image="media" :key="media.id" v-else-if="media.type.startsWith('image')" :raw="raw"/>
</template>
</div>
</div> </div>
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import XBanner from './media-banner.vue';
export default Vue.extend({ export default Vue.extend({
components: {
XBanner
},
props: { props: {
mediaList: { mediaList: {
required: true required: true
@ -22,15 +31,25 @@ export default Vue.extend({
} }
}, },
mounted() { mounted() {
// for Safari bug //#region for Safari bug
if (this.$refs.grid) {
this.$refs.grid.style.height = this.$refs.grid.clientHeight ? `${this.$refs.grid.clientHeight}px` : '128px'; this.$refs.grid.style.height = this.$refs.grid.clientHeight ? `${this.$refs.grid.clientHeight}px` : '128px';
} }
//#endregion
},
methods: {
previewable(file) {
return file.type.startsWith('video') || file.type.startsWith('image');
}
}
}); });
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
.mk-media-list .mk-media-list
> .gird-container
width 100% width 100%
margin-top 4px
&:before &:before
content '' content ''

View File

@ -2,9 +2,9 @@
<div class="onchrpzrvnoruiaenfcqvccjfuupzzwv"> <div class="onchrpzrvnoruiaenfcqvccjfuupzzwv">
<div class="backdrop" ref="backdrop" @click="close"></div> <div class="backdrop" ref="backdrop" @click="close"></div>
<div class="popover" :class="{ hukidasi }" ref="popover"> <div class="popover" :class="{ hukidasi }" ref="popover">
<template v-for="item in items"> <template v-for="item, i in items">
<div v-if="item === null"></div> <div v-if="item === null"></div>
<button v-if="item" @click="clicked(item.action)" v-html="item.icon ? item.icon + ' ' + item.text : item.text"></button> <button v-if="item" @click="clicked(item.action)" v-html="item.icon ? item.icon + ' ' + item.text : item.text" :tabindex="i"></button>
</template> </template>
</div> </div>
</div> </div>
@ -117,10 +117,8 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .onchrpzrvnoruiaenfcqvccjfuupzzwv
$bg-color = var(--popupBg)
root(isDark)
$bg-color = isDark ? #2c303c : #fff
$border-color = rgba(27, 31, 35, 0.15) $border-color = rgba(27, 31, 35, 0.15)
position initial position initial
@ -132,7 +130,7 @@ root(isDark)
z-index 10000 z-index 10000
width 100% width 100%
height 100% height 100%
background rgba(#000, isDark ? 0.5 : 0.1) background var(--modalBackdrop)
opacity 0 opacity 0
> .popover > .popover
@ -179,26 +177,20 @@ root(isDark)
display block display block
padding 8px 16px padding 8px 16px
width 100% width 100%
color isDark ? #d6dce2 : #111 color var(--popupFg)
&:hover &:hover
color $theme-color-foreground color var(--primaryForeground)
background $theme-color background var(--primary)
text-decoration none text-decoration none
&:active &:active
color $theme-color-foreground color var(--primaryForeground)
background darken($theme-color, 10%) background var(--primaryDarken10)
> div > div
margin 8px 0 margin 8px 0
height 1px height 1px
background isDark ? #1c2023 : #eee background var(--faceDivider)
.onchrpzrvnoruiaenfcqvccjfuupzzwv[data-darkmode]
root(true)
.onchrpzrvnoruiaenfcqvccjfuupzzwv:not([data-darkmode])
root(false)
</style> </style>

View File

@ -195,9 +195,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .mk-messaging-form
root(isDark)
> textarea > textarea
cursor auto cursor auto
display block display block
@ -209,10 +207,10 @@ root(isDark)
padding 8px padding 8px
resize none resize none
font-size 1em font-size 1em
color isDark ? #fff : #000 color var(--inputText)
outline none outline none
border none border none
border-top solid 1px isDark ? #4b5056 : #eee border-top solid 1px var(--faceDivider)
border-radius 0 border-radius 0
box-shadow none box-shadow none
background transparent background transparent
@ -234,10 +232,10 @@ root(isDark)
transition color 0.1s ease transition color 0.1s ease
&:hover &:hover
color $theme-color color var(--primary)
&:active &:active
color darken($theme-color, 10%) color var(--primaryDarken10)
transition color 0s ease transition color 0s ease
.files .files
@ -293,19 +291,13 @@ root(isDark)
transition color 0.1s ease transition color 0.1s ease
&:hover &:hover
color $theme-color color var(--primary)
&:active &:active
color darken($theme-color, 10%) color var(--primaryDarken10)
transition color 0s ease transition color 0s ease
input[type=file] input[type=file]
display none display none
.mk-messaging-form[data-darkmode]
root(true)
.mk-messaging-form:not([data-darkmode])
root(false)
</style> </style>

View File

@ -59,10 +59,8 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .message
$me-balloon-color = var(--primary)
root(isDark)
$me-balloon-color = $theme-color
padding 10px 12px 10px 12px padding 10px 12px 10px 12px
background-color transparent background-color transparent
@ -179,7 +177,7 @@ root(isDark)
display block display block
margin 2px 0 0 0 margin 2px 0 0 0
font-size 10px font-size 10px
color isDark ? rgba(#fff, 0.4) : rgba(#000, 0.4) color var(--messagingRoomMessageInfo)
> [data-fa] > [data-fa]
margin-left 4px margin-left 4px
@ -192,7 +190,7 @@ root(isDark)
padding-left 66px padding-left 66px
> .balloon > .balloon
$color = isDark ? #2d3338 : #eee $color = var(--messagingRoomMessageBg)
float left float left
background $color background $color
@ -208,8 +206,7 @@ root(isDark)
> .content > .content
> .text > .text
if isDark color var(--messagingRoomMessageFg)
color #fff
> footer > footer
text-align left text-align left
@ -250,18 +247,9 @@ root(isDark)
> .read > .read
user-select none user-select none
margin 0 4px 0 0
color isDark ? rgba(#fff, 0.5) : rgba(#000, 0.5)
font-size 11px
&[data-is-deleted] &[data-is-deleted]
> .balloon > .balloon
opacity 0.5 opacity 0.5
.message[data-darkmode]
root(true)
.message:not([data-darkmode])
root(false)
</style> </style>

View File

@ -262,14 +262,12 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .mk-messaging-room
root(isDark)
display flex display flex
flex 1 flex 1
flex-direction column flex-direction column
height 100% height 100%
background isDark ? #191b22 : #fff background var(--messagingRoomBg)
> .body > .body
width 100% width 100%
@ -277,24 +275,15 @@ root(isDark)
margin 0 auto margin 0 auto
flex 1 flex 1
> .init > .init,
width 100%
margin 0
padding 16px 8px 8px 8px
text-align center
font-size 0.8em
color rgba(isDark ? #fff : #000, 0.4)
[data-fa]
margin-right 4px
> .empty > .empty
width 100% width 100%
margin 0 margin 0
padding 16px 8px 8px 8px padding 16px 8px 8px 8px
text-align center text-align center
font-size 0.8em font-size 0.8em
color rgba(isDark ? #fff : #000, 0.4) color var(--messagingRoomInfo)
opacity 0.5
[data-fa] [data-fa]
margin-right 4px margin-right 4px
@ -305,7 +294,8 @@ root(isDark)
padding 16px padding 16px
text-align center text-align center
font-size 0.8em font-size 0.8em
color rgba(isDark ? #fff : #000, 0.4) color var(--messagingRoomInfo)
opacity 0.5
[data-fa] [data-fa]
margin-right 4px margin-right 4px
@ -349,7 +339,7 @@ root(isDark)
left 0 left 0
right 0 right 0
margin 0 auto margin 0 auto
background rgba(isDark ? #fff : #000, 0.1) background var(--messagingRoomDateDividerLine)
> span > span
display inline-block display inline-block
@ -357,8 +347,8 @@ root(isDark)
padding 0 16px padding 0 16px
//font-weight bold //font-weight bold
line-height 32px line-height 32px
color rgba(isDark ? #fff : #000, 0.3) color var(--messagingRoomDateDividerText)
background isDark ? #191b22 : #fff background var(--messagingRoomBg)
> footer > footer
position -webkit-sticky position -webkit-sticky
@ -369,7 +359,7 @@ root(isDark)
max-width 600px max-width 600px
margin 0 auto margin 0 auto
padding 0 padding 0
background rgba(isDark ? #282c37 : #fff, 0.95) //background rgba(var(--face), 0.95)
background-clip content-box background-clip content-box
> .new-message > .new-message
@ -386,15 +376,15 @@ root(isDark)
cursor pointer cursor pointer
line-height 32px line-height 32px
font-size 12px font-size 12px
color $theme-color-foreground color var(--primaryForeground)
background $theme-color background var(--primary)
border-radius 16px border-radius 16px
&:hover &:hover
background lighten($theme-color, 10%) background var(--primaryLighten10)
&:active &:active
background darken($theme-color, 10%) background var(--primaryDarken10)
> [data-fa] > [data-fa]
position absolute position absolute
@ -410,10 +400,4 @@ root(isDark)
transition opacity 0.5s transition opacity 0.5s
opacity 0 opacity 0
.mk-messaging-room[data-darkmode]
root(true)
.mk-messaging-room:not([data-darkmode])
root(false)
</style> </style>

View File

@ -167,9 +167,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .mk-messaging
root(isDark)
&[data-compact] &[data-compact]
font-size 0.8em font-size 0.8em
@ -204,12 +202,10 @@ root(isDark)
left 0 left 0
z-index 1 z-index 1
width 100% width 100%
background #fff
box-shadow 0 0px 2px rgba(#000, 0.2) box-shadow 0 0px 2px rgba(#000, 0.2)
> .form > .form
padding 8px background rgba(0, 0, 0, 0.02)
background isDark ? #282c37 : #f7f7f7
> label > label
display block display block
@ -229,32 +225,22 @@ root(isDark)
bottom 0 bottom 0
left 0 left 0
width 1em width 1em
line-height 56px line-height 48px
margin auto margin auto
color #555 color #555
> input > input
margin 0 margin 0
padding 0 0 0 32px padding 0 0 0 42px
width 100% width 100%
font-size 1em font-size 1em
line-height 38px line-height 48px
color #000 color var(--faceText)
outline none outline none
background isDark ? #191b22 : #fff background transparent
border solid 1px isDark ? #495156 : #eee border none
border-radius 5px border-radius 5px
box-shadow none box-shadow none
transition color 0.5s ease, border 0.5s ease
&:hover
border solid 1px isDark ? #b0b0b0 : #ddd
transition border 0.2s ease
&:focus
color darken($theme-color, 20%)
border solid 1px $theme-color
transition color 0, border 0
> .result > .result
display block display block
@ -287,7 +273,7 @@ root(isDark)
&:hover &:hover
&:focus &:focus
color #fff color #fff
background $theme-color background var(--primary)
.name .name
color #fff color #fff
@ -297,7 +283,7 @@ root(isDark)
&:active &:active
color #fff color #fff
background darken($theme-color, 10%) background var(--primaryDarken10)
.name .name
color #fff color #fff
@ -329,21 +315,21 @@ root(isDark)
> a > a
display block display block
text-decoration none text-decoration none
background isDark ? #282c37 : #fff background var(--face)
border-bottom solid 1px isDark ? #1c2023 : #eee border-bottom solid 1px var(--faceDivider)
* *
pointer-events none pointer-events none
user-select none user-select none
&:hover &:hover
background isDark ? #1e2129 : #fafafa box-shadow 0 0 0 100px inset rgba(0, 0, 0, 0.05)
> .avatar .avatar
filter saturate(200%) filter saturate(200%)
&:active &:active
background isDark ? #14161b : #eee box-shadow 0 0 0 100px inset rgba(0, 0, 0, 0.1)
&[data-is-read] &[data-is-read]
&[data-is-me] &[data-is-me]
@ -383,17 +369,17 @@ root(isDark)
overflow hidden overflow hidden
text-overflow ellipsis text-overflow ellipsis
font-size 1em font-size 1em
color isDark ? #fff : rgba(#000, 0.9) color var(--noteHeaderName)
font-weight bold font-weight bold
transition all 0.1s ease transition all 0.1s ease
> .username > .username
margin 0 8px margin 0 8px
color isDark ? #606984 : rgba(#000, 0.5) color var(--noteHeaderAcct)
> .mk-time > .mk-time
margin 0 0 0 auto margin 0 0 0 auto
color isDark ? #606984 : rgba(#000, 0.5) color var(--noteHeaderInfo)
font-size 80% font-size 80%
> .avatar > .avatar
@ -413,10 +399,10 @@ root(isDark)
overflow hidden overflow hidden
overflow-wrap break-word overflow-wrap break-word
font-size 1.1em font-size 1.1em
color isDark ? #fff : rgba(#000, 0.8) color var(--faceText)
.me .me
color isDark ? rgba(#fff, 0.7) : rgba(#000, 0.4) opacity 0.7
> .image > .image
display block display block
@ -461,10 +447,4 @@ root(isDark)
> .avatar > .avatar
margin 0 12px 0 0 margin 0 12px 0 0
.mk-messaging[data-darkmode]
root(true)
.mk-messaging:not([data-darkmode])
root(false)
</style> </style>

View File

@ -2,6 +2,8 @@
<span class="mk-nav"> <span class="mk-nav">
<a :href="aboutUrl">%i18n:@about%</a> <a :href="aboutUrl">%i18n:@about%</a>
<i></i> <i></i>
<a href="/stats">%i18n:@stats%</a>
<i></i>
<a :href="repositoryUrl">%i18n:@repository%</a> <a :href="repositoryUrl">%i18n:@repository%</a>
<i></i> <i></i>
<a :href="feedbackUrl" target="_blank">%i18n:@feedback%</a> <a :href="feedbackUrl" target="_blank">%i18n:@feedback%</a>

View File

@ -42,9 +42,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .bvonvjxbwzaiskogyhbwgyxvcgserpmu
root(isDark)
display flex display flex
align-items baseline align-items baseline
white-space nowrap white-space nowrap
@ -61,7 +59,7 @@ root(isDark)
margin 0 .5em 0 0 margin 0 .5em 0 0
padding 0 padding 0
overflow hidden overflow hidden
color isDark ? #fff : #627079 color var(--noteHeaderName)
font-size 1em font-size 1em
font-weight bold font-weight bold
text-decoration none text-decoration none
@ -82,19 +80,19 @@ root(isDark)
margin 0 .5em 0 0 margin 0 .5em 0 0
padding 1px 6px padding 1px 6px
font-size 80% font-size 80%
color isDark ? #758188 : #aaa color var(--noteHeaderBadgeFg)
border solid 1px isDark ? #57616f : #ddd background var(--noteHeaderBadgeBg)
border-radius 3px border-radius 3px
&.is-admin &.is-admin
border-color isDark ? #d42c41 : #f56a7b background var(--noteHeaderAdminBg)
color isDark ? #d42c41 : #f56a7b color var(--noteHeaderAdminFg)
> .username > .username
margin 0 .5em 0 0 margin 0 .5em 0 0
overflow hidden overflow hidden
text-overflow ellipsis text-overflow ellipsis
color isDark ? #606984 : #ccc color var(--noteHeaderAcct)
flex-shrink 2147483647 flex-shrink 2147483647
> .info > .info
@ -102,7 +100,7 @@ root(isDark)
font-size 0.9em font-size 0.9em
> * > *
color isDark ? #606984 : #c0c0c0 color var(--noteHeaderInfo)
> .mobile > .mobile
margin-right 8px margin-right 8px
@ -110,15 +108,9 @@ root(isDark)
> .app > .app
margin-right 8px margin-right 8px
padding-right 8px padding-right 8px
border-right solid 1px isDark ? #1c2023 : #eaeaea border-right solid 1px var(--faceDivider)
> .visibility > .visibility
margin-left 8px margin-left 8px
.bvonvjxbwzaiskogyhbwgyxvcgserpmu[data-darkmode]
root(true)
.bvonvjxbwzaiskogyhbwgyxvcgserpmu:not([data-darkmode])
root(false)
</style> </style>

View File

@ -28,17 +28,29 @@ export default Vue.extend({
}]; }];
if (this.note.userId == this.$store.state.i.id) { if (this.note.userId == this.$store.state.i.id) {
if ((this.$store.state.i.pinnedNoteIds || []).includes(this.note.id)) {
items.push({
icon: '%fa:thumbtack%',
text: '%i18n:@unpin%',
action: this.unpin
});
} else {
items.push({ items.push({
icon: '%fa:thumbtack%', icon: '%fa:thumbtack%',
text: '%i18n:@pin%', text: '%i18n:@pin%',
action: this.pin action: this.pin
}); });
}
}
if (this.note.userId == this.$store.state.i.id || this.$store.state.i.isAdmin) {
items.push({ items.push({
icon: '%fa:trash-alt R%', icon: '%fa:trash-alt R%',
text: '%i18n:@delete%', text: '%i18n:@delete%',
action: this.del action: this.del
}); });
} }
if (this.note.uri) { if (this.note.uri) {
items.push({ items.push({
icon: '%fa:external-link-square-alt%', icon: '%fa:external-link-square-alt%',
@ -48,9 +60,11 @@ export default Vue.extend({
} }
}); });
} }
return items; return items;
} }
}, },
methods: { methods: {
detail() { detail() {
this.$router.push(`/notes/${ this.note.id }`); this.$router.push(`/notes/${ this.note.id }`);
@ -68,6 +82,14 @@ export default Vue.extend({
}); });
}, },
unpin() {
(this as any).api('i/unpin', {
noteId: this.note.id
}).then(() => {
this.destroyDom();
});
},
del() { del() {
if (!window.confirm('%i18n:@delete-confirm%')) return; if (!window.confirm('%i18n:@delete-confirm%')) return;
(this as any).api('notes/delete', { (this as any).api('notes/delete', {

View File

@ -68,9 +68,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .mk-poll-editor
root(isDark)
padding 8px padding 8px
> .caution > .caution
@ -103,49 +101,43 @@ root(isDark)
padding 6px 8px padding 6px 8px
width 300px width 300px
font-size 14px font-size 14px
color isDark ? #fff : #000 color var(--inputText)
background isDark ? #191b22 : #fff background var(--pollEditorInputBg)
border solid 1px rgba($theme-color, 0.1) border solid 1px var(--primaryAlpha01)
border-radius 4px border-radius 4px
&:hover &:hover
border-color rgba($theme-color, 0.2) border-color var(--primaryAlpha02)
&:focus &:focus
border-color rgba($theme-color, 0.5) border-color var(--primaryAlpha05)
> button > button
padding 4px 8px padding 4px 8px
color rgba($theme-color, 0.4) color var(--primaryAlpha04)
&:hover &:hover
color rgba($theme-color, 0.6) color var(--primaryAlpha06)
&:active &:active
color darken($theme-color, 30%) color var(--primaryDarken30)
> .add > .add
margin 8px 0 0 0 margin 8px 0 0 0
vertical-align top vertical-align top
color $theme-color color var(--primary)
> .destroy > .destroy
position absolute position absolute
top 0 top 0
right 0 right 0
padding 4px 8px padding 4px 8px
color rgba($theme-color, 0.4) color var(--primaryAlpha04)
&:hover &:hover
color rgba($theme-color, 0.6) color var(--primaryAlpha06)
&:active &:active
color darken($theme-color, 30%) color var(--primaryDarken30)
.mk-poll-editor[data-darkmode]
root(true)
.mk-poll-editor:not([data-darkmode])
root(false)
</style> </style>

View File

@ -67,10 +67,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .mk-poll
root(isDark)
> ul > ul
display block display block
margin 0 margin 0
@ -82,8 +79,8 @@ root(isDark)
margin 4px 0 margin 4px 0
padding 4px 8px padding 4px 8px
width 100% width 100%
color isDark ? #fff : #000 color var(--pollChoiceText)
border solid 1px isDark ? #5e636f : #eee border solid 1px var(--pollChoiceBorder)
border-radius 4px border-radius 4px
overflow hidden overflow hidden
cursor pointer cursor pointer
@ -99,7 +96,7 @@ root(isDark)
top 0 top 0
left 0 left 0
height 100% height 100%
background $theme-color background var(--primary)
transition width 1s ease transition width 1s ease
> span > span
@ -110,7 +107,7 @@ root(isDark)
margin-left 4px margin-left 4px
> p > p
color isDark ? #a3aebf : #000 color var(--text)
a a
color inherit color inherit
@ -125,10 +122,4 @@ root(isDark)
&:active &:active
background transparent background transparent
.mk-poll[data-darkmode]
root(true)
.mk-poll:not([data-darkmode])
root(false)
</style> </style>

View File

@ -1,9 +1,9 @@
<template> <template>
<div class="mk-reaction-picker"> <div class="mk-reaction-picker" v-hotkey.global="keymap">
<div class="backdrop" ref="backdrop" @click="close"></div> <div class="backdrop" ref="backdrop" @click="close"></div>
<div class="popover" :class="{ compact, big }" ref="popover"> <div class="popover" :class="{ compact, big }" ref="popover">
<p v-if="!compact">{{ title }}</p> <p v-if="!compact">{{ title }}</p>
<div> <div ref="buttons" :class="{ showFocus }">
<button @click="react('like')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="1" title="%i18n:common.reactions.like%"><mk-reaction-icon reaction='like'/></button> <button @click="react('like')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="1" title="%i18n:common.reactions.like%"><mk-reaction-icon reaction='like'/></button>
<button @click="react('love')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="2" title="%i18n:common.reactions.love%"><mk-reaction-icon reaction='love'/></button> <button @click="react('love')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="2" title="%i18n:common.reactions.love%"><mk-reaction-icon reaction='love'/></button>
<button @click="react('laugh')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="3" title="%i18n:common.reactions.laugh%"><mk-reaction-icon reaction='laugh'/></button> <button @click="react('laugh')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="3" title="%i18n:common.reactions.laugh%"><mk-reaction-icon reaction='laugh'/></button>
@ -31,30 +31,84 @@ export default Vue.extend({
type: Object, type: Object,
required: true required: true
}, },
source: { source: {
required: true required: true
}, },
compact: { compact: {
type: Boolean, type: Boolean,
required: false, required: false,
default: false default: false
}, },
cb: { cb: {
required: false required: false
}, },
big: { big: {
type: Boolean, type: Boolean,
required: false, required: false,
default: false default: false
},
showFocus: {
type: Boolean,
required: false,
default: false
},
animation: {
type: Boolean,
required: false,
default: true
} }
}, },
data() { data() {
return { return {
title: placeholder title: placeholder,
focus: null
}; };
}, },
computed: {
keymap(): any {
return {
'esc': this.close,
'enter|space|plus': this.choose,
'up|k': this.focusUp,
'left|h|shift+tab': this.focusLeft,
'right|l|tab': this.focusRight,
'down|j': this.focusDown,
'1': () => this.react('like'),
'2': () => this.react('love'),
'3': () => this.react('laugh'),
'4': () => this.react('hmm'),
'5': () => this.react('surprise'),
'6': () => this.react('congrats'),
'7': () => this.react('angry'),
'8': () => this.react('confused'),
'9': () => this.react('rip'),
'0': () => this.react('pudding'),
};
}
},
watch: {
focus(i) {
this.$refs.buttons.children[i].focus();
if (this.showFocus) {
this.title = this.$refs.buttons.children[i].title;
}
}
},
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
this.focus = 0;
const popover = this.$refs.popover as any; const popover = this.$refs.popover as any;
const rect = this.source.getBoundingClientRect(); const rect = this.source.getBoundingClientRect();
@ -76,7 +130,7 @@ export default Vue.extend({
anime({ anime({
targets: this.$refs.backdrop, targets: this.$refs.backdrop,
opacity: 1, opacity: 1,
duration: 100, duration: this.animation ? 100 : 0,
easing: 'linear' easing: 'linear'
}); });
@ -84,10 +138,11 @@ export default Vue.extend({
targets: this.$refs.popover, targets: this.$refs.popover,
opacity: 1, opacity: 1,
scale: [0.5, 1], scale: [0.5, 1],
duration: 500 duration: this.animation ? 500 : 0
}); });
}); });
}, },
methods: { methods: {
react(reaction) { react(reaction) {
(this as any).api('notes/reactions/create', { (this as any).api('notes/reactions/create', {
@ -95,21 +150,25 @@ export default Vue.extend({
reaction: reaction reaction: reaction
}).then(() => { }).then(() => {
if (this.cb) this.cb(); if (this.cb) this.cb();
this.$emit('closed');
this.destroyDom(); this.destroyDom();
}); });
}, },
onMouseover(e) { onMouseover(e) {
this.title = e.target.title; this.title = e.target.title;
}, },
onMouseout(e) { onMouseout(e) {
this.title = placeholder; this.title = placeholder;
}, },
close() { close() {
(this.$refs.backdrop as any).style.pointerEvents = 'none'; (this.$refs.backdrop as any).style.pointerEvents = 'none';
anime({ anime({
targets: this.$refs.backdrop, targets: this.$refs.backdrop,
opacity: 0, opacity: 0,
duration: 200, duration: this.animation ? 200 : 0,
easing: 'linear' easing: 'linear'
}); });
@ -118,21 +177,42 @@ export default Vue.extend({
targets: this.$refs.popover, targets: this.$refs.popover,
opacity: 0, opacity: 0,
scale: 0.5, scale: 0.5,
duration: 200, duration: this.animation ? 200 : 0,
easing: 'easeInBack', easing: 'easeInBack',
complete: () => this.destroyDom() complete: () => {
this.$emit('closed');
this.destroyDom();
}
}); });
},
focusUp() {
this.focus = this.focus == 0 ? 9 : this.focus < 5 ? (this.focus + 4) : (this.focus - 5);
},
focusDown() {
this.focus = this.focus == 9 ? 0 : this.focus >= 5 ? (this.focus - 4) : (this.focus + 5);
},
focusRight() {
this.focus = this.focus == 9 ? 0 : (this.focus + 1);
},
focusLeft() {
this.focus = this.focus == 0 ? 9 : (this.focus - 1);
},
choose() {
this.$refs.buttons.childNodes[this.focus].click();
} }
} }
}); });
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl'
$border-color = rgba(27, 31, 35, 0.15) $border-color = rgba(27, 31, 35, 0.15)
root(isDark) .mk-reaction-picker
position initial position initial
> .backdrop > .backdrop
@ -142,11 +222,11 @@ root(isDark)
z-index 10000 z-index 10000
width 100% width 100%
height 100% height 100%
background isDark ? rgba(#000, 0.4) : rgba(#000, 0.1) background var(--modalBackdrop)
opacity 0 opacity 0
> .popover > .popover
$bgcolor = isDark ? #2c303c : #fff $bgcolor = var(--popupBg)
position absolute position absolute
z-index 10001 z-index 10001
background $bgcolor background $bgcolor
@ -199,14 +279,29 @@ root(isDark)
margin 0 margin 0
padding 8px 10px padding 8px 10px
font-size 14px font-size 14px
color isDark ? #d6dce2 : #586069 color var(--popupFg)
border-bottom solid 1px isDark ? #1c2023 : #e1e4e8 border-bottom solid 1px var(--faceDivider)
> div > div
padding 4px padding 4px
width 240px width 240px
text-align center text-align center
&.showFocus
> button:focus
z-index 1
&:after
content ""
pointer-events none
position absolute
top 0
right 0
bottom 0
left 0
border 2px solid var(--primaryAlpha03)
border-radius 4px
> button > button
padding 0 padding 0
width 40px width 40px
@ -215,16 +310,10 @@ root(isDark)
border-radius 2px border-radius 2px
&:hover &:hover
background isDark ? #252731 : #eee background var(--reactionPickerButtonHoverBg)
&:active &:active
background $theme-color background var(--primary)
box-shadow inset 0 0.15em 0.3em rgba(27, 31, 35, 0.15) box-shadow inset 0 0.15em 0.3em rgba(27, 31, 35, 0.15)
.mk-reaction-picker[data-darkmode]
root(true)
.mk-reaction-picker:not([data-darkmode])
root(false)
</style> </style>

View File

@ -39,10 +39,9 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
root(isDark) .mk-reactions-viewer
$borderColor = isDark ? #5e6673 : #eee border-top dashed 1px var(--reactionViewerBorder)
border-top dashed 1px $borderColor border-bottom dashed 1px var(--reactionViewerBorder)
border-bottom dashed 1px $borderColor
margin 4px 0 margin 4px 0
&:empty &:empty
@ -60,12 +59,6 @@ root(isDark)
> span > span
margin-left 4px margin-left 4px
font-size 1.2em font-size 1.2em
color isDark ? #d1d5dc : #444 color var(--text)
.mk-reactions-viewer[data-darkmode]
root(true)
.mk-reactions-viewer:not([data-darkmode])
root(false)
</style> </style>

View File

@ -1,16 +1,16 @@
<template> <template>
<form class="mk-signin" :class="{ signing }" @submit.prevent="onSubmit"> <form class="mk-signin" :class="{ signing }" @submit.prevent="onSubmit">
<div class="avatar" :style="{ backgroundImage: user ? `url('${ user.avatarUrl }')` : null }" v-show="withAvatar"></div> <div class="avatar" :style="{ backgroundImage: user ? `url('${ user.avatarUrl }')` : null }" v-show="withAvatar"></div>
<ui-input v-model="username" type="text" pattern="^[a-zA-Z0-9_]+$" spellcheck="false" autofocus required @input="onUsernameChange"> <ui-input v-model="username" type="text" pattern="^[a-zA-Z0-9_]+$" spellcheck="false" autofocus required @input="onUsernameChange" styl="fill">
<span>%i18n:@username%</span> <span>%i18n:@username%</span>
<span slot="prefix">@</span> <span slot="prefix">@</span>
<span slot="suffix">@{{ host }}</span> <span slot="suffix">@{{ host }}</span>
</ui-input> </ui-input>
<ui-input v-model="password" type="password" required> <ui-input v-model="password" type="password" required styl="fill">
<span>%i18n:@password%</span> <span>%i18n:@password%</span>
<span slot="prefix">%fa:lock%</span> <span slot="prefix">%fa:lock%</span>
</ui-input> </ui-input>
<ui-input v-if="user && user.twoFactorEnabled" v-model="token" type="number" required/> <ui-input v-if="user && user.twoFactorEnabled" v-model="token" type="number" required styl="fill"/>
<ui-button type="submit" :disabled="signing">{{ signing ? '%i18n:@signing-in%' : '%i18n:@signin%' }}</ui-button> <ui-button type="submit" :disabled="signing">{{ signing ? '%i18n:@signing-in%' : '%i18n:@signin%' }}</ui-button>
<p style="margin: 8px 0;">%i18n:@or% <a :href="`${apiUrl}/signin/twitter`">%i18n:@signin-with-twitter%</a></p> <p style="margin: 8px 0;">%i18n:@or% <a :href="`${apiUrl}/signin/twitter`">%i18n:@signin-with-twitter%</a></p>
</form> </form>
@ -68,7 +68,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl'
.mk-signin .mk-signin
color #555 color #555

View File

@ -1,12 +1,12 @@
<template> <template>
<form class="mk-signup" @submit.prevent="onSubmit" :autocomplete="Math.random()"> <form class="mk-signup" @submit.prevent="onSubmit" :autocomplete="Math.random()">
<template v-if="meta"> <template v-if="meta">
<ui-input v-if="meta.disableRegistration" v-model="invitationCode" type="text" :autocomplete="Math.random()" spellcheck="false" required> <ui-input v-if="meta.disableRegistration" v-model="invitationCode" type="text" :autocomplete="Math.random()" spellcheck="false" required styl="fill">
<span>%i18n:@invitation-code%</span> <span>%i18n:@invitation-code%</span>
<span slot="prefix">%fa:id-card-alt%</span> <span slot="prefix">%fa:id-card-alt%</span>
<p slot="text" v-html="'%i18n:@invitation-info%'.replace('{}', meta.maintainer.url)"></p> <p slot="text" v-html="'%i18n:@invitation-info%'.replace('{}', meta.maintainer.url)"></p>
</ui-input> </ui-input>
<ui-input v-model="username" type="text" pattern="^[a-zA-Z0-9_]{1,20}$" :autocomplete="Math.random()" spellcheck="false" required @input="onChangeUsername"> <ui-input v-model="username" type="text" pattern="^[a-zA-Z0-9_]{1,20}$" :autocomplete="Math.random()" spellcheck="false" required @input="onChangeUsername" styl="fill">
<span>%i18n:@username%</span> <span>%i18n:@username%</span>
<span slot="prefix">@</span> <span slot="prefix">@</span>
<span slot="suffix">@{{ host }}</span> <span slot="suffix">@{{ host }}</span>
@ -18,7 +18,7 @@
<p slot="text" v-if="usernameState == 'min-range'" style="color:#FF1161">%fa:exclamation-triangle .fw% %i18n:@too-short%</p> <p slot="text" v-if="usernameState == 'min-range'" style="color:#FF1161">%fa:exclamation-triangle .fw% %i18n:@too-short%</p>
<p slot="text" v-if="usernameState == 'max-range'" style="color:#FF1161">%fa:exclamation-triangle .fw% %i18n:@too-long%</p> <p slot="text" v-if="usernameState == 'max-range'" style="color:#FF1161">%fa:exclamation-triangle .fw% %i18n:@too-long%</p>
</ui-input> </ui-input>
<ui-input v-model="password" type="password" :autocomplete="Math.random()" required @input="onChangePassword" :with-password-meter="true"> <ui-input v-model="password" type="password" :autocomplete="Math.random()" required @input="onChangePassword" :with-password-meter="true" styl="fill">
<span>%i18n:@password%</span> <span>%i18n:@password%</span>
<span slot="prefix">%fa:lock%</span> <span slot="prefix">%fa:lock%</span>
<div slot="text"> <div slot="text">
@ -27,7 +27,7 @@
<p slot="text" v-if="passwordStrength == 'high'" style="color:#3CB7B5">%fa:check .fw% %i18n:@strong-password%</p> <p slot="text" v-if="passwordStrength == 'high'" style="color:#3CB7B5">%fa:check .fw% %i18n:@strong-password%</p>
</div> </div>
</ui-input> </ui-input>
<ui-input v-model="retypedPassword" type="password" :autocomplete="Math.random()" required @input="onChangePasswordRetype"> <ui-input v-model="retypedPassword" type="password" :autocomplete="Math.random()" required @input="onChangePasswordRetype" styl="fill">
<span>%i18n:@password% (%i18n:@retype%)</span> <span>%i18n:@password% (%i18n:@retype%)</span>
<span slot="prefix">%fa:lock%</span> <span slot="prefix">%fa:lock%</span>
<div slot="text"> <div slot="text">
@ -151,7 +151,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl'
.mk-signup .mk-signup
min-width 302px min-width 302px

View File

@ -1,199 +0,0 @@
<template>
<div
class="mk-switch"
:class="{ disabled, checked }"
role="switch"
:aria-checked="checked"
:aria-disabled="disabled"
@click="switchValue"
@mouseover="mouseenter"
>
<input
type="checkbox"
@change="handleChange"
ref="input"
:disabled="disabled"
@keydown.enter="switchValue"
>
<span class="button">
<span :style="{ transform }"></span>
</span>
<span class="label">
<span :aria-hidden="!checked">{{ text }}</span>
<p :aria-hidden="!checked">
<slot></slot>
</p>
</span>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
export default Vue.extend({
props: {
value: {
type: Boolean,
default: false
},
disabled: {
type: Boolean,
default: false
},
text: String
},/*
created() {
if (!~[true, false].indexOf(this.value)) {
this.$emit('input', false);
}
},*/
computed: {
checked(): boolean {
return this.value;
},
transform(): string {
return this.checked ? 'translate3d(20px, 0, 0)' : '';
}
},
watch: {
value() {
(this.$el).style.transition = 'all 0.3s';
(this.$refs.input as any).checked = this.checked;
}
},
mounted() {
(this.$refs.input as any).checked = this.checked;
},
methods: {
mouseenter() {
(this.$el).style.transition = 'all 0s';
},
handleChange() {
(this.$el).style.transition = 'all 0.3s';
this.$emit('input', !this.checked);
this.$emit('change', !this.checked);
this.$nextTick(() => {
// set input's checked property
// in case parent refuses to change component's value
(this.$refs.input as any).checked = this.checked;
});
},
switchValue() {
!this.disabled && this.handleChange();
}
}
});
</script>
<style lang="stylus" scoped>
@import '~const.styl'
root(isDark)
display flex
margin 12px 0
cursor pointer
transition all 0.3s
> *
user-select none
&.disabled
opacity 0.6
cursor not-allowed
&.checked
> .button
background-color $theme-color
border-color $theme-color
> .label
> span
color $theme-color
&:hover
> .label
> span
color darken($theme-color, 10%)
> .button
background darken($theme-color, 10%)
border-color darken($theme-color, 10%)
&:hover
> .label
> span
color isDark ? #fff : #2e3338
> .button
$color = isDark ? #15181d : #ced2da
background $color
border-color $color
> input
position absolute
width 0
height 0
opacity 0
margin 0
&:focus + .button
&:after
content ""
pointer-events none
position absolute
top -5px
right -5px
bottom -5px
left -5px
border 2px solid rgba($theme-color, 0.3)
border-radius 14px
> .button
$color = isDark ? #1c1f25 : #dcdfe6
display inline-block
margin 0
width 40px
min-width 40px
height 20px
min-height 20px
background $color
border 1px solid $color
outline none
border-radius 10px
transition inherit
> *
position absolute
top 1px
left 1px
border-radius 100%
transition transform 0.3s
width 16px
height 16px
background-color #fff
> .label
margin-left 8px
display block
font-size 15px
cursor pointer
transition inherit
> span
display block
line-height 20px
color isDark ? #c4ccd2 : #4a535a
transition inherit
> p
margin 0
//font-size 90%
color isDark ? #78858e : #9daab3
.mk-switch[data-darkmode]
root(true)
.mk-switch:not([data-darkmode])
root(false)
</style>

View File

@ -63,7 +63,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
root(isDark) .jtivnzhfwquxpsfidertopbmwmchmnmo
height 100% height 100%
width 100% width 100%
@ -81,10 +81,4 @@ root(isDark)
height 100% height 100%
width 100% width 100%
.jtivnzhfwquxpsfidertopbmwmchmnmo[data-darkmode]
root(true)
.jtivnzhfwquxpsfidertopbmwmchmnmo:not([data-darkmode])
root(false)
</style> </style>

View File

@ -0,0 +1,189 @@
<template>
<div class="nicnklzforebnpfgasiypmpdaaglujqm">
<label>
<span>%i18n:@light-theme%</span>
<ui-select v-model="light" placeholder="%i18n:@light-theme%">
<option v-for="x in themes" :value="x.meta.id" :key="x.meta.id">{{ x.meta.name }}</option>
</ui-select>
</label>
<label>
<span>%i18n:@dark-theme%</span>
<ui-select v-model="dark" placeholder="%i18n:@dark-theme%">
<option v-for="x in themes" :value="x.meta.id" :key="x.meta.id">{{ x.meta.name }}</option>
</ui-select>
</label>
<details class="creator">
<summary>%i18n:@create-a-theme%</summary>
<div>
<span>%i18n:@base-theme%:</span>
<ui-radio v-model="myThemeBase" value="light">%i18n:@base-theme-light%</ui-radio>
<ui-radio v-model="myThemeBase" value="dark">%i18n:@base-theme-dark%</ui-radio>
</div>
<div>
<ui-input v-model="myThemeName">
<span>%i18n:@theme-name%</span>
</ui-input>
</div>
<div>
<div style="padding-bottom:8px;">%i18n:@primary-color%:</div>
<color-picker v-model="myThemePrimary"/>
</div>
<div>
<div style="padding-bottom:8px;">%i18n:@secondary-color%:</div>
<color-picker v-model="myThemeSecondary"/>
</div>
<div>
<div style="padding-bottom:8px;">%i18n:@text-color%:</div>
<color-picker v-model="myThemeText"/>
</div>
<ui-button @click="preview()">%i18n:@preview-created-theme%</ui-button>
<ui-button primary @click="gen()">%i18n:@save-created-theme%</ui-button>
</details>
<details>
<summary>%i18n:@install-a-theme%</summary>
<ui-textarea v-model="installThemeCode">
<span>%i18n:@theme-code%</span>
</ui-textarea>
<ui-button @click="install()">%i18n:@install%</ui-button>
</details>
<details>
<summary>%i18n:@installed-themes%</summary>
<ui-select v-model="selectedInstalledTheme" placeholder="%i18n:@select-theme%">
<option v-for="x in installedThemes" :value="x.meta.id" :key="x.meta.id">{{ x.meta.name }}</option>
</ui-select>
<ui-textarea readonly :value="selectedInstalledThemeCode">
<span>%i18n:@theme-code%</span>
</ui-textarea>
<ui-button @click="uninstall()">%i18n:@uninstall%</ui-button>
</details>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import { lightTheme, darkTheme, builtinThemes, applyTheme } from '../../../theme';
import { Chrome } from 'vue-color';
import * as uuid from 'uuid';
import * as tinycolor from 'tinycolor2';
export default Vue.extend({
components: {
ColorPicker: Chrome
},
data() {
return {
installThemeCode: null,
selectedInstalledTheme: null,
myThemeBase: 'light',
myThemeName: '',
myThemePrimary: lightTheme.meta.vars.primary,
myThemeSecondary: lightTheme.meta.vars.secondary,
myThemeText: lightTheme.meta.vars.text
};
},
computed: {
themes(): any {
return this.$store.state.device.themes.concat(builtinThemes);
},
installedThemes(): any {
return this.$store.state.device.themes;
},
light: {
get() { return this.$store.state.device.lightTheme; },
set(value) { this.$store.commit('device/set', { key: 'lightTheme', value }); }
},
dark: {
get() { return this.$store.state.device.darkTheme; },
set(value) { this.$store.commit('device/set', { key: 'darkTheme', value }); }
},
selectedInstalledThemeCode() {
if (this.selectedInstalledTheme == null) return null;
return JSON.stringify(this.installedThemes.find(x => x.meta.id == this.selectedInstalledTheme));
},
myTheme(): any {
return {
meta: {
name: this.myThemeName,
author: this.$store.state.i.name,
base: this.myThemeBase,
vars: {
primary: tinycolor(typeof this.myThemePrimary == 'string' ? this.myThemePrimary : this.myThemePrimary.rgba).toRgbString(),
secondary: tinycolor(typeof this.myThemeSecondary == 'string' ? this.myThemeSecondary : this.myThemeSecondary.rgba).toRgbString(),
text: tinycolor(typeof this.myThemeText == 'string' ? this.myThemeText : this.myThemeText.rgba).toRgbString()
}
}
};
}
},
watch: {
myThemeBase(v) {
const theme = v == 'light' ? lightTheme : darkTheme;
this.myThemePrimary = theme.meta.vars.primary;
this.myThemeSecondary = theme.meta.vars.secondary;
this.myThemeText = theme.meta.vars.text;
}
},
methods: {
install() {
const theme = JSON.parse(this.installThemeCode);
if (theme.meta == null || theme.meta.id == null) {
alert('%i18n:@invalid-theme%');
return;
}
if (this.$store.state.device.themes.some(t => t.meta.id == theme.meta.id)) {
alert('%i18n:@already-installed%');
return;
}
const themes = this.$store.state.device.themes.concat(theme);
this.$store.commit('device/set', {
key: 'themes', value: themes
});
alert('%i18n:@installed%'.replace('{}', theme.meta.name));
},
uninstall() {
const theme = this.installedThemes.find(x => x.meta.id == this.selectedInstalledTheme);
const themes = this.$store.state.device.themes.filter(t => t.meta.id != theme.meta.id);
this.$store.commit('device/set', {
key: 'themes', value: themes
});
alert('%i18n:@uninstalled%'.replace('{}', theme.meta.name));
},
preview() {
applyTheme(this.myTheme, false);
},
gen() {
const theme = this.myTheme;
theme.meta.id = uuid();
const themes = this.$store.state.device.themes.concat(theme);
this.$store.commit('device/set', {
key: 'themes', value: themes
});
alert('%i18n:@saved%');
}
}
});
</script>
<style lang="stylus" scoped>
.nicnklzforebnpfgasiypmpdaaglujqm
> .creator
> div
padding 16px 0
border-bottom solid 1px var(--faceDivider)
</style>

View File

@ -3,8 +3,7 @@
<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> <p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p>
<p class="empty" v-else-if="stats.length == 0">%fa:exclamation-circle%%i18n:@empty%</p> <p class="empty" v-else-if="stats.length == 0">%fa:exclamation-circle%%i18n:@empty%</p>
<!-- トランジションを有効にするとなぜかメモリリークする --> <!-- トランジションを有効にするとなぜかメモリリークする -->
<!-- <transition-group v-else tag="div" name="chart"> --> <transition-group v-else tag="div" name="chart">
<div>
<div v-for="stat in stats" :key="stat.tag"> <div v-for="stat in stats" :key="stat.tag">
<div class="tag"> <div class="tag">
<router-link :to="`/tags/${ encodeURIComponent(stat.tag) }`" :title="stat.tag">#{{ stat.tag }}</router-link> <router-link :to="`/tags/${ encodeURIComponent(stat.tag) }`" :title="stat.tag">#{{ stat.tag }}</router-link>
@ -12,8 +11,7 @@
</div> </div>
<x-chart class="chart" :src="stat.chart"/> <x-chart class="chart" :src="stat.chart"/>
</div> </div>
</div> </transition-group>
<!-- </transition-group> -->
</div> </div>
</template> </template>
@ -51,13 +49,14 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
root(isDark) .csqvmxybqbycalfhkxvyfrgbrdalkaoc
> .fetching > .fetching
> .empty > .empty
margin 0 margin 0
padding 16px padding 16px
text-align center text-align center
color #aaa color var(--text)
opacity 0.7
> [data-fa] > [data-fa]
margin-right 4px margin-right 4px
@ -72,13 +71,13 @@ root(isDark)
padding 14px 16px padding 14px 16px
&:not(:last-child) &:not(:last-child)
border-bottom solid 1px isDark ? #393f4f : #eee border-bottom solid 1px var(--faceDivider)
> .tag > .tag
flex 1 flex 1
overflow hidden overflow hidden
font-size 14px font-size 14px
color isDark ? #9baec8 : #65727b color var(--text)
> a > a
display block display block
@ -96,10 +95,4 @@ root(isDark)
> .chart > .chart
height 30px height 30px
.csqvmxybqbycalfhkxvyfrgbrdalkaoc[data-darkmode]
root(true)
.csqvmxybqbycalfhkxvyfrgbrdalkaoc:not([data-darkmode])
root(false)
</style> </style>

View File

@ -1,9 +1,7 @@
<template> <template>
<div class="ui-button" :class="[styl]"> <button class="dmtdnykelhudezerjlfpbhgovrgnqqgr" :class="[styl, { inline, primary }]" :type="type" @click="$emit('click')">
<button :type="type" @click="$emit('click')">
<slot></slot> <slot></slot>
</button> </button>
</div>
</template> </template>
<script lang="ts"> <script lang="ts">
@ -13,70 +11,90 @@ export default Vue.extend({
type: { type: {
type: String, type: String,
required: false required: false
},
primary: {
type: Boolean,
required: false,
default: false
},
inline: {
type: Boolean,
required: false,
default: false
} }
}, },
data() { data() {
return { return {
styl: 'fill' styl: 'fill'
}; };
},
inject: {
isCardChild: { default: false }
},
created() {
if (this.isCardChild) {
this.styl = 'line';
}
} }
}); });
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .dmtdnykelhudezerjlfpbhgovrgnqqgr
root(isDark, fill)
> button
display block display block
width 100% width 100%
min-height 40px
margin 0 margin 0
padding 0 padding 0
font-weight bold font-weight normal
font-size 16px font-size 16px
line-height 44px
border none border none
border-radius 6px border-radius 6px
outline none outline none
box-shadow none box-shadow none
if fill &:focus
color $theme-color-foreground &:after
background $theme-color content ""
pointer-events none
position absolute
top -5px
right -5px
bottom -5px
left -5px
border 2px solid var(--primaryAlpha03)
border-radius 10px
&:not(.inline) + .dmtdnykelhudezerjlfpbhgovrgnqqgr
margin-top 16px
&.inline
display inline-block
width auto
&.primary
font-weight bold
&.fill
color var(--text)
background var(--buttonBg)
&:hover &:hover
background lighten($theme-color, 5%) background var(--buttonHoverBg)
&:active &:active
background darken($theme-color, 5%) background var(--buttonActiveBg)
else
color $theme-color &.primary
color var(--primaryForeground)
background var(--primary)
&:hover
background var(--primaryLighten5)
&:active
background var(--primaryDarken5)
&:not(.fill)
color var(--primary)
background none background none
&:hover &:hover
color darken($theme-color, 5%) color var(--primaryDarken5)
&:active &:active
background rgba($theme-color, 0.3) background var(--primaryAlpha03)
.ui-button[data-darkmode]
&.fill
root(true, true)
&:not(.fill)
root(true, false)
.ui-button:not([data-darkmode])
&.fill
root(false, true)
&:not(.fill)
root(false, false)
</style> </style>

View File

@ -20,26 +20,24 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .ui-card
root(isDark)
margin 16px margin 16px
color isDark ? #fff : #000 color var(--faceText)
background isDark ? #282C37 : #fff background var(--face)
box-shadow 0 3px 1px -2px rgba(#000, 0.2), 0 2px 2px 0 rgba(#000, 0.14), 0 1px 5px 0 rgba(#000, 0.12) box-shadow 0 3px 1px -2px rgba(#000, 0.2), 0 2px 2px 0 rgba(#000, 0.14), 0 1px 5px 0 rgba(#000, 0.12)
> header > header
padding 16px padding 16px
font-weight bold font-weight bold
font-size 20px font-size 20px
color isDark ? #fff : #444 color var(--faceText)
@media (min-width 500px) @media (min-width 500px)
padding 24px 32px padding 24px 32px
> section > section
padding 20px 16px padding 20px 16px
border-top solid 1px isDark ? rgba(#000, 0.3) : rgba(#000, 0.1) border-top solid 1px var(--faceDivider)
@media (min-width 500px) @media (min-width 500px)
padding 32px padding 32px
@ -50,12 +48,5 @@ root(isDark)
> header > header
margin-bottom 16px margin-bottom 16px
font-weight bold font-weight bold
color isDark ? #fff : #444 color var(--faceText)
.ui-card[data-darkmode]
root(true)
.ui-card:not([data-darkmode])
root(false)
</style> </style>

View File

@ -19,7 +19,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl'
.ui-form .ui-form
> fieldset > fieldset

View File

@ -25,9 +25,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .nvemkhtwcnnpkdrwfcbzuwhfulejhmzg
root(isDark)
display inline-block display inline-block
& + .nvemkhtwcnnpkdrwfcbzuwhfulejhmzg & + .nvemkhtwcnnpkdrwfcbzuwhfulejhmzg
@ -38,11 +36,11 @@ root(isDark)
margin 0 margin 0
padding 12px 20px padding 12px 20px
font-size 14px font-size 14px
border 1px solid isDark ? #6d727d : #dcdfe6 border 1px solid var(--formButtonBorder)
border-radius 4px border-radius 4px
outline none outline none
box-shadow none box-shadow none
color isDark ? #fff : #606266 color var(--text)
transition 0.1s transition 0.1s
* *
@ -50,40 +48,34 @@ root(isDark)
&:hover &:hover
&:focus &:focus
color $theme-color color var(--primary)
background rgba($theme-color, isDark ? 0.2 : 0.12) background var(--formButtonHoverBg)
border-color rgba($theme-color, isDark ? 0.5 : 0.3) border-color var(--formButtonHoverBorder)
&:active &:active
color darken($theme-color, 20%) color var(--primaryDarken20)
background rgba($theme-color, 0.12) background var(--formButtonActiveBg)
border-color $theme-color border-color var(--primary)
transition all 0s transition all 0s
&.primary &.primary
> button > button
border 1px solid $theme-color border 1px solid var(--primary)
background $theme-color background var(--primary)
color $theme-color-foreground color var(--primaryForeground)
&:hover &:hover
&:focus &:focus
background lighten($theme-color, 20%) background var(--primaryLighten20)
border-color lighten($theme-color, 20%) border-color var(--primaryLighten20)
&:active &:active
background darken($theme-color, 20%) background var(--primaryDarken20)
border-color darken($theme-color, 20%) border-color var(--primaryDarken20)
transition all 0s transition all 0s
&.round &.round
> button > button
border-radius 64px border-radius 64px
.nvemkhtwcnnpkdrwfcbzuwhfulejhmzg[data-darkmode]
root(true)
.nvemkhtwcnnpkdrwfcbzuwhfulejhmzg:not([data-darkmode])
root(false)
</style> </style>

View File

@ -49,9 +49,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .uywduthvrdnlpsvsjkqigicixgyfctto
root(isDark)
display inline-flex display inline-flex
margin 0 16px 0 0 margin 0 16px 0 0
cursor pointer cursor pointer
@ -62,7 +60,7 @@ root(isDark)
&:hover &:hover
> .button > .button
border solid 2px isDark ? rgba(#fff, 0.7) : rgba(#000, 0.54) border solid 2px var(--inputLabel)
&.disabled &.disabled
opacity 0.6 opacity 0.6
@ -70,15 +68,15 @@ root(isDark)
&.checked &.checked
> .button > .button
border-color $theme-color border-color var(--primary)
&:after &:after
background-color $theme-color background-color var(--primary)
transform scale(1) transform scale(1)
opacity 1 opacity 1
> .label > .label
color $theme-color color var(--primary)
> input > input
position absolute position absolute
@ -93,7 +91,7 @@ root(isDark)
width 20px width 20px
height 20px height 20px
background none background none
border solid 2px isDark ? rgba(#fff, 0.6) : rgba(#000, 0.4) border solid 2px var(--radioBorder)
border-radius 100% border-radius 100%
transition inherit transition inherit
@ -117,10 +115,4 @@ root(isDark)
line-height 20px line-height 20px
cursor pointer cursor pointer
.uywduthvrdnlpsvsjkqigicixgyfctto[data-darkmode]
root(true)
.uywduthvrdnlpsvsjkqigicixgyfctto:not([data-darkmode])
root(false)
</style> </style>

View File

@ -71,14 +71,18 @@ export default Vue.extend({
type: Boolean, type: Boolean,
required: false, required: false,
default: false default: false
},
styl: {
type: String,
required: false,
default: 'line'
} }
}, },
data() { data() {
return { return {
v: this.value, v: this.value,
focused: false, focused: false,
passwordStrength: '', passwordStrength: ''
styl: 'fill'
}; };
}, },
computed: { computed: {
@ -117,14 +121,6 @@ export default Vue.extend({
} }
} }
}, },
inject: {
isCardChild: { default: false }
},
created() {
if (this.isCardChild) {
this.styl = 'line';
}
},
mounted() { mounted() {
if (this.$refs.prefix) { if (this.$refs.prefix) {
this.$refs.label.style.left = (this.$refs.prefix.offsetLeft + this.$refs.prefix.offsetWidth) + 'px'; this.$refs.label.style.left = (this.$refs.prefix.offsetLeft + this.$refs.prefix.offsetWidth) + 'px';
@ -155,9 +151,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' root(fill)
root(isDark, fill)
margin 32px 0 margin 32px 0
> .icon > .icon
@ -167,7 +161,7 @@ root(isDark, fill)
width 24px width 24px
text-align center text-align center
line-height 32px line-height 32px
color isDark ? rgba(#fff, 0.7) : rgba(#000, 0.54) color var(--inputLabel)
&:not(:empty) + .input &:not(:empty) + .input
margin-left 28px margin-left 28px
@ -183,7 +177,7 @@ root(isDark, fill)
left 0 left 0
right 0 right 0
height 1px height 1px
background isDark ? rgba(#fff, 0.7) : rgba(#000, 0.42) background var(--inputBorder)
&:after &:after
content '' content ''
@ -193,7 +187,7 @@ root(isDark, fill)
left 0 left 0
right 0 right 0
height 2px height 2px
background $theme-color background var(--primary)
opacity 0 opacity 0
transform scaleX(0.12) transform scaleX(0.12)
transition border 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1) transition border 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1)
@ -242,7 +236,7 @@ root(isDark, fill)
transition-duration 0.3s transition-duration 0.3s
font-size 16px font-size 16px
line-height 32px line-height 32px
color isDark ? rgba(#fff, 0.7) : rgba(#000, 0.54) color var(--inputLabel)
pointer-events none pointer-events none
//will-change transform //will-change transform
transform-origin top left transform-origin top left
@ -257,7 +251,7 @@ root(isDark, fill)
font-weight fill ? bold : normal font-weight fill ? bold : normal
font-size 16px font-size 16px
line-height 32px line-height 32px
color isDark ? #fff : #000 color var(--inputText)
background transparent background transparent
border none border none
border-radius 0 border-radius 0
@ -280,7 +274,7 @@ root(isDark, fill)
top 0 top 0
font-size 16px font-size 16px
line-height fill ? 44px : 32px line-height fill ? 44px : 32px
color isDark ? rgba(#fff, 0.7) : rgba(#000, 0.54) color var(--inputLabel)
pointer-events none pointer-events none
&:empty &:empty
@ -325,7 +319,7 @@ root(isDark, fill)
transform scaleX(1) transform scaleX(1)
> .label > .label
color $theme-color color var(--primary)
&.focused &.focused
&.filled &.filled
@ -335,16 +329,10 @@ root(isDark, fill)
left 0 !important left 0 !important
transform scale(0.75) transform scale(0.75)
.ui-input[data-darkmode] .ui-input
&.fill &.fill
root(true, true) root(true)
&:not(.fill) &:not(.fill)
root(true, false) root(false)
.ui-input:not([data-darkmode])
&.fill
root(false, true)
&:not(.fill)
root(false, false)
</style> </style>

View File

@ -51,9 +51,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .ui-radio
root(isDark)
display inline-block display inline-block
margin 0 32px 0 0 margin 0 32px 0 0
cursor pointer cursor pointer
@ -68,10 +66,10 @@ root(isDark)
&.checked &.checked
> .button > .button
border-color $theme-color border-color var(--primary)
&:after &:after
background-color $theme-color background-color var(--primary)
transform scale(1) transform scale(1)
opacity 1 opacity 1
@ -87,7 +85,7 @@ root(isDark)
width 20px width 20px
height 20px height 20px
background none background none
border solid 2px isDark ? rgba(#fff, 0.7) : rgba(#000, 0.54) border solid 2px var(--inputLabel)
border-radius 100% border-radius 100%
transition inherit transition inherit
@ -111,10 +109,4 @@ root(isDark)
line-height 20px line-height 20px
cursor pointer cursor pointer
.ui-radio[data-darkmode]
root(true)
.ui-radio:not([data-darkmode])
root(false)
</style> </style>

View File

@ -29,13 +29,17 @@ export default Vue.extend({
required: { required: {
type: Boolean, type: Boolean,
required: false required: false
},
styl: {
type: String,
required: false,
default: 'line'
} }
}, },
data() { data() {
return { return {
v: this.value, v: this.value,
focused: false, focused: false
styl: 'fill'
}; };
}, },
computed: { computed: {
@ -48,14 +52,6 @@ export default Vue.extend({
this.v = v; this.v = v;
} }
}, },
inject: {
isCardChild: { default: false }
},
created() {
if (this.isCardChild) {
this.styl = 'line';
}
},
mounted() { mounted() {
if (this.$refs.prefix) { if (this.$refs.prefix) {
this.$refs.label.style.left = (this.$refs.prefix.offsetLeft + this.$refs.prefix.offsetWidth) + 'px'; this.$refs.label.style.left = (this.$refs.prefix.offsetLeft + this.$refs.prefix.offsetWidth) + 'px';
@ -70,9 +66,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' root(fill)
root(isDark, fill)
margin 32px 0 margin 32px 0
> .icon > .icon
@ -103,7 +97,7 @@ root(isDark, fill)
left 0 left 0
right 0 right 0
height 1px height 1px
background isDark ? rgba(#fff, 0.7) : rgba(#000, 0.42) background var(--inputBorder)
&:after &:after
content '' content ''
@ -113,7 +107,7 @@ root(isDark, fill)
left 0 left 0
right 0 right 0
height 2px height 2px
background $theme-color background var(--primary)
opacity 0 opacity 0
transform scaleX(0.12) transform scaleX(0.12)
transition border 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1) transition border 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1)
@ -143,7 +137,7 @@ root(isDark, fill)
font-weight fill ? bold : normal font-weight fill ? bold : normal
font-size 16px font-size 16px
height 32px height 32px
color isDark ? #fff : #000 color var(--inputText)
background transparent background transparent
border none border none
border-radius 0 border-radius 0
@ -190,7 +184,7 @@ root(isDark, fill)
transform scaleX(1) transform scaleX(1)
> .label > .label
color $theme-color color var(--primary)
&.focused &.focused
&.filled &.filled
@ -200,16 +194,10 @@ root(isDark, fill)
left 0 !important left 0 !important
transform scale(0.75) transform scale(0.75)
.ui-select[data-darkmode] .ui-select
&.fill &.fill
root(true, true) root(true)
&:not(.fill) &:not(.fill)
root(true, false) root(false)
.ui-select:not([data-darkmode])
&.fill
root(false, true)
&:not(.fill)
root(false, false)
</style> </style>

View File

@ -19,7 +19,7 @@
<span class="label"> <span class="label">
<span :aria-hidden="!checked"><slot></slot></span> <span :aria-hidden="!checked"><slot></slot></span>
<p :aria-hidden="!checked"> <p :aria-hidden="!checked">
<slot name="text"></slot> <slot name="desc"></slot>
</p> </p>
</span> </span>
</div> </div>
@ -56,9 +56,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .ui-switch
root(isDark)
display flex display flex
margin 32px 0 margin 32px 0
cursor pointer cursor pointer
@ -79,11 +77,11 @@ root(isDark)
&.checked &.checked
> .button > .button
background-color rgba($theme-color, 0.4) background-color var(--primaryAlpha04)
border-color rgba($theme-color, 0.4) border-color var(--primaryAlpha04)
> * > *
background-color $theme-color background-color var(--primary)
transform translateX(14px) transform translateX(14px)
> input > input
@ -99,7 +97,7 @@ root(isDark)
margin 3px 0 0 0 margin 3px 0 0 0
width 34px width 34px
height 14px height 14px
background isDark ? rgba(#fff, 0.15) : rgba(#000, 0.25) background var(--switchTrack)
outline none outline none
border-radius 14px border-radius 14px
transition inherit transition inherit
@ -125,18 +123,11 @@ root(isDark)
> span > span
display block display block
line-height 20px line-height 20px
color isDark ? #c4ccd2 : rgba(#000, 0.75) color currentColor
transition inherit transition inherit
> p > p
margin 0 margin 0
//font-size 90% opacity 0.7
color isDark ? #78858e : #9daab3
.ui-switch[data-darkmode]
root(true)
.ui-switch:not([data-darkmode])
root(false)
</style> </style>

View File

@ -63,9 +63,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' root(fill)
root(isDark, fill)
margin 42px 0 32px 0 margin 42px 0 32px 0
> .input > .input
@ -84,7 +82,7 @@ root(isDark, fill)
left 0 left 0
right 0 right 0
background none background none
border solid 1px isDark ? rgba(#fff, 0.7) : rgba(#000, 0.42) border solid 1px var(--inputBorder)
border-radius 3px border-radius 3px
pointer-events none pointer-events none
@ -97,7 +95,7 @@ root(isDark, fill)
left 0 left 0
right 0 right 0
background none background none
border solid 2px $theme-color border solid 2px var(--primary)
border-radius 3px border-radius 3px
opacity 0 opacity 0
transition opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1) transition opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1)
@ -112,7 +110,7 @@ root(isDark, fill)
transition-duration 0.3s transition-duration 0.3s
font-size 16px font-size 16px
line-height 32px line-height 32px
color isDark ? rgba(#fff, 0.7) : rgba(#000, 0.54) color var(--inputLabel)
pointer-events none pointer-events none
//will-change transform //will-change transform
transform-origin top left transform-origin top left
@ -126,7 +124,7 @@ root(isDark, fill)
font inherit font inherit
font-weight fill ? bold : normal font-weight fill ? bold : normal
font-size 16px font-size 16px
color isDark ? #fff : #000 color var(--inputText)
background transparent background transparent
border none border none
border-radius 0 border-radius 0
@ -149,7 +147,7 @@ root(isDark, fill)
opacity 1 opacity 1
> .label > .label
color $theme-color color var(--primary)
&.focused &.focused
&.filled &.filled
@ -159,16 +157,10 @@ root(isDark, fill)
left 0 !important left 0 !important
transform scale(0.75) transform scale(0.75)
.ui-textarea[data-darkmode] .ui-textarea.fill
&.fill root(true)
root(true, true)
&:not(.fill)
root(true, false)
.ui-textarea:not([data-darkmode]) .ui-textarea:not(.fill)
&.fill root(false)
root(false, true)
&:not(.fill)
root(false, false)
</style> </style>

View File

@ -81,7 +81,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl'
.mk-uploader .mk-uploader
overflow auto overflow auto
@ -100,7 +100,7 @@ export default Vue.extend({
margin 8px 0 0 0 margin 8px 0 0 0
padding 0 padding 0
height 36px height 36px
box-shadow 0 -1px 0 rgba($theme-color, 0.1) box-shadow 0 -1px 0 var(--primaryAlpha01)
border-top solid 8px transparent border-top solid 8px transparent
&:first-child &:first-child
@ -127,7 +127,7 @@ export default Vue.extend({
padding 0 padding 0
max-width 256px max-width 256px
font-size 0.8em font-size 0.8em
color rgba($theme-color, 0.7) color var(--primaryAlpha07)
white-space nowrap white-space nowrap
text-overflow ellipsis text-overflow ellipsis
overflow hidden overflow hidden
@ -145,17 +145,17 @@ export default Vue.extend({
font-size 0.8em font-size 0.8em
> .initing > .initing
color rgba($theme-color, 0.5) color var(--primaryAlpha05)
> .kb > .kb
color rgba($theme-color, 0.5) color var(--primaryAlpha05)
> .percentage > .percentage
display inline-block display inline-block
width 48px width 48px
text-align right text-align right
color rgba($theme-color, 0.7) color var(--primaryAlpha07)
&:after &:after
content '%' content '%'
@ -174,10 +174,10 @@ export default Vue.extend({
overflow hidden overflow hidden
&::-webkit-progress-value &::-webkit-progress-value
background $theme-color background var(--primary)
&::-webkit-progress-bar &::-webkit-progress-bar
background rgba($theme-color, 0.1) background var(--primaryAlpha01)
> .progress > .progress
display block display block
@ -191,13 +191,13 @@ export default Vue.extend({
border-radius 4px border-radius 4px
background linear-gradient( background linear-gradient(
45deg, 45deg,
lighten($theme-color, 30%) 25%, var(--primaryLighten30) 25%,
$theme-color 25%, var(--primary) 25%,
$theme-color 50%, var(--primary) 50%,
lighten($theme-color, 30%) 50%, var(--primaryLighten30) 50%,
lighten($theme-color, 30%) 75%, var(--primaryLighten30) 75%,
$theme-color 75%, var(--primary) 75%,
$theme-color var(--primary)
) )
background-size 32px 32px background-size 32px 32px
animation bg 1.5s linear infinite animation bg 1.5s linear infinite

View File

@ -200,17 +200,17 @@ export default Vue.extend({
top 0 top 0
width 100% width 100%
root(isDark) .mk-url-preview
> a > a
display block display block
font-size 14px font-size 14px
border solid 1px isDark ? #191b1f : #eee border solid 1px var(--urlPreviewBorder)
border-radius 4px border-radius 4px
overflow hidden overflow hidden
&:hover &:hover
text-decoration none text-decoration none
border-color isDark ? #4f5561 : #ddd border-color var(--urlPreviewBorderHover)
> article > header > h1 > article > header > h1
text-decoration underline text-decoration underline
@ -235,11 +235,11 @@ root(isDark)
> h1 > h1
margin 0 margin 0
font-size 1em font-size 1em
color isDark ? #d6dae0 : #555 color var(--urlPreviewTitle)
> p > p
margin 0 margin 0
color isDark ? #a4aab3 : #777 color var(--urlPreviewText)
font-size 0.8em font-size 0.8em
> footer > footer
@ -256,7 +256,7 @@ root(isDark)
> p > p
display inline-block display inline-block
margin 0 margin 0
color isDark ? #b0b4bf : #666 color var(--urlPreviewInfo)
font-size 0.8em font-size 0.8em
line-height 16px line-height 16px
vertical-align top vertical-align top
@ -322,10 +322,4 @@ root(isDark)
width 12px width 12px
height 12px height 12px
.mk-url-preview[data-darkmode]
root(true)
.mk-url-preview:not([data-darkmode])
root(false)
</style> </style>

View File

@ -127,11 +127,9 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl'
$border-color = rgba(27, 31, 35, 0.15) $border-color = rgba(27, 31, 35, 0.15)
root(isDark) .mk-visibility-chooser
position initial position initial
> .backdrop > .backdrop
@ -141,11 +139,11 @@ root(isDark)
z-index 10000 z-index 10000
width 100% width 100%
height 100% height 100%
background isDark ? rgba(#000, 0.4) : rgba(#000, 0.1) background var(--modalBackdrop)
opacity 0 opacity 0
> .popover > .popover
$bgcolor = isDark ? #2c303c : #fff $bgcolor = var(--popupBg)
position absolute position absolute
z-index 10001 z-index 10001
width 240px width 240px
@ -189,18 +187,18 @@ root(isDark)
display flex display flex
padding 8px 14px padding 8px 14px
font-size 12px font-size 12px
color isDark ? #fff : #666 color var(--popupFg)
cursor pointer cursor pointer
&:hover &:hover
background isDark ? #252731 : #eee background var(--faceClearButtonHover)
&:active &:active
background isDark ? #21242b : #ddd background var(--faceClearButtonActive)
&.active &.active
color $theme-color-foreground color var(--primaryForeground)
background $theme-color background var(--primary)
> * > *
user-select none user-select none
@ -222,11 +220,4 @@ root(isDark)
> span:last-child:not(:first-child) > span:last-child:not(:first-child)
opacity 0.6 opacity 0.6
.mk-visibility-chooser[data-darkmode]
root(true)
.mk-visibility-chooser:not([data-darkmode])
root(false)
</style> </style>

View File

@ -90,8 +90,8 @@ export default Vue.extend({
opacity 0 opacity 0
transform translateY(-30px) transform translateY(-30px)
root(isDark) .mk-welcome-timeline
background isDark ? #282C37 : #fff background var(--face)
> div > div
> * > *
@ -101,8 +101,8 @@ root(isDark)
padding 16px padding 16px
overflow-wrap break-word overflow-wrap break-word
font-size .9em font-size .9em
color isDark ? #fff : #4C4C4C color var(--noteText)
border-bottom 1px solid isDark ? rgba(#000, 0.1) : rgba(#000, 0.05) border-bottom 1px solid var(--faceDivider)
&:after &:after
content "" content ""
@ -137,26 +137,20 @@ root(isDark)
overflow hidden overflow hidden
font-weight bold font-weight bold
text-overflow ellipsis text-overflow ellipsis
color isDark ? #fff : #627079 color var(--noteHeaderName)
> .username > .username
margin 0 .5em 0 0 margin 0 .5em 0 0
color isDark ? #606984 : #ccc color var(--noteHeaderAcct)
> .info > .info
margin-left auto margin-left auto
font-size 0.9em font-size 0.9em
> .created-at > .created-at
color isDark ? #606984 : #c0c0c0 color var(--noteHeaderInfo)
> .text > .text
text-align left text-align left
.mk-welcome-timeline[data-darkmode]
root(true)
.mk-welcome-timeline:not([data-darkmode])
root(false)
</style> </style>

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="syxhndwprovvuqhmyvveewmbqayniwkv" v-if="!fetching" :data-darkmode="$store.state.device.darkmode"> <div class="syxhndwprovvuqhmyvveewmbqayniwkv" v-if="!fetching">
<div class="signed-in-as" v-html="'%i18n:@signed-in-as%'.replace('{}', `<b>${myName}`)"></div> <div class="signed-in-as" v-html="'%i18n:@signed-in-as%'.replace('{}', `<b>${myName}`)"></div>
<main> <main>
@ -19,7 +19,8 @@
@click="onClick" @click="onClick"
:disabled="followWait"> :disabled="followWait">
<template v-if="!followWait"> <template v-if="!followWait">
<template v-if="user.hasPendingFollowRequestFromYou">%fa:hourglass-half% %i18n:@request-pending%</template> <template v-if="user.hasPendingFollowRequestFromYou && user.isLocked">%fa:hourglass-half% %i18n:@request-pending%</template>
<template v-else-if="user.hasPendingFollowRequestFromYou && !user.isLocked">%fa:hourglass-start% %i18n:@follow-processing%</template>
<template v-else-if="user.isFollowing">%fa:minus% %i18n:@following%</template> <template v-else-if="user.isFollowing">%fa:minus% %i18n:@following%</template>
<template v-else-if="!user.isFollowing && user.isLocked">%fa:plus% %i18n:@follow-request%</template> <template v-else-if="!user.isFollowing && user.isLocked">%fa:plus% %i18n:@follow-request%</template>
<template v-else-if="!user.isFollowing && !user.isLocked">%fa:plus% %i18n:@follow%</template> <template v-else-if="!user.isFollowing && !user.isLocked">%fa:plus% %i18n:@follow%</template>
@ -107,16 +108,14 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .syxhndwprovvuqhmyvveewmbqayniwkv
root(isDark)
padding 32px padding 32px
max-width 500px max-width 500px
margin 0 auto margin 0 auto
text-align center text-align center
color isDark ? #9baec8 : #868c8c color var(--text)
$bg = isDark ? #282C37 : #fff $bg = var(--face)
@media (max-width 400px) @media (max-width 400px)
padding 16px padding 16px
@ -124,7 +123,6 @@ root(isDark)
> .signed-in-as > .signed-in-as
margin-bottom 16px margin-bottom 16px
font-size 14px font-size 14px
color isDark ? #9baec8 : #9daab3
> main > main
margin-bottom 16px margin-bottom 16px
@ -173,29 +171,29 @@ root(isDark)
min-width 150px min-width 150px
font-size 14px font-size 14px
font-weight bold font-weight bold
color $theme-color color var(--primary)
background transparent background transparent
outline none outline none
border solid 1px $theme-color border solid 1px var(--primary)
border-radius 36px border-radius 36px
&:hover &:hover
background rgba($theme-color, 0.1) background var(--primaryAlpha01)
&:active &:active
background rgba($theme-color, 0.2) background var(--primaryAlpha02)
&.active &.active
color $theme-color-foreground color var(--primaryForeground)
background $theme-color background var(--primary)
&:hover &:hover
background lighten($theme-color, 10%) background var(--primaryLighten10)
border-color lighten($theme-color, 10%) border-color var(--primaryLighten10)
&:active &:active
background darken($theme-color, 10%) background var(--primaryDarken10)
border-color darken($theme-color, 10%) border-color var(--primaryDarken10)
&.wait &.wait
cursor wait !important cursor wait !important
@ -204,10 +202,4 @@ root(isDark)
* *
pointer-events none pointer-events none
.syxhndwprovvuqhmyvveewmbqayniwkv[data-darkmode]
root(true)
.syxhndwprovvuqhmyvveewmbqayniwkv:not([data-darkmode])
root(false)
</style> </style>

View File

@ -26,16 +26,8 @@ export default define({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .mkw-analog-clock
root(isDark)
.mkw-analog-clock--body .mkw-analog-clock--body
padding 8px padding 8px
.mkw-analog-clock[data-darkmode]
root(true)
.mkw-analog-clock:not([data-darkmode])
root(false)
</style> </style>

View File

@ -1,5 +1,7 @@
<template> <template>
<div class="anltbovirfeutcigvwgmgxipejaeozxi" <div class="anltbovirfeutcigvwgmgxipejaeozxi">
<mk-widget-container :show-header="false" :naked="props.design == 1">
<div class="anltbovirfeutcigvwgmgxipejaeozxi-body"
:data-found="announcements && announcements.length != 0" :data-found="announcements && announcements.length != 0"
:data-melt="props.design == 1" :data-melt="props.design == 1"
:data-mobile="platform == 'mobile'" :data-mobile="platform == 'mobile'"
@ -21,6 +23,8 @@
</p> </p>
<a v-if="announcements.length > 1" @click="next">%i18n:@next% &gt;&gt;</a> <a v-if="announcements.length > 1" @click="next">%i18n:@next% &gt;&gt;</a>
</div> </div>
</mk-widget-container>
</div>
</template> </template>
<script lang="ts"> <script lang="ts">
@ -66,13 +70,12 @@ export default define({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
root(isDark) .anltbovirfeutcigvwgmgxipejaeozxi-body
padding 10px padding 10px
border solid 1px #4078c0 background var(--announcementsBg)
border-radius 6px
&[data-melt] &[data-melt]
border none background transparent
&[data-found] &[data-found]
padding-left 50px padding-left 50px
@ -126,14 +129,14 @@ root(isDark)
margin 0 margin 0
font-size 0.95em font-size 0.95em
font-weight normal font-weight normal
color isDark ? #539eff : #4078c0 color var(--announcementsTitle)
> p > p
display block display block
z-index 1 z-index 1
margin 0 margin 0
font-size 0.7em font-size 0.7em
color isDark ? #fff : #555 color var(--announcementsText)
&.fetching &.fetching
text-align center text-align center
@ -146,10 +149,4 @@ root(isDark)
> p > p
color #fff color #fff
.anltbovirfeutcigvwgmgxipejaeozxi[data-darkmode]
root(true)
.anltbovirfeutcigvwgmgxipejaeozxi:not([data-darkmode])
root(false)
</style> </style>

View File

@ -116,15 +116,13 @@ export default define({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .mkw-calendar
root(isDark)
&[data-special='on-new-years-day'] &[data-special='on-new-years-day']
border-color #ef95a0 border-color #ef95a0
.mkw-calendar--body .mkw-calendar--body
padding 16px 0 padding 16px 0
color isDark ? #c5ced6 : #777 color var(--calendarDay)
&:after &:after
content "" content ""
@ -169,7 +167,8 @@ root(isDark)
margin 0 0 2px 0 margin 0 0 2px 0
font-size 12px font-size 12px
line-height 18px line-height 18px
color isDark ? #7a8692 : #888 color var(--text)
opacity 0.8
> b > b
margin-left 2px margin-left 2px
@ -177,12 +176,12 @@ root(isDark)
> .meter > .meter
width 100% width 100%
overflow hidden overflow hidden
background isDark ? #1c1f25 : #eee background var(--materBg)
border-radius 8px border-radius 8px
> .val > .val
height 4px height 4px
background $theme-color background var(--primary)
transition width .3s cubic-bezier(0.23, 1, 0.32, 1) transition width .3s cubic-bezier(0.23, 1, 0.32, 1)
&:nth-child(1) &:nth-child(1)
@ -197,10 +196,4 @@ root(isDark)
> .meter > .val > .meter > .val
background #41ddde background #41ddde
.mkw-calendar[data-darkmode]
root(true)
.mkw-calendar:not([data-darkmode])
root(false)
</style> </style>

View File

@ -1,6 +1,7 @@
<template> <template>
<div class="mkw-donation" :data-mobile="platform == 'mobile'"> <div>
<article> <mk-widget-container :show-header="false">
<article class="dolfvtibguprpxxhfndqaosjitixjohx">
<h1>%fa:heart%%i18n:@title%</h1> <h1>%fa:heart%%i18n:@title%</h1>
<p v-if="meta"> <p v-if="meta">
{{ '%i18n:@text%'.substr(0, '%i18n:@text%'.indexOf('{')) }} {{ '%i18n:@text%'.substr(0, '%i18n:@text%'.indexOf('{')) }}
@ -8,6 +9,7 @@
{{ '%i18n:@text%'.substr('%i18n:@text%'.indexOf('}') + 1) }} {{ '%i18n:@text%'.substr('%i18n:@text%'.indexOf('}') + 1) }}
</p> </p>
</article> </article>
</mk-widget-container>
</div> </div>
</template> </template>
@ -30,18 +32,14 @@ export default define({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
root(isDark) .dolfvtibguprpxxhfndqaosjitixjohx
background isDark ? #282c37 : #fff
border solid 1px isDark ? #c3831c : #ead8bb
border-radius 6px
> article
padding 20px padding 20px
background var(--donationBg)
color var(--donationFg)
> h1 > h1
margin 0 0 5px 0 margin 0 0 5px 0
font-size 1em font-size 1em
color isDark ? #b2bac1 : #888
> [data-fa] > [data-fa]
margin-right 0.25em margin-right 0.25em
@ -51,25 +49,5 @@ root(isDark)
z-index 1 z-index 1
margin 0 margin 0
font-size 0.8em font-size 0.8em
color isDark ? #a1a6ab : #999
&[data-mobile]
border none
background #ead8bb
border-radius 8px
box-shadow 0 0 0 1px rgba(#000, 0.2)
> article
> h1
color #7b8871
> p
color #777d71
.mkw-donation[data-darkmode]
root(true)
.mkw-donation:not([data-darkmode])
root(false)
</style> </style>

View File

@ -57,9 +57,7 @@ export default define({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .mkw-memo
root(isDark)
.mkw-memo--body .mkw-memo--body
padding-bottom 28px + 16px padding-bottom 28px + 16px
@ -69,10 +67,10 @@ root(isDark)
max-width 100% max-width 100%
min-width 100% min-width 100%
padding 16px padding 16px
color isDark ? #fff : #222 color var(--inputText)
background isDark ? #282c37 : #fff background var(--face)
border none border none
border-bottom solid 1px isDark ? #1c2023 : #eee border-bottom solid 1px var(--faceDivider)
border-radius 0 border-radius 0
> button > button
@ -83,8 +81,8 @@ root(isDark)
margin 0 margin 0
padding 0 10px padding 0 10px
height 28px height 28px
color $theme-color-foreground color var(--primaryForeground)
background $theme-color !important background var(--primary) !important
outline none outline none
border none border none
border-radius 4px border-radius 4px
@ -92,20 +90,14 @@ root(isDark)
cursor pointer cursor pointer
&:hover &:hover
background lighten($theme-color, 10%) !important background var(--primaryLighten10) !important
&:active &:active
background darken($theme-color, 10%) !important background var(--primaryDarken10) !important
transition background 0s ease transition background 0s ease
&:disabled &:disabled
opacity 0.7 opacity 0.7
cursor default cursor default
.mkw-memo[data-darkmode]
root(true)
.mkw-memo:not([data-darkmode])
root(false)
</style> </style>

View File

@ -16,23 +16,17 @@ export default define({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
root(isDark) .mkw-nav
.mkw-nav--body .mkw-nav--body
padding 16px padding 16px
font-size 12px font-size 12px
color isDark ? #9aa4b3 : #aaa color var(--text)
background isDark ? #282c37 : #fff background var(--face)
a a
color isDark ? #9aa4b3 : #999 color var(--text)
i i
color isDark ? #9aa4b3 : #ccc color var(--text)
.mkw-nav[data-darkmode]
root(true)
.mkw-nav:not([data-darkmode])
root(false)
</style> </style>

View File

@ -4,7 +4,7 @@
<template slot="header">%fa:chart-line%%i18n:@title%</template> <template slot="header">%fa:chart-line%%i18n:@title%</template>
<button slot="func" @click="toggle" title="%i18n:@toggle%">%fa:sort%</button> <button slot="func" @click="toggle" title="%i18n:@toggle%">%fa:sort%</button>
<div class="qpdmibaztplkylerhdbllwcokyrfxeyj" :class="{ dual: props.view == 0 }" :data-darkmode="$store.state.device.darkmode"> <div class="qpdmibaztplkylerhdbllwcokyrfxeyj" :class="{ dual: props.view == 0 }">
<svg :viewBox="`0 0 ${ viewBoxX } ${ viewBoxY }`" v-show="props.view != 2"> <svg :viewBox="`0 0 ${ viewBoxX } ${ viewBoxY }`" v-show="props.view != 2">
<defs> <defs>
<linearGradient :id="localGradientId" x1="0" x2="0" y1="1" y2="0"> <linearGradient :id="localGradientId" x1="0" x2="0" y1="1" y2="0">
@ -173,7 +173,7 @@ export default define({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
root(isDark) .qpdmibaztplkylerhdbllwcokyrfxeyj
&.dual &.dual
> svg > svg
width 50% width 50%
@ -192,7 +192,7 @@ root(isDark)
> text > text
font-size 5px font-size 5px
fill isDark ? rgba(#fff, 0.55) : rgba(#000, 0.55) fill var(--chartCaption)
> tspan > tspan
opacity 0.5 opacity 0.5
@ -202,10 +202,4 @@ root(isDark)
display block display block
clear both clear both
.qpdmibaztplkylerhdbllwcokyrfxeyj[data-darkmode]
root(true)
.qpdmibaztplkylerhdbllwcokyrfxeyj:not([data-darkmode])
root(false)
</style> </style>

View File

@ -65,7 +65,7 @@ export default define({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
root(isDark) .mkw-rss
.mkw-rss--body .mkw-rss--body
.feed .feed
padding 12px 16px padding 12px 16px
@ -74,8 +74,8 @@ root(isDark)
> a > a
display block display block
padding 4px 0 padding 4px 0
color isDark ? #9aa4b3 : #666 color var(--text)
border-bottom dashed 1px isDark ? #1c2023 : #eee border-bottom dashed 1px var(--faceDivider)
&:last-child &:last-child
border-bottom none border-bottom none
@ -90,7 +90,7 @@ root(isDark)
margin-right 4px margin-right 4px
&[data-mobile] &[data-mobile]
background isDark ? #21242f : #f3f3f3 background var(--face)
.feed .feed
padding 0 padding 0
@ -100,12 +100,6 @@ root(isDark)
border-bottom none border-bottom none
&:nth-child(even) &:nth-child(even)
background isDark ? rgba(#000, 0.05) : rgba(#fff, 0.7) background rgba(#000, 0.05)
.mkw-rss[data-darkmode]
root(true)
.mkw-rss:not([data-darkmode])
root(false)
</style> </style>

View File

@ -129,7 +129,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
root(isDark) .cpu-memory
> svg > svg
display block display block
padding 10px padding 10px
@ -144,7 +144,7 @@ root(isDark)
> text > text
font-size 5px font-size 5px
fill isDark ? rgba(#fff, 0.55) : rgba(#000, 0.55) fill var(--chartCaption)
> tspan > tspan
opacity 0.5 opacity 0.5
@ -154,10 +154,4 @@ root(isDark)
display block display block
clear both clear both
.cpu-memory[data-darkmode]
root(true)
.cpu-memory:not([data-darkmode])
root(false)
</style> </style>

View File

@ -38,7 +38,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
root(isDark) .cpu
> .pie > .pie
padding 10px padding 10px
height 100px height 100px
@ -52,7 +52,7 @@ root(isDark)
> p > p
margin 0 margin 0
font-size 12px font-size 12px
color isDark ? #a8b4bd : #505050 color var(--chartCaption)
&:first-child &:first-child
font-weight bold font-weight bold
@ -65,10 +65,4 @@ root(isDark)
display block display block
clear both clear both
.cpu[data-darkmode]
root(true)
.cpu:not([data-darkmode])
root(false)
</style> </style>

View File

@ -46,7 +46,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
root(isDark) .disk
> .pie > .pie
padding 10px padding 10px
height 100px height 100px
@ -60,7 +60,7 @@ root(isDark)
> p > p
margin 0 margin 0
font-size 12px font-size 12px
color isDark ? #a8b4bd : #505050 color var(--chartCaption)
&:first-child &:first-child
font-weight bold font-weight bold
@ -73,10 +73,4 @@ root(isDark)
display block display block
clear both clear both
.disk[data-darkmode]
root(true)
.disk:not([data-darkmode])
root(false)
</style> </style>

View File

@ -46,7 +46,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
root(isDark) .memory
> .pie > .pie
padding 10px padding 10px
height 100px height 100px
@ -60,7 +60,7 @@ root(isDark)
> p > p
margin 0 margin 0
font-size 12px font-size 12px
color isDark ? #a8b4bd : #505050 color var(--chartCaption)
&:first-child &:first-child
font-weight bold font-weight bold
@ -73,10 +73,4 @@ root(isDark)
display block display block
clear both clear both
.memory[data-darkmode]
root(true)
.memory:not([data-darkmode])
root(false)
</style> </style>

View File

@ -45,7 +45,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
root(isDark) svg
display block display block
height 100% height 100%
@ -56,12 +56,6 @@ root(isDark)
> text > text
font-size 0.15px font-size 0.15px
fill isDark ? rgba(#fff, 0.6) : rgba(#000, 0.6) fill var(--chartCaption)
svg[data-darkmode]
root(true)
svg:not([data-darkmode])
root(false)
</style> </style>

View File

@ -1,150 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="512"
height="512"
viewBox="0 0 135.46667 135.46667"
version="1.1"
id="svg8"
inkscape:version="0.92.1 r15371"
sodipodi:docname="header-icon.light.svg"
inkscape:export-filename="C:\Users\syuilo\projects\misskey\assets\favicon\32.png"
inkscape:export-xdpi="6"
inkscape:export-ydpi="6">
<defs
id="defs2">
<inkscape:path-effect
effect="simplify"
id="path-effect5115"
is_visible="true"
steps="1"
threshold="0.000408163"
smooth_angles="360"
helper_size="0"
simplify_individual_paths="false"
simplify_just_coalesce="false"
simplifyindividualpaths="false"
simplifyJustCoalesce="false" />
<inkscape:path-effect
effect="simplify"
id="path-effect5111"
is_visible="true"
steps="1"
threshold="0.000408163"
smooth_angles="360"
helper_size="0"
simplify_individual_paths="false"
simplify_just_coalesce="false"
simplifyindividualpaths="false"
simplifyJustCoalesce="false" />
<inkscape:path-effect
effect="simplify"
id="path-effect5104"
is_visible="true"
steps="1"
threshold="0.000408163"
smooth_angles="360"
helper_size="0"
simplify_individual_paths="false"
simplify_just_coalesce="false"
simplifyindividualpaths="false"
simplifyJustCoalesce="false" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4142136"
inkscape:cx="114.309"
inkscape:cy="251.50613"
inkscape:document-units="px"
inkscape:current-layer="g4502"
showgrid="true"
units="px"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="false"
inkscape:snap-smooth-nodes="true"
inkscape:snap-center="true"
inkscape:snap-page="true"
inkscape:window-width="1920"
inkscape:window-height="1027"
inkscape:window-x="-8"
inkscape:window-y="1072"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-midpoints="true"
inkscape:object-paths="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
objecttolerance="1"
guidetolerance="1"
inkscape:snap-nodes="false"
inkscape:snap-others="false">
<inkscape:grid
type="xygrid"
id="grid4504"
spacingx="4.2333334"
spacingy="4.2333334"
empcolor="#ff3fff"
empopacity="0.25098039"
empspacing="4" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="レイヤー 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-30.809093,-111.78601)">
<g
id="g4502"
transform="matrix(1.096096,0,0,1.096096,-2.960633,-44.023579)">
<g
style="fill:#000000;fill-opacity:1"
transform="translate(-1.3333333e-6,-1.3439941e-6)"
id="g5125">
<g
transform="matrix(0.91391326,0,0,0.91391326,7.9719907,17.595761)"
id="text4489"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:141.03404236px;line-height:476.69509888px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28950602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
aria-label="Mi">
<path
sodipodi:nodetypes="zccssscssccscczzzccsccsscscsccz"
inkscape:connector-curvature="0"
id="path5210"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#000000;fill-opacity:1;stroke-width:0.28950602px"
d="m 75.196381,231.17126 c -5.855419,0.0202 -10.885068,-3.50766 -13.2572,-7.61584 -1.266603,-1.79454 -3.772419,-2.43291 -3.807919,0 v 11.2332 c 0,4.51309 -1.645397,8.41504 -4.936191,11.70583 -3.196772,3.19677 -7.098714,4.79516 -11.705826,4.79516 -4.513089,0 -8.415031,-1.59839 -11.705825,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -61.7729 c 0,-3.47884 0.987238,-6.6286 2.961715,-9.44928 2.068499,-2.91471 4.701135,-4.9362 7.897906,-6.06447 1.786431,-0.65816 3.666885,-0.98724 5.641362,-0.98724 5.077225,0 9.308247,1.97448 12.693064,5.92343 1.786431,1.97448 2.820681,3.00873 3.102749,3.10275 0,0 13.408119,16.21319 13.78421,16.49526 0.376091,0.28206 1.480789,2.43848 4.127113,2.43848 2.646324,0 3.89218,-2.15642 4.26827,-2.43848 0.376091,-0.28207 13.784088,-16.49526 13.784088,-16.49526 0.09402,0.094 1.081261,-0.94022 2.961715,-3.10275 3.478837,-3.94895 7.756866,-5.92343 12.834096,-5.92343 1.88045,0 3.76091,0.32908 5.64136,0.98724 3.19677,1.12827 5.7824,3.14976 7.75688,6.06447 2.06849,2.82068 3.10274,5.97044 3.10274,9.44928 v 61.7729 c 0,4.51309 -1.6454,8.41504 -4.93619,11.70583 -3.19677,3.19677 -7.09871,4.79516 -11.70582,4.79516 -4.51309,0 -8.41504,-1.59839 -11.705828,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -11.2332 c -0.277898,-3.06563 -2.987588,-1.13379 -3.948953,0 -2.538613,4.70114 -7.401781,7.59567 -13.2572,7.61584 z" />
<path
inkscape:connector-curvature="0"
id="path5212"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#000000;fill-opacity:1;stroke-width:0.28950602px"
d="m 145.83461,185.00361 q -5.92343,0 -10.15445,-4.08999 -4.08999,-4.23102 -4.08999,-10.15445 0,-5.92343 4.08999,-10.01342 4.23102,-4.23102 10.15445,-4.23102 5.92343,0 10.15445,4.23102 4.23102,4.08999 4.23102,10.01342 0,5.92343 -4.23102,10.15445 -4.23102,4.08999 -10.15445,4.08999 z m 0.14103,2.82068 q 5.92343,0 10.01342,4.23102 4.23102,4.23102 4.23102,10.15445 v 34.83541 q 0,5.92343 -4.23102,10.15445 -4.08999,4.08999 -10.01342,4.08999 -5.92343,0 -10.15445,-4.08999 -4.23102,-4.23102 -4.23102,-10.15445 v -34.83541 q 0,-5.92343 4.23102,-10.15445 4.23102,-4.23102 10.15445,-4.23102 z" />
</g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.0 KiB

View File

@ -124,24 +124,24 @@
id="g4502" id="g4502"
transform="matrix(1.096096,0,0,1.096096,-2.960633,-44.023579)"> transform="matrix(1.096096,0,0,1.096096,-2.960633,-44.023579)">
<g <g
style="fill:#ffffff;fill-opacity:1" style="fill-opacity:1"
transform="translate(-1.3333333e-6,-1.3439941e-6)" transform="translate(-1.3333333e-6,-1.3439941e-6)"
id="g5125"> id="g5125">
<g <g
transform="matrix(0.91391326,0,0,0.91391326,7.9719907,17.595761)" transform="matrix(0.91391326,0,0,0.91391326,7.9719907,17.595761)"
id="text4489" id="text4489"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:141.03404236px;line-height:476.69509888px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28950602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:141.03404236px;line-height:476.69509888px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill-opacity:1;stroke:none;stroke-width:0.28950602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
aria-label="Mi"> aria-label="Mi">
<path <path
sodipodi:nodetypes="zccssscssccscczzzccsccsscscsccz" sodipodi:nodetypes="zccssscssccscczzzccsccsscscsccz"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path5210" id="path5210"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#ffffff;fill-opacity:1;stroke-width:0.28950602px" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill-opacity:1;stroke-width:0.28950602px"
d="m 75.196381,231.17126 c -5.855419,0.0202 -10.885068,-3.50766 -13.2572,-7.61584 -1.266603,-1.79454 -3.772419,-2.43291 -3.807919,0 v 11.2332 c 0,4.51309 -1.645397,8.41504 -4.936191,11.70583 -3.196772,3.19677 -7.098714,4.79516 -11.705826,4.79516 -4.513089,0 -8.415031,-1.59839 -11.705825,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -61.7729 c 0,-3.47884 0.987238,-6.6286 2.961715,-9.44928 2.068499,-2.91471 4.701135,-4.9362 7.897906,-6.06447 1.786431,-0.65816 3.666885,-0.98724 5.641362,-0.98724 5.077225,0 9.308247,1.97448 12.693064,5.92343 1.786431,1.97448 2.820681,3.00873 3.102749,3.10275 0,0 13.408119,16.21319 13.78421,16.49526 0.376091,0.28206 1.480789,2.43848 4.127113,2.43848 2.646324,0 3.89218,-2.15642 4.26827,-2.43848 0.376091,-0.28207 13.784088,-16.49526 13.784088,-16.49526 0.09402,0.094 1.081261,-0.94022 2.961715,-3.10275 3.478837,-3.94895 7.756866,-5.92343 12.834096,-5.92343 1.88045,0 3.76091,0.32908 5.64136,0.98724 3.19677,1.12827 5.7824,3.14976 7.75688,6.06447 2.06849,2.82068 3.10274,5.97044 3.10274,9.44928 v 61.7729 c 0,4.51309 -1.6454,8.41504 -4.93619,11.70583 -3.19677,3.19677 -7.09871,4.79516 -11.70582,4.79516 -4.51309,0 -8.41504,-1.59839 -11.705828,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -11.2332 c -0.277898,-3.06563 -2.987588,-1.13379 -3.948953,0 -2.538613,4.70114 -7.401781,7.59567 -13.2572,7.61584 z" /> d="m 75.196381,231.17126 c -5.855419,0.0202 -10.885068,-3.50766 -13.2572,-7.61584 -1.266603,-1.79454 -3.772419,-2.43291 -3.807919,0 v 11.2332 c 0,4.51309 -1.645397,8.41504 -4.936191,11.70583 -3.196772,3.19677 -7.098714,4.79516 -11.705826,4.79516 -4.513089,0 -8.415031,-1.59839 -11.705825,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -61.7729 c 0,-3.47884 0.987238,-6.6286 2.961715,-9.44928 2.068499,-2.91471 4.701135,-4.9362 7.897906,-6.06447 1.786431,-0.65816 3.666885,-0.98724 5.641362,-0.98724 5.077225,0 9.308247,1.97448 12.693064,5.92343 1.786431,1.97448 2.820681,3.00873 3.102749,3.10275 0,0 13.408119,16.21319 13.78421,16.49526 0.376091,0.28206 1.480789,2.43848 4.127113,2.43848 2.646324,0 3.89218,-2.15642 4.26827,-2.43848 0.376091,-0.28207 13.784088,-16.49526 13.784088,-16.49526 0.09402,0.094 1.081261,-0.94022 2.961715,-3.10275 3.478837,-3.94895 7.756866,-5.92343 12.834096,-5.92343 1.88045,0 3.76091,0.32908 5.64136,0.98724 3.19677,1.12827 5.7824,3.14976 7.75688,6.06447 2.06849,2.82068 3.10274,5.97044 3.10274,9.44928 v 61.7729 c 0,4.51309 -1.6454,8.41504 -4.93619,11.70583 -3.19677,3.19677 -7.09871,4.79516 -11.70582,4.79516 -4.51309,0 -8.41504,-1.59839 -11.705828,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -11.2332 c -0.277898,-3.06563 -2.987588,-1.13379 -3.948953,0 -2.538613,4.70114 -7.401781,7.59567 -13.2572,7.61584 z" />
<path <path
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path5212" id="path5212"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#ffffff;fill-opacity:1;stroke-width:0.28950602px" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill-opacity:1;stroke-width:0.28950602px"
d="m 145.83461,185.00361 q -5.92343,0 -10.15445,-4.08999 -4.08999,-4.23102 -4.08999,-10.15445 0,-5.92343 4.08999,-10.01342 4.23102,-4.23102 10.15445,-4.23102 5.92343,0 10.15445,4.23102 4.23102,4.08999 4.23102,10.01342 0,5.92343 -4.23102,10.15445 -4.23102,4.08999 -10.15445,4.08999 z m 0.14103,2.82068 q 5.92343,0 10.01342,4.23102 4.23102,4.23102 4.23102,10.15445 v 34.83541 q 0,5.92343 -4.23102,10.15445 -4.08999,4.08999 -10.01342,4.08999 -5.92343,0 -10.15445,-4.08999 -4.23102,-4.23102 -4.23102,-10.15445 v -34.83541 q 0,-5.92343 4.23102,-10.15445 4.23102,-4.23102 10.15445,-4.23102 z" /> d="m 145.83461,185.00361 q -5.92343,0 -10.15445,-4.08999 -4.08999,-4.23102 -4.08999,-10.15445 0,-5.92343 4.08999,-10.01342 4.23102,-4.23102 10.15445,-4.23102 5.92343,0 10.15445,4.23102 4.23102,4.08999 4.23102,10.01342 0,5.92343 -4.23102,10.15445 -4.23102,4.08999 -10.15445,4.08999 z m 0.14103,2.82068 q 5.92343,0 10.01342,4.23102 4.23102,4.23102 4.23102,10.15445 v 34.83541 q 0,5.92343 -4.23102,10.15445 -4.08999,4.08999 -10.01342,4.08999 -5.92343,0 -10.15445,-4.08999 -4.23102,-4.23102 -4.23102,-10.15445 v -34.83541 q 0,-5.92343 4.23102,-10.15445 4.23102,-4.23102 10.15445,-4.23102 z" />
</g> </g>
</g> </g>

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@ -29,7 +29,6 @@ import MkUser from './views/pages/user/user.vue';
import MkFavorites from './views/pages/favorites.vue'; import MkFavorites from './views/pages/favorites.vue';
import MkSelectDrive from './views/pages/selectdrive.vue'; import MkSelectDrive from './views/pages/selectdrive.vue';
import MkDrive from './views/pages/drive.vue'; import MkDrive from './views/pages/drive.vue';
import MkUserList from './views/pages/user-list.vue';
import MkHomeCustomize from './views/pages/home-customize.vue'; import MkHomeCustomize from './views/pages/home-customize.vue';
import MkMessagingRoom from './views/pages/messaging-room.vue'; import MkMessagingRoom from './views/pages/messaging-room.vue';
import MkNote from './views/pages/note.vue'; import MkNote from './views/pages/note.vue';
@ -63,7 +62,6 @@ init(async (launch) => {
{ path: '/i/messaging/:user', component: MkMessagingRoom }, { path: '/i/messaging/:user', component: MkMessagingRoom },
{ path: '/i/drive', component: MkDrive }, { path: '/i/drive', component: MkDrive },
{ path: '/i/drive/folder/:folder', component: MkDrive }, { path: '/i/drive/folder/:folder', component: MkDrive },
{ path: '/i/lists/:list', component: MkUserList },
{ path: '/selectdrive', component: MkSelectDrive }, { path: '/selectdrive', component: MkSelectDrive },
{ path: '/search', component: MkSearch }, { path: '/search', component: MkSearch },
{ path: '/tags/:tag', component: MkTag }, { path: '/tags/:tag', component: MkTag },
@ -87,10 +85,12 @@ init(async (launch) => {
updateBanner: updateBanner(os) updateBanner: updateBanner(os)
})); }));
if (os.store.getters.isSignedIn) {
/** /**
* Fuck AD Block * Fuck AD Block
*/ */
fuckAdBlock(os); fuckAdBlock(os);
}
/** /**
* Init Notification * Init Notification

View File

@ -1,8 +1,6 @@
@import "../app" @import "../app"
@import "../reset" @import "../reset"
@import "./ui"
*::input-placeholder *::input-placeholder
color #D8CBC5 color #D8CBC5
@ -11,34 +9,21 @@
html html
height 100% height 100%
background #f7f7f7 background var(--bg)
&, * &, *
&::-webkit-scrollbar &::-webkit-scrollbar
width 6px width 6px
height 6px height 6px
&::-webkit-scrollbar-thumb
background rgba(0, 0, 0, 0.2)
&:hover
background rgba(0, 0, 0, 0.4)
&:active
background $theme-color
&[data-darkmode]
background #191B22
&, *
&::-webkit-scrollbar-track &::-webkit-scrollbar-track
background-color #282C37 background var(--scrollbarTrack)
&::-webkit-scrollbar-thumb &::-webkit-scrollbar-thumb
background-color #454954 background var(--scrollbarHandle)
&:hover &:hover
background-color #535660 background var(--scrollbarHandleHover)
&:active &:active
background-color $theme-color background var(--primary)

View File

@ -1,181 +0,0 @@
@import "../../const"
button
font-family sans-serif
*
pointer-events none
button.ui
.button.ui
display inline-block
cursor pointer
padding 0 14px
margin 0
min-width 100px
line-height 38px
font-size 14px
color #888
text-decoration none
background linear-gradient(to bottom, #ffffff 0%, #f5f5f5 100%)
border solid 1px #e2e2e2
border-radius 4px
outline none
&.block
display block
&:focus
&:after
content ""
pointer-events none
position absolute
top -5px
right -5px
bottom -5px
left -5px
border 2px solid rgba($theme-color, 0.3)
border-radius 8px
&:disabled
opacity 0.7
cursor default
&:hover
background linear-gradient(to bottom, #f9f9f9 0%, #ececec 100%)
border-color #dcdcdc
&:active
background #ececec
border-color #dcdcdc
&.primary
color $theme-color-foreground
background linear-gradient(to bottom, lighten($theme-color, 25%) 0%, lighten($theme-color, 10%) 100%)
border solid 1px lighten($theme-color, 15%)
&:not(:disabled)
font-weight bold
&:hover:not(:disabled)
background linear-gradient(to bottom, lighten($theme-color, 8%) 0%, darken($theme-color, 8%) 100%)
border-color $theme-color
&:active:not(:disabled)
background $theme-color
border-color $theme-color
input:not([type]).ui
input[type='text'].ui
input[type='password'].ui
input[type='email'].ui
input[type='date'].ui
input[type='number'].ui
textarea.ui
display block
padding 10px
width 100%
height 40px
font-family sans-serif
font-size 16px
color #55595c
border solid 1px #dadada
border-radius 4px
&:hover
border-color #b0b0b0
&:focus
border-color $theme-color
textarea.ui
min-width 100%
max-width 100%
min-height 64px
.ui.info
display block
margin 1em 0
padding 0 1em
font-size 90%
color rgba(#000, 0.87)
background #f8f8f9
border solid 1px rgba(34, 36, 38, 0.22)
border-radius 4px
> p
opacity 0.8
> [data-fa]:first-child
margin-right 0.25em
&.warn
color #573a08
background #FFFAF3
border-color #C9BA9B
.ui.from.group
display block
margin 16px 0
> p:first-child
margin 0 0 6px 0
font-size 90%
font-weight bold
color rgba(#373a3c, 0.9)
html[data-darkmode]
button.ui
.button.ui
color #fff
background linear-gradient(to bottom, #313543 0%, #282c37 100%)
border-color #1c2023
&:hover
background linear-gradient(to bottom, #2c2f3c 0%, #22262f 100%)
border-color #151a1d
&:active
background #22262f
border-color #151a1d
&.primary
color $theme-color-foreground
background linear-gradient(to bottom, lighten($theme-color, 25%) 0%, lighten($theme-color, 10%) 100%)
border solid 1px lighten($theme-color, 15%)
&:hover:not(:disabled)
background linear-gradient(to bottom, lighten($theme-color, 8%) 0%, darken($theme-color, 8%) 100%)
border-color $theme-color
&:active:not(:disabled)
background $theme-color
border-color $theme-color
input:not([type]).ui
input[type='text'].ui
input[type='password'].ui
input[type='email'].ui
input[type='date'].ui
input[type='number'].ui
textarea.ui
display block
padding 10px
width 100%
height 40px
font-family sans-serif
font-size 16px
color #dee4e8
background #191b22
border solid 1px #495156
border-radius 4px
&:hover
border-color #b0b0b0
&:focus
border-color $theme-color
.ui.from.group
> p:first-child
color #c0c7cc

View File

@ -128,13 +128,11 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .mk-calendar
color var(--calendarDay)
root(isDark) background var(--face)
color isDark ? #c5ced6 : #777 box-shadow var(--shadow)
background isDark ? #282C37 : #fff border-radius var(--round)
border solid 1px rgba(#000, 0.075)
border-radius 6px
overflow hidden overflow hidden
&[data-melt] &[data-melt]
@ -149,12 +147,10 @@ root(isDark)
line-height 42px line-height 42px
font-size 0.9em font-size 0.9em
font-weight bold font-weight bold
color isDark ? #c5ced6 : #888 color var(--faceHeaderText)
background var(--faceHeader)
box-shadow 0 1px rgba(#000, 0.07) box-shadow 0 1px rgba(#000, 0.07)
if isDark
background #313543
> [data-fa] > [data-fa]
margin-right 4px margin-right 4px
@ -166,13 +162,13 @@ root(isDark)
width 42px width 42px
font-size 0.9em font-size 0.9em
line-height 42px line-height 42px
color isDark ? #9baec8 : #ccc color var(--faceTextButton)
&:hover &:hover
color isDark ? #b2c1d5 : #aaa color var(--faceTextButtonHover)
&:active &:active
color isDark ? #b2c1d5 : #999 color var(--faceTextButtonActive)
&:first-of-type &:first-of-type
left 0 left 0
@ -195,65 +191,56 @@ root(isDark)
font-size 14px font-size 14px
&.weekday &.weekday
color isDark ? #43d5dc : #19a2a9 color var(--calendarWeek)
&[data-is-donichi] &[data-is-donichi]
color isDark ? #ff6679 : #ef95a0 color var(--calendarSaturdayOrSunday)
&[data-today] &[data-today]
box-shadow 0 0 0 1px isDark ? #43d5dc : #19a2a9 inset box-shadow 0 0 0 1px var(--calendarWeek) inset
border-radius 6px border-radius 6px
&[data-is-donichi] &[data-is-donichi]
box-shadow 0 0 0 1px isDark ? #ff6679 : #ef95a0 inset box-shadow 0 0 0 1px var(--calendarSaturdayOrSunday) inset
&.day &.day
cursor pointer cursor pointer
color isDark ? #c5ced6 : #777 color var(--calendarDay)
> div > div
border-radius 6px border-radius 6px
&:hover > div &:hover > div
background rgba(#000, isDark ? 0.1 : 0.025) background var(--faceClearButtonHover)
&:active > div &:active > div
background rgba(#000, isDark ? 0.2 : 0.05) background var(--faceClearButtonActive)
&[data-is-donichi] &[data-is-donichi]
color isDark ? #ff6679 : #ef95a0 color var(--calendarSaturdayOrSunday)
&[data-is-out-of-range] &[data-is-out-of-range]
cursor default cursor default
color rgba(isDark ? #c5ced6 : #777, 0.5) opacity 0.5
&[data-is-donichi]
color rgba(isDark ? #ff6679 : #ef95a0, 0.5)
&[data-selected] &[data-selected]
font-weight bold font-weight bold
> div > div
background rgba(#000, isDark ? 0.1 : 0.025) background var(--faceClearButtonHover)
&:active > div &:active > div
background rgba(#000, isDark ? 0.2 : 0.05) background var(--faceClearButtonActive)
&[data-today] &[data-today]
> div > div
color $theme-color-foreground color var(--primaryForeground)
background $theme-color background var(--primary)
&:hover > div &:hover > div
background lighten($theme-color, 10%) background var(--primaryLighten10)
&:active > div &:active > div
background darken($theme-color, 10%) background var(--primaryDarken10)
.mk-calendar[data-darkmode]
root(true)
.mk-calendar:not([data-darkmode])
root(false)
</style> </style>

View File

@ -100,7 +100,7 @@ export default Vue.extend({
created() { created() {
(this as any).api('chart', { (this as any).api('chart', {
limit: 32 limit: 35
}).then(chart => { }).then(chart => {
this.chart = chart; this.chart = chart;
}); });
@ -649,7 +649,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl'
.gkgckalzgidaygcxnugepioremxvxvpt .gkgckalzgidaygcxnugepioremxvxvpt
padding 32px padding 32px
@ -675,12 +675,12 @@ export default Vue.extend({
* *
&:not(.active) &:not(.active)
color $theme-color color var(--primary)
cursor pointer cursor pointer
> div > div
> * > *
display block display block
height 320px height 350px
</style> </style>

View File

@ -1,5 +1,5 @@
<template> <template>
<mk-window ref="window" is-modal width="800px" height="500px" @closed="$destroy"> <mk-window ref="window" is-modal width="800px" height="500px" @closed="destroyDom">
<span slot="header"> <span slot="header">
<span v-html="title" :class="$style.title"></span> <span v-html="title" :class="$style.title"></span>
<span :class="$style.count" v-if="multiple && files.length > 0">({{ files.length }}%i18n:@choose-file%)</span> <span :class="$style.count" v-if="multiple && files.length > 0">({{ files.length }}%i18n:@choose-file%)</span>
@ -59,7 +59,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" module> <style lang="stylus" module>
@import '~const.styl'
.title .title
> [data-fa] > [data-fa]
@ -74,7 +74,7 @@ export default Vue.extend({
.footer .footer
height 72px height 72px
background lighten($theme-color, 95%) background var(--primaryLighten95)
.upload .upload
display inline-block display inline-block
@ -87,7 +87,7 @@ export default Vue.extend({
width 40px width 40px
height 40px height 40px
font-size 1em font-size 1em
color rgba($theme-color, 0.5) color var(--primaryAlpha05)
background transparent background transparent
outline none outline none
border solid 1px transparent border solid 1px transparent
@ -95,13 +95,13 @@ export default Vue.extend({
&:hover &:hover
background transparent background transparent
border-color rgba($theme-color, 0.3) border-color var(--primaryAlpha03)
&:active &:active
color rgba($theme-color, 0.6) color var(--primaryAlpha06)
background transparent background transparent
border-color rgba($theme-color, 0.5) border-color var(--primaryAlpha05)
box-shadow 0 2px 4px rgba(darken($theme-color, 50%), 0.15) inset //box-shadow 0 2px 4px rgba(var(--primaryDarken50), 0.15) inset
&:focus &:focus
&:after &:after
@ -112,7 +112,7 @@ export default Vue.extend({
right -5px right -5px
bottom -5px bottom -5px
left -5px left -5px
border 2px solid rgba($theme-color, 0.3) border 2px solid var(--primaryAlpha03)
border-radius 8px border-radius 8px
.ok .ok
@ -138,7 +138,7 @@ export default Vue.extend({
right -5px right -5px
bottom -5px bottom -5px
left -5px left -5px
border 2px solid rgba($theme-color, 0.3) border 2px solid var(--primaryAlpha03)
border-radius 8px border-radius 8px
&:disabled &:disabled
@ -147,20 +147,20 @@ export default Vue.extend({
.ok .ok
right 16px right 16px
color $theme-color-foreground color var(--primaryForeground)
background linear-gradient(to bottom, lighten($theme-color, 25%) 0%, lighten($theme-color, 10%) 100%) background linear-gradient(to bottom, var(--primaryLighten25) 0%, var(--primaryLighten10) 100%)
border solid 1px lighten($theme-color, 15%) border solid 1px var(--primaryLighten15)
&:not(:disabled) &:not(:disabled)
font-weight bold font-weight bold
&:hover:not(:disabled) &:hover:not(:disabled)
background linear-gradient(to bottom, lighten($theme-color, 8%) 0%, darken($theme-color, 8%) 100%) background linear-gradient(to bottom, var(--primaryLighten8) 0%, var(--primaryDarken8) 100%)
border-color $theme-color border-color var(--primary)
&:active:not(:disabled) &:active:not(:disabled)
background $theme-color background var(--primary)
border-color $theme-color border-color var(--primary)
.cancel .cancel
right 148px right 148px

View File

@ -1,5 +1,5 @@
<template> <template>
<mk-window ref="window" is-modal width="800px" height="500px" @closed="$destroy"> <mk-window ref="window" is-modal width="800px" height="500px" @closed="destroyDom">
<span slot="header"> <span slot="header">
<span v-html="title" :class="$style.title"></span> <span v-html="title" :class="$style.title"></span>
</span> </span>
@ -37,7 +37,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" module> <style lang="stylus" module>
@import '~const.styl'
.title .title
> [data-fa] > [data-fa]
@ -48,7 +48,7 @@ export default Vue.extend({
.footer .footer
height 72px height 72px
background lighten($theme-color, 95%) background var(--primaryLighten95)
.ok .ok
.cancel .cancel
@ -73,7 +73,7 @@ export default Vue.extend({
right -5px right -5px
bottom -5px bottom -5px
left -5px left -5px
border 2px solid rgba($theme-color, 0.3) border 2px solid var(--primaryAlpha03)
border-radius 8px border-radius 8px
&:disabled &:disabled
@ -82,20 +82,20 @@ export default Vue.extend({
.ok .ok
right 16px right 16px
color $theme-color-foreground color var(--primaryForeground)
background linear-gradient(to bottom, lighten($theme-color, 25%) 0%, lighten($theme-color, 10%) 100%) background linear-gradient(to bottom, var(--primaryLighten25) 0%, var(--primaryLighten10) 100%)
border solid 1px lighten($theme-color, 15%) border solid 1px var(--primaryLighten15)
&:not(:disabled) &:not(:disabled)
font-weight bold font-weight bold
&:hover:not(:disabled) &:hover:not(:disabled)
background linear-gradient(to bottom, lighten($theme-color, 8%) 0%, darken($theme-color, 8%) 100%) background linear-gradient(to bottom, var(--primaryLighten8) 0%, var(--primaryDarken8) 100%)
border-color $theme-color border-color var(--primary)
&:active:not(:disabled) &:active:not(:disabled)
background $theme-color background var(--primary)
border-color $theme-color border-color var(--primary)
.cancel .cancel
right 148px right 148px

View File

@ -31,9 +31,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl' .menu
root(isDark)
$width = 240px $width = 240px
$item-height = 38px $item-height = 38px
$padding = 10px $padding = 10px
@ -48,7 +46,7 @@ root(isDark)
&.divider &.divider
margin-top $padding margin-top $padding
padding-top $padding padding-top $padding
border-top solid 1px isDark ? #1c2023 : #eee border-top solid 1px var(--faceDivider)
&.nest &.nest
> p > p
@ -69,7 +67,7 @@ root(isDark)
&:active &:active
> p, a > p, a
background $theme-color background var(--primary)
> p, a > p, a
display block display block
@ -77,7 +75,7 @@ root(isDark)
margin 0 margin 0
padding 0 32px 0 38px padding 0 32px 0 38px
line-height $item-height line-height $item-height
color isDark ? #c8cece : #868C8C color var(--text)
text-decoration none text-decoration none
cursor pointer cursor pointer
@ -90,14 +88,14 @@ root(isDark)
&:hover &:hover
> p, a > p, a
text-decoration none text-decoration none
background $theme-color background var(--primary)
color $theme-color-foreground color var(--primaryForeground)
&:active &:active
> p, a > p, a
text-decoration none text-decoration none
background darken($theme-color, 10%) background var(--primaryDarken10)
color $theme-color-foreground color var(--primaryForeground)
li > ul li > ul
visibility hidden visibility hidden
@ -106,17 +104,11 @@ root(isDark)
left $width left $width
margin-top -($padding) margin-top -($padding)
width $width width $width
background isDark ? #282c37 :#fff background var(--popupBg)
border-radius 0 4px 4px 4px border-radius 0 4px 4px 4px
box-shadow 2px 2px 8px rgba(#000, 0.2) box-shadow 2px 2px 8px rgba(#000, 0.2)
transition visibility 0s linear 0.2s transition visibility 0s linear 0.2s
.menu[data-darkmode]
root(true)
.menu:not([data-darkmode])
root(false)
</style> </style>
<style lang="stylus" module> <style lang="stylus" module>

View File

@ -71,7 +71,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
root(isDark) .context-menu
$width = 240px $width = 240px
$item-height = 38px $item-height = 38px
$padding = 10px $padding = 10px
@ -82,15 +82,9 @@ root(isDark)
z-index 4096 z-index 4096
width $width width $width
font-size 0.8em font-size 0.8em
background isDark ? #282c37 : #fff background var(--popupBg)
border-radius 0 4px 4px 4px border-radius 0 4px 4px 4px
box-shadow 2px 2px 8px rgba(#000, 0.2) box-shadow 2px 2px 8px rgba(#000, 0.2)
opacity 0 opacity 0
.context-menu[data-darkmode]
root(true)
.context-menu:not([data-darkmode])
root(false)
</style> </style>

View File

@ -61,7 +61,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" module> <style lang="stylus" module>
@import '~const.styl'
.header .header
> [data-fa] > [data-fa]
@ -73,7 +73,7 @@ export default Vue.extend({
.actions .actions
height 72px height 72px
background lighten($theme-color, 95%) background var(--primaryLighten95)
.ok .ok
.cancel .cancel
@ -98,7 +98,7 @@ export default Vue.extend({
right -5px right -5px
bottom -5px bottom -5px
left -5px left -5px
border 2px solid rgba($theme-color, 0.3) border 2px solid var(--primaryAlpha03)
border-radius 8px border-radius 8px
&:disabled &:disabled
@ -111,20 +111,20 @@ export default Vue.extend({
.ok .ok
right 16px right 16px
color $theme-color-foreground color var(--primaryForeground)
background linear-gradient(to bottom, lighten($theme-color, 25%) 0%, lighten($theme-color, 10%) 100%) background linear-gradient(to bottom, var(--primaryLighten25) 0%, var(--primaryLighten10) 100%)
border solid 1px lighten($theme-color, 15%) border solid 1px var(--primaryLighten15)
&:not(:disabled) &:not(:disabled)
font-weight bold font-weight bold
&:hover:not(:disabled) &:hover:not(:disabled)
background linear-gradient(to bottom, lighten($theme-color, 8%) 0%, darken($theme-color, 8%) 100%) background linear-gradient(to bottom, var(--primaryLighten8) 0%, var(--primaryDarken8) 100%)
border-color $theme-color border-color var(--primary)
&:active:not(:disabled) &:active:not(:disabled)
background $theme-color background var(--primary)
border-color $theme-color border-color var(--primary)
.cancel .cancel
.skip .skip
@ -155,11 +155,11 @@ export default Vue.extend({
} }
.cropper-view-box { .cropper-view-box {
outline-color: $theme-color; outline-color: var(--primary);
} }
.cropper-line, .cropper-point { .cropper-line, .cropper-point {
background-color: $theme-color; background-color: var(--primary);
} }
.cropper-bg { .cropper-bg {

View File

@ -91,7 +91,7 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '~const.styl'
.mk-dialog .mk-dialog
> .bg > .bg
@ -144,20 +144,20 @@ export default Vue.extend({
margin 0 0.375em margin 0 0.375em
&:hover &:hover
color $theme-color color var(--primary)
&:active &:active
color darken($theme-color, 10%) color var(--primaryDarken10)
transition color 0s ease transition color 0s ease
</style> </style>
<style lang="stylus" module> <style lang="stylus" module>
@import '~const.styl'
.header .header
margin 1em 0 margin 1em 0
color $theme-color color var(--primary)
// color #43A4EC // color #43A4EC
font-weight bold font-weight bold

Some files were not shown because too many files have changed in this diff Show More