diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2018-06-15 07:58:58 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-06-15 07:58:58 +0900 |
| commit | 39b1978ff358986281f4abc28e31a1ded91fe990 (patch) | |
| tree | 4ea8a507adb275b6a29890fe8502c8e0ce6759e2 /src/client/app/mobile | |
| parent | 2.38.3 (diff) | |
| parent | wip (diff) | |
| download | misskey-39b1978ff358986281f4abc28e31a1ded91fe990.tar.gz misskey-39b1978ff358986281f4abc28e31a1ded91fe990.tar.bz2 misskey-39b1978ff358986281f4abc28e31a1ded91fe990.zip | |
Merge pull request #1713 from syuilo/without-vue-material
Without vue material
Diffstat (limited to 'src/client/app/mobile')
| -rw-r--r-- | src/client/app/mobile/script.ts | 17 | ||||
| -rw-r--r-- | src/client/app/mobile/style.styl | 3 | ||||
| -rw-r--r-- | src/client/app/mobile/views/pages/settings.vue | 192 | ||||
| -rw-r--r-- | src/client/app/mobile/views/pages/settings/settings.profile.vue | 100 | ||||
| -rw-r--r-- | src/client/app/mobile/views/pages/signup.vue | 43 | ||||
| -rw-r--r-- | src/client/app/mobile/views/pages/welcome.vue | 183 | ||||
| -rw-r--r-- | src/client/app/mobile/views/widgets/profile.vue | 2 |
7 files changed, 199 insertions, 341 deletions
diff --git a/src/client/app/mobile/script.ts b/src/client/app/mobile/script.ts index d505b38dcc..8ee078d621 100644 --- a/src/client/app/mobile/script.ts +++ b/src/client/app/mobile/script.ts @@ -2,17 +2,11 @@ * Mobile Client */ -import Vue from 'vue'; import VueRouter from 'vue-router'; -import { MdCard, MdButton, MdField, MdMenu, MdList, MdSwitch, MdSubheader, MdDialog, MdDialogAlert, MdRadio } from 'vue-material/dist/components'; -import 'vue-material/dist/vue-material.min.css'; -import 'vue-material/dist/theme/default.css'; - // Style import './style.styl'; import '../../element.scss'; -import '../../md.scss'; import init from '../init'; @@ -44,17 +38,6 @@ import MkSettings from './views/pages/settings.vue'; import MkOthello from './views/pages/othello.vue'; import MkTag from './views/pages/tag.vue'; -Vue.use(MdCard); -Vue.use(MdButton); -Vue.use(MdField); -Vue.use(MdMenu); -Vue.use(MdList); -Vue.use(MdSwitch); -Vue.use(MdSubheader); -Vue.use(MdDialog); -Vue.use(MdDialogAlert); -Vue.use(MdRadio); - /** * init */ diff --git a/src/client/app/mobile/style.styl b/src/client/app/mobile/style.styl index d1ab044eaf..df8f4a8fae 100644 --- a/src/client/app/mobile/style.styl +++ b/src/client/app/mobile/style.styl @@ -10,9 +10,6 @@ html height 100% background #ececed !important - // for md - transition none !important - &[data-darkmode] background #191B22 !important diff --git a/src/client/app/mobile/views/pages/settings.vue b/src/client/app/mobile/views/pages/settings.vue index 8da7a76633..1c5a43ede4 100644 --- a/src/client/app/mobile/views/pages/settings.vue +++ b/src/client/app/mobile/views/pages/settings.vue @@ -1,132 +1,84 @@ <template> <mk-ui> <span slot="header">%fa:cog%%i18n:@settings%</span> - <main> - <p v-html="'%i18n:@signed-in-as%'.replace('{}', '<b>' + name + '</b>')"></p> + <main :data-darkmode="$store.state.device.darkmode"> + <div class="signin-as" v-html="'%i18n:@signed-in-as%'.replace('{}', '<b>' + name + '</b>')"></div> + <div> <x-profile/> - <md-card> - <md-card-header> - <div class="md-title">%fa:palette% %i18n:@design%</div> - </md-card-header> - - <md-card-content> - <div> - <md-switch v-model="darkmode">%i18n:@dark-mode%</md-switch> - </div> - - <div> - <md-switch v-model="$store.state.settings.circleIcons" @change="onChangeCircleIcons">%i18n:@circle-icons%</md-switch> - </div> - - <div> - <div class="md-body-2">%i18n:@timeline%</div> - - <div> - <md-switch v-model="$store.state.settings.showReplyTarget" @change="onChangeShowReplyTarget">%i18n:@show-reply-target%</md-switch> - </div> - - <div> - <md-switch v-model="$store.state.settings.showMyRenotes" @change="onChangeShowMyRenotes">%i18n:@show-my-renotes%</md-switch> - </div> - - <div> - <md-switch v-model="$store.state.settings.showRenotedMyNotes" @change="onChangeShowRenotedMyNotes">%i18n:@show-renoted-my-notes%</md-switch> - </div> - </div> + <ui-card> + <div slot="title">%fa:palette% %i18n:@design%</div> - <div> - <div class="md-body-2">%i18n:@post-style%</div> + <ui-switch v-model="darkmode">%i18n:@dark-mode%</ui-switch> + <ui-switch v-model="$store.state.settings.circleIcons" @change="onChangeCircleIcons">%i18n:@circle-icons%</ui-switch> - <md-radio v-model="postStyle" value="standard">%i18n:@post-style-standard%</md-radio> - <md-radio v-model="postStyle" value="smart">%i18n:@post-style-smart%</md-radio> - </div> - </md-card-content> - </md-card> + <div> + <div>%i18n:@timeline%</div> + <ui-switch v-model="$store.state.settings.showReplyTarget" @change="onChangeShowReplyTarget">%i18n:@show-reply-target%</ui-switch> + <ui-switch v-model="$store.state.settings.showMyRenotes" @change="onChangeShowMyRenotes">%i18n:@show-my-renotes%</ui-switch> + <ui-switch v-model="$store.state.settings.showRenotedMyNotes" @change="onChangeShowRenotedMyNotes">%i18n:@show-renoted-my-notes%</ui-switch> + </div> - <md-card> - <md-card-header> - <div class="md-title">%fa:cog% %i18n:@behavior%</div> - </md-card-header> + <div> + <div>%i18n:@post-style%</div> + <ui-radio v-model="postStyle" value="standard">%i18n:@post-style-standard%</ui-radio> + <ui-radio v-model="postStyle" value="smart">%i18n:@post-style-smart%</ui-radio> + </div> + </ui-card> - <md-card-content> - <div> - <md-switch v-model="$store.state.settings.fetchOnScroll" @change="onChangeFetchOnScroll">%i18n:@fetch-on-scroll%</md-switch> - </div> + <ui-card> + <div slot="title">%fa:cog% %i18n:@behavior%</div> + <ui-switch v-model="$store.state.settings.fetchOnScroll" @change="onChangeFetchOnScroll">%i18n:@fetch-on-scroll%</ui-switch> + <ui-switch v-model="$store.state.settings.disableViaMobile" @change="onChangeDisableViaMobile">%i18n:@disable-via-mobile%</ui-switch> + <ui-switch v-model="loadRawImages">%i18n:@load-raw-images%</ui-switch> + <ui-switch v-model="$store.state.settings.loadRemoteMedia" @change="onChangeLoadRemoteMedia">%i18n:@load-remote-media%</ui-switch> + <ui-switch v-model="lightmode">%i18n:@i-am-under-limited-internet%</ui-switch> + </ui-card> - <div> - <md-switch v-model="$store.state.settings.disableViaMobile" @change="onChangeDisableViaMobile">%i18n:@disable-via-mobile%</md-switch> - </div> + <ui-card> + <div slot="title">%fa:language% %i18n:@lang%</div> - <div> - <md-switch v-model="loadRawImages">%i18n:@load-raw-images%</md-switch> - </div> + <ui-select v-model="lang" placeholder="%i18n:@auto%"> + <optgroup label="%i18n:@recommended%"> + <option value="">%i18n:@auto%</option> + </optgroup> - <div> - <md-switch v-model="$store.state.settings.loadRemoteMedia" @change="onChangeLoadRemoteMedia">%i18n:@load-remote-media%</md-switch> - </div> + <optgroup label="%i18n:@specify-language%"> + <option v-for="x in langs" :value="x[0]" :key="x[0]">{{ x[1] }}</option> + </optgroup> + </ui-select> + <span>%fa:info-circle% %i18n:@lang-tip%</span> + </ui-card> - <div> - <md-switch v-model="lightmode">%i18n:@i-am-under-limited-internet%</md-switch> - </div> - </md-card-content> - </md-card> + <ui-card> + <div slot="title">%fa:B twitter% %i18n:@twitter%</div> - <md-card> - <md-card-header> - <div class="md-title">%fa:language% %i18n:@lang%</div> - </md-card-header> + <p class="account" v-if="$store.state.i.twitter"><a :href="`https://twitter.com/${$store.state.i.twitter.screenName}`" target="_blank">@{{ $store.state.i.twitter.screenName }}</a></p> + <p> + <a :href="`${apiUrl}/connect/twitter`" target="_blank">{{ $store.state.i.twitter ? '%i18n:@twitter-reconnect%' : '%i18n:@twitter-connect%' }}</a> + <span v-if="$store.state.i.twitter"> or </span> + <a :href="`${apiUrl}/disconnect/twitter`" target="_blank" v-if="$store.state.i.twitter">%i18n:@twitter-disconnect%</a> + </p> + </ui-card> - <md-card-content> - <md-field> - <md-select v-model="lang" placeholder="%i18n:@auto%"> - <md-optgroup label="%i18n:@recommended%"> - <md-option value="">%i18n:@auto%</md-option> - </md-optgroup> + <ui-card> + <div slot="title">%fa:sync-alt% %i18n:@update%</div> - <md-optgroup label="%i18n:@specify-language%"> - <md-option v-for="x in langs" :value="x[0]" :key="x[0]">{{ x[1] }}</md-option> - </md-optgroup> - </md-select> - </md-field> - <span class="md-helper-text">%fa:info-circle% %i18n:@lang-tip%</span> - </md-card-content> - </md-card> - - <md-card> - <md-card-header> - <div class="md-title">%fa:B twitter% %i18n:@twitter%</div> - </md-card-header> - - <md-card-content> - <p class="account" v-if="$store.state.i.twitter"><a :href="`https://twitter.com/${$store.state.i.twitter.screenName}`" target="_blank">@{{ $store.state.i.twitter.screenName }}</a></p> - <p> - <a :href="`${apiUrl}/connect/twitter`" target="_blank">{{ $store.state.i.twitter ? '%i18n:@twitter-reconnect%' : '%i18n:@twitter-connect%' }}</a> - <span v-if="$store.state.i.twitter"> or </span> - <a :href="`${apiUrl}/disconnect/twitter`" target="_blank" v-if="$store.state.i.twitter">%i18n:@twitter-disconnect%</a> - </p> - </md-card-content> - </md-card> - - <md-card> - <md-card-header> - <div class="md-title">%fa:sync-alt% %i18n:@update%</div> - </md-card-header> - - <md-card-content> - <div>%i18n:@version% <i>{{ version }}</i></div> - <template v-if="latestVersion !== undefined"> - <div>%i18n:@latest-version% <i>{{ latestVersion ? latestVersion : version }}</i></div> - </template> - <md-button class="md-raised md-primary" @click="checkForUpdate" :disabled="checkingForUpdate"> - <template v-if="checkingForUpdate">%i18n:@update-checking%<mk-ellipsis/></template> - <template v-else>%i18n:@check-for-updates%</template> - </md-button> - </md-card-content> - </md-card> + <div>%i18n:@version% <i>{{ version }}</i></div> + <template v-if="latestVersion !== undefined"> + <div>%i18n:@latest-version% <i>{{ latestVersion ? latestVersion : version }}</i></div> + </template> + <ui-button @click="checkForUpdate" :disabled="checkingForUpdate"> + <template v-if="checkingForUpdate">%i18n:@update-checking%<mk-ellipsis/></template> + <template v-else>%i18n:@check-for-updates%</template> + </ui-button> + </ui-card> </div> - <p><small>ver {{ version }} ({{ codename }})</small></p> + + <footer> + <small>ver {{ version }} ({{ codename }})</small> + </footer> </main> </mk-ui> </template> @@ -267,20 +219,22 @@ export default Vue.extend({ <style lang="stylus" scoped> root(isDark) - padding 0 16px margin 0 auto max-width 500px width 100% - > div - > * - margin-bottom 16px + > .signin-as + margin 16px + padding 16px + text-align center + color isDark ? #49ab63 : #2c662d + background isDark ? #273c34 : #fcfff5 + 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) - > p - display block - margin 24px + > footer + margin 16px text-align center - color isDark ? #cad2da : #a2a9b1 + color isDark ? #c9d2e0 : #888 main[data-darkmode] root(true) diff --git a/src/client/app/mobile/views/pages/settings/settings.profile.vue b/src/client/app/mobile/views/pages/settings/settings.profile.vue index f3444eb1f0..da97cbebd7 100644 --- a/src/client/app/mobile/views/pages/settings/settings.profile.vue +++ b/src/client/app/mobile/views/pages/settings/settings.profile.vue @@ -1,62 +1,49 @@ <template> - <md-card> - <md-card-header> - <div class="md-title">%fa:pencil-alt% %i18n:@title%</div> - </md-card-header> +<ui-card> + <div slot="title">%fa:user% %i18n:@title%</div> - <md-card-content> - <md-field> - <label>%i18n:@name%</label> - <md-input v-model="name" :disabled="saving" md-counter="30"/> - </md-field> + <ui-form :disabled="saving"> + <ui-input v-model="name" :max="30"> + <span>%i18n:@name%</span> + </ui-input> - <md-field> - <label>%i18n:@account%</label> - <span class="md-prefix">@</span> - <md-input v-model="username" readonly></md-input> - <span class="md-suffix">@{{ host }}</span> - </md-field> + <ui-input v-model="username" readonly> + <span>%i18n:@account%</span> + <span slot="prefix">@</span> + <span slot="suffix">@{{ host }}</span> + </ui-input> - <md-field> - <md-icon>%fa:map-marker-alt%</md-icon> - <label>%i18n:@location%</label> - <md-input v-model="location" :disabled="saving"/> - </md-field> + <ui-input v-model="location"> + <span>%i18n:@location%</span> + <span slot="prefix">%fa:map-marker-alt%</span> + </ui-input> - <md-field> - <md-icon>%fa:birthday-cake%</md-icon> - <label>%i18n:@birthday%</label> - <md-input type="date" v-model="birthday" :disabled="saving"/> - </md-field> + <ui-input v-model="birthday" type="date"> + <span>%i18n:@birthday%</span> + <span slot="prefix">%fa:birthday-cake%</span> + </ui-input> - <md-field> - <label>%i18n:@description%</label> - <md-textarea v-model="description" :disabled="saving" md-counter="500"/> - </md-field> + <ui-textarea v-model="description" :max="500"> + <span>%i18n:@description%</span> + </ui-textarea> - <md-field> - <label>%i18n:@avatar%</label> - <md-file @md-change="onAvatarChange"/> - </md-field> + <ui-input type="file" @change="onAvatarChange"> + <span>%i18n:@avatar%</span> + <span slot="icon">%fa:image%</span> + <span slot="text" v-if="avatarUploading">%i18n:@uploading%<mk-ellipsis/></span> + </ui-input> - <md-field> - <label>%i18n:@banner%</label> - <md-file @md-change="onBannerChange"/> - </md-field> + <ui-input type="file" @change="onBannerChange"> + <span>%i18n:@banner%</span> + <span slot="icon">%fa:image%</span> + <span slot="text" v-if="bannerUploading">%i18n:@uploading%<mk-ellipsis/></span> + </ui-input> - <md-dialog-alert - :md-active.sync="uploading" - md-content="%18n:!@uploading%"/> + <ui-switch v-model="isCat">%i18n:@is-cat%</ui-switch> - <div> - <md-switch v-model="isCat">%i18n:@is-cat%</md-switch> - </div> - </md-card-content> - - <md-card-actions> - <md-button class="md-primary" :disabled="saving" @click="save">%i18n:@save%</md-button> - </md-card-actions> - </md-card> + <ui-button @click="save">%i18n:@save%</ui-button> + </ui-form> +</ui-card> </template> <script lang="ts"> @@ -77,7 +64,8 @@ export default Vue.extend({ isBot: false, isCat: false, saving: false, - uploading: false + avatarUploading: false, + bannerUploading: false }; }, @@ -95,7 +83,7 @@ export default Vue.extend({ methods: { onAvatarChange([file]) { - this.uploading = true; + this.avatarUploading = true; const data = new FormData(); data.append('file', file); @@ -108,16 +96,16 @@ export default Vue.extend({ .then(response => response.json()) .then(f => { this.avatarId = f.id; - this.uploading = false; + this.avatarUploading = false; }) .catch(e => { - this.uploading = false; + this.avatarUploading = false; alert('%18n:!@upload-failed%'); }); }, onBannerChange([file]) { - this.uploading = true; + this.bannerUploading = true; const data = new FormData(); data.append('file', file); @@ -130,10 +118,10 @@ export default Vue.extend({ .then(response => response.json()) .then(f => { this.bannerId = f.id; - this.uploading = false; + this.bannerUploading = false; }) .catch(e => { - this.uploading = false; + this.bannerUploading = false; alert('%18n:!@upload-failed%'); }); }, diff --git a/src/client/app/mobile/views/pages/signup.vue b/src/client/app/mobile/views/pages/signup.vue index b8245beb00..47384e2b3c 100644 --- a/src/client/app/mobile/views/pages/signup.vue +++ b/src/client/app/mobile/views/pages/signup.vue @@ -1,57 +1,26 @@ <template> <div class="signup"> <h1>Misskeyをはじめる</h1> - <p>いつでも、どこからでもMisskeyを利用できます。もちろん、無料です。</p> - <div class="form"> - <p>新規登録</p> - <div> - <mk-signup/> - </div> - </div> + <mk-signup/> </div> </template> <script lang="ts"> import Vue from 'vue'; -export default Vue.extend({ - mounted() { - document.documentElement.style.background = '#293946'; - } -}); +export default Vue.extend({}); </script> <style lang="stylus" scoped> .signup - padding 16px + padding 32px margin 0 auto max-width 500px h1 margin 0 - padding 8px + padding 8px 0 0 0 font-size 1.5em - font-weight normal - color #c3c6ca - - & + p - margin 0 0 16px 0 - padding 0 8px 0 8px - color #949fa9 - - .form - background #fff - border solid 1px rgba(#000, 0.2) - border-radius 8px - overflow hidden - - > p - margin 0 - padding 12px 20px - color #555 - background #f5f5f5 - border-bottom solid 1px #ddd - - > div - padding 16px + font-weight bold + color #444 </style> diff --git a/src/client/app/mobile/views/pages/welcome.vue b/src/client/app/mobile/views/pages/welcome.vue index 64cfa5a46c..3bf2a0af9f 100644 --- a/src/client/app/mobile/views/pages/welcome.vue +++ b/src/client/app/mobile/views/pages/welcome.vue @@ -1,29 +1,31 @@ <template> <div class="welcome"> <div> - <h1><b>Misskey</b>へようこそ</h1> - <p>Twitter風ミニブログSNS、Misskeyへようこそ。共有したいことを投稿したり、タイムラインでみんなの投稿を読むこともできます。<br><a href="/signup">アカウントを作成する</a></p> - <div class="form"> - <p>%fa:lock% ログイン</p> + <img :src="$store.state.device.darkmode ? 'assets/title.dark.svg' : 'assets/title.light.svg'" alt="Misskey"> + <p class="host">{{ host }}</p> + <div class="about"> + <h2>{{ name || 'unidentified' }}</h2> + <p v-html="description || '%i18n:common.about%'"></p> + <router-link class="signup" to="/signup">新規登録</router-link> + </div> + <div class="login"> + <form @submit.prevent="onSubmit"> + <ui-input v-model="username" type="text" pattern="^[a-zA-Z0-9_]+$" autofocus required @change="onUsernameChange"> + <span>ユーザー名</span> + <span slot="prefix">@</span> + <span slot="suffix">@{{ host }}</span> + </ui-input> + <ui-input v-model="password" type="password" required> + <span>パスワード</span> + <span slot="prefix">%fa:lock%</span> + </ui-input> + <ui-input v-if="user && user.twoFactorEnabled" v-model="token" type="number" required/> + <ui-button type="submit" :disabled="signing">{{ signing ? 'ログインしています' : 'ログイン' }}</ui-button> + </form> <div> - <form @submit.prevent="onSubmit"> - <input v-model="username" type="text" pattern="^[a-zA-Z0-9_]+$" placeholder="ユーザー名" autofocus required @change="onUsernameChange"/> - <input v-model="password" type="password" placeholder="パスワード" required/> - <input v-if="user && user.twoFactorEnabled" v-model="token" type="number" placeholder="トークン" required/> - <button type="submit" :disabled="signing">{{ signing ? 'ログインしています' : 'ログイン' }}</button> - </form> - <div> - <a :href="`${apiUrl}/signin/twitter`">Twitterでログイン</a> - </div> + <a :href="`${apiUrl}/signin/twitter`">Twitterでログイン</a> </div> </div> - <div class="tl"> - <p>%fa:comments R% タイムラインを見てみる</p> - <mk-welcome-timeline/> - </div> - <div class="users"> - <mk-avatar class="avatar" v-for="user in users" :key="user.id" :user="user"/> - </div> <footer> <small>{{ copyright }}</small> </footer> @@ -33,7 +35,7 @@ <script lang="ts"> import Vue from 'vue'; -import { apiUrl, copyright } from '../../../config'; +import { apiUrl, copyright, host, name, description } from '../../../config'; export default Vue.extend({ data() { @@ -45,7 +47,10 @@ export default Vue.extend({ token: '', apiUrl, copyright, - users: [] + users: [], + host, + name, + description }; }, mounted() { @@ -84,112 +89,74 @@ export default Vue.extend({ <style lang="stylus" scoped> .welcome - background linear-gradient(to bottom, #1e1d65, #bd6659) + text-align center + //background #fff > div - padding 16px + padding 32px margin 0 auto max-width 500px - h1 - margin 0 - padding 8px - font-size 1.5em - font-weight normal - color #cacac3 + > img + display block + max-width 200px + margin 0 auto - & + p - margin 0 0 16px 0 - padding 0 8px 0 8px - color #949fa9 + > .host + display block + text-align center + padding 6px 12px + line-height 32px + font-weight bold + color #333 + background rgba(#000, 0.035) + border-radius 6px - .form - margin-bottom 16px + > .about + margin-top 16px + padding 16px + color #555 background #fff - border solid 1px rgba(#000, 0.2) - border-radius 8px - overflow hidden + border-radius 6px - > p + > h2 margin 0 - padding 12px 20px - color #555 - background #f5f5f5 - border-bottom solid 1px #ddd - - > div - > form - padding 16px - border-bottom solid 1px #ddd + > p + margin 8px - input - display block - padding 12px - margin 0 0 16px 0 - width 100% - font-size 1em - color rgba(#000, 0.7) - background #fff - outline none - border solid 1px #ddd - border-radius 4px + > .signup + font-weight bold - button - display block - width 100% - padding 10px - margin 0 - color #333 - font-size 1em - text-align center - text-decoration none - text-shadow 0 1px 0 rgba(255, 255, 255, 0.9) - background-image linear-gradient(#fafafa, #eaeaea) - border 1px solid #ddd - border-bottom-color #cecece - border-radius 4px + > .login + margin 16px 0 - &:active - background-color #767676 - background-image none - border-color #444 - box-shadow 0 1px 3px rgba(#000, 0.075), inset 0 0 5px rgba(#000, 0.2) + > form - > div - padding 16px + button + display block + width 100% + padding 10px + margin 0 + color #333 + font-size 1em text-align center + text-decoration none + text-shadow 0 1px 0 rgba(255, 255, 255, 0.9) + background-image linear-gradient(#fafafa, #eaeaea) + border 1px solid #ddd + border-bottom-color #cecece + border-radius 4px - > .tl - background #fff - border solid 1px rgba(#000, 0.2) - border-radius 8px - overflow hidden - - > p - margin 0 - padding 12px 20px - color #555 - background #f5f5f5 - border-bottom solid 1px #ddd - - > .mk-welcome-timeline - max-height 300px - overflow auto - - > .users - margin 12px 0 0 0 - - > * - display inline-block - margin 4px - width 38px - height 38px - border-radius 6px + &:active + background-color #767676 + background-image none + border-color #444 + box-shadow 0 1px 3px rgba(#000, 0.075), inset 0 0 5px rgba(#000, 0.2) > footer text-align center - color #fff + color #444 > small display block diff --git a/src/client/app/mobile/views/widgets/profile.vue b/src/client/app/mobile/views/widgets/profile.vue index beae1ffa36..a94f7e94b8 100644 --- a/src/client/app/mobile/views/widgets/profile.vue +++ b/src/client/app/mobile/views/widgets/profile.vue @@ -56,7 +56,7 @@ export default define({ left 92px margin 0 line-height 100px - color #fff !important // !important is for md + color #fff font-weight bold text-shadow 0 0 8px rgba(#000, 0.5) |