mirror of
https://github.com/paricafe/misskey.git
synced 2024-11-24 08:16:44 -06:00
Improve welcome page
This commit is contained in:
parent
11f25ea2e7
commit
380cf0de69
6 changed files with 295 additions and 186 deletions
BIN
assets/about/drive.png
Normal file
BIN
assets/about/drive.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 110 KiB |
BIN
assets/about/post.png
Normal file
BIN
assets/about/post.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 344 KiB |
BIN
assets/about/reaction.png
Normal file
BIN
assets/about/reaction.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
BIN
assets/about/ui.png
Normal file
BIN
assets/about/ui.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 125 KiB |
|
@ -6,6 +6,19 @@ common:
|
|||
misskey: "A ⭐ of fediverse"
|
||||
about-title: "A ⭐ of fediverse."
|
||||
about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた<b>分散マイクロブログSNS</b>です。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。"
|
||||
intro:
|
||||
title: "Misskeyって?"
|
||||
about: "Misskeyはオープンソースの<b>分散型マイクロブログSNS</b>です。リッチで高度にカスタマイズできるUI、投稿へのリアクション、ファイルを一元管理できるドライブなど、先進的な機能を揃えています。また、Fediverseと呼ばれるネットワークに接続できるため、他のSNSともやり取りできます。例えば、あなたが何か投稿すると、その投稿はMisskeyだけでなく他のSNSにも伝わります。ちょうどある惑星から他の惑星に電波を発信している様子をイメージしてください。"
|
||||
features: "特徴"
|
||||
rich-contents: "投稿"
|
||||
rich-contents-desc: "自分の考え、話題の出来事、皆と共有したいことについて発信してください。必要であれば、様々な構文を使って投稿を装飾したり、好きな画像、動画などのファイルやアンケートを添付することもできます。"
|
||||
reaction: "リアクション"
|
||||
reaction-desc: "あなたの気持ちを伝える最も簡単な方法です。Misskeyは、他のユーザーの投稿に様々なリアクションを付けることができます。いちどMisskeyのリアクション機能を体験してしまうと、もう「いいね」の概念しか存在しないSNSには戻れなくなるかもしれません。"
|
||||
ui: "インターフェース"
|
||||
ui-desc: "どのようなUIが使いやすいかは人それぞれです。だから、Misskeyは自由度の高いUIを持っています。レイアウトやデザインを調整したり、カスタマイズ可能な様々なウィジェットを配置したりして、自分だけのホームを作ってください。"
|
||||
drive: "ドライブ"
|
||||
drive-desc: "以前投稿したことのある画像をまた投稿したくなったことはありませんか?もしくは、アップロードしたファイルをフォルダ分けして整理したくなったことはありませんか?Misskeyの根幹に組み込まれたドライブ機能によってそれらが解決します。ファイルの共有も簡単です。"
|
||||
outro: "他にもMisskeyにしかない機能はまだまだあるので、ぜひあなた自身の目で確かめてください。Misskeyは分散型SNSなので、このインスタンスが気に入らなければ他のインスタンスを試すこともできます。それでは、GLHF!"
|
||||
adblock:
|
||||
detected: "広告ブロッカーを無効にしてください"
|
||||
warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
|
||||
|
|
|
@ -7,86 +7,128 @@
|
|||
|
||||
<mk-forkit class="forkit"/>
|
||||
|
||||
<div class="body">
|
||||
<div class="main block">
|
||||
<div>
|
||||
<h1 v-if="name != 'Misskey'">{{ name }}</h1>
|
||||
<h1 v-else><img :src="$store.state.device.darkmode ? 'assets/title.dark.svg' : 'assets/title.light.svg'" :alt="name"></h1>
|
||||
|
||||
<div class="info">
|
||||
<span><b>{{ host }}</b> - <span v-html="'%i18n:@powered-by-misskey%'"></span></span>
|
||||
<span class="stats" v-if="stats">
|
||||
<span>%fa:user% {{ stats.originalUsersCount | number }}</span>
|
||||
<span>%fa:pencil-alt% {{ stats.originalNotesCount | number }}</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<p class="desc" v-html="description || '%i18n:common.about%'"></p>
|
||||
|
||||
<p class="sign">
|
||||
<span class="signup" @click="signup">%i18n:@signup%</span>
|
||||
<span class="divider">|</span>
|
||||
<span class="signin" @click="signin">%i18n:@signin%</span>
|
||||
</p>
|
||||
|
||||
<img src="/assets/pointer.png" alt="" class="char">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="announcements block">
|
||||
<header>%fa:broadcast-tower% %i18n:@announcements%</header>
|
||||
<div v-if="announcements && announcements.length > 0">
|
||||
<div v-for="announcement in announcements">
|
||||
<h1 v-html="announcement.title"></h1>
|
||||
<div v-html="announcement.text"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="photos block">
|
||||
<header>%fa:images% %i18n:@photos%</header>
|
||||
<div>
|
||||
<div v-for="photo in photos" :style="`background-image: url(${photo.thumbnailUrl})`"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tag-cloud block">
|
||||
<div>
|
||||
<mk-tag-cloud/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="nav block">
|
||||
<div>
|
||||
<mk-nav class="nav"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="side">
|
||||
<div class="trends block">
|
||||
<main>
|
||||
<div class="body">
|
||||
<div class="main block">
|
||||
<div>
|
||||
<mk-trends/>
|
||||
<h1 v-if="name != 'Misskey'">{{ name }}</h1>
|
||||
<h1 v-else><img :src="$store.state.device.darkmode ? 'assets/title.dark.svg' : 'assets/title.light.svg'" :alt="name"></h1>
|
||||
|
||||
<div class="info">
|
||||
<span><b>{{ host }}</b> - <span v-html="'%i18n:@powered-by-misskey%'"></span></span>
|
||||
<span class="stats" v-if="stats">
|
||||
<span>%fa:user% {{ stats.originalUsersCount | number }}</span>
|
||||
<span>%fa:pencil-alt% {{ stats.originalNotesCount | number }}</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<p class="desc" v-html="description || '%i18n:common.about%'"></p>
|
||||
<a class="about" @click="about">%i18n:@about%</a>
|
||||
|
||||
<p class="sign">
|
||||
<span class="signup" @click="signup">%i18n:@signup%</span>
|
||||
<span class="divider">|</span>
|
||||
<span class="signin" @click="signin">%i18n:@signin%</span>
|
||||
</p>
|
||||
|
||||
<img src="/assets/pointer.png" alt="" class="char">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tl block">
|
||||
<header>%fa:comment-alt R% %i18n:@timeline%</header>
|
||||
<div>
|
||||
<mk-welcome-timeline class="tl" :max="20"/>
|
||||
<div class="announcements block">
|
||||
<header>%fa:broadcast-tower% %i18n:@announcements%</header>
|
||||
<div v-if="announcements && announcements.length > 0">
|
||||
<div v-for="announcement in announcements">
|
||||
<h1 v-html="announcement.title"></h1>
|
||||
<div v-html="announcement.text"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="info block">
|
||||
<header>%fa:info-circle% %i18n:@info%</header>
|
||||
<div class="photos block">
|
||||
<header>%fa:images% %i18n:@photos%</header>
|
||||
<div>
|
||||
<div v-if="meta" class="body">
|
||||
<p>Version: <b>{{ meta.version }}</b></p>
|
||||
<p>Maintainer: <b><a :href="meta.maintainer.url" target="_blank">{{ meta.maintainer.name }}</a></b></p>
|
||||
<div v-for="photo in photos" :style="`background-image: url(${photo.thumbnailUrl})`"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tag-cloud block">
|
||||
<div>
|
||||
<mk-tag-cloud/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="nav block">
|
||||
<div>
|
||||
<mk-nav class="nav"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="side">
|
||||
<div class="trends block">
|
||||
<div>
|
||||
<mk-trends/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tl block">
|
||||
<header>%fa:comment-alt R% %i18n:@timeline%</header>
|
||||
<div>
|
||||
<mk-welcome-timeline class="tl" :max="20"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="info block">
|
||||
<header>%fa:info-circle% %i18n:@info%</header>
|
||||
<div>
|
||||
<div v-if="meta" class="body">
|
||||
<p>Version: <b>{{ meta.version }}</b></p>
|
||||
<p>Maintainer: <b><a :href="meta.maintainer.url" target="_blank">{{ meta.maintainer.name }}</a></b></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<modal name="about" :class="$store.state.device.darkmode ? ['about', 'modal-dark'] : ['about', 'modal-light']" width="800px" height="auto" scrollable>
|
||||
<article class="fpdezooorhntlzyeszemrsqdlgbysvxq">
|
||||
<h1>%i18n:common.intro.title%</h1>
|
||||
<p v-html="'%i18n:common.intro.about%'"></p>
|
||||
<section>
|
||||
<h2>%i18n:common.intro.features%</h2>
|
||||
<section>
|
||||
<div class="body">
|
||||
<h3>%i18n:common.intro.rich-contents%</h3>
|
||||
<p v-html="'%i18n:common.intro.rich-contents-desc%'"></p>
|
||||
</div>
|
||||
<div class="image"><img src="/assets/about/post.png" alt=""></div>
|
||||
</section>
|
||||
<section>
|
||||
<div class="body">
|
||||
<h3>%i18n:common.intro.reaction%</h3>
|
||||
<p v-html="'%i18n:common.intro.reaction-desc%'"></p>
|
||||
</div>
|
||||
<div class="image"><img src="/assets/about/reaction.png" alt=""></div>
|
||||
</section>
|
||||
<section>
|
||||
<div class="body">
|
||||
<h3>%i18n:common.intro.ui%</h3>
|
||||
<p v-html="'%i18n:common.intro.ui-desc%'"></p>
|
||||
</div>
|
||||
<div class="image"><img src="/assets/about/ui.png" alt=""></div>
|
||||
</section>
|
||||
<section>
|
||||
<div class="body">
|
||||
<h3>%i18n:common.intro.drive%</h3>
|
||||
<p v-html="'%i18n:common.intro.drive-desc%'"></p>
|
||||
</div>
|
||||
<div class="image"><img src="/assets/about/drive.png" alt=""></div>
|
||||
</section>
|
||||
</section>
|
||||
<p v-html="'%i18n:common.intro.outro%'"></p>
|
||||
</article>
|
||||
</modal>
|
||||
|
||||
<modal name="signup" :class="$store.state.device.darkmode ? 'modal-dark' : 'modal-light'" width="450px" height="auto" scrollable>
|
||||
<header class="formHeader">%i18n:@signup%</header>
|
||||
|
@ -147,6 +189,10 @@ export default Vue.extend({
|
|||
},
|
||||
|
||||
methods: {
|
||||
about() {
|
||||
this.$modal.show('about');
|
||||
},
|
||||
|
||||
signup() {
|
||||
this.$modal.show('signup');
|
||||
},
|
||||
|
@ -199,6 +245,54 @@ export default Vue.extend({
|
|||
margin 0 48px
|
||||
font-size 1.5em
|
||||
|
||||
.v--modal-overlay.about
|
||||
.v--modal-box.v--modal
|
||||
margin 32px 0
|
||||
|
||||
.fpdezooorhntlzyeszemrsqdlgbysvxq
|
||||
padding 64px
|
||||
|
||||
> p:last-child
|
||||
margin-bottom 0
|
||||
|
||||
> h1
|
||||
margin-top 0
|
||||
|
||||
> section
|
||||
> h2
|
||||
border-bottom 1px solid isDark ? rgba(#000, 0.2) : rgba(#000, 0.05)
|
||||
|
||||
> section
|
||||
display grid
|
||||
grid-template-rows 1fr
|
||||
grid-template-columns 180px 1fr
|
||||
gap 32px
|
||||
margin-bottom 32px
|
||||
padding-bottom 32px
|
||||
border-bottom 1px solid isDark ? rgba(#000, 0.2) : rgba(#000, 0.05)
|
||||
|
||||
&:nth-child(odd)
|
||||
grid-template-columns 1fr 180px
|
||||
|
||||
> .body
|
||||
grid-column 1
|
||||
|
||||
> .image
|
||||
grid-column 2
|
||||
|
||||
> .body
|
||||
grid-row 1
|
||||
grid-column 2
|
||||
|
||||
> .image
|
||||
grid-row 1
|
||||
grid-column 1
|
||||
|
||||
> img
|
||||
display block
|
||||
width 100%
|
||||
height 100%
|
||||
object-fit cover
|
||||
</style>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
|
@ -226,16 +320,11 @@ root(isDark)
|
|||
font-size 18px
|
||||
color isDark ? #fff : #444
|
||||
|
||||
> .body
|
||||
display grid
|
||||
grid-template-rows 1fr 1fr 256px 64px
|
||||
grid-template-columns 1fr 1fr 350px
|
||||
gap 16px
|
||||
width 100%
|
||||
max-width 1200px
|
||||
height 1200px
|
||||
> main
|
||||
margin 0 auto
|
||||
padding 64px
|
||||
width 100%
|
||||
max-width 1200px
|
||||
|
||||
.block
|
||||
color isDark ? #fff : #444
|
||||
|
@ -259,137 +348,144 @@ root(isDark)
|
|||
> div
|
||||
overflow auto
|
||||
|
||||
> .main
|
||||
grid-row 1
|
||||
grid-column 1 / 3
|
||||
border-top solid 5px $theme-color
|
||||
> .body
|
||||
display grid
|
||||
grid-template-rows 1fr 1fr 256px 64px
|
||||
grid-template-columns 1fr 1fr 350px
|
||||
gap 16px
|
||||
height 1200px
|
||||
|
||||
> div
|
||||
padding 32px
|
||||
min-height 100%
|
||||
|
||||
> h1
|
||||
margin 0
|
||||
|
||||
> img
|
||||
margin -8px 0 0 -16px
|
||||
max-width 280px
|
||||
|
||||
> .info
|
||||
margin 0 auto 16px auto
|
||||
width $width
|
||||
font-size 14px
|
||||
|
||||
> .stats
|
||||
margin-left 16px
|
||||
padding-left 16px
|
||||
border-left solid 1px isDark ? #fff : #444
|
||||
|
||||
> *
|
||||
margin-right 16px
|
||||
|
||||
> .sign
|
||||
font-size 120%
|
||||
|
||||
> .divider
|
||||
margin 0 16px
|
||||
|
||||
> .signin
|
||||
> .signup
|
||||
cursor pointer
|
||||
|
||||
&:hover
|
||||
color $theme-color
|
||||
|
||||
> .char
|
||||
display block
|
||||
position absolute
|
||||
right 16px
|
||||
bottom 16px
|
||||
width 180px
|
||||
opacity 0.3
|
||||
|
||||
> *:not(.char)
|
||||
z-index 1
|
||||
|
||||
> .announcements
|
||||
grid-row 2
|
||||
grid-column 1
|
||||
|
||||
> div
|
||||
padding 32px
|
||||
> .main
|
||||
grid-row 1
|
||||
grid-column 1 / 3
|
||||
border-top solid 5px $theme-color
|
||||
|
||||
> div
|
||||
padding 0 0 16px 0
|
||||
margin 0 0 16px 0
|
||||
border-bottom 1px solid isDark ? rgba(#000, 0.2) : rgba(#000, 0.05)
|
||||
padding 32px
|
||||
min-height 100%
|
||||
|
||||
> h1
|
||||
margin 0
|
||||
font-size 1.25em
|
||||
|
||||
> .photos
|
||||
grid-row 2
|
||||
grid-column 2
|
||||
> img
|
||||
margin -8px 0 0 -16px
|
||||
max-width 280px
|
||||
|
||||
> div
|
||||
display grid
|
||||
grid-template-rows 1fr 1fr 1fr
|
||||
grid-template-columns 1fr 1fr
|
||||
gap 8px
|
||||
height 100%
|
||||
padding 16px
|
||||
> .info
|
||||
margin 0 auto 16px auto
|
||||
width $width
|
||||
font-size 14px
|
||||
|
||||
> div
|
||||
//border-radius 4px
|
||||
background-position center center
|
||||
background-size cover
|
||||
> .stats
|
||||
margin-left 16px
|
||||
padding-left 16px
|
||||
border-left solid 1px isDark ? #fff : #444
|
||||
|
||||
> .tag-cloud
|
||||
grid-row 3
|
||||
grid-column 1 / 3
|
||||
> *
|
||||
margin-right 16px
|
||||
|
||||
> div
|
||||
height 256px
|
||||
padding 32px
|
||||
> .sign
|
||||
font-size 120%
|
||||
|
||||
> .nav
|
||||
display flex
|
||||
justify-content center
|
||||
align-items center
|
||||
grid-row 4
|
||||
grid-column 1 / 3
|
||||
font-size 14px
|
||||
> .divider
|
||||
margin 0 16px
|
||||
|
||||
> .side
|
||||
display grid
|
||||
grid-row 1 / 5
|
||||
grid-column 3
|
||||
grid-template-rows 1fr 350px
|
||||
grid-template-columns 1fr
|
||||
gap 16px
|
||||
> .signin
|
||||
> .signup
|
||||
cursor pointer
|
||||
|
||||
> .tl
|
||||
grid-row 1
|
||||
grid-column 1
|
||||
overflow auto
|
||||
&:hover
|
||||
color $theme-color
|
||||
|
||||
> .trends
|
||||
> .char
|
||||
display block
|
||||
position absolute
|
||||
right 16px
|
||||
bottom 16px
|
||||
width 180px
|
||||
opacity 0.3
|
||||
|
||||
> *:not(.char)
|
||||
z-index 1
|
||||
|
||||
> .announcements
|
||||
grid-row 2
|
||||
grid-column 1
|
||||
padding 8px
|
||||
|
||||
> .info
|
||||
grid-row 3
|
||||
grid-column 1
|
||||
|
||||
> div
|
||||
padding 32px
|
||||
|
||||
> div
|
||||
padding 0 0 16px 0
|
||||
margin 0 0 16px 0
|
||||
border-bottom 1px solid isDark ? rgba(#000, 0.2) : rgba(#000, 0.05)
|
||||
|
||||
> h1
|
||||
margin 0
|
||||
font-size 1.25em
|
||||
|
||||
> .photos
|
||||
grid-row 2
|
||||
grid-column 2
|
||||
|
||||
> div
|
||||
display grid
|
||||
grid-template-rows 1fr 1fr 1fr
|
||||
grid-template-columns 1fr 1fr
|
||||
gap 8px
|
||||
height 100%
|
||||
padding 16px
|
||||
|
||||
> .body
|
||||
> p
|
||||
display block
|
||||
margin 0
|
||||
> div
|
||||
//border-radius 4px
|
||||
background-position center center
|
||||
background-size cover
|
||||
|
||||
> .tag-cloud
|
||||
grid-row 3
|
||||
grid-column 1 / 3
|
||||
|
||||
> div
|
||||
height 256px
|
||||
padding 32px
|
||||
|
||||
> .nav
|
||||
display flex
|
||||
justify-content center
|
||||
align-items center
|
||||
grid-row 4
|
||||
grid-column 1 / 3
|
||||
font-size 14px
|
||||
|
||||
> .side
|
||||
display grid
|
||||
grid-row 1 / 5
|
||||
grid-column 3
|
||||
grid-template-rows 1fr 350px
|
||||
grid-template-columns 1fr
|
||||
gap 16px
|
||||
|
||||
> .tl
|
||||
grid-row 1
|
||||
grid-column 1
|
||||
overflow auto
|
||||
|
||||
> .trends
|
||||
grid-row 2
|
||||
grid-column 1
|
||||
padding 8px
|
||||
|
||||
> .info
|
||||
grid-row 3
|
||||
grid-column 1
|
||||
|
||||
> div
|
||||
padding 16px
|
||||
|
||||
> .body
|
||||
> p
|
||||
display block
|
||||
margin 0
|
||||
|
||||
.mk-welcome[data-darkmode]
|
||||
root(true)
|
||||
|
|
Loading…
Reference in a new issue