mirror of
https://github.com/discourse/discourse.git
synced 2024-11-28 12:40:58 +08:00
99073338de
When the experimental Sidebar is enabled, the hamburger drop down is replaced by a sidebar drop down. A user is given the ability to dock and undock the sidebar depending on their personal preference. Do also note that the experimental sidebar is well, considered experimental at this point so I do not intend for the features here to be perfect. What I aim to do here is to ship the changes fast so that it can be used internally by the team to provide feedback. Custom links added by plugins and dark mode toggle has not been implemented as part of this commit as I aim to tackle it in another commit. Co-authored-by: awesomerobot <kris.aubuchon@discourse.org>
194 lines
3.4 KiB
SCSS
194 lines
3.4 KiB
SCSS
// Mobile
|
|
// global styles that apply to the Discourse application specifically
|
|
// BEWARE: changing these styles implies they take effect anywhere they are seen
|
|
// throughout the Discourse application
|
|
|
|
// Base Elements
|
|
|
|
body {
|
|
background-color: var(--secondary);
|
|
}
|
|
|
|
.ios-device {
|
|
textarea {
|
|
background-color: var(--secondary);
|
|
font-size: var(--font-size-ios-input);
|
|
-webkit-tap-highlight-color: transparent;
|
|
}
|
|
|
|
input#reply-title {
|
|
-webkit-tap-highlight-color: transparent;
|
|
}
|
|
}
|
|
|
|
blockquote {
|
|
/* 13px left is intentional here to properly align with post quotes */
|
|
padding: 10px 8px 10px 13px;
|
|
|
|
p {
|
|
margin: 0 0 10px 0;
|
|
|
|
&:last-of-type {
|
|
margin-bottom: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Common classes
|
|
.boxed {
|
|
.contents {
|
|
padding: 10px 0 0 0;
|
|
}
|
|
}
|
|
|
|
.control-group {
|
|
margin-bottom: 9px;
|
|
}
|
|
|
|
.mobile-nav {
|
|
margin: 0;
|
|
padding: 0;
|
|
list-style: none;
|
|
position: relative;
|
|
|
|
a {
|
|
color: var(--primary);
|
|
.d-icon {
|
|
margin-right: 0.25em;
|
|
color: var(--primary-medium);
|
|
}
|
|
}
|
|
|
|
> li > a.expander {
|
|
display: flex;
|
|
align-items: center;
|
|
@include form-item-sizing;
|
|
border-color: var(--primary-medium);
|
|
max-width: 100%;
|
|
.selection {
|
|
@include ellipsis;
|
|
max-width: 120px;
|
|
}
|
|
|
|
> .d-icon {
|
|
&:last-of-type {
|
|
margin-left: auto;
|
|
margin-right: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
.drop {
|
|
display: none;
|
|
&.expanded {
|
|
left: 0;
|
|
display: block;
|
|
position: absolute;
|
|
z-index: z("dropdown");
|
|
background-color: var(--secondary);
|
|
width: 100%;
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 5px;
|
|
border: 1px solid var(--primary-low);
|
|
box-sizing: border-box;
|
|
|
|
li {
|
|
margin: 5px 0;
|
|
padding: 0;
|
|
|
|
a {
|
|
height: 100%;
|
|
display: block;
|
|
padding: 5px 8px;
|
|
@include ellipsis;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.form-vertical {
|
|
.control-group {
|
|
margin-bottom: 12px;
|
|
}
|
|
}
|
|
|
|
// Special elements
|
|
|
|
#main-outlet-wrapper {
|
|
margin-left: unset;
|
|
margin-right: unset;
|
|
}
|
|
|
|
#main-outlet {
|
|
padding-top: 1.25em;
|
|
&:after {
|
|
// setup overlay for sidebar
|
|
content: "";
|
|
opacity: 0;
|
|
transition: opacity 0.2s;
|
|
}
|
|
}
|
|
|
|
#main {
|
|
position: relative;
|
|
}
|
|
|
|
// Styles used before the user is logged into discourse. For example, activating
|
|
// their account or changing their email.
|
|
#simple-container {
|
|
width: 90%;
|
|
}
|
|
|
|
// Sidebar styles
|
|
|
|
#main-outlet-wrapper {
|
|
grid-template-columns: minmax(0, 100vw);
|
|
grid-template-areas: "content";
|
|
gap: 0;
|
|
|
|
.sidebar-wrapper {
|
|
width: 0;
|
|
transition: width 0.2s ease-in-out;
|
|
z-index: z("modal", "content");
|
|
grid-area: content;
|
|
justify-self: end;
|
|
}
|
|
|
|
.sidebar-container {
|
|
padding-bottom: 6.6em; // extra space to watch out for navbar
|
|
}
|
|
}
|
|
|
|
body.has-sidebar-page {
|
|
.d-header-wrap {
|
|
// edits the z-index when the sidebar is open:
|
|
// header
|
|
// sidebar & body overlay
|
|
// composer
|
|
z-index: z("modal", "content") + 1;
|
|
}
|
|
|
|
#main-outlet-wrapper {
|
|
.sidebar-wrapper {
|
|
width: var(--d-sidebar-width);
|
|
margin-right: -10px; // compensate for main-outlet-wrapper padding
|
|
}
|
|
}
|
|
|
|
#main-outlet {
|
|
&:after {
|
|
content: "";
|
|
background: rgb(0, 0, 0); // always a black overlay
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
z-index: z("modal", "overlay");
|
|
opacity: 0.5;
|
|
}
|
|
}
|
|
}
|