Allow column width configuration: allow stretching navbar with columns
This commit is contained in:
parent
258b5e6be2
commit
a29835375a
|
@ -60,6 +60,13 @@ export default {
|
||||||
'-' + this.layoutType
|
'-' + this.layoutType
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
navClasses () {
|
||||||
|
const { navbarColumnStretch } = this.$store.getters.mergedConfig
|
||||||
|
return [
|
||||||
|
'-' + this.layoutType,
|
||||||
|
...(navbarColumnStretch ? ['-column-stretch'] : [])
|
||||||
|
]
|
||||||
|
},
|
||||||
currentUser () { return this.$store.state.users.currentUser },
|
currentUser () { return this.$store.state.users.currentUser },
|
||||||
userBackground () { return this.currentUser.background_image },
|
userBackground () { return this.currentUser.background_image },
|
||||||
instanceBackground () {
|
instanceBackground () {
|
||||||
|
|
15
src/App.scss
15
src/App.scss
|
@ -185,13 +185,14 @@ nav {
|
||||||
--maxiColumn: 45rem;
|
--maxiColumn: 45rem;
|
||||||
--columnGap: 1em;
|
--columnGap: 1em;
|
||||||
--status-margin: 0.75em;
|
--status-margin: 0.75em;
|
||||||
|
--effectiveSidebarColumnWidth: minmax(var(--miniColumn), var(--sidebarColumnWidth, var(--miniColumn)));
|
||||||
|
--effectiveNotifsColumnWidth: minmax(var(--miniColumn), var(--notifsColumnWidth, var(--miniColumn)));
|
||||||
--effectiveContentColumnWidth: minmax(var(--miniColumn), var(--contentColumnWidth, var(--maxiColumn)));
|
--effectiveContentColumnWidth: minmax(var(--miniColumn), var(--contentColumnWidth, var(--maxiColumn)));
|
||||||
|
|
||||||
position: relative;
|
position: relative;
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns:
|
grid-template-columns:
|
||||||
minmax(var(--miniColumn), var(--sidebarColumnWidth, var(--miniColumn)))
|
var(--effectiveSidebarColumnWidth)
|
||||||
var(--effectiveContentColumnWidth);
|
var(--effectiveContentColumnWidth);
|
||||||
grid-template-areas: "sidebar content";
|
grid-template-areas: "sidebar content";
|
||||||
grid-template-rows: 1fr;
|
grid-template-rows: 1fr;
|
||||||
|
@ -288,22 +289,22 @@ nav {
|
||||||
&.-reverse:not(.-wide):not(.-mobile) {
|
&.-reverse:not(.-wide):not(.-mobile) {
|
||||||
grid-template-columns:
|
grid-template-columns:
|
||||||
var(--effectiveContentColumnWidth)
|
var(--effectiveContentColumnWidth)
|
||||||
minmax(var(--miniColumn), var(--sidebarColumnWidth, var(--miniColumn)));
|
var(--effectiveSidebarColumnWidth);
|
||||||
grid-template-areas: "content sidebar";
|
grid-template-areas: "content sidebar";
|
||||||
}
|
}
|
||||||
|
|
||||||
&.-wide {
|
&.-wide {
|
||||||
grid-template-columns:
|
grid-template-columns:
|
||||||
minmax(var(--miniColumn), var(--sidebarColumnWidth, var(--miniColumn)))
|
var(--effectiveSidebarColumnWidth)
|
||||||
var(--effectiveContentColumnWidth)
|
var(--effectiveContentColumnWidth)
|
||||||
minmax(var(--miniColumn), var(--notifsColumnWidth, var(--miniColumn)));
|
var(--effectiveNotifsColumnWidth);
|
||||||
grid-template-areas: "sidebar content notifs";
|
grid-template-areas: "sidebar content notifs";
|
||||||
|
|
||||||
&.-reverse {
|
&.-reverse {
|
||||||
grid-template-columns:
|
grid-template-columns:
|
||||||
minmax(var(--miniColumn), var(--notifsColumnWidth, var(--miniColumn)))
|
var(--effectiveNotifsColumnWidth)
|
||||||
var(--effectiveContentColumnWidth)
|
var(--effectiveContentColumnWidth)
|
||||||
minmax(var(--miniColumn), var(--sidebarColumnWidth, var(--miniColumn)));
|
var(--effectiveSidebarColumnWidth);
|
||||||
grid-template-areas: "notifs content sidebar";
|
grid-template-areas: "notifs content sidebar";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,10 @@
|
||||||
class="app-bg-wrapper"
|
class="app-bg-wrapper"
|
||||||
/>
|
/>
|
||||||
<MobileNav v-if="layoutType === 'mobile'" />
|
<MobileNav v-if="layoutType === 'mobile'" />
|
||||||
<DesktopNav v-else />
|
<DesktopNav
|
||||||
|
v-else
|
||||||
|
:class="navClasses"
|
||||||
|
/>
|
||||||
<Notifications v-if="currentUser" />
|
<Notifications v-if="currentUser" />
|
||||||
<div
|
<div
|
||||||
id="content"
|
id="content"
|
||||||
|
|
|
@ -23,6 +23,26 @@
|
||||||
max-width: 980px;
|
max-width: 980px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.-column-stretch .inner-nav {
|
||||||
|
--miniColumn: 25rem;
|
||||||
|
--maxiColumn: 45rem;
|
||||||
|
--columnGap: 1em;
|
||||||
|
max-width: calc(
|
||||||
|
var(--sidebarColumnWidth, var(--miniColumn)) +
|
||||||
|
var(--contentColumnWidth, var(--maxiColumn)) +
|
||||||
|
var(--columnGap)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.-column-stretch.-wide .inner-nav {
|
||||||
|
max-width: calc(
|
||||||
|
var(--sidebarColumnWidth, var(--miniColumn)) +
|
||||||
|
var(--contentColumnWidth, var(--maxiColumn)) +
|
||||||
|
var(--notifsColumnWidth, var(--miniColumn)) +
|
||||||
|
var(--columnGap)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
&.-logoLeft .inner-nav {
|
&.-logoLeft .inner-nav {
|
||||||
grid-template-columns: auto 2fr 2fr;
|
grid-template-columns: auto 2fr 2fr;
|
||||||
grid-template-areas: "logo sitename actions";
|
grid-template-areas: "logo sitename actions";
|
||||||
|
|
|
@ -122,6 +122,11 @@
|
||||||
{{ $t('settings.right_sidebar') }}
|
{{ $t('settings.right_sidebar') }}
|
||||||
</BooleanSetting>
|
</BooleanSetting>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="navbarColumnStretch">
|
||||||
|
{{ $t('settings.navbar_column_stretch') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<ChoiceSetting
|
<ChoiceSetting
|
||||||
v-if="user"
|
v-if="user"
|
||||||
|
|
|
@ -412,6 +412,7 @@
|
||||||
"hide_isp": "Hide instance-specific panel",
|
"hide_isp": "Hide instance-specific panel",
|
||||||
"hide_shoutbox": "Hide instance shoutbox",
|
"hide_shoutbox": "Hide instance shoutbox",
|
||||||
"right_sidebar": "Reverse order of columns",
|
"right_sidebar": "Reverse order of columns",
|
||||||
|
"navbar_column_stretch": "Stretch navbar to columns width",
|
||||||
"always_show_post_button": "Always show floating New Post button",
|
"always_show_post_button": "Always show floating New Post button",
|
||||||
"hide_wallpaper": "Hide instance wallpaper",
|
"hide_wallpaper": "Hide instance wallpaper",
|
||||||
"preload_images": "Preload images",
|
"preload_images": "Preload images",
|
||||||
|
|
|
@ -87,6 +87,7 @@ export const defaultState = {
|
||||||
sidebarColumnWidth: '25rem',
|
sidebarColumnWidth: '25rem',
|
||||||
contentColumnWidth: '45rem',
|
contentColumnWidth: '45rem',
|
||||||
notifsColumnWidth: '25rem',
|
notifsColumnWidth: '25rem',
|
||||||
|
navbarColumnStretch: false,
|
||||||
listsNavigation: false,
|
listsNavigation: false,
|
||||||
greentext: undefined, // instance default
|
greentext: undefined, // instance default
|
||||||
useAtIcon: undefined, // instance default
|
useAtIcon: undefined, // instance default
|
||||||
|
|
Loading…
Reference in New Issue