From fef4f7fce81d5aca76a8c45713c76c0c482884e7 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 19 Oct 2018 06:18:33 +0900 Subject: #2930 (#2933) * wip * wip * Clean up * wip * wip * wip * wip * wip * wip * wip * wip * :art: * wip * wip --- src/client/app/common/views/components/index.ts | 2 + .../app/common/views/components/profile-editor.vue | 190 +++++++++ .../app/common/views/components/ui/input.vue | 20 +- .../app/common/views/widgets/photo-stream.vue | 3 - src/client/app/desktop/script.ts | 4 +- .../app/desktop/views/components/note-detail.vue | 2 +- .../app/desktop/views/components/note.sub.vue | 104 +++++ src/client/app/desktop/views/components/note.vue | 379 +++++++++++++++++ .../desktop/views/components/notes.note.sub.vue | 91 ---- .../app/desktop/views/components/notes.note.vue | 321 -------------- src/client/app/desktop/views/components/notes.vue | 2 +- .../app/desktop/views/components/settings.2fa.vue | 6 +- .../app/desktop/views/components/settings.api.vue | 6 +- .../desktop/views/components/settings.password.vue | 2 +- .../desktop/views/components/settings.profile.vue | 106 ----- .../app/desktop/views/components/settings.vue | 461 +++++++++++---------- .../app/desktop/views/pages/deck/deck.column.vue | 54 ++- .../desktop/views/pages/deck/deck.note-column.vue | 69 +++ .../app/desktop/views/pages/deck/deck.note.sub.vue | 71 ---- .../app/desktop/views/pages/deck/deck.note.vue | 323 --------------- .../app/desktop/views/pages/deck/deck.notes.vue | 6 +- .../desktop/views/pages/deck/deck.notification.vue | 8 +- .../desktop/views/pages/deck/deck.user-column.vue | 261 ++++++++++++ src/client/app/desktop/views/pages/deck/deck.vue | 45 +- .../app/desktop/views/pages/user/user.photos.vue | 3 - src/client/app/init.ts | 13 + src/client/app/mobile/views/pages/settings.vue | 8 +- .../views/pages/settings/settings.profile.vue | 186 --------- src/client/app/store.ts | 11 +- src/client/theme/dark.json5 | 1 + src/client/theme/light.json5 | 1 + 31 files changed, 1385 insertions(+), 1374 deletions(-) create mode 100644 src/client/app/common/views/components/profile-editor.vue create mode 100644 src/client/app/desktop/views/components/note.sub.vue create mode 100644 src/client/app/desktop/views/components/note.vue delete mode 100644 src/client/app/desktop/views/components/notes.note.sub.vue delete mode 100644 src/client/app/desktop/views/components/notes.note.vue delete mode 100644 src/client/app/desktop/views/components/settings.profile.vue create mode 100644 src/client/app/desktop/views/pages/deck/deck.note-column.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.note.sub.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.note.vue create mode 100644 src/client/app/desktop/views/pages/deck/deck.user-column.vue delete mode 100644 src/client/app/mobile/views/pages/settings/settings.profile.vue (limited to 'src') diff --git a/src/client/app/common/views/components/index.ts b/src/client/app/common/views/components/index.ts index e2b9089d35..0dd013807c 100644 --- a/src/client/app/common/views/components/index.ts +++ b/src/client/app/common/views/components/index.ts @@ -1,5 +1,6 @@ import Vue from 'vue'; +import profileEditor from './profile-editor.vue'; import noteSkeleton from './note-skeleton.vue'; import theme from './theme.vue'; import instance from './instance.vue'; @@ -45,6 +46,7 @@ import uiSelect from './ui/select.vue'; import formButton from './ui/form/button.vue'; import formRadio from './ui/form/radio.vue'; +Vue.component('mk-profile-editor', profileEditor); Vue.component('mk-note-skeleton', noteSkeleton); Vue.component('mk-theme', theme); Vue.component('mk-instance', instance); diff --git a/src/client/app/common/views/components/profile-editor.vue b/src/client/app/common/views/components/profile-editor.vue new file mode 100644 index 0000000000..10bdc0b579 --- /dev/null +++ b/src/client/app/common/views/components/profile-editor.vue @@ -0,0 +1,190 @@ + + + diff --git a/src/client/app/common/views/components/ui/input.vue b/src/client/app/common/views/components/ui/input.vue index abbd5a2feb..7e1a16bb3f 100644 --- a/src/client/app/common/views/components/ui/input.vue +++ b/src/client/app/common/views/components/ui/input.vue @@ -122,17 +122,19 @@ export default Vue.extend({ } }, mounted() { - if (this.$refs.prefix) { - this.$refs.label.style.left = (this.$refs.prefix.offsetLeft + this.$refs.prefix.offsetWidth) + 'px'; - if (this.$refs.prefix.offsetWidth) { - this.$refs.input.style.paddingLeft = this.$refs.prefix.offsetWidth + 'px'; + this.$nextTick(() => { + if (this.$refs.prefix) { + this.$refs.label.style.left = (this.$refs.prefix.offsetLeft + this.$refs.prefix.offsetWidth) + 'px'; + if (this.$refs.prefix.offsetWidth) { + this.$refs.input.style.paddingLeft = this.$refs.prefix.offsetWidth + 'px'; + } } - } - if (this.$refs.suffix) { - if (this.$refs.suffix.offsetWidth) { - this.$refs.input.style.paddingRight = this.$refs.suffix.offsetWidth + 'px'; + if (this.$refs.suffix) { + if (this.$refs.suffix.offsetWidth) { + this.$refs.input.style.paddingRight = this.$refs.suffix.offsetWidth + 'px'; + } } - } + }); }, methods: { focus() { diff --git a/src/client/app/common/views/widgets/photo-stream.vue b/src/client/app/common/views/widgets/photo-stream.vue index 047b01df4f..02cb9204b5 100644 --- a/src/client/app/common/views/widgets/photo-stream.vue +++ b/src/client/app/common/views/widgets/photo-stream.vue @@ -73,9 +73,6 @@ export default define({ border-radius 8px .stream - display -webkit-flex - display -moz-flex - display -ms-flex display flex justify-content center flex-wrap wrap diff --git a/src/client/app/desktop/script.ts b/src/client/app/desktop/script.ts index 85c81d73a2..3c9003cbe7 100644 --- a/src/client/app/desktop/script.ts +++ b/src/client/app/desktop/script.ts @@ -67,8 +67,8 @@ init(async (launch) => { { path: '/tags/:tag', component: MkTag }, { path: '/share', component: MkShare }, { path: '/reversi/:game?', component: MkReversi }, - { path: '/@:user', component: MkUser }, - { path: '/notes/:note', component: MkNote }, + { path: '/@:user', name: 'user', component: MkUser }, + { path: '/notes/:note', name: 'note', component: MkNote }, { path: '/authorize-follow', component: MkFollow } ] }); diff --git a/src/client/app/desktop/views/components/note-detail.vue b/src/client/app/desktop/views/components/note-detail.vue index b119f23d7a..dce5b12615 100644 --- a/src/client/app/desktop/views/components/note-detail.vue +++ b/src/client/app/desktop/views/components/note-detail.vue @@ -91,7 +91,7 @@ import MkPostFormWindow from './post-form-window.vue'; import MkRenoteFormWindow from './renote-form-window.vue'; import MkNoteMenu from '../../../common/views/components/note-menu.vue'; import MkReactionPicker from '../../../common/views/components/reaction-picker.vue'; -import XSub from './notes.note.sub.vue'; +import XSub from './note.sub.vue'; import { sum } from '../../../../../prelude/array'; import noteSubscriber from '../../../common/scripts/note-subscriber'; diff --git a/src/client/app/desktop/views/components/note.sub.vue b/src/client/app/desktop/views/components/note.sub.vue new file mode 100644 index 0000000000..5ba22fc76f --- /dev/null +++ b/src/client/app/desktop/views/components/note.sub.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/src/client/app/desktop/views/components/note.vue b/src/client/app/desktop/views/components/note.vue new file mode 100644 index 0000000000..7fa423b19b --- /dev/null +++ b/src/client/app/desktop/views/components/note.vue @@ -0,0 +1,379 @@ + + + + + + + diff --git a/src/client/app/desktop/views/components/notes.note.sub.vue b/src/client/app/desktop/views/components/notes.note.sub.vue deleted file mode 100644 index ee52670f8f..0000000000 --- a/src/client/app/desktop/views/components/notes.note.sub.vue +++ /dev/null @@ -1,91 +0,0 @@ - - - - - diff --git a/src/client/app/desktop/views/components/notes.note.vue b/src/client/app/desktop/views/components/notes.note.vue deleted file mode 100644 index 7714557ae7..0000000000 --- a/src/client/app/desktop/views/components/notes.note.vue +++ /dev/null @@ -1,321 +0,0 @@ - - - - - - - diff --git a/src/client/app/desktop/views/components/notes.vue b/src/client/app/desktop/views/components/notes.vue index 219fd5db60..768dd4f9d1 100644 --- a/src/client/app/desktop/views/components/notes.vue +++ b/src/client/app/desktop/views/components/notes.vue @@ -40,7 +40,7 @@ import Vue from 'vue'; import * as config from '../../../config'; import getNoteSummary from '../../../../../misc/get-note-summary'; -import XNote from './notes.note.vue'; +import XNote from './note.vue'; const displayLimit = 30; diff --git a/src/client/app/desktop/views/components/settings.2fa.vue b/src/client/app/desktop/views/components/settings.2fa.vue index 3e8c860eba..98e73a95b3 100644 --- a/src/client/app/desktop/views/components/settings.2fa.vue +++ b/src/client/app/desktop/views/components/settings.2fa.vue @@ -2,10 +2,10 @@

%i18n:@intro%%i18n:@detail%

%fa:exclamation-triangle%%i18n:@caution%

-

+

%i18n:@register%

    @@ -13,7 +13,7 @@
  1. %i18n:@scan%
  2. %i18n:@done%
    - + %i18n:@submit%

%fa:info-circle%%i18n:@info%

diff --git a/src/client/app/desktop/views/components/settings.api.vue b/src/client/app/desktop/views/components/settings.api.vue index 113764c3e1..f0103b5d43 100644 --- a/src/client/app/desktop/views/components/settings.api.vue +++ b/src/client/app/desktop/views/components/settings.api.vue @@ -1,10 +1,12 @@ diff --git a/src/client/app/desktop/views/components/settings.password.vue b/src/client/app/desktop/views/components/settings.password.vue index 39896daf67..82b163f1fa 100644 --- a/src/client/app/desktop/views/components/settings.password.vue +++ b/src/client/app/desktop/views/components/settings.password.vue @@ -1,6 +1,6 @@ diff --git a/src/client/app/desktop/views/components/settings.profile.vue b/src/client/app/desktop/views/components/settings.profile.vue deleted file mode 100644 index 15569d3694..0000000000 --- a/src/client/app/desktop/views/components/settings.profile.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - diff --git a/src/client/app/desktop/views/components/settings.vue b/src/client/app/desktop/views/components/settings.vue index 778302a7a5..1a8cb6b0b9 100644 --- a/src/client/app/desktop/views/components/settings.vue +++ b/src/client/app/desktop/views/components/settings.vue @@ -2,38 +2,59 @@
-
-

%i18n:@profile%

- -
- -
-

%i18n:@theme%

- -
- -
-

%i18n:@behaviour%

- - %i18n:@fetch-on-scroll% - %i18n:@fetch-on-scroll-desc% - - - %i18n:@auto-popout% - %i18n:@auto-popout-desc% - +
+ + + +
%fa:B twitter% %i18n:@twitter%
+
+ +
+
+
+ + +
%fa:palette% %i18n:@theme%
+ +
+ +
+
+ + +
%fa:sliders-h% %i18n:@behaviour%
+ +
+ + %i18n:@fetch-on-scroll% + %i18n:@fetch-on-scroll-desc% + + + %i18n:@auto-popout% + %i18n:@auto-popout-desc% + + %i18n:@deck-nav%%i18n:@deck-nav-desc% + +
+ %i18n:@advanced% + + %i18n:@api-via-stream% + %i18n:@api-via-stream-desc% + +
+
%i18n:@note-visibility%
@@ -49,24 +70,26 @@
+ -
- %i18n:@advanced% - - %i18n:@api-via-stream% - %i18n:@api-via-stream-desc% - -
- - -
-

%i18n:@display%

-
- -
-
- - + +
%fa:desktop% %i18n:@display%
+ +
+ %i18n:@customize% +
+
+
%i18n:@wallpaper%
+ %i18n:@choose-wallpaper% + %i18n:@delete-wallpaper% +
+
+
%i18n:@navbar-position%
+ %i18n:@navbar-position-top% + %i18n:@navbar-position-left% + %i18n:@navbar-position-right% +
+
%i18n:@dark-mode% %i18n:@use-shadow% %i18n:@rounded-corners% @@ -75,171 +98,186 @@ %i18n:@contrasted-acct% %i18n:common.show-full-acct% %i18n:common.i-like-sushi% -
- %i18n:@post-form-on-timeline% - %i18n:@suggest-recent-hashtags% - %i18n:@show-clock-on-header% - %i18n:common.always-show-nsfw% - %i18n:@show-reply-target% - %i18n:@show-my-renotes% - %i18n:@show-renoted-my-notes% - %i18n:@show-local-renotes% - %i18n:@show-maps% - %i18n:common.disable-animated-mfm% - %i18n:common.show-reversi-board-labels% - %i18n:common.use-contrast-reversi-stones% +
+
+ %i18n:@post-form-on-timeline% + %i18n:@suggest-recent-hashtags% + %i18n:@show-clock-on-header% + %i18n:common.always-show-nsfw% + %i18n:@show-reply-target% + %i18n:@show-my-renotes% + %i18n:@show-renoted-my-notes% + %i18n:@show-local-renotes% + %i18n:@show-maps% + %i18n:common.disable-animated-mfm% + %i18n:common.show-reversi-board-labels% + %i18n:common.use-contrast-reversi-stones% +
+ + + +
%fa:volume-up% %i18n:@sound%
-
%i18n:@navbar-position%
- %i18n:@navbar-position-top% - %i18n:@navbar-position-left% - %i18n:@navbar-position-right% + + %i18n:@enable-sounds% + %i18n:@enable-sounds-desc% + + + + %fa:volume-up% %i18n:@test% +
+
+ + +
%fa:language% %i18n:@language%
+
+ + + + + + + + + +
+

%fa:info-circle%%i18n:@language-desc%

+
- - -
-

%i18n:@sound%

- - %i18n:@enable-sounds% - %i18n:@enable-sounds-desc% - - - - -
- -
-

%i18n:@mobile%

- %i18n:@disable-via-mobile% -
- -
-

%i18n:@language%

- -
-

%fa:info-circle%%i18n:@language-desc%

-
-
- -
-

%i18n:@cache%

- -
-

%fa:exclamation-triangle%%i18n:@cache-warn%

-
-
- -
-

%i18n:@notification%

- - %i18n:@auto-watch% - %i18n:@auto-watch-desc% - -
- -
-

%i18n:@drive%

- -
- -
-

%i18n:@tags%

- -
- -
-

%i18n:@mute%

- -
- -
-

%i18n:@apps%

- -
- - - -
-

%i18n:@password%

- -
- -
-

%i18n:@2fa%

- -
- - - -
-

API

- -
- -
-

%i18n:@about%

-

%i18n:@operator%: {{ meta.maintainer.name }}

-
- -
-

%i18n:@update%

-

- %i18n:@version% {{ version }} - -

- -
- %i18n:@update-settings% - - %i18n:@prevent-update% - %i18n:@prevent-update-desc% + + + +
%fa:trash-alt R% %i18n:@cache%
+
+ %i18n:@clean-cache% +
+

%fa:exclamation-triangle%%i18n:@cache-warn%

+
+
+
+ + +
%fa:bell R% %i18n:@notification%
+
+ + %i18n:@auto-watch% + %i18n:@auto-watch-desc% -
-
- -
-

%i18n:@advanced-settings%

- - %i18n:@debug-mode% - %i18n:@debug-mode-desc% - - - %i18n:@experimental% - %i18n:@experimental-desc% - -
+ +
+ + +
%fa:cloud% %i18n:@drive%
+
+ +
+
+ + +
%fa:hashtag% %i18n:@tags%
+
+ +
+
+ + +
%fa:ban% %i18n:@mute%
+
+ +
+
+ + +
%fa:puzzle-piece% %i18n:@apps%
+
+ +
+
+ + +
%fa:unlock-alt% %i18n:@password%
+
+ +
+
+ + +
%fa:mobile-alt% %i18n:@2fa%
+
+ +
+
+ + + + +
%fa:key% API
+
+ +
+
+ + +
%fa:info-circle% %i18n:@about%
+
+

%i18n:@operator%: {{ meta.maintainer.name }}

+
+
+ + +
%fa:sync-alt% %i18n:@update%
+
+

+ %i18n:@version% {{ version }} + +

+ +
+ %i18n:@update-settings% + + %i18n:@prevent-update% + %i18n:@prevent-update-desc% + +
+
+
+ + +
%fa:cogs% %i18n:@advanced-settings%
+
+ + %i18n:@debug-mode% + %i18n:@debug-mode-desc% + + + %i18n:@experimental% + %i18n:@experimental-desc% + +
+
+ + diff --git a/src/client/app/desktop/views/pages/deck/deck.note.sub.vue b/src/client/app/desktop/views/pages/deck/deck.note.sub.vue deleted file mode 100644 index 445bf7e365..0000000000 --- a/src/client/app/desktop/views/pages/deck/deck.note.sub.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - - - diff --git a/src/client/app/desktop/views/pages/deck/deck.note.vue b/src/client/app/desktop/views/pages/deck/deck.note.vue deleted file mode 100644 index 03cf3e2911..0000000000 --- a/src/client/app/desktop/views/pages/deck/deck.note.vue +++ /dev/null @@ -1,323 +0,0 @@ - - - - - diff --git a/src/client/app/desktop/views/pages/deck/deck.notes.vue b/src/client/app/desktop/views/pages/deck/deck.notes.vue index 5898f5b05e..c656fe9179 100644 --- a/src/client/app/desktop/views/pages/deck/deck.notes.vue +++ b/src/client/app/desktop/views/pages/deck/deck.notes.vue @@ -17,7 +17,7 @@
+
@@ -19,11 +23,16 @@ import Vue from 'vue'; import XColumnCore from './deck.column-core.vue'; import Menu from '../../../../common/views/components/menu.vue'; import MkUserListsWindow from '../../components/user-lists-window.vue'; +import XUserColumn from './deck.user-column.vue'; +import XNoteColumn from './deck.note-column.vue'; + import * as uuid from 'uuid'; export default Vue.extend({ components: { - XColumnCore + XColumnCore, + XUserColumn, + XNoteColumn }, computed: { @@ -31,15 +40,21 @@ export default Vue.extend({ if (this.$store.state.settings.deck == null) return []; return this.$store.state.settings.deck.columns; }, + layout(): any[] { if (this.$store.state.settings.deck == null) return []; if (this.$store.state.settings.deck.layout == null) return this.$store.state.settings.deck.columns.map(c => [c.id]); return this.$store.state.settings.deck.layout; }, + style(): any { return { height: `calc(100vh - ${this.$store.state.uiHeaderHeight}px)` }; + }, + + temporaryColumn(): any { + return this.$store.state.device.deckTemporaryColumn; } }, @@ -50,6 +65,8 @@ export default Vue.extend({ }, created() { + this.$store.commit('navHook', this.onNav); + if (this.$store.state.settings.deck == null) { const deck = { columns: [/*{ @@ -95,6 +112,8 @@ export default Vue.extend({ }, beforeDestroy() { + this.$store.commit('navHook', null); + document.documentElement.style.overflow = 'auto'; }, @@ -103,6 +122,30 @@ export default Vue.extend({ return this.$refs[id][0]; }, + onNav(to) { + if (!this.$store.state.settings.deckNav) return false; + + if (to.name == 'user') { + this.$store.commit('device/set', { + key: 'deckTemporaryColumn', + value: { + type: 'user', + acct: to.params.user + } + }); + return true; + } else if (to.name == 'note') { + this.$store.commit('device/set', { + key: 'deckTemporaryColumn', + value: { + type: 'note', + noteId: to.params.note + } + }); + return true; + } + }, + add() { this.os.new(Menu, { source: this.$refs.add, diff --git a/src/client/app/desktop/views/pages/user/user.photos.vue b/src/client/app/desktop/views/pages/user/user.photos.vue index 628d5b6d95..2f525b003d 100644 --- a/src/client/app/desktop/views/pages/user/user.photos.vue +++ b/src/client/app/desktop/views/pages/user/user.photos.vue @@ -60,9 +60,6 @@ export default Vue.extend({ margin-right 4px > .stream - display -webkit-flex - display -moz-flex - display -ms-flex display flex justify-content center flex-wrap wrap diff --git a/src/client/app/init.ts b/src/client/app/init.ts index 2cbceb8e78..7277e70d83 100644 --- a/src/client/app/init.ts +++ b/src/client/app/init.ts @@ -148,6 +148,19 @@ export default (callback: (launch: (router: VueRouter, api?: (os: MiOS) => API) }); //#endregion + // Navigation hook + router.beforeEach((to, from, next) => { + if (os.store.state.navHook) { + if (os.store.state.navHook(to)) { + next(false); + } else { + next(); + } + } else { + next(); + } + }); + Vue.mixin({ data() { return { diff --git a/src/client/app/mobile/views/pages/settings.vue b/src/client/app/mobile/views/pages/settings.vue index c0159a0484..6ac8c8bd08 100644 --- a/src/client/app/mobile/views/pages/settings.vue +++ b/src/client/app/mobile/views/pages/settings.vue @@ -5,7 +5,7 @@
- +
%fa:palette% %i18n:@theme%
@@ -148,13 +148,7 @@ import Vue from 'vue'; import { apiUrl, version, codename, langs } from '../../../config'; import checkForUpdate from '../../../common/scripts/check-for-update'; -import XProfile from './settings/settings.profile.vue'; - export default Vue.extend({ - components: { - XProfile - }, - data() { return { apiUrl, diff --git a/src/client/app/mobile/views/pages/settings/settings.profile.vue b/src/client/app/mobile/views/pages/settings/settings.profile.vue deleted file mode 100644 index 160a05a3e0..0000000000 --- a/src/client/app/mobile/views/pages/settings/settings.profile.vue +++ /dev/null @@ -1,186 +0,0 @@ - - - diff --git a/src/client/app/store.ts b/src/client/app/store.ts index 63365f7fba..0a38decfa4 100644 --- a/src/client/app/store.ts +++ b/src/client/app/store.ts @@ -10,6 +10,7 @@ const defaultSettings = { home: null, mobileHome: [], deck: null, + deckNav: true, tagTimelines: [], fetchOnScroll: true, showMaps: true, @@ -57,7 +58,8 @@ const defaultDeviceSettings = { alwaysShowNsfw: false, postStyle: 'standard', navbar: 'top', - mobileNotificationPosition: 'bottom' + mobileNotificationPosition: 'bottom', + deckTemporaryColumn: null }; export default (os: MiOS) => new Vuex.Store({ @@ -68,7 +70,8 @@ export default (os: MiOS) => new Vuex.Store({ state: { i: null, indicate: false, - uiHeaderHeight: 0 + uiHeaderHeight: 0, + navHook: null }, getters: { @@ -90,6 +93,10 @@ export default (os: MiOS) => new Vuex.Store({ setUiHeaderHeight(state, height) { state.uiHeaderHeight = height; + }, + + navHook(state, callback) { + state.navHook = callback; } }, diff --git a/src/client/theme/dark.json5 b/src/client/theme/dark.json5 index 59cff0ae44..deb4c4ceee 100644 --- a/src/client/theme/dark.json5 +++ b/src/client/theme/dark.json5 @@ -174,6 +174,7 @@ desktopSettingsNavItemHover: ':lighten<10<$text', deckAcrylicColumnBg: 'rgba(0, 0, 0, 0.25)', + deckUserColumnBg: ':darken<3<@face', mobileHeaderBg: ':lighten<5<$secondary', mobileHeaderFg: '$text', diff --git a/src/client/theme/light.json5 b/src/client/theme/light.json5 index a1b000530a..c5b3148834 100644 --- a/src/client/theme/light.json5 +++ b/src/client/theme/light.json5 @@ -174,6 +174,7 @@ desktopSettingsNavItemHover: ':darken<10<$text', deckAcrylicColumnBg: 'rgba(0, 0, 0, 0.1)', + deckUserColumnBg: ':darken<4<@face', mobileHeaderBg: ':lighten<5<$secondary', mobileHeaderFg: '$text', -- cgit v1.2.3-freya