Compare commits
169 Commits
Author | SHA1 | Date | |
---|---|---|---|
f56adce51f | |||
35362ed3c7 | |||
cd0b9a8e3f | |||
110aadd65c | |||
ff76c815b1 | |||
1b9b8912ae | |||
579b61a806 | |||
1e2b484929 | |||
25dd19dd8c | |||
b8b4991a46 | |||
8b68c5da37 | |||
f26e641905 | |||
57669c9c03 | |||
094d873f2e | |||
7b42653271 | |||
6a82e94c54 | |||
1fa4d0d3f8 | |||
d5818214f3 | |||
0c63ec8157 | |||
8317a219a5 | |||
ec652dd0ac | |||
8e3dd75c85 | |||
3f4de3b1cc | |||
e0d3fd17ce | |||
671c7cf06b | |||
99a2c5b3fa | |||
0343de95b8 | |||
13f258308e | |||
c627288bde | |||
1eef90f6cb | |||
29476ea3da | |||
7609741680 | |||
5df85b5feb | |||
b4a4d784c3 | |||
d715af0620 | |||
fe8c384618 | |||
47d4de75da | |||
016c7fd2c4 | |||
7ca5e33a3a | |||
436773837b | |||
fccfe19e13 | |||
18be0d36f3 | |||
9ea7de3564 | |||
d1dce76e28 | |||
f4bf824e79 | |||
cbf5d4b71d | |||
61e5cb2041 | |||
38a6aa26bc | |||
32942709bf | |||
a0305c4c04 | |||
74be1c81b1 | |||
e82a44c03d | |||
1e9eeeb980 | |||
0c7111b438 | |||
ef74653a4b | |||
b032f78769 | |||
7a0a8b5d2b | |||
459b374d61 | |||
cc6af402be | |||
f3eeadcd8f | |||
5b0b83faa7 | |||
5f289e4767 | |||
a36d73cb52 | |||
9e319006f3 | |||
7b8a2aef0f | |||
4fe2f29478 | |||
76a25917c0 | |||
df6c9b1a1c | |||
0ef64a6d0b | |||
1eb6ad58d5 | |||
49f8cfb0db | |||
15a8b4c6e5 | |||
97d68d7b31 | |||
4dde54e344 | |||
3304cc106e | |||
dabda21eb7 | |||
0a64f638c6 | |||
3cbdfcb43d | |||
b6e33e93de | |||
77b441f14c | |||
297019c22c | |||
f5f2215b47 | |||
904114740b | |||
d2d3f7810e | |||
2b07b3a873 | |||
f6e4a1770e | |||
31006507c0 | |||
9ca6a6bf06 | |||
afdacf14b7 | |||
5da18ba535 | |||
e6cc937ac2 | |||
87091a2e03 | |||
59d67d3140 | |||
7b4c307c46 | |||
92484be87f | |||
56b8f8b07d | |||
722de35037 | |||
d93f76c1af | |||
cba0dd5e17 | |||
a2e2d5ba77 | |||
61e05cb50e | |||
49e82adc6c | |||
e4e668b327 | |||
8028c85c67 | |||
28cb9cae51 | |||
7f2eb64131 | |||
3e5330a92b | |||
93e5e4afc0 | |||
aa5528d11e | |||
251629ab61 | |||
82d94b5963 | |||
8240901332 | |||
0a870b8e7e | |||
88dd653fa5 | |||
b712b70330 | |||
a018c2f09f | |||
04c16e53a5 | |||
5e89e73f76 | |||
2c9432d7a9 | |||
19d1775b36 | |||
ecc235c545 | |||
382b1d2250 | |||
629693355a | |||
00a3f8d392 | |||
80b6e8090e | |||
a5f817d896 | |||
51b0244cf2 | |||
01131e2606 | |||
6283b7668e | |||
d058ecc4ea | |||
77a0450b5d | |||
1dd1b9084f | |||
6341807d02 | |||
51a1f30225 | |||
5422482696 | |||
cd7f8b080e | |||
faf29b768f | |||
7576569dc9 | |||
ea3bcbbc37 | |||
d9f0e158a3 | |||
195f676500 | |||
a9a2f4820b | |||
8414db57f0 | |||
609d68933e | |||
a23b8cebbc | |||
89f6b03cd6 | |||
7bc9de03a6 | |||
3c865d6054 | |||
fd770b008e | |||
b0d60ef2c2 | |||
7b9cea06ef | |||
30608d3e22 | |||
8bf4e55338 | |||
6ead1de383 | |||
3b628ec3c4 | |||
0ed704d173 | |||
87b6ef0ec5 | |||
5184a07cf2 | |||
dba04cc59c | |||
f4045fb5b3 | |||
16c36163b4 | |||
1ac033ff18 | |||
ccfd48232a | |||
429bf179dc | |||
8ba3fb13eb | |||
11496d887e | |||
bec48319ec | |||
71a93b2b43 | |||
6ed3f9e414 |
@ -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:
|
||||||
|
@ -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
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
@ -439,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"
|
||||||
@ -565,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"
|
||||||
@ -1044,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"
|
||||||
|
@ -285,6 +285,31 @@ common/views/components/media-banner.vue:
|
|||||||
sensitive: "閲覧注意"
|
sensitive: "閲覧注意"
|
||||||
click-to-show: "クリックして表示"
|
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: "もっと見る"
|
||||||
@ -328,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: "投稿元で見る"
|
||||||
@ -488,6 +514,7 @@ common/views/pages/follow.vue:
|
|||||||
following: "フォロー中"
|
following: "フォロー中"
|
||||||
follow: "フォロー"
|
follow: "フォロー"
|
||||||
request-pending: "フォロー許可待ち"
|
request-pending: "フォロー許可待ち"
|
||||||
|
follow-processing: "フォロー処理中"
|
||||||
follow-request: "フォロー申請"
|
follow-request: "フォロー申請"
|
||||||
|
|
||||||
desktop:
|
desktop:
|
||||||
@ -630,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:
|
||||||
@ -761,6 +789,7 @@ desktop/views/components/settings.vue:
|
|||||||
2fa: "二段階認証"
|
2fa: "二段階認証"
|
||||||
other: "その他"
|
other: "その他"
|
||||||
license: "ライセンス"
|
license: "ライセンス"
|
||||||
|
theme: "テーマ"
|
||||||
|
|
||||||
behaviour: "動作"
|
behaviour: "動作"
|
||||||
fetch-on-scroll: "スクロールで自動読み込み"
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
@ -779,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: "右上に時計を表示する"
|
||||||
@ -790,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: "サウンドを有効にする"
|
||||||
@ -1205,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:
|
||||||
@ -1416,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: "投稿の公開範囲"
|
||||||
|
@ -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,12 +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の動きを減らす"
|
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: "あんさんのターンや"
|
||||||
@ -157,7 +157,7 @@ common:
|
|||||||
hybrid: "ソーシャル"
|
hybrid: "ソーシャル"
|
||||||
hashtag: "ハッシュタグ"
|
hashtag: "ハッシュタグ"
|
||||||
global: "グローバル"
|
global: "グローバル"
|
||||||
mentions: "あなた宛て"
|
mentions: "あんた宛て"
|
||||||
direct: "ダイレクト投稿"
|
direct: "ダイレクト投稿"
|
||||||
notifications: "通知"
|
notifications: "通知"
|
||||||
list: "リスト"
|
list: "リスト"
|
||||||
@ -262,11 +262,11 @@ common/views/components/connect-failed.troubleshooter.vue:
|
|||||||
flush: "キャッシュの削除"
|
flush: "キャッシュの削除"
|
||||||
set-version: "バージョン指定"
|
set-version: "バージョン指定"
|
||||||
common/views/components/media-banner.vue:
|
common/views/components/media-banner.vue:
|
||||||
sensitive: "閲覧注意"
|
sensitive: "見せたらあかん"
|
||||||
click-to-show: "クリックして表示"
|
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: "あんさん"
|
||||||
@ -303,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: "{}票"
|
||||||
@ -318,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: "パスワード"
|
||||||
@ -330,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: "使えるで"
|
||||||
@ -338,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: "へぼいパスワード"
|
||||||
@ -352,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: "つなぎ直すで"
|
||||||
@ -370,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: "{}年"
|
||||||
@ -436,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"
|
||||||
@ -459,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: "前の月"
|
||||||
@ -474,10 +474,10 @@ desktop/views/components/charts.vue:
|
|||||||
drive: "ドライブ"
|
drive: "ドライブ"
|
||||||
network: "ネットワーク"
|
network: "ネットワーク"
|
||||||
charts:
|
charts:
|
||||||
notes: "投稿の増減 (統合)"
|
notes: "投稿の増減(統合)"
|
||||||
local-notes: "投稿の増減 (ローカル)"
|
local-notes: "投稿の増減 (ローカル)"
|
||||||
remote-notes: "投稿の増減 (リモート)"
|
remote-notes: "投稿の増減 (リモート)"
|
||||||
notes-total: "投稿の累計"
|
notes-total: "全部の投稿"
|
||||||
users: "ユーザーの増減"
|
users: "ユーザーの増減"
|
||||||
users-total: "ユーザーの累計"
|
users-total: "ユーザーの累計"
|
||||||
drive: "ドライブ使用量の増減"
|
drive: "ドライブ使用量の増減"
|
||||||
@ -488,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: "アイコン"
|
||||||
@ -538,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:
|
||||||
@ -579,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:
|
||||||
@ -606,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: "もっぺん"
|
||||||
@ -656,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:
|
||||||
@ -669,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: "ユーザー名ようわからんし見やすしといて"
|
||||||
@ -722,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コードをスキャンしてな:"
|
||||||
@ -779,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:
|
||||||
@ -810,27 +810,27 @@ desktop/views/components/timeline.vue:
|
|||||||
local: "ローカル"
|
local: "ローカル"
|
||||||
hybrid: "ソーシャル"
|
hybrid: "ソーシャル"
|
||||||
global: "グローバル"
|
global: "グローバル"
|
||||||
mentions: "あなた宛て"
|
mentions: "あんた宛て"
|
||||||
messages: "メッセージ"
|
messages: "メッセージ"
|
||||||
list: "リスト"
|
list: "リスト"
|
||||||
hashtag: "ハッシュタグ"
|
hashtag: "ハッシュタグ"
|
||||||
add-tag-timeline: "ハッシュタグを追加"
|
add-tag-timeline: "ハッシュタグ増やす"
|
||||||
add-list: "リストを追加"
|
add-list: "リストに入れる"
|
||||||
list-name: "リスト名"
|
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: "デッキ"
|
||||||
@ -843,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: "新しいリストを作成"
|
||||||
@ -856,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: "ドライブ"
|
||||||
@ -871,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: "凍結の解除"
|
||||||
@ -889,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: "ドライブ"
|
||||||
@ -924,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: "フォローされとるで"
|
||||||
@ -974,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:
|
||||||
@ -993,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"
|
||||||
@ -1072,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: "お気に入り"
|
||||||
@ -1129,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:
|
||||||
@ -1141,7 +1141,7 @@ mobile/views/pages/home.vue:
|
|||||||
local: "ローカル"
|
local: "ローカル"
|
||||||
hybrid: "ソーシャル"
|
hybrid: "ソーシャル"
|
||||||
global: "グローバル"
|
global: "グローバル"
|
||||||
mentions: "あなた宛て"
|
mentions: "あんた宛て"
|
||||||
messages: "メッセージ"
|
messages: "メッセージ"
|
||||||
mobile/views/pages/tag.vue:
|
mobile/views/pages/tag.vue:
|
||||||
no-posts-found: "ハッシュタグ「{}」が付けられた投稿はあらへんで。"
|
no-posts-found: "ハッシュタグ「{}」が付けられた投稿はあらへんで。"
|
||||||
@ -1149,28 +1149,28 @@ 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:
|
||||||
@ -1178,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: "保存"
|
||||||
|
22
package.json
22
package.json
@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "misskey",
|
"name": "misskey",
|
||||||
"author": "syuilo <i@syuilo.com>",
|
"author": "syuilo <i@syuilo.com>",
|
||||||
"version": "8.49.0",
|
"version": "9.0.0",
|
||||||
"clientVersion": "1.0.9880",
|
"clientVersion": "1.0.10049",
|
||||||
"codename": "nighthike",
|
"codename": "nighthike",
|
||||||
"main": "./built/index.js",
|
"main": "./built/index.js",
|
||||||
"private": true,
|
"private": true,
|
||||||
@ -27,7 +27,7 @@
|
|||||||
"@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.10.1",
|
"@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-color": "2.6.0",
|
||||||
"vue-cropperjs": "2.2.2",
|
"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"
|
||||||
},
|
},
|
||||||
|
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -1,29 +1,45 @@
|
|||||||
import keyCode from './keycode';
|
import keyCode from './keycode';
|
||||||
|
import { concat } from '../../../prelude/array';
|
||||||
|
|
||||||
const getKeyMap = keymap => Object.keys(keymap).map(input => {
|
type pattern = {
|
||||||
const result = {} as any;
|
which: string[];
|
||||||
|
ctrl?: boolean;
|
||||||
|
shift?: boolean;
|
||||||
|
alt?: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
const { keyup, keydown } = keymap[input];
|
type action = {
|
||||||
|
patterns: pattern[];
|
||||||
|
|
||||||
input.split('+').forEach(keyName => {
|
callback: Function;
|
||||||
switch (keyName.toLowerCase()) {
|
};
|
||||||
case 'ctrl':
|
|
||||||
case 'alt':
|
const getKeyMap = keymap => Object.entries(keymap).map(([patterns, callback]): action => {
|
||||||
case 'shift':
|
const result = {
|
||||||
case 'meta':
|
patterns: [],
|
||||||
result[keyName] = true;
|
callback: callback
|
||||||
break;
|
} as action;
|
||||||
default: {
|
|
||||||
result.keyCode = keyCode(keyName);
|
result.patterns = patterns.split('|').map(part => {
|
||||||
if (!Array.isArray(result.keyCode)) result.keyCode = [result.keyCode];
|
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());
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
|
||||||
|
|
||||||
result.callback = {
|
return pattern;
|
||||||
keydown: keydown || keymap[input],
|
});
|
||||||
keyup
|
|
||||||
};
|
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
});
|
});
|
||||||
@ -36,28 +52,41 @@ export default {
|
|||||||
bind(el, binding) {
|
bind(el, binding) {
|
||||||
el._hotkey_global = binding.modifiers.global === true;
|
el._hotkey_global = binding.modifiers.global === true;
|
||||||
|
|
||||||
el._keymap = getKeyMap(binding.value);
|
const actions = getKeyMap(binding.value);
|
||||||
|
|
||||||
el.dataset.reservedKeyCodes = el._keymap.map(key => `'${key.keyCode}'`).join(' ');
|
// flatten
|
||||||
|
const reservedKeys = concat(concat(actions.map(a => a.patterns.map(p => p.which))));
|
||||||
|
|
||||||
el._keyHandler = e => {
|
el.dataset.reservedKeys = reservedKeys.map(key => `'${key}'`).join(' ');
|
||||||
const reservedKeyCodes = document.activeElement ? ((document.activeElement as any).dataset || {}).reservedKeyCodes || '' : '';
|
|
||||||
|
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;
|
if (document.activeElement && ignoreElemens.some(el => document.activeElement.matches(el))) return;
|
||||||
|
|
||||||
for (const hotkey of el._keymap) {
|
for (const action of actions) {
|
||||||
if (el._hotkey_global && reservedKeyCodes.includes(`'${e.keyCode}'`)) break;
|
if (el._hotkey_global && targetReservedKeys.includes(`'${key}'`)) break;
|
||||||
|
|
||||||
const callback = hotkey.keyCode.includes(e.keyCode) &&
|
const matched = action.patterns.some(pattern => {
|
||||||
!!hotkey.ctrl === e.ctrlKey &&
|
const matched = pattern.which.includes(key) &&
|
||||||
!!hotkey.alt === e.altKey &&
|
pattern.ctrl == e.ctrlKey &&
|
||||||
!!hotkey.shift === e.shiftKey &&
|
pattern.shift == e.shiftKey &&
|
||||||
!!hotkey.meta === e.metaKey &&
|
pattern.alt == e.altKey &&
|
||||||
hotkey.callback[e.type];
|
e.metaKey == false;
|
||||||
|
|
||||||
if (callback) {
|
if (matched) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
callback(e);
|
action.callback(e);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (matched) {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -1,116 +1,20 @@
|
|||||||
export default searchInput => {
|
export default (input: string): string[] => {
|
||||||
// Keyboard Events
|
if (Object.keys(aliases).some(a => a.toLowerCase() == input.toLowerCase())) {
|
||||||
if (searchInput && typeof searchInput === 'object') {
|
const codes = aliases[input];
|
||||||
const hasKeyCode = searchInput.which || searchInput.keyCode || searchInput.charCode;
|
return Array.isArray(codes) ? codes : [codes];
|
||||||
if (hasKeyCode) {
|
} else {
|
||||||
searchInput = hasKeyCode;
|
return [input];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Numbers
|
|
||||||
// if (typeof searchInput === 'number') {
|
|
||||||
// return names[searchInput]
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Everything else (cast to string)
|
|
||||||
const search = String(searchInput);
|
|
||||||
|
|
||||||
// check codes
|
|
||||||
const foundNamedKeyCodes = codes[search.toLowerCase()];
|
|
||||||
if (foundNamedKeyCodes) {
|
|
||||||
return foundNamedKeyCodes;
|
|
||||||
}
|
|
||||||
|
|
||||||
// check aliases
|
|
||||||
const foundNamedKeyAliases = aliases[search.toLowerCase()];
|
|
||||||
if (foundNamedKeyAliases) {
|
|
||||||
return foundNamedKeyAliases;
|
|
||||||
}
|
|
||||||
|
|
||||||
// weird character?
|
|
||||||
if (search.length === 1) {
|
|
||||||
return search.charCodeAt(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
return undefined;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* Get by name
|
|
||||||
*
|
|
||||||
* exports.code['enter'] // => 13
|
|
||||||
*/
|
|
||||||
|
|
||||||
export const codes = {
|
|
||||||
'backspace': 8,
|
|
||||||
'tab': 9,
|
|
||||||
'enter': 13,
|
|
||||||
'shift': 16,
|
|
||||||
'ctrl': 17,
|
|
||||||
'alt': 18,
|
|
||||||
'pause/break': 19,
|
|
||||||
'caps lock': 20,
|
|
||||||
'esc': 27,
|
|
||||||
'space': 32,
|
|
||||||
'page up': 33,
|
|
||||||
'page down': 34,
|
|
||||||
'end': 35,
|
|
||||||
'home': 36,
|
|
||||||
'left': 37,
|
|
||||||
'up': 38,
|
|
||||||
'right': 39,
|
|
||||||
'down': 40,
|
|
||||||
// 'add': 43,
|
|
||||||
'insert': 45,
|
|
||||||
'delete': 46,
|
|
||||||
'command': 91,
|
|
||||||
'left command': 91,
|
|
||||||
'right command': 93,
|
|
||||||
'numpad *': 106,
|
|
||||||
'numpad plus': [43, 107],
|
|
||||||
'numpad add': 43, // as a trick
|
|
||||||
'numpad -': 109,
|
|
||||||
'numpad .': 110,
|
|
||||||
'numpad /': 111,
|
|
||||||
'num lock': 144,
|
|
||||||
'scroll lock': 145,
|
|
||||||
'my computer': 182,
|
|
||||||
'my calculator': 183,
|
|
||||||
';': 186,
|
|
||||||
'=': 187,
|
|
||||||
',': 188,
|
|
||||||
'-': 189,
|
|
||||||
'.': 190,
|
|
||||||
'/': 191,
|
|
||||||
'`': 192,
|
|
||||||
'[': 219,
|
|
||||||
'\\': 220,
|
|
||||||
']': 221,
|
|
||||||
"'": 222
|
|
||||||
};
|
|
||||||
|
|
||||||
// Helper aliases
|
|
||||||
|
|
||||||
export const aliases = {
|
export const aliases = {
|
||||||
'windows': 91,
|
'esc': 'Escape',
|
||||||
'⇧': 16,
|
'enter': ['Enter', 'NumpadEnter'],
|
||||||
'⌥': 18,
|
'up': 'ArrowUp',
|
||||||
'⌃': 17,
|
'down': 'ArrowDown',
|
||||||
'⌘': 91,
|
'left': 'ArrowLeft',
|
||||||
'ctl': 17,
|
'right': 'ArrowRight',
|
||||||
'control': 17,
|
'plus': ['NumpadAdd', 'Semicolon'],
|
||||||
'option': 18,
|
|
||||||
'pause': 19,
|
|
||||||
'break': 19,
|
|
||||||
'caps': 20,
|
|
||||||
'return': 13,
|
|
||||||
'escape': 27,
|
|
||||||
'spc': 32,
|
|
||||||
'pgup': 33,
|
|
||||||
'pgdn': 34,
|
|
||||||
'ins': 45,
|
|
||||||
'del': 46,
|
|
||||||
'cmd': 91
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -119,15 +23,11 @@ export const aliases = {
|
|||||||
|
|
||||||
// lower case chars
|
// lower case chars
|
||||||
for (let i = 97; i < 123; i++) {
|
for (let i = 97; i < 123; i++) {
|
||||||
codes[String.fromCharCode(i)] = i - 32;
|
const char = String.fromCharCode(i);
|
||||||
|
aliases[char] = `Key${char.toUpperCase()}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// numbers
|
// numbers
|
||||||
for (let i = 48; i < 58; i++) {
|
for (let i = 0; i < 10; i++) {
|
||||||
codes[i - 48] = [i, (i - 48) + 96];
|
aliases[i] = [`Numpad${i}`, `Digit${i}`];
|
||||||
}
|
|
||||||
|
|
||||||
// function keys
|
|
||||||
for (let i = 1; i < 13; i++) {
|
|
||||||
codes['f' + i] = i + 111;
|
|
||||||
}
|
}
|
||||||
|
@ -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%',
|
||||||
|
@ -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,
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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);
|
||||||
|
51
src/client/app/common/views/components/instance.vue
Normal file
51
src/client/app/common/views/components/instance.vue
Normal 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>
|
@ -43,7 +43,7 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
root(isDark)
|
.mk-media-banner
|
||||||
width 100%
|
width 100%
|
||||||
border-radius 4px
|
border-radius 4px
|
||||||
margin-top 4px
|
margin-top 4px
|
||||||
@ -71,7 +71,7 @@ root(isDark)
|
|||||||
font-size 1.6em
|
font-size 1.6em
|
||||||
|
|
||||||
> .download
|
> .download
|
||||||
background isDark ? #21242d : #f7f7f7
|
background var(--noteAttachedFile)
|
||||||
|
|
||||||
> .sensitive
|
> .sensitive
|
||||||
background #111
|
background #111
|
||||||
@ -82,9 +82,4 @@ root(isDark)
|
|||||||
display block
|
display block
|
||||||
width 100%
|
width 100%
|
||||||
|
|
||||||
.mk-media-banner[data-darkmode]
|
|
||||||
root(true)
|
|
||||||
|
|
||||||
.mk-media-banner:not([data-darkmode])
|
|
||||||
root(false)
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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) {
|
||||||
items.push({
|
if ((this.$store.state.i.pinnedNoteIds || []).includes(this.note.id)) {
|
||||||
icon: '%fa:thumbtack%',
|
items.push({
|
||||||
text: '%i18n:@pin%',
|
icon: '%fa:thumbtack%',
|
||||||
action: this.pin
|
text: '%i18n:@unpin%',
|
||||||
});
|
action: this.unpin
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
items.push({
|
||||||
|
icon: '%fa:thumbtack%',
|
||||||
|
text: '%i18n:@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', {
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -56,6 +56,12 @@ export default Vue.extend({
|
|||||||
type: Boolean,
|
type: Boolean,
|
||||||
required: false,
|
required: false,
|
||||||
default: false
|
default: false
|
||||||
|
},
|
||||||
|
|
||||||
|
animation: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -70,13 +76,11 @@ export default Vue.extend({
|
|||||||
keymap(): any {
|
keymap(): any {
|
||||||
return {
|
return {
|
||||||
'esc': this.close,
|
'esc': this.close,
|
||||||
'enter': this.choose,
|
'enter|space|plus': this.choose,
|
||||||
'space': this.choose,
|
'up|k': this.focusUp,
|
||||||
'numpad plus': this.choose,
|
'left|h|shift+tab': this.focusLeft,
|
||||||
'up': this.focusUp,
|
'right|l|tab': this.focusRight,
|
||||||
'right': this.focusRight,
|
'down|j': this.focusDown,
|
||||||
'down': this.focusDown,
|
|
||||||
'left': this.focusLeft,
|
|
||||||
'1': () => this.react('like'),
|
'1': () => this.react('like'),
|
||||||
'2': () => this.react('love'),
|
'2': () => this.react('love'),
|
||||||
'3': () => this.react('laugh'),
|
'3': () => this.react('laugh'),
|
||||||
@ -93,10 +97,10 @@ export default Vue.extend({
|
|||||||
|
|
||||||
watch: {
|
watch: {
|
||||||
focus(i) {
|
focus(i) {
|
||||||
this.$refs.buttons.childNodes[i].focus();
|
this.$refs.buttons.children[i].focus();
|
||||||
|
|
||||||
if (this.showFocus) {
|
if (this.showFocus) {
|
||||||
this.title = this.$refs.buttons.childNodes[i].title;
|
this.title = this.$refs.buttons.children[i].title;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -126,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'
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -134,7 +138,7 @@ 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
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -164,7 +168,7 @@ export default Vue.extend({
|
|||||||
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'
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -173,7 +177,7 @@ 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: () => {
|
complete: () => {
|
||||||
this.$emit('closed');
|
this.$emit('closed');
|
||||||
@ -206,11 +210,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-reaction-picker
|
||||||
position initial
|
position initial
|
||||||
|
|
||||||
> .backdrop
|
> .backdrop
|
||||||
@ -220,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
|
||||||
@ -277,8 +279,8 @@ 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
|
||||||
@ -297,7 +299,7 @@ root(isDark)
|
|||||||
right 0
|
right 0
|
||||||
bottom 0
|
bottom 0
|
||||||
left 0
|
left 0
|
||||||
border 2px solid rgba($theme-color, 0.3)
|
border 2px solid var(--primaryAlpha03)
|
||||||
border-radius 4px
|
border-radius 4px
|
||||||
|
|
||||||
> button
|
> button
|
||||||
@ -308,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>
|
||||||
|
@ -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>
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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>
|
|
@ -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>
|
||||||
|
189
src/client/app/common/views/components/theme.vue
Normal file
189
src/client/app/common/views/components/theme.vue
Normal 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>
|
@ -49,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
|
||||||
@ -70,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
|
||||||
@ -94,10 +95,4 @@ root(isDark)
|
|||||||
> .chart
|
> .chart
|
||||||
height 30px
|
height 30px
|
||||||
|
|
||||||
.csqvmxybqbycalfhkxvyfrgbrdalkaoc[data-darkmode]
|
|
||||||
root(true)
|
|
||||||
|
|
||||||
.csqvmxybqbycalfhkxvyfrgbrdalkaoc:not([data-darkmode])
|
|
||||||
root(false)
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -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
|
||||||
|
display block
|
||||||
|
width 100%
|
||||||
|
min-height 40px
|
||||||
|
margin 0
|
||||||
|
padding 0
|
||||||
|
font-weight normal
|
||||||
|
font-size 16px
|
||||||
|
border none
|
||||||
|
border-radius 6px
|
||||||
|
outline none
|
||||||
|
box-shadow none
|
||||||
|
|
||||||
root(isDark, fill)
|
&:focus
|
||||||
> button
|
&:after
|
||||||
display block
|
content ""
|
||||||
width 100%
|
pointer-events none
|
||||||
margin 0
|
position absolute
|
||||||
padding 0
|
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
|
font-weight bold
|
||||||
font-size 16px
|
|
||||||
line-height 44px
|
|
||||||
border none
|
|
||||||
border-radius 6px
|
|
||||||
outline none
|
|
||||||
box-shadow none
|
|
||||||
|
|
||||||
if fill
|
&.fill
|
||||||
color $theme-color-foreground
|
color var(--text)
|
||||||
background $theme-color
|
background var(--buttonBg)
|
||||||
|
|
||||||
|
&:hover
|
||||||
|
background var(--buttonHoverBg)
|
||||||
|
|
||||||
|
&:active
|
||||||
|
background var(--buttonActiveBg)
|
||||||
|
|
||||||
|
&.primary
|
||||||
|
color var(--primaryForeground)
|
||||||
|
background var(--primary)
|
||||||
|
|
||||||
&:hover
|
&:hover
|
||||||
background lighten($theme-color, 5%)
|
background var(--primaryLighten5)
|
||||||
|
|
||||||
&:active
|
&:active
|
||||||
background darken($theme-color, 5%)
|
background var(--primaryDarken5)
|
||||||
else
|
|
||||||
color $theme-color
|
|
||||||
background none
|
|
||||||
|
|
||||||
&:hover
|
|
||||||
color darken($theme-color, 5%)
|
|
||||||
|
|
||||||
&:active
|
|
||||||
background rgba($theme-color, 0.3)
|
|
||||||
|
|
||||||
.ui-button[data-darkmode]
|
|
||||||
&.fill
|
|
||||||
root(true, true)
|
|
||||||
&:not(.fill)
|
&:not(.fill)
|
||||||
root(true, false)
|
color var(--primary)
|
||||||
|
background none
|
||||||
|
|
||||||
.ui-button:not([data-darkmode])
|
&:hover
|
||||||
&.fill
|
color var(--primaryDarken5)
|
||||||
root(false, true)
|
|
||||||
&:not(.fill)
|
&:active
|
||||||
root(false, false)
|
background var(--primaryAlpha03)
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -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>
|
||||||
|
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -1,25 +1,29 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="anltbovirfeutcigvwgmgxipejaeozxi"
|
<div class="anltbovirfeutcigvwgmgxipejaeozxi">
|
||||||
:data-found="announcements && announcements.length != 0"
|
<mk-widget-container :show-header="false" :naked="props.design == 1">
|
||||||
:data-melt="props.design == 1"
|
<div class="anltbovirfeutcigvwgmgxipejaeozxi-body"
|
||||||
:data-mobile="platform == 'mobile'"
|
:data-found="announcements && announcements.length != 0"
|
||||||
>
|
:data-melt="props.design == 1"
|
||||||
<div class="icon">
|
:data-mobile="platform == 'mobile'"
|
||||||
<svg height="32" version="1.1" viewBox="0 0 32 32" width="32">
|
>
|
||||||
<path class="tower" d="M16.04,11.24c1.79,0,3.239-1.45,3.239-3.24S17.83,4.76,16.04,4.76c-1.79,0-3.24,1.45-3.24,3.24 C12.78,9.78,14.24,11.24,16.04,11.24z M16.04,13.84c-0.82,0-1.66-0.2-2.4-0.6L7.34,29.98h2.98l1.72-2h8l1.681,2H24.7L18.42,13.24 C17.66,13.64,16.859,13.84,16.04,13.84z M16.02,14.8l2.02,7.2h-4L16.02,14.8z M12.04,25.98l2-2h4l2,2H12.04z"></path>
|
<div class="icon">
|
||||||
<path class="wave a" d="M4.66,1.04c-0.508-0.508-1.332-0.508-1.84,0c-1.86,1.92-2.8,4.44-2.8,6.94c0,2.52,0.94,5.04,2.8,6.96 c0.5,0.52,1.32,0.52,1.82,0s0.5-1.36,0-1.88C3.28,11.66,2.6,9.82,2.6,7.98S3.28,4.3,4.64,2.9C5.157,2.391,5.166,1.56,4.66,1.04z"></path>
|
<svg height="32" version="1.1" viewBox="0 0 32 32" width="32">
|
||||||
<path class="wave b" d="M9.58,12.22c0.5-0.5,0.5-1.34,0-1.84C8.94,9.72,8.62,8.86,8.62,8s0.32-1.72,0.96-2.38c0.5-0.52,0.5-1.34,0-1.84 C9.346,3.534,9.02,3.396,8.68,3.4c-0.32,0-0.66,0.12-0.9,0.38C6.64,4.94,6.08,6.48,6.08,8s0.58,3.06,1.7,4.22 C8.28,12.72,9.1,12.72,9.58,12.22z"></path>
|
<path class="tower" d="M16.04,11.24c1.79,0,3.239-1.45,3.239-3.24S17.83,4.76,16.04,4.76c-1.79,0-3.24,1.45-3.24,3.24 C12.78,9.78,14.24,11.24,16.04,11.24z M16.04,13.84c-0.82,0-1.66-0.2-2.4-0.6L7.34,29.98h2.98l1.72-2h8l1.681,2H24.7L18.42,13.24 C17.66,13.64,16.859,13.84,16.04,13.84z M16.02,14.8l2.02,7.2h-4L16.02,14.8z M12.04,25.98l2-2h4l2,2H12.04z"></path>
|
||||||
<path class="wave c" d="M22.42,3.78c-0.5,0.5-0.5,1.34,0,1.84c0.641,0.66,0.96,1.52,0.96,2.38s-0.319,1.72-0.96,2.38c-0.5,0.52-0.5,1.34,0,1.84 c0.487,0.497,1.285,0.505,1.781,0.018c0.007-0.006,0.013-0.012,0.02-0.018c1.139-1.16,1.699-2.7,1.699-4.22s-0.561-3.06-1.699-4.22 c-0.494-0.497-1.297-0.5-1.794-0.007C22.424,3.775,22.422,3.778,22.42,3.78z"></path>
|
<path class="wave a" d="M4.66,1.04c-0.508-0.508-1.332-0.508-1.84,0c-1.86,1.92-2.8,4.44-2.8,6.94c0,2.52,0.94,5.04,2.8,6.96 c0.5,0.52,1.32,0.52,1.82,0s0.5-1.36,0-1.88C3.28,11.66,2.6,9.82,2.6,7.98S3.28,4.3,4.64,2.9C5.157,2.391,5.166,1.56,4.66,1.04z"></path>
|
||||||
<path class="wave d" d="M29.18,1.06c-0.479-0.502-1.273-0.522-1.775-0.044c-0.016,0.015-0.029,0.029-0.045,0.044c-0.5,0.52-0.5,1.36,0,1.88 c1.361,1.4,2.041,3.24,2.041,5.08s-0.68,3.66-2.041,5.08c-0.5,0.52-0.5,1.36,0,1.88c0.509,0.508,1.332,0.508,1.841,0 c1.86-1.92,2.8-4.44,2.8-6.96C31.99,5.424,30.98,2.931,29.18,1.06z"></path>
|
<path class="wave b" d="M9.58,12.22c0.5-0.5,0.5-1.34,0-1.84C8.94,9.72,8.62,8.86,8.62,8s0.32-1.72,0.96-2.38c0.5-0.52,0.5-1.34,0-1.84 C9.346,3.534,9.02,3.396,8.68,3.4c-0.32,0-0.66,0.12-0.9,0.38C6.64,4.94,6.08,6.48,6.08,8s0.58,3.06,1.7,4.22 C8.28,12.72,9.1,12.72,9.58,12.22z"></path>
|
||||||
</svg>
|
<path class="wave c" d="M22.42,3.78c-0.5,0.5-0.5,1.34,0,1.84c0.641,0.66,0.96,1.52,0.96,2.38s-0.319,1.72-0.96,2.38c-0.5,0.52-0.5,1.34,0,1.84 c0.487,0.497,1.285,0.505,1.781,0.018c0.007-0.006,0.013-0.012,0.02-0.018c1.139-1.16,1.699-2.7,1.699-4.22s-0.561-3.06-1.699-4.22 c-0.494-0.497-1.297-0.5-1.794-0.007C22.424,3.775,22.422,3.778,22.42,3.78z"></path>
|
||||||
</div>
|
<path class="wave d" d="M29.18,1.06c-0.479-0.502-1.273-0.522-1.775-0.044c-0.016,0.015-0.029,0.029-0.045,0.044c-0.5,0.52-0.5,1.36,0,1.88 c1.361,1.4,2.041,3.24,2.041,5.08s-0.68,3.66-2.041,5.08c-0.5,0.52-0.5,1.36,0,1.88c0.509,0.508,1.332,0.508,1.841,0 c1.86-1.92,2.8-4.44,2.8-6.96C31.99,5.424,30.98,2.931,29.18,1.06z"></path>
|
||||||
<p class="fetching" v-if="fetching">%i18n:@fetching%<mk-ellipsis/></p>
|
</svg>
|
||||||
<h1 v-if="!fetching">{{ announcements.length == 0 ? '%i18n:@no-broadcasts%' : announcements[i].title }}</h1>
|
</div>
|
||||||
<p v-if="!fetching">
|
<p class="fetching" v-if="fetching">%i18n:@fetching%<mk-ellipsis/></p>
|
||||||
<span v-if="announcements.length != 0" v-html="announcements[i].text"></span>
|
<h1 v-if="!fetching">{{ announcements.length == 0 ? '%i18n:@no-broadcasts%' : announcements[i].title }}</h1>
|
||||||
<template v-if="announcements.length == 0">%i18n:@have-a-nice-day%</template>
|
<p v-if="!fetching">
|
||||||
</p>
|
<span v-if="announcements.length != 0" v-html="announcements[i].text"></span>
|
||||||
<a v-if="announcements.length > 1" @click="next">%i18n:@next% >></a>
|
<template v-if="announcements.length == 0">%i18n:@have-a-nice-day%</template>
|
||||||
|
</p>
|
||||||
|
<a v-if="announcements.length > 1" @click="next">%i18n:@next% >></a>
|
||||||
|
</div>
|
||||||
|
</mk-widget-container>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="mkw-donation" :data-mobile="platform == 'mobile'">
|
<div>
|
||||||
<article>
|
<mk-widget-container :show-header="false">
|
||||||
<h1>%fa:heart%%i18n:@title%</h1>
|
<article class="dolfvtibguprpxxhfndqaosjitixjohx">
|
||||||
<p v-if="meta">
|
<h1>%fa:heart%%i18n:@title%</h1>
|
||||||
{{ '%i18n:@text%'.substr(0, '%i18n:@text%'.indexOf('{')) }}
|
<p v-if="meta">
|
||||||
<a :href="meta.maintainer.url">{{ meta.maintainer.name }}</a>
|
{{ '%i18n:@text%'.substr(0, '%i18n:@text%'.indexOf('{')) }}
|
||||||
{{ '%i18n:@text%'.substr('%i18n:@text%'.indexOf('}') + 1) }}
|
<a :href="meta.maintainer.url">{{ meta.maintainer.name }}</a>
|
||||||
</p>
|
{{ '%i18n:@text%'.substr('%i18n:@text%'.indexOf('}') + 1) }}
|
||||||
</article>
|
</p>
|
||||||
|
</article>
|
||||||
|
</mk-widget-container>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -30,46 +32,22 @@ export default define({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
root(isDark)
|
.dolfvtibguprpxxhfndqaosjitixjohx
|
||||||
background isDark ? #282c37 : #fff
|
padding 20px
|
||||||
border solid 1px isDark ? #c3831c : #ead8bb
|
background var(--donationBg)
|
||||||
border-radius 6px
|
color var(--donationFg)
|
||||||
|
|
||||||
> article
|
> h1
|
||||||
padding 20px
|
margin 0 0 5px 0
|
||||||
|
font-size 1em
|
||||||
|
|
||||||
> h1
|
> [data-fa]
|
||||||
margin 0 0 5px 0
|
margin-right 0.25em
|
||||||
font-size 1em
|
|
||||||
color isDark ? #b2bac1 : #888
|
|
||||||
|
|
||||||
> [data-fa]
|
> p
|
||||||
margin-right 0.25em
|
display block
|
||||||
|
z-index 1
|
||||||
> p
|
margin 0
|
||||||
display block
|
font-size 0.8em
|
||||||
z-index 1
|
|
||||||
margin 0
|
|
||||||
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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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 |
@ -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 |
@ -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
|
||||||
|
@ -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-track
|
||||||
|
background var(--scrollbarTrack)
|
||||||
|
|
||||||
&::-webkit-scrollbar-thumb
|
&::-webkit-scrollbar-thumb
|
||||||
background rgba(0, 0, 0, 0.2)
|
background var(--scrollbarHandle)
|
||||||
|
|
||||||
&:hover
|
&:hover
|
||||||
background rgba(0, 0, 0, 0.4)
|
background var(--scrollbarHandleHover)
|
||||||
|
|
||||||
&:active
|
&:active
|
||||||
background $theme-color
|
background var(--primary)
|
||||||
|
|
||||||
&[data-darkmode]
|
|
||||||
background #191B22
|
|
||||||
|
|
||||||
&, *
|
|
||||||
&::-webkit-scrollbar-track
|
|
||||||
background-color #282C37
|
|
||||||
|
|
||||||
&::-webkit-scrollbar-thumb
|
|
||||||
background-color #454954
|
|
||||||
|
|
||||||
&:hover
|
|
||||||
background-color #535660
|
|
||||||
|
|
||||||
&:active
|
|
||||||
background-color $theme-color
|
|
||||||
|
@ -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
|
|
@ -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>
|
||||||
|
@ -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,7 +675,7 @@ export default Vue.extend({
|
|||||||
|
|
||||||
*
|
*
|
||||||
&:not(.active)
|
&:not(.active)
|
||||||
color $theme-color
|
color var(--primary)
|
||||||
cursor pointer
|
cursor pointer
|
||||||
|
|
||||||
> div
|
> div
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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 {
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -200,9 +200,7 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
@import '~const.styl'
|
.gvfdktuvdgwhmztnuekzkswkjygptfcv
|
||||||
|
|
||||||
root(isDark)
|
|
||||||
padding 8px 0 0 0
|
padding 8px 0 0 0
|
||||||
height 180px
|
height 180px
|
||||||
border-radius 4px
|
border-radius 4px
|
||||||
@ -237,13 +235,13 @@ root(isDark)
|
|||||||
background #ce2212
|
background #ce2212
|
||||||
|
|
||||||
&[data-is-selected]
|
&[data-is-selected]
|
||||||
background $theme-color
|
background var(--primary)
|
||||||
|
|
||||||
&:hover
|
&:hover
|
||||||
background lighten($theme-color, 10%)
|
background var(--primaryLighten10)
|
||||||
|
|
||||||
&:active
|
&:active
|
||||||
background darken($theme-color, 10%)
|
background var(--primaryDarken10)
|
||||||
|
|
||||||
> .label
|
> .label
|
||||||
&:before
|
&:before
|
||||||
@ -251,7 +249,7 @@ root(isDark)
|
|||||||
display none
|
display none
|
||||||
|
|
||||||
> .name
|
> .name
|
||||||
color $theme-color-foreground
|
color var(--primaryForeground)
|
||||||
|
|
||||||
&[data-is-contextmenu-showing]
|
&[data-is-contextmenu-showing]
|
||||||
&:after
|
&:after
|
||||||
@ -262,7 +260,7 @@ root(isDark)
|
|||||||
right -4px
|
right -4px
|
||||||
bottom -4px
|
bottom -4px
|
||||||
left -4px
|
left -4px
|
||||||
border 2px dashed rgba($theme-color, 0.3)
|
border 2px dashed var(--primaryAlpha03)
|
||||||
border-radius 4px
|
border-radius 4px
|
||||||
|
|
||||||
> .label
|
> .label
|
||||||
@ -337,16 +335,10 @@ root(isDark)
|
|||||||
font-size 0.8em
|
font-size 0.8em
|
||||||
text-align center
|
text-align center
|
||||||
word-break break-all
|
word-break break-all
|
||||||
color isDark ? #fff : #444
|
color var(--text)
|
||||||
overflow hidden
|
overflow hidden
|
||||||
|
|
||||||
> .ext
|
> .ext
|
||||||
opacity 0.5
|
opacity 0.5
|
||||||
|
|
||||||
.gvfdktuvdgwhmztnuekzkswkjygptfcv[data-darkmode]
|
|
||||||
root(true)
|
|
||||||
|
|
||||||
.gvfdktuvdgwhmztnuekzkswkjygptfcv:not([data-darkmode])
|
|
||||||
root(false)
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -214,12 +214,10 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
@import '~const.styl'
|
.ynntpczxvnusfwdyxsfuhvcmuypqopdd
|
||||||
|
|
||||||
root(isDark)
|
|
||||||
padding 8px
|
padding 8px
|
||||||
height 64px
|
height 64px
|
||||||
background isDark ? rgba($theme-color, 0.2) : lighten($theme-color, 95%)
|
background var(--desktopDriveFolderBg)
|
||||||
border-radius 4px
|
border-radius 4px
|
||||||
|
|
||||||
&, *
|
&, *
|
||||||
@ -229,10 +227,10 @@ root(isDark)
|
|||||||
pointer-events none
|
pointer-events none
|
||||||
|
|
||||||
&:hover
|
&:hover
|
||||||
background isDark ? rgba(lighten($theme-color, 10%), 0.2) : lighten($theme-color, 90%)
|
background var(--desktopDriveFolderHoverBg)
|
||||||
|
|
||||||
&:active
|
&:active
|
||||||
background isDark ? rgba(darken($theme-color, 10%), 0.2) : lighten($theme-color, 85%)
|
background var(--desktopDriveFolderActiveBg)
|
||||||
|
|
||||||
&[data-is-contextmenu-showing]
|
&[data-is-contextmenu-showing]
|
||||||
&[data-draghover]
|
&[data-draghover]
|
||||||
@ -244,26 +242,20 @@ root(isDark)
|
|||||||
right -4px
|
right -4px
|
||||||
bottom -4px
|
bottom -4px
|
||||||
left -4px
|
left -4px
|
||||||
border 2px dashed rgba($theme-color, 0.3)
|
border 2px dashed var(--primaryAlpha03)
|
||||||
border-radius 4px
|
border-radius 4px
|
||||||
|
|
||||||
&[data-draghover]
|
&[data-draghover]
|
||||||
background isDark ? rgba(darken($theme-color, 10%), 0.2) : lighten($theme-color, 90%)
|
background var(--desktopDriveFolderActiveBg)
|
||||||
|
|
||||||
> .name
|
> .name
|
||||||
margin 0
|
margin 0
|
||||||
font-size 0.9em
|
font-size 0.9em
|
||||||
color isDark ? #fff : darken($theme-color, 30%)
|
color var(--desktopDriveFolderFg)
|
||||||
|
|
||||||
> [data-fa]
|
> [data-fa]
|
||||||
margin-right 4px
|
margin-right 4px
|
||||||
margin-left 2px
|
margin-left 2px
|
||||||
text-align left
|
text-align left
|
||||||
|
|
||||||
.ynntpczxvnusfwdyxsfuhvcmuypqopdd[data-darkmode]
|
|
||||||
root(true)
|
|
||||||
|
|
||||||
.ynntpczxvnusfwdyxsfuhvcmuypqopdd:not([data-darkmode])
|
|
||||||
root(false)
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -585,18 +585,15 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
@import '~const.styl'
|
.mk-drive
|
||||||
|
|
||||||
root(isDark)
|
|
||||||
|
|
||||||
> nav
|
> nav
|
||||||
display block
|
display block
|
||||||
z-index 2
|
z-index 2
|
||||||
width 100%
|
width 100%
|
||||||
overflow auto
|
overflow auto
|
||||||
font-size 0.9em
|
font-size 0.9em
|
||||||
color isDark ? #d2d9dc : #555
|
color var(--text)
|
||||||
background isDark ? #282c37 : #fff
|
background var(--face)
|
||||||
box-shadow 0 1px 0 rgba(#000, 0.05)
|
box-shadow 0 1px 0 rgba(#000, 0.05)
|
||||||
|
|
||||||
&, *
|
&, *
|
||||||
@ -674,7 +671,7 @@ root(isDark)
|
|||||||
padding 8px
|
padding 8px
|
||||||
height calc(100% - 38px)
|
height calc(100% - 38px)
|
||||||
overflow auto
|
overflow auto
|
||||||
background isDark ? #191b22 : #fff
|
background var(--desktopDriveBg)
|
||||||
|
|
||||||
&, *
|
&, *
|
||||||
user-select none
|
user-select none
|
||||||
@ -697,8 +694,8 @@ root(isDark)
|
|||||||
z-index 128
|
z-index 128
|
||||||
top 0
|
top 0
|
||||||
left 0
|
left 0
|
||||||
border solid 1px $theme-color
|
border solid 1px var(--primary)
|
||||||
background rgba($theme-color, 0.5)
|
background var(--primaryAlpha05)
|
||||||
pointer-events none
|
pointer-events none
|
||||||
|
|
||||||
> .contents
|
> .contents
|
||||||
@ -769,7 +766,7 @@ root(isDark)
|
|||||||
top 38px
|
top 38px
|
||||||
width 100%
|
width 100%
|
||||||
height calc(100% - 38px)
|
height calc(100% - 38px)
|
||||||
border dashed 2px rgba($theme-color, 0.5)
|
border dashed 2px var(--primaryAlpha05)
|
||||||
pointer-events none
|
pointer-events none
|
||||||
|
|
||||||
> .mk-uploader
|
> .mk-uploader
|
||||||
@ -780,10 +777,4 @@ root(isDark)
|
|||||||
> input
|
> input
|
||||||
display none
|
display none
|
||||||
|
|
||||||
.mk-drive[data-darkmode]
|
|
||||||
root(true)
|
|
||||||
|
|
||||||
.mk-drive:not([data-darkmode])
|
|
||||||
root(false)
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -5,7 +5,8 @@
|
|||||||
:disabled="wait"
|
:disabled="wait"
|
||||||
>
|
>
|
||||||
<template v-if="!wait">
|
<template v-if="!wait">
|
||||||
<template v-if="u.hasPendingFollowRequestFromYou">%fa:hourglass-half%<template v-if="size == 'big'"> %i18n:@request-pending%</template></template>
|
<template v-if="u.hasPendingFollowRequestFromYou && u.isLocked">%fa:hourglass-half%<template v-if="size == 'big'"> %i18n:@request-pending%</template></template>
|
||||||
|
<template v-else-if="u.hasPendingFollowRequestFromYou && !u.isLocked">%fa:hourglass-start%<template v-if="size == 'big'"> %i18n:@follow-processing%</template></template>
|
||||||
<template v-else-if="u.isFollowing">%fa:minus%<template v-if="size == 'big'"> %i18n:@following%</template></template>
|
<template v-else-if="u.isFollowing">%fa:minus%<template v-if="size == 'big'"> %i18n:@following%</template></template>
|
||||||
<template v-else-if="!u.isFollowing && u.isLocked">%fa:plus%<template v-if="size == 'big'"> %i18n:@follow-request%</template></template>
|
<template v-else-if="!u.isFollowing && u.isLocked">%fa:plus%<template v-if="size == 'big'"> %i18n:@follow-request%</template></template>
|
||||||
<template v-else-if="!u.isFollowing && !u.isLocked">%fa:plus%<template v-if="size == 'big'"> %i18n:@follow%</template></template>
|
<template v-else-if="!u.isFollowing && !u.isLocked">%fa:plus%<template v-if="size == 'big'"> %i18n:@follow%</template></template>
|
||||||
@ -101,9 +102,7 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
@import '~const.styl'
|
.mk-follow-button
|
||||||
|
|
||||||
root(isDark)
|
|
||||||
display block
|
display block
|
||||||
cursor pointer
|
cursor pointer
|
||||||
padding 0
|
padding 0
|
||||||
@ -126,37 +125,34 @@ root(isDark)
|
|||||||
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
|
||||||
|
|
||||||
&:not(.active)
|
&:not(.active)
|
||||||
color isDark ? #fff : #888
|
color var(--primary)
|
||||||
background isDark ? linear-gradient(to bottom, #313543 0%, #282c37 100%) : linear-gradient(to bottom, #ffffff 0%, #f5f5f5 100%)
|
border solid 1px var(--primary)
|
||||||
border solid 1px isDark ? #1c2023 : #e2e2e2
|
|
||||||
|
|
||||||
&:hover
|
&:hover
|
||||||
background isDark ? linear-gradient(to bottom, #2c2f3c 0%, #22262f 100%) : linear-gradient(to bottom, #f9f9f9 0%, #ececec 100%)
|
background var(--primaryAlpha03)
|
||||||
border-color isDark ? #151a1d : #dcdcdc
|
|
||||||
|
|
||||||
&:active
|
&:active
|
||||||
background isDark ? #22262f : #ececec
|
background var(--primaryAlpha05)
|
||||||
border-color isDark ? #151a1d : #dcdcdc
|
|
||||||
|
|
||||||
&.active
|
&.active
|
||||||
color $theme-color-foreground
|
color var(--primaryForeground)
|
||||||
background linear-gradient(to bottom, lighten($theme-color, 25%) 0%, lighten($theme-color, 10%) 100%)
|
background var(--primary)
|
||||||
border solid 1px lighten($theme-color, 15%)
|
border solid 1px var(--primary)
|
||||||
|
|
||||||
&: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 var(--primaryLighten5)
|
||||||
border-color $theme-color
|
border-color var(--primaryLighten5)
|
||||||
|
|
||||||
&:active:not(:disabled)
|
&:active:not(:disabled)
|
||||||
background $theme-color
|
background var(--primaryDarken5)
|
||||||
border-color $theme-color
|
border-color var(--primaryDarken5)
|
||||||
|
|
||||||
&.wait
|
&.wait
|
||||||
cursor wait !important
|
cursor wait !important
|
||||||
@ -167,10 +163,4 @@ root(isDark)
|
|||||||
height 38px
|
height 38px
|
||||||
line-height 38px
|
line-height 38px
|
||||||
|
|
||||||
.mk-follow-button[data-darkmode]
|
|
||||||
root(true)
|
|
||||||
|
|
||||||
.mk-follow-button:not([data-darkmode])
|
|
||||||
root(false)
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -247,9 +247,7 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
@import '~const.styl'
|
.mk-home
|
||||||
|
|
||||||
root(isDark)
|
|
||||||
display block
|
display block
|
||||||
|
|
||||||
&[data-customize]
|
&[data-customize]
|
||||||
@ -279,8 +277,8 @@ root(isDark)
|
|||||||
left 0
|
left 0
|
||||||
width 100%
|
width 100%
|
||||||
height 48px
|
height 48px
|
||||||
color isDark ? #fff : #000
|
color var(--text)
|
||||||
background isDark ? #313543 : #f7f7f7
|
background var(--desktopHeaderBg)
|
||||||
box-shadow 0 1px 1px rgba(#000, 0.075)
|
box-shadow 0 1px 1px rgba(#000, 0.075)
|
||||||
|
|
||||||
> a
|
> a
|
||||||
@ -292,15 +290,15 @@ root(isDark)
|
|||||||
padding 0 16px
|
padding 0 16px
|
||||||
line-height 48px
|
line-height 48px
|
||||||
text-decoration none
|
text-decoration none
|
||||||
color $theme-color-foreground
|
color var(--primaryForeground)
|
||||||
background $theme-color
|
background var(--primary)
|
||||||
transition background 0.1s ease
|
transition background 0.1s ease
|
||||||
|
|
||||||
&:hover
|
&:hover
|
||||||
background lighten($theme-color, 10%)
|
background var(--primaryLighten10)
|
||||||
|
|
||||||
&:active
|
&:active
|
||||||
background darken($theme-color, 10%)
|
background var(--primaryDarken10)
|
||||||
transition background 0s ease
|
transition background 0s ease
|
||||||
|
|
||||||
> [data-fa]
|
> [data-fa]
|
||||||
@ -320,7 +318,7 @@ root(isDark)
|
|||||||
line-height 48px
|
line-height 48px
|
||||||
|
|
||||||
&.trash
|
&.trash
|
||||||
border-left solid 1px isDark ? #1c2023 : #ddd
|
border-left solid 1px var(--faceDivider)
|
||||||
|
|
||||||
> div
|
> div
|
||||||
width 100%
|
width 100%
|
||||||
@ -340,7 +338,7 @@ root(isDark)
|
|||||||
display flex
|
display flex
|
||||||
justify-content center
|
justify-content center
|
||||||
margin 0 auto
|
margin 0 auto
|
||||||
max-width 1220px
|
max-width 1240px
|
||||||
|
|
||||||
> *
|
> *
|
||||||
.customize-container
|
.customize-container
|
||||||
@ -355,13 +353,13 @@ root(isDark)
|
|||||||
|
|
||||||
> .main
|
> .main
|
||||||
padding 16px
|
padding 16px
|
||||||
width calc(100% - 275px * 2)
|
width calc(100% - 280px * 2)
|
||||||
order 2
|
order 2
|
||||||
|
|
||||||
> .form
|
> .form
|
||||||
margin-bottom 16px
|
margin-bottom 16px
|
||||||
border solid 1px rgba(#000, 0.075)
|
box-shadow var(--shadow)
|
||||||
border-radius 4px
|
border-radius var(--round)
|
||||||
|
|
||||||
@media (max-width 700px)
|
@media (max-width 700px)
|
||||||
padding 0
|
padding 0
|
||||||
@ -371,7 +369,7 @@ root(isDark)
|
|||||||
border-radius 0
|
border-radius 0
|
||||||
|
|
||||||
> *:not(.main)
|
> *:not(.main)
|
||||||
width 275px
|
width 280px
|
||||||
padding 16px 0 16px 0
|
padding 16px 0 16px 0
|
||||||
|
|
||||||
> *:not(:last-child)
|
> *:not(:last-child)
|
||||||
@ -395,10 +393,4 @@ root(isDark)
|
|||||||
max-width 700px
|
max-width 700px
|
||||||
margin 0 auto
|
margin 0 auto
|
||||||
|
|
||||||
.mk-home[data-darkmode]
|
|
||||||
root(true)
|
|
||||||
|
|
||||||
.mk-home:not([data-darkmode])
|
|
||||||
root(false)
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -76,7 +76,7 @@ export default Vue.extend({
|
|||||||
|
|
||||||
|
|
||||||
<style lang="stylus" module>
|
<style lang="stylus" module>
|
||||||
@import '~const.styl'
|
|
||||||
|
|
||||||
.header
|
.header
|
||||||
> [data-fa]
|
> [data-fa]
|
||||||
@ -96,25 +96,25 @@ export default Vue.extend({
|
|||||||
color #333
|
color #333
|
||||||
background #fff
|
background #fff
|
||||||
outline none
|
outline none
|
||||||
border solid 1px rgba($theme-color, 0.1)
|
border solid 1px var(--primaryAlpha01)
|
||||||
border-radius 4px
|
border-radius 4px
|
||||||
transition border-color .3s ease
|
transition border-color .3s ease
|
||||||
|
|
||||||
&:hover
|
&:hover
|
||||||
border-color rgba($theme-color, 0.2)
|
border-color var(--primaryAlpha02)
|
||||||
transition border-color .1s ease
|
transition border-color .1s ease
|
||||||
|
|
||||||
&:focus
|
&:focus
|
||||||
color $theme-color
|
color var(--primary)
|
||||||
border-color rgba($theme-color, 0.5)
|
border-color var(--primaryAlpha05)
|
||||||
transition border-color 0s ease
|
transition border-color 0s ease
|
||||||
|
|
||||||
&::-webkit-input-placeholder
|
&::-webkit-input-placeholder
|
||||||
color rgba($theme-color, 0.3)
|
color var(--primaryAlpha03)
|
||||||
|
|
||||||
.actions
|
.actions
|
||||||
height 72px
|
height 72px
|
||||||
background lighten($theme-color, 95%)
|
background var(--primaryLighten95)
|
||||||
|
|
||||||
.ok
|
.ok
|
||||||
.cancel
|
.cancel
|
||||||
@ -139,7 +139,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
|
||||||
@ -148,20 +148,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
|
||||||
|
@ -225,14 +225,12 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
@import '~const.styl'
|
.mk-note-detail
|
||||||
|
|
||||||
root(isDark)
|
|
||||||
overflow hidden
|
overflow hidden
|
||||||
text-align left
|
text-align left
|
||||||
background isDark ? #282C37 : #fff
|
background var(--face)
|
||||||
border solid 1px rgba(#000, 0.1)
|
box-shadow var(--shadow)
|
||||||
border-radius 8px
|
border-radius var(--round)
|
||||||
|
|
||||||
> .read-more
|
> .read-more
|
||||||
display block
|
display block
|
||||||
@ -243,28 +241,28 @@ root(isDark)
|
|||||||
text-align center
|
text-align center
|
||||||
color #999
|
color #999
|
||||||
cursor pointer
|
cursor pointer
|
||||||
background isDark ? #21242d : #fafafa
|
background var(--subNoteBg)
|
||||||
outline none
|
outline none
|
||||||
border none
|
border none
|
||||||
border-bottom solid 1px isDark ? #1c2023 : #eef0f2
|
border-bottom solid 1px var(--faceDivider)
|
||||||
border-radius 6px 6px 0 0
|
border-radius var(--round) var(--round) 0 0
|
||||||
|
|
||||||
&:hover
|
&:hover
|
||||||
background isDark ? #2e3440 : #f6f6f6
|
box-shadow 0 0 0 100px inset rgba(0, 0, 0, 0.05)
|
||||||
|
|
||||||
&:active
|
&:active
|
||||||
background isDark ? #21242b : #f0f0f0
|
box-shadow 0 0 0 100px inset rgba(0, 0, 0, 0.1)
|
||||||
|
|
||||||
&:disabled
|
&:disabled
|
||||||
color isDark ? #21242b : #ccc
|
cursor wait
|
||||||
|
|
||||||
> .conversation
|
> .conversation
|
||||||
> *
|
> *
|
||||||
border-bottom 1px solid isDark ? #1c2023 : #eef0f2
|
border-bottom 1px solid var(--faceDivider)
|
||||||
|
|
||||||
> .renote
|
> .renote
|
||||||
color #9dbb00
|
color var(--renoteText)
|
||||||
background isDark ? linear-gradient(to bottom, #314027 0%, #282c37 100%) : linear-gradient(to bottom, #edfde2 0%, #fff 100%)
|
background linear-gradient(to bottom, var(--renoteGradient) 0%, var(--face) 100%)
|
||||||
|
|
||||||
> p
|
> p
|
||||||
margin 0
|
margin 0
|
||||||
@ -287,7 +285,7 @@ root(isDark)
|
|||||||
padding-top 8px
|
padding-top 8px
|
||||||
|
|
||||||
> .reply-to
|
> .reply-to
|
||||||
border-bottom 1px solid isDark ? #1c2023 : #eef0f2
|
border-bottom 1px solid var(--faceDivider)
|
||||||
|
|
||||||
> article
|
> article
|
||||||
padding 28px 32px 18px 32px
|
padding 28px 32px 18px 32px
|
||||||
@ -299,7 +297,7 @@ root(isDark)
|
|||||||
|
|
||||||
&:hover
|
&:hover
|
||||||
> footer > button
|
> footer > button
|
||||||
color isDark ? #707b97 : #888
|
color var(--noteActionsHighlighted)
|
||||||
|
|
||||||
> .avatar
|
> .avatar
|
||||||
width 60px
|
width 60px
|
||||||
@ -316,7 +314,7 @@ root(isDark)
|
|||||||
display inline-block
|
display inline-block
|
||||||
margin 0
|
margin 0
|
||||||
line-height 24px
|
line-height 24px
|
||||||
color isDark ? #fff : #627079
|
color var(--noteHeaderName)
|
||||||
font-size 18px
|
font-size 18px
|
||||||
font-weight 700
|
font-weight 700
|
||||||
text-align left
|
text-align left
|
||||||
@ -329,14 +327,14 @@ root(isDark)
|
|||||||
display block
|
display block
|
||||||
text-align left
|
text-align left
|
||||||
margin 0
|
margin 0
|
||||||
color isDark ? #606984 : #ccc
|
color var(--noteHeaderAcct)
|
||||||
|
|
||||||
> .time
|
> .time
|
||||||
position absolute
|
position absolute
|
||||||
top 0
|
top 0
|
||||||
right 32px
|
right 32px
|
||||||
font-size 1em
|
font-size 1em
|
||||||
color isDark ? #606984 : #c0c0c0
|
color var(--noteHeaderInfo)
|
||||||
|
|
||||||
> .body
|
> .body
|
||||||
padding 8px 0
|
padding 8px 0
|
||||||
@ -347,7 +345,7 @@ root(isDark)
|
|||||||
margin 0
|
margin 0
|
||||||
padding 0
|
padding 0
|
||||||
overflow-wrap break-word
|
overflow-wrap break-word
|
||||||
color isDark ? #fff : #717171
|
color var(--noteText)
|
||||||
|
|
||||||
> .text
|
> .text
|
||||||
margin-right 8px
|
margin-right 8px
|
||||||
@ -360,14 +358,14 @@ root(isDark)
|
|||||||
padding 0
|
padding 0
|
||||||
overflow-wrap break-word
|
overflow-wrap break-word
|
||||||
font-size 1.5em
|
font-size 1.5em
|
||||||
color isDark ? #fff : #717171
|
color var(--noteText)
|
||||||
|
|
||||||
> .renote
|
> .renote
|
||||||
margin 8px 0
|
margin 8px 0
|
||||||
|
|
||||||
> *
|
> *
|
||||||
padding 16px
|
padding 16px
|
||||||
border dashed 1px #c0dac6
|
border dashed 1px var(--quoteBorder)
|
||||||
border-radius 8px
|
border-radius 8px
|
||||||
|
|
||||||
> .location
|
> .location
|
||||||
@ -394,20 +392,20 @@ root(isDark)
|
|||||||
background transparent
|
background transparent
|
||||||
border none
|
border none
|
||||||
font-size 1em
|
font-size 1em
|
||||||
color isDark ? #606984 : #ccc
|
color var(--noteActions)
|
||||||
cursor pointer
|
cursor pointer
|
||||||
|
|
||||||
&:hover
|
&:hover
|
||||||
color isDark ? #a1a8bf : #444
|
color var(--noteActionsHover)
|
||||||
|
|
||||||
&.replyButton:hover
|
&.replyButton:hover
|
||||||
color #0af
|
color var(--noteActionsReplyHover)
|
||||||
|
|
||||||
&.renoteButton:hover
|
&.renoteButton:hover
|
||||||
color #8d0
|
color var(--noteActionsRenoteHover)
|
||||||
|
|
||||||
&.reactionButton:hover
|
&.reactionButton:hover
|
||||||
color #fa0
|
color var(--noteActionsReactionHover)
|
||||||
|
|
||||||
> .count
|
> .count
|
||||||
display inline
|
display inline
|
||||||
@ -415,16 +413,10 @@ root(isDark)
|
|||||||
color #999
|
color #999
|
||||||
|
|
||||||
&.reacted, &.reacted:hover
|
&.reacted, &.reacted:hover
|
||||||
color #fa0
|
color var(--noteActionsReactionHover)
|
||||||
|
|
||||||
> .replies
|
> .replies
|
||||||
> *
|
> *
|
||||||
border-top 1px solid isDark ? #1c2023 : #eef0f2
|
border-top 1px solid var(--faceDivider)
|
||||||
|
|
||||||
.mk-note-detail[data-darkmode]
|
|
||||||
root(true)
|
|
||||||
|
|
||||||
.mk-note-detail:not([data-darkmode])
|
|
||||||
root(false)
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -47,7 +47,7 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
root(isDark)
|
.qiziqtywpuaucsgarwajitwaakggnisj
|
||||||
display flex
|
display flex
|
||||||
font-size 0.9em
|
font-size 0.9em
|
||||||
|
|
||||||
@ -71,7 +71,7 @@ root(isDark)
|
|||||||
margin 0
|
margin 0
|
||||||
padding 0
|
padding 0
|
||||||
overflow-wrap break-word
|
overflow-wrap break-word
|
||||||
color isDark ? #fff : #717171
|
color var(--noteText)
|
||||||
|
|
||||||
> .text
|
> .text
|
||||||
margin-right 8px
|
margin-right 8px
|
||||||
@ -81,12 +81,6 @@ root(isDark)
|
|||||||
cursor default
|
cursor default
|
||||||
margin 0
|
margin 0
|
||||||
padding 0
|
padding 0
|
||||||
color isDark ? #959ba7 : #717171
|
color var(--subNoteText)
|
||||||
|
|
||||||
.qiziqtywpuaucsgarwajitwaakggnisj[data-darkmode]
|
|
||||||
root(true)
|
|
||||||
|
|
||||||
.qiziqtywpuaucsgarwajitwaakggnisj:not([data-darkmode])
|
|
||||||
root(false)
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -42,12 +42,12 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
root(isDark)
|
.tkfdzaxtkdeianobciwadajxzbddorql
|
||||||
display flex
|
display flex
|
||||||
margin 0
|
margin 0
|
||||||
padding 16px 32px
|
padding 16px 32px
|
||||||
font-size 0.9em
|
font-size 0.9em
|
||||||
background isDark ? #21242d : #fcfcfc
|
background var(--subNoteBg)
|
||||||
|
|
||||||
> .avatar
|
> .avatar
|
||||||
flex-shrink 0
|
flex-shrink 0
|
||||||
@ -72,7 +72,7 @@ root(isDark)
|
|||||||
margin 0
|
margin 0
|
||||||
padding 0
|
padding 0
|
||||||
overflow-wrap break-word
|
overflow-wrap break-word
|
||||||
color isDark ? #fff : #717171
|
color var(--noteText)
|
||||||
|
|
||||||
> .text
|
> .text
|
||||||
margin-right 8px
|
margin-right 8px
|
||||||
@ -82,16 +82,10 @@ root(isDark)
|
|||||||
cursor default
|
cursor default
|
||||||
margin 0
|
margin 0
|
||||||
padding 0
|
padding 0
|
||||||
color isDark ? #959ba7 : #717171
|
color var(--subNoteText)
|
||||||
|
|
||||||
pre
|
pre
|
||||||
max-height 120px
|
max-height 120px
|
||||||
font-size 80%
|
font-size 80%
|
||||||
|
|
||||||
.tkfdzaxtkdeianobciwadajxzbddorql[data-darkmode]
|
|
||||||
root(true)
|
|
||||||
|
|
||||||
.tkfdzaxtkdeianobciwadajxzbddorql:not([data-darkmode])
|
|
||||||
root(false)
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -40,18 +40,18 @@
|
|||||||
</div>
|
</div>
|
||||||
<footer>
|
<footer>
|
||||||
<mk-reactions-viewer :note="p" ref="reactionsViewer"/>
|
<mk-reactions-viewer :note="p" ref="reactionsViewer"/>
|
||||||
<button class="replyButton" @click="reply" title="%i18n:@reply%">
|
<button class="replyButton" @click="reply()" title="%i18n:@reply%">
|
||||||
<template v-if="p.reply">%fa:reply-all%</template>
|
<template v-if="p.reply">%fa:reply-all%</template>
|
||||||
<template v-else>%fa:reply%</template>
|
<template v-else>%fa:reply%</template>
|
||||||
<p class="count" v-if="p.repliesCount > 0">{{ p.repliesCount }}</p>
|
<p class="count" v-if="p.repliesCount > 0">{{ p.repliesCount }}</p>
|
||||||
</button>
|
</button>
|
||||||
<button class="renoteButton" @click="renote" title="%i18n:@renote%">
|
<button class="renoteButton" @click="renote()" title="%i18n:@renote%">
|
||||||
%fa:retweet%<p class="count" v-if="p.renoteCount > 0">{{ p.renoteCount }}</p>
|
%fa:retweet%<p class="count" v-if="p.renoteCount > 0">{{ p.renoteCount }}</p>
|
||||||
</button>
|
</button>
|
||||||
<button class="reactionButton" :class="{ reacted: p.myReaction != null }" @click="react()" ref="reactButton" title="%i18n:@add-reaction%">
|
<button class="reactionButton" :class="{ reacted: p.myReaction != null }" @click="react()" ref="reactButton" title="%i18n:@add-reaction%">
|
||||||
%fa:plus%<p class="count" v-if="p.reactions_count > 0">{{ p.reactions_count }}</p>
|
%fa:plus%<p class="count" v-if="p.reactions_count > 0">{{ p.reactions_count }}</p>
|
||||||
</button>
|
</button>
|
||||||
<button @click="menu" ref="menuButton">
|
<button @click="menu()" ref="menuButton">
|
||||||
%fa:ellipsis-h%
|
%fa:ellipsis-h%
|
||||||
</button>
|
</button>
|
||||||
<!-- <button title="%i18n:@detail">
|
<!-- <button title="%i18n:@detail">
|
||||||
@ -113,14 +113,25 @@ export default Vue.extend({
|
|||||||
computed: {
|
computed: {
|
||||||
keymap(): any {
|
keymap(): any {
|
||||||
return {
|
return {
|
||||||
'r': this.reply,
|
'r|left': () => this.reply(true),
|
||||||
'a': () => this.react(true),
|
'e|a|plus': () => this.react(true),
|
||||||
'numpad plus': () => this.react(true),
|
'q|right': () => this.renote(true),
|
||||||
'n': this.renote,
|
'ctrl+q|ctrl+right': this.renoteDirectly,
|
||||||
'up': this.focusBefore,
|
'up|k|shift+tab': this.focusBefore,
|
||||||
'shift+tab': this.focusBefore,
|
'down|j|tab': this.focusAfter,
|
||||||
'down': this.focusAfter,
|
'esc': this.blur,
|
||||||
'tab': this.focusAfter,
|
'm|o': () => this.menu(true),
|
||||||
|
's': this.toggleShowContent,
|
||||||
|
'1': () => this.reactDirectly('like'),
|
||||||
|
'2': () => this.reactDirectly('love'),
|
||||||
|
'3': () => this.reactDirectly('laugh'),
|
||||||
|
'4': () => this.reactDirectly('hmm'),
|
||||||
|
'5': () => this.reactDirectly('surprise'),
|
||||||
|
'6': () => this.reactDirectly('congrats'),
|
||||||
|
'7': () => this.reactDirectly('angry'),
|
||||||
|
'8': () => this.reactDirectly('confused'),
|
||||||
|
'9': () => this.reactDirectly('rip'),
|
||||||
|
'0': () => this.reactDirectly('pudding'),
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -202,10 +213,14 @@ export default Vue.extend({
|
|||||||
methods: {
|
methods: {
|
||||||
capture(withHandler = false) {
|
capture(withHandler = false) {
|
||||||
if (this.$store.getters.isSignedIn) {
|
if (this.$store.getters.isSignedIn) {
|
||||||
this.connection.send({
|
const data = {
|
||||||
type: 'capture',
|
type: 'capture',
|
||||||
id: this.p.id
|
id: this.p.id
|
||||||
});
|
} as any;
|
||||||
|
if ((this.p.visibleUserIds || []).includes(this.$store.state.i.id) || (this.p.mentions || []).includes(this.$store.state.i.id)) {
|
||||||
|
data.read = true;
|
||||||
|
}
|
||||||
|
this.connection.send(data);
|
||||||
if (withHandler) this.connection.on('note-updated', this.onStreamNoteUpdated);
|
if (withHandler) this.connection.on('note-updated', this.onStreamNoteUpdated);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -233,34 +248,55 @@ export default Vue.extend({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
reply() {
|
reply(viaKeyboard = false) {
|
||||||
(this as any).os.new(MkPostFormWindow, {
|
(this as any).os.new(MkPostFormWindow, {
|
||||||
reply: this.p
|
reply: this.p,
|
||||||
|
animation: !viaKeyboard
|
||||||
}).$once('closed', this.focus);
|
}).$once('closed', this.focus);
|
||||||
},
|
},
|
||||||
|
|
||||||
renote() {
|
renote(viaKeyboard = false) {
|
||||||
(this as any).os.new(MkRenoteFormWindow, {
|
(this as any).os.new(MkRenoteFormWindow, {
|
||||||
note: this.p
|
note: this.p,
|
||||||
|
animation: !viaKeyboard
|
||||||
}).$once('closed', this.focus);
|
}).$once('closed', this.focus);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
renoteDirectly() {
|
||||||
|
(this as any).api('notes/create', {
|
||||||
|
renoteId: this.p.id
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
react(viaKeyboard = false) {
|
react(viaKeyboard = false) {
|
||||||
this.blur();
|
this.blur();
|
||||||
(this as any).os.new(MkReactionPicker, {
|
(this as any).os.new(MkReactionPicker, {
|
||||||
source: this.$refs.reactButton,
|
source: this.$refs.reactButton,
|
||||||
note: this.p,
|
note: this.p,
|
||||||
showFocus: viaKeyboard
|
showFocus: viaKeyboard,
|
||||||
|
animation: !viaKeyboard
|
||||||
}).$once('closed', this.focus);
|
}).$once('closed', this.focus);
|
||||||
},
|
},
|
||||||
|
|
||||||
menu() {
|
reactDirectly(reaction) {
|
||||||
|
(this as any).api('notes/reactions/create', {
|
||||||
|
noteId: this.p.id,
|
||||||
|
reaction: reaction
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
menu(viaKeyboard = false) {
|
||||||
(this as any).os.new(MkNoteMenu, {
|
(this as any).os.new(MkNoteMenu, {
|
||||||
source: this.$refs.menuButton,
|
source: this.$refs.menuButton,
|
||||||
note: this.p
|
note: this.p,
|
||||||
|
animation: !viaKeyboard
|
||||||
}).$once('closed', this.focus);
|
}).$once('closed', this.focus);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
toggleShowContent() {
|
||||||
|
this.showContent = !this.showContent;
|
||||||
|
},
|
||||||
|
|
||||||
focus() {
|
focus() {
|
||||||
this.$el.focus();
|
this.$el.focus();
|
||||||
},
|
},
|
||||||
@ -281,13 +317,11 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
@import '~const.styl'
|
.note
|
||||||
|
|
||||||
root(isDark)
|
|
||||||
margin 0
|
margin 0
|
||||||
padding 0
|
padding 0
|
||||||
background isDark ? #282C37 : #fff
|
background var(--face)
|
||||||
border-bottom solid 1px isDark ? #1c2023 : #eaeaea
|
border-bottom solid 1px var(--faceDivider)
|
||||||
|
|
||||||
&[data-round]
|
&[data-round]
|
||||||
&:first-child
|
&:first-child
|
||||||
@ -312,7 +346,7 @@ root(isDark)
|
|||||||
right 2px
|
right 2px
|
||||||
bottom 2px
|
bottom 2px
|
||||||
left 2px
|
left 2px
|
||||||
border 2px solid rgba($theme-color, 0.3)
|
border 2px solid var(--primaryAlpha03)
|
||||||
border-radius 4px
|
border-radius 4px
|
||||||
|
|
||||||
> .renote
|
> .renote
|
||||||
@ -321,8 +355,8 @@ root(isDark)
|
|||||||
padding 16px 32px 8px 32px
|
padding 16px 32px 8px 32px
|
||||||
line-height 28px
|
line-height 28px
|
||||||
white-space pre
|
white-space pre
|
||||||
color #9dbb00
|
color var(--renoteText)
|
||||||
background isDark ? linear-gradient(to bottom, #314027 0%, #282c37 100%) : linear-gradient(to bottom, #edfde2 0%, #fff 100%)
|
background linear-gradient(to bottom, var(--renoteGradient) 0%, var(--face) 100%)
|
||||||
|
|
||||||
.avatar
|
.avatar
|
||||||
display inline-block
|
display inline-block
|
||||||
@ -362,7 +396,7 @@ root(isDark)
|
|||||||
|
|
||||||
&:hover
|
&:hover
|
||||||
> .main > footer > button
|
> .main > footer > button
|
||||||
color isDark ? #707b97 : #888
|
color var(--noteActionsHighlighted)
|
||||||
|
|
||||||
> .avatar
|
> .avatar
|
||||||
flex-shrink 0
|
flex-shrink 0
|
||||||
@ -390,7 +424,7 @@ root(isDark)
|
|||||||
margin 0
|
margin 0
|
||||||
padding 0
|
padding 0
|
||||||
overflow-wrap break-word
|
overflow-wrap break-word
|
||||||
color isDark ? #fff : #717171
|
color var(--noteText)
|
||||||
|
|
||||||
> .text
|
> .text
|
||||||
margin-right 8px
|
margin-right 8px
|
||||||
@ -403,7 +437,7 @@ root(isDark)
|
|||||||
margin 0
|
margin 0
|
||||||
padding 0
|
padding 0
|
||||||
overflow-wrap break-word
|
overflow-wrap break-word
|
||||||
color isDark ? #fff : #717171
|
color var(--noteText)
|
||||||
|
|
||||||
>>> .title
|
>>> .title
|
||||||
display block
|
display block
|
||||||
@ -411,7 +445,7 @@ root(isDark)
|
|||||||
padding 4px
|
padding 4px
|
||||||
font-size 90%
|
font-size 90%
|
||||||
text-align center
|
text-align center
|
||||||
background isDark ? #2f3944 : #eef1f3
|
background var(--mfmTitleBg)
|
||||||
border-radius 4px
|
border-radius 4px
|
||||||
|
|
||||||
>>> .code
|
>>> .code
|
||||||
@ -420,17 +454,17 @@ root(isDark)
|
|||||||
>>> .quote
|
>>> .quote
|
||||||
margin 8px
|
margin 8px
|
||||||
padding 6px 12px
|
padding 6px 12px
|
||||||
color isDark ? #6f808e : #aaa
|
color var(--mfmQuote)
|
||||||
border-left solid 3px isDark ? #637182 : #eee
|
border-left solid 3px var(--mfmQuoteLine)
|
||||||
|
|
||||||
> .reply
|
> .reply
|
||||||
margin-right 8px
|
margin-right 8px
|
||||||
color isDark ? #99abbf : #717171
|
color var(--text)
|
||||||
|
|
||||||
> .rp
|
> .rp
|
||||||
margin-left 4px
|
margin-left 4px
|
||||||
font-style oblique
|
font-style oblique
|
||||||
color #a0bf46
|
color var(--renoteText)
|
||||||
|
|
||||||
> .location
|
> .location
|
||||||
margin 4px 0
|
margin 4px 0
|
||||||
@ -455,7 +489,7 @@ root(isDark)
|
|||||||
|
|
||||||
> *
|
> *
|
||||||
padding 16px
|
padding 16px
|
||||||
border dashed 1px isDark ? #4e945e : #c0dac6
|
border dashed 1px var(--quoteBorder)
|
||||||
border-radius 8px
|
border-radius 8px
|
||||||
|
|
||||||
> footer
|
> footer
|
||||||
@ -464,22 +498,22 @@ root(isDark)
|
|||||||
padding 0 8px
|
padding 0 8px
|
||||||
line-height 32px
|
line-height 32px
|
||||||
font-size 1em
|
font-size 1em
|
||||||
color isDark ? #606984 : #ddd
|
color var(--noteActions)
|
||||||
background transparent
|
background transparent
|
||||||
border none
|
border none
|
||||||
cursor pointer
|
cursor pointer
|
||||||
|
|
||||||
&:hover
|
&:hover
|
||||||
color isDark ? #a1a8bf : #444
|
color var(--noteActionsHover)
|
||||||
|
|
||||||
&.replyButton:hover
|
&.replyButton:hover
|
||||||
color #0af
|
color var(--noteActionsReplyHover)
|
||||||
|
|
||||||
&.renoteButton:hover
|
&.renoteButton:hover
|
||||||
color #8d0
|
color var(--noteActionsRenoteHover)
|
||||||
|
|
||||||
&.reactionButton:hover
|
&.reactionButton:hover
|
||||||
color #fa0
|
color var(--noteActionsReactionHover)
|
||||||
|
|
||||||
> .count
|
> .count
|
||||||
display inline
|
display inline
|
||||||
@ -487,18 +521,12 @@ root(isDark)
|
|||||||
color #999
|
color #999
|
||||||
|
|
||||||
&.reacted, &.reacted:hover
|
&.reacted, &.reacted:hover
|
||||||
color #fa0
|
color var(--noteActionsReactionHover)
|
||||||
|
|
||||||
> .detail
|
> .detail
|
||||||
padding-top 4px
|
padding-top 4px
|
||||||
background rgba(#000, 0.0125)
|
background rgba(#000, 0.0125)
|
||||||
|
|
||||||
.note[data-darkmode]
|
|
||||||
root(true)
|
|
||||||
|
|
||||||
.note:not([data-darkmode])
|
|
||||||
root(false)
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style lang="stylus" module>
|
<style lang="stylus" module>
|
||||||
@ -521,7 +549,7 @@ root(isDark)
|
|||||||
padding 0 4px
|
padding 0 4px
|
||||||
margin-left 4px
|
margin-left 4px
|
||||||
font-size 80%
|
font-size 80%
|
||||||
color $theme-color-foreground
|
color var(--primaryForeground)
|
||||||
background $theme-color
|
background var(--primary)
|
||||||
border-radius 4px
|
border-radius 4px
|
||||||
</style>
|
</style>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- トランジションを有効にするとなぜかメモリリークする -->
|
<!-- トランジションを有効にするとなぜかメモリリークする -->
|
||||||
<component :is="!$store.state.device.reduceMotion ? 'transition-group' : 'div'" name="mk-notes" class="notes transition" tag="div">
|
<component :is="!$store.state.device.reduceMotion ? 'transition-group' : 'div'" name="mk-notes" class="notes transition" tag="div" ref="notes">
|
||||||
<template v-for="(note, i) in _notes">
|
<template v-for="(note, i) in _notes">
|
||||||
<x-note :note="note" :key="note.id" @update:note="onNoteUpdated(i, $event)" ref="note"/>
|
<x-note :note="note" :key="note.id" @update:note="onNoteUpdated(i, $event)" ref="note"/>
|
||||||
<p class="date" :key="note.id + '_date'" v-if="i != notes.length - 1 && note._date != _notes[i + 1]._date">
|
<p class="date" :key="note.id + '_date'" v-if="i != notes.length - 1 && note._date != _notes[i + 1]._date">
|
||||||
@ -89,7 +89,7 @@ export default Vue.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
focus() {
|
focus() {
|
||||||
(this.$refs.note as any)[0].focus();
|
(this.$refs.notes as any).children[0].focus ? (this.$refs.notes as any).children[0].focus() : (this.$refs.notes as any).$el.children[0].focus();
|
||||||
},
|
},
|
||||||
|
|
||||||
onNoteUpdated(i, note) {
|
onNoteUpdated(i, note) {
|
||||||
@ -216,9 +216,7 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
@import '~const.styl'
|
.mk-notes
|
||||||
|
|
||||||
root(isDark)
|
|
||||||
.transition
|
.transition
|
||||||
.mk-notes-enter
|
.mk-notes-enter
|
||||||
.mk-notes-leave-to
|
.mk-notes-leave-to
|
||||||
@ -235,9 +233,9 @@ root(isDark)
|
|||||||
line-height 32px
|
line-height 32px
|
||||||
font-size 14px
|
font-size 14px
|
||||||
text-align center
|
text-align center
|
||||||
color isDark ? #666b79 : #aaa
|
color var(--dateDividerFg)
|
||||||
background isDark ? #242731 : #fdfdfd
|
background var(--dateDividerBg)
|
||||||
border-bottom solid 1px isDark ? #1c2023 : #eaeaea
|
border-bottom solid 1px var(--faceDivider)
|
||||||
|
|
||||||
span
|
span
|
||||||
margin 0 16px
|
margin 0 16px
|
||||||
@ -250,7 +248,7 @@ root(isDark)
|
|||||||
position sticky
|
position sticky
|
||||||
z-index 100
|
z-index 100
|
||||||
height 3px
|
height 3px
|
||||||
background $theme-color
|
background var(--primary)
|
||||||
|
|
||||||
> footer
|
> footer
|
||||||
> button
|
> button
|
||||||
@ -260,21 +258,15 @@ root(isDark)
|
|||||||
width 100%
|
width 100%
|
||||||
text-align center
|
text-align center
|
||||||
color #ccc
|
color #ccc
|
||||||
background isDark ? #282C37 : #fff
|
background var(--face)
|
||||||
border-top solid 1px isDark ? #1c2023 : #eaeaea
|
border-top solid 1px var(--faceDivider)
|
||||||
border-bottom-left-radius 6px
|
border-bottom-left-radius 6px
|
||||||
border-bottom-right-radius 6px
|
border-bottom-right-radius 6px
|
||||||
|
|
||||||
&:hover
|
&:hover
|
||||||
background isDark ? #2e3440 : #f5f5f5
|
box-shadow 0 0 0 100px inset rgba(0, 0, 0, 0.05)
|
||||||
|
|
||||||
&:active
|
&:active
|
||||||
background isDark ? #21242b : #eee
|
box-shadow 0 0 0 100px inset rgba(0, 0, 0, 0.1)
|
||||||
|
|
||||||
.mk-notes[data-darkmode]
|
|
||||||
root(true)
|
|
||||||
|
|
||||||
.mk-notes:not([data-darkmode])
|
|
||||||
root(false)
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -191,7 +191,7 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
root(isDark)
|
.mk-notifications
|
||||||
.transition
|
.transition
|
||||||
.mk-notifications-enter
|
.mk-notifications-enter
|
||||||
.mk-notifications-leave-to
|
.mk-notifications-leave-to
|
||||||
@ -208,7 +208,7 @@ root(isDark)
|
|||||||
padding 16px
|
padding 16px
|
||||||
overflow-wrap break-word
|
overflow-wrap break-word
|
||||||
font-size 13px
|
font-size 13px
|
||||||
border-bottom solid 1px isDark ? #1c2023 : rgba(#000, 0.05)
|
border-bottom solid 1px var(--faceDivider)
|
||||||
|
|
||||||
&:last-child
|
&:last-child
|
||||||
border-bottom none
|
border-bottom none
|
||||||
@ -219,7 +219,7 @@ root(isDark)
|
|||||||
top 16px
|
top 16px
|
||||||
right 12px
|
right 12px
|
||||||
vertical-align top
|
vertical-align top
|
||||||
color isDark ? #606984 : rgba(#000, 0.6)
|
color var(--noteHeaderInfo)
|
||||||
font-size small
|
font-size small
|
||||||
|
|
||||||
&:after
|
&:after
|
||||||
@ -249,10 +249,10 @@ root(isDark)
|
|||||||
margin-right 4px
|
margin-right 4px
|
||||||
|
|
||||||
.note-preview
|
.note-preview
|
||||||
color isDark ? #c2cad4 : rgba(#000, 0.7)
|
color var(--noteText)
|
||||||
|
|
||||||
.note-ref
|
.note-ref
|
||||||
color isDark ? #c2cad4 : rgba(#000, 0.7)
|
color var(--noteText)
|
||||||
|
|
||||||
[data-fa]
|
[data-fa]
|
||||||
font-size 1em
|
font-size 1em
|
||||||
@ -283,9 +283,9 @@ root(isDark)
|
|||||||
line-height 32px
|
line-height 32px
|
||||||
text-align center
|
text-align center
|
||||||
font-size 0.8em
|
font-size 0.8em
|
||||||
color isDark ? #666b79 : #aaa
|
color var(--dateDividerFg)
|
||||||
background isDark ? #242731 : #fdfdfd
|
background var(--dateDividerBg)
|
||||||
border-bottom solid 1px isDark ? #1c2023 : rgba(#000, 0.05)
|
border-bottom solid 1px var(--faceDivider)
|
||||||
|
|
||||||
span
|
span
|
||||||
margin 0 16px
|
margin 0 16px
|
||||||
@ -327,10 +327,4 @@ root(isDark)
|
|||||||
> [data-fa]
|
> [data-fa]
|
||||||
margin-right 4px
|
margin-right 4px
|
||||||
|
|
||||||
.mk-notifications[data-darkmode]
|
|
||||||
root(true)
|
|
||||||
|
|
||||||
.mk-notifications:not([data-darkmode])
|
|
||||||
root(false)
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<mk-window class="mk-post-form-window" ref="window" is-modal @closed="onWindowClosed">
|
<mk-window class="mk-post-form-window" ref="window" is-modal @closed="onWindowClosed" :animation="animation">
|
||||||
<span slot="header" class="mk-post-form-window--header">
|
<span slot="header" class="mk-post-form-window--header">
|
||||||
<span class="icon" v-if="geo">%fa:map-marker-alt%</span>
|
<span class="icon" v-if="geo">%fa:map-marker-alt%</span>
|
||||||
<span v-if="!reply">%i18n:@note%</span>
|
<span v-if="!reply">%i18n:@note%</span>
|
||||||
@ -25,7 +25,19 @@
|
|||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
props: ['reply'],
|
props: {
|
||||||
|
reply: {
|
||||||
|
type: Object,
|
||||||
|
required: false
|
||||||
|
},
|
||||||
|
|
||||||
|
animation: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
uploadings: [],
|
uploadings: [],
|
||||||
@ -33,11 +45,13 @@ export default Vue.extend({
|
|||||||
geo: null
|
geo: null
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
(this.$refs.form as any).focus();
|
(this.$refs.form as any).focus();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
onChangeUploadings(files) {
|
onChangeUploadings(files) {
|
||||||
this.uploadings = files;
|
this.uploadings = files;
|
||||||
@ -63,7 +77,7 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
root(isDark)
|
.mk-post-form-window
|
||||||
.mk-post-form-window--header
|
.mk-post-form-window--header
|
||||||
.icon
|
.icon
|
||||||
margin-right 8px
|
margin-right 8px
|
||||||
@ -80,15 +94,6 @@ root(isDark)
|
|||||||
|
|
||||||
.mk-post-form-window--body
|
.mk-post-form-window--body
|
||||||
.notePreview
|
.notePreview
|
||||||
if isDark
|
|
||||||
margin 16px 22px 0 22px
|
|
||||||
else
|
|
||||||
margin 16px 22px
|
margin 16px 22px
|
||||||
|
|
||||||
.mk-post-form-window[data-darkmode]
|
|
||||||
root(true)
|
|
||||||
|
|
||||||
.mk-post-form-window:not([data-darkmode])
|
|
||||||
root(false)
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -178,6 +178,18 @@ export default Vue.extend({
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 公開以外へのリプライ時は元の公開範囲を引き継ぐ
|
||||||
|
if (this.reply && ['home', 'followers', 'specified', 'private'].includes(this.reply.visibility)) {
|
||||||
|
this.visibility = this.reply.visibility;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ダイレクトへのリプライはリプライ先ユーザーを初期設定
|
||||||
|
if (this.reply && this.reply.visibility === 'specified') {
|
||||||
|
(this as any).api('users/show', { userId: this.reply.userId }).then(user => {
|
||||||
|
this.visibleUsers.push(user);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
// 書きかけの投稿を復元
|
// 書きかけの投稿を復元
|
||||||
if (!this.instant) {
|
if (!this.instant) {
|
||||||
@ -434,12 +446,11 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
@import '~const.styl'
|
.mk-post-form
|
||||||
|
|
||||||
root(isDark)
|
|
||||||
display block
|
display block
|
||||||
padding 16px
|
padding 16px
|
||||||
background isDark ? #282C37 : lighten($theme-color, 95%)
|
background var(--desktopPostFormBg)
|
||||||
|
overflow hidden
|
||||||
|
|
||||||
&:after
|
&:after
|
||||||
content ""
|
content ""
|
||||||
@ -453,26 +464,26 @@ root(isDark)
|
|||||||
width 100%
|
width 100%
|
||||||
padding 12px
|
padding 12px
|
||||||
font-size 16px
|
font-size 16px
|
||||||
color isDark ? #fff : #333
|
color var(--desktopPostFormTextareaFg)
|
||||||
background isDark ? #191d23 : #fff
|
background var(--desktopPostFormTextareaBg)
|
||||||
outline none
|
outline none
|
||||||
border solid 1px rgba($theme-color, 0.1)
|
border solid 1px var(--primaryAlpha01)
|
||||||
border-radius 4px
|
border-radius 4px
|
||||||
transition border-color .2s ease
|
transition border-color .2s ease
|
||||||
|
|
||||||
&:hover
|
&:hover
|
||||||
border-color rgba($theme-color, 0.2)
|
border-color var(--primaryAlpha02)
|
||||||
transition border-color .1s ease
|
transition border-color .1s ease
|
||||||
|
|
||||||
&:focus
|
&:focus
|
||||||
border-color rgba($theme-color, 0.5)
|
border-color var(--primaryAlpha05)
|
||||||
transition border-color 0s ease
|
transition border-color 0s ease
|
||||||
|
|
||||||
&:disabled
|
&:disabled
|
||||||
opacity 0.5
|
opacity 0.5
|
||||||
|
|
||||||
&::-webkit-input-placeholder
|
&::-webkit-input-placeholder
|
||||||
color rgba($theme-color, 0.3)
|
color var(--primaryAlpha03)
|
||||||
|
|
||||||
> input
|
> input
|
||||||
margin-bottom 8px
|
margin-bottom 8px
|
||||||
@ -486,17 +497,17 @@ root(isDark)
|
|||||||
&:hover
|
&:hover
|
||||||
& + *
|
& + *
|
||||||
& + * + *
|
& + * + *
|
||||||
border-color rgba($theme-color, 0.2)
|
border-color var(--primaryAlpha02)
|
||||||
transition border-color .1s ease
|
transition border-color .1s ease
|
||||||
|
|
||||||
&:focus
|
&:focus
|
||||||
& + *
|
& + *
|
||||||
& + * + *
|
& + * + *
|
||||||
border-color rgba($theme-color, 0.5)
|
border-color var(--primaryAlpha05)
|
||||||
transition border-color 0s ease
|
transition border-color 0s ease
|
||||||
|
|
||||||
&.with
|
&.with
|
||||||
border-bottom solid 1px rgba($theme-color, 0.1) !important
|
border-bottom solid 1px var(--primaryAlpha01) !important
|
||||||
border-radius 4px 4px 0 0
|
border-radius 4px 4px 0 0
|
||||||
|
|
||||||
> .visibleUsers
|
> .visibleUsers
|
||||||
@ -505,7 +516,7 @@ root(isDark)
|
|||||||
|
|
||||||
> span
|
> span
|
||||||
margin-right 16px
|
margin-right 16px
|
||||||
color isDark ? #fff : #666
|
color var(--primary)
|
||||||
|
|
||||||
> .hashtags
|
> .hashtags
|
||||||
margin 0 0 8px 0
|
margin 0 0 8px 0
|
||||||
@ -514,7 +525,7 @@ root(isDark)
|
|||||||
font-size 14px
|
font-size 14px
|
||||||
|
|
||||||
> b
|
> b
|
||||||
color isDark ? #9baec8 : darken($theme-color, 20%)
|
color var(--primary)
|
||||||
|
|
||||||
> *
|
> *
|
||||||
margin-right 8px
|
margin-right 8px
|
||||||
@ -523,14 +534,14 @@ root(isDark)
|
|||||||
> .files
|
> .files
|
||||||
margin 0
|
margin 0
|
||||||
padding 0
|
padding 0
|
||||||
background isDark ? #181b23 : lighten($theme-color, 98%)
|
background var(--desktopPostFormTextareaBg)
|
||||||
border solid 1px rgba($theme-color, 0.1)
|
border solid 1px var(--primaryAlpha01)
|
||||||
border-top none
|
border-top none
|
||||||
border-radius 0 0 4px 4px
|
border-radius 0 0 4px 4px
|
||||||
transition border-color .3s ease
|
transition border-color .3s ease
|
||||||
|
|
||||||
&.with
|
&.with
|
||||||
border-bottom solid 1px rgba($theme-color, 0.1) !important
|
border-bottom solid 1px var(--primaryAlpha01) !important
|
||||||
border-radius 0
|
border-radius 0
|
||||||
|
|
||||||
> .remain
|
> .remain
|
||||||
@ -540,7 +551,7 @@ root(isDark)
|
|||||||
right 8px
|
right 8px
|
||||||
margin 0
|
margin 0
|
||||||
padding 0
|
padding 0
|
||||||
color rgba($theme-color, 0.4)
|
color var(--primaryAlpha04)
|
||||||
|
|
||||||
> div
|
> div
|
||||||
padding 4px
|
padding 4px
|
||||||
@ -574,8 +585,8 @@ root(isDark)
|
|||||||
cursor pointer
|
cursor pointer
|
||||||
|
|
||||||
> .mk-poll-editor
|
> .mk-poll-editor
|
||||||
background isDark ? #181b23 : lighten($theme-color, 98%)
|
background var(--desktopPostFormTextareaBg)
|
||||||
border solid 1px rgba($theme-color, 0.1)
|
border solid 1px var(--primaryAlpha01)
|
||||||
border-top none
|
border-top none
|
||||||
border-radius 0 0 4px 4px
|
border-radius 0 0 4px 4px
|
||||||
transition border-color .3s ease
|
transition border-color .3s ease
|
||||||
@ -583,7 +594,7 @@ root(isDark)
|
|||||||
> .mk-uploader
|
> .mk-uploader
|
||||||
margin 8px 0 0 0
|
margin 8px 0 0 0
|
||||||
padding 8px
|
padding 8px
|
||||||
border solid 1px rgba($theme-color, 0.2)
|
border solid 1px var(--primaryAlpha02)
|
||||||
border-radius 4px
|
border-radius 4px
|
||||||
|
|
||||||
input[type='file']
|
input[type='file']
|
||||||
@ -600,22 +611,20 @@ root(isDark)
|
|||||||
width 110px
|
width 110px
|
||||||
height 40px
|
height 40px
|
||||||
font-size 1em
|
font-size 1em
|
||||||
color $theme-color-foreground
|
color var(--primaryForeground)
|
||||||
background linear-gradient(to bottom, lighten($theme-color, 25%) 0%, lighten($theme-color, 10%) 100%)
|
background var(--primary)
|
||||||
outline none
|
outline none
|
||||||
border solid 1px lighten($theme-color, 15%)
|
border none
|
||||||
border-radius 4px
|
border-radius 4px
|
||||||
|
|
||||||
&: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 var(--primaryLighten5)
|
||||||
border-color $theme-color
|
|
||||||
|
|
||||||
&:active:not(:disabled)
|
&:active:not(:disabled)
|
||||||
background $theme-color
|
background var(--primaryDarken5)
|
||||||
border-color $theme-color
|
|
||||||
|
|
||||||
&:focus
|
&:focus
|
||||||
&:after
|
&:after
|
||||||
@ -626,7 +635,7 @@ root(isDark)
|
|||||||
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
|
||||||
@ -636,13 +645,13 @@ root(isDark)
|
|||||||
&.wait
|
&.wait
|
||||||
background linear-gradient(
|
background linear-gradient(
|
||||||
45deg,
|
45deg,
|
||||||
darken($theme-color, 10%) 25%,
|
var(--primaryDarken10) 25%,
|
||||||
$theme-color 25%,
|
var(--primary) 25%,
|
||||||
$theme-color 50%,
|
var(--primary) 50%,
|
||||||
darken($theme-color, 10%) 50%,
|
var(--primaryDarken10) 50%,
|
||||||
darken($theme-color, 10%) 75%,
|
var(--primaryDarken10) 75%,
|
||||||
$theme-color 75%,
|
var(--primary) 75%,
|
||||||
$theme-color
|
var(--primary)
|
||||||
)
|
)
|
||||||
background-size 32px 32px
|
background-size 32px 32px
|
||||||
animation stripe-bg 1.5s linear infinite
|
animation stripe-bg 1.5s linear infinite
|
||||||
@ -661,7 +670,7 @@ root(isDark)
|
|||||||
right 138px
|
right 138px
|
||||||
margin 0
|
margin 0
|
||||||
line-height 40px
|
line-height 40px
|
||||||
color rgba($theme-color, 0.5)
|
color var(--primaryAlpha05)
|
||||||
|
|
||||||
&.over
|
&.over
|
||||||
color #ec3828
|
color #ec3828
|
||||||
@ -679,7 +688,7 @@ root(isDark)
|
|||||||
width 40px
|
width 40px
|
||||||
height 40px
|
height 40px
|
||||||
font-size 1em
|
font-size 1em
|
||||||
color isDark ? $theme-color : rgba($theme-color, 0.5)
|
color var(--desktopPostFormTransparentButtonFg)
|
||||||
background transparent
|
background transparent
|
||||||
outline none
|
outline none
|
||||||
border solid 1px transparent
|
border solid 1px transparent
|
||||||
@ -687,12 +696,12 @@ root(isDark)
|
|||||||
|
|
||||||
&:hover
|
&:hover
|
||||||
background transparent
|
background transparent
|
||||||
border-color isDark ? rgba($theme-color, 0.5) : rgba($theme-color, 0.3)
|
border-color var(--primaryAlpha03)
|
||||||
|
|
||||||
&:active
|
&:active
|
||||||
color rgba($theme-color, 0.6)
|
color var(--primaryAlpha06)
|
||||||
background isDark ? transparent : linear-gradient(to bottom, lighten($theme-color, 80%) 0%, lighten($theme-color, 90%) 100%)
|
background linear-gradient(to bottom, var(--desktopPostFormTransparentButtonActiveGradientStart) 0%, var(--desktopPostFormTransparentButtonActiveGradientEnd) 100%)
|
||||||
border-color rgba($theme-color, 0.5)
|
border-color var(--primaryAlpha05)
|
||||||
box-shadow 0 2px 4px rgba(#000, 0.15) inset
|
box-shadow 0 2px 4px rgba(#000, 0.15) inset
|
||||||
|
|
||||||
&:focus
|
&:focus
|
||||||
@ -704,7 +713,7 @@ root(isDark)
|
|||||||
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
|
||||||
|
|
||||||
> .dropzone
|
> .dropzone
|
||||||
@ -713,13 +722,7 @@ root(isDark)
|
|||||||
top 0
|
top 0
|
||||||
width 100%
|
width 100%
|
||||||
height 100%
|
height 100%
|
||||||
border dashed 2px rgba($theme-color, 0.5)
|
border dashed 2px var(--primaryAlpha05)
|
||||||
pointer-events none
|
pointer-events none
|
||||||
|
|
||||||
.mk-post-form[data-darkmode]
|
|
||||||
root(true)
|
|
||||||
|
|
||||||
.mk-post-form:not([data-darkmode])
|
|
||||||
root(false)
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -37,7 +37,7 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" module>
|
<style lang="stylus" module>
|
||||||
@import '~const.styl'
|
|
||||||
|
|
||||||
.body
|
.body
|
||||||
padding 18px 24px 24px 24px
|
padding 18px 24px 24px 24px
|
||||||
@ -53,7 +53,7 @@ export default Vue.extend({
|
|||||||
margin 0 0 4px 0
|
margin 0 0 4px 0
|
||||||
text-align center
|
text-align center
|
||||||
line-height 16px
|
line-height 16px
|
||||||
color rgba($theme-color, 0.7)
|
color var(--primaryAlpha07)
|
||||||
|
|
||||||
&:after
|
&:after
|
||||||
content '%'
|
content '%'
|
||||||
@ -69,21 +69,21 @@ 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)
|
||||||
|
|
||||||
.waiting
|
.waiting
|
||||||
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 progress-dialog-tag-progress-waiting 1.5s linear infinite
|
animation progress-dialog-tag-progress-waiting 1.5s linear infinite
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user