option to put sidebar on the right
Feature request
An option to put the sidebar on the right instead of the left
What problem does this feature solve?
Sometimes people want it on the other side (maybe they embed Docsify somewhere that already has a sidebar on the left, or maybe they have a custom landing page with a custom menu on the right and when they click the link to go to documentation they'd also want the docs to have the sidebar on the same side).
What does the proposed API look like?
rightSidebar: true // or false
or
sidebarPosition: 'right' // or 'left'
How should this be implemented in your opinion?
I think we might be able to achieve this just with CSS, leaving the markup alone.
cc @jhildenbiddle for CSS expertise here.
Are you willing to work on this yourself?
Of course (if/when I get the time)!
+1 for this.
Turns out it was easy to do, it took only a few minutes to modify 3 numbers in the CSS:
Of course the menu icon should be re-positioned too.
I'll make a draft PR once I circle back (I'd like to finish the SSR tests in the other PR).
I think this is a feature best targeted for v5 and discussed in that context.
There's more to consider than just making the menu appear on the right:
- How are other docsify themes affected?
- How are third-party themes affected?
- How are third-party plugins affected (i.e. do any rely on the sidebar-on-left behavior)?
- If the sidebar slides in from the right, should the sidebar toggle also be located on the right?
- How does this behavior look at desktop resolutions?
These are just off the top of my head. I'm sure there are more.
More importantly, not every preference needs to be a core docsify feature. Is this feature useful? Possibly, but given the fact that it has never before been requested in the nearly four years that docsify has existed, I think it's safe to say that this is not a high priority feature. I'd look to our existing issues list and feature requests to get a better idea of where we should be focused.
The good news is that folks that want a sidebar on the right can do so today by adding a custom <style> tag to their index.html file with the tweaked values you mentioned above. No need to wait for a new docsify option. We can target this issue for v5, see what kind of activity it gets, and determine if/how to implement this feature in v5 when the time comes.
Hi @trusktr , I am really interested in having a right-side Sidebar as well - would you please be so kind to share the exact CSS items needing to be changed re: modify 3 numbers in the CSS? If you could also point me in the direction of changes for the menu icon that would be double-awesome๐
Thanks so much! Paul
It's been a while since I've been here. I will circle back soon.
I think it can be a non-breaking change adding an option.
I would love if a new Docsify (v5 or v6?) Would allow people to specify overall templates in the form of custom elements, and Docsify would ship with a default template with its own options, and each 3rd-party template could have it's own options.
#!/JoePea
On Sat, Mar 27, 2021, 6:02 PM Paul Hibbitts @.***> wrote:
Hi @trusktr https://github.com/trusktr , I am really interested in having a right-side Sidebar as well - would you please be so kind to share the exact CSS items needing to be changed re: modify 3 numbers in the CSS? If you could point me in the direction of changes for the menu icon that would be double-awesome๐
Thanks so much! Paul
โ You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/docsifyjs/docsify/issues/1282#issuecomment-808825734, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACIVTRQF76D6QHZ5SSF4EDTFZ5ZRANCNFSM4OYF6MWQ .
@paulhibbitts See these lines:
https://github.com/docsifyjs/docsify/blob/c2cf163fc0a02378f27792ce58ac6e5fc5a8bf65/src/themes/basic/_layout.styl#L209
(try changing left to right)
https://github.com/docsifyjs/docsify/blob/c2cf163fc0a02378f27792ce58ac6e5fc5a8bf65/src/themes/basic/_layout.styl#L423
(Similar, position from the right)
https://github.com/docsifyjs/docsify/blob/c2cf163fc0a02378f27792ce58ac6e5fc5a8bf65/src/themes/basic/_layout.styl#L443
(Possibly negate a number if it moves the wrong direction)
That's about it! Oh, and the sidebar hamburger button needs to be repositioned to the right as well.
Adding an option could simply set, for example, a CSS var to tell the styling to use left or right in a non-breaking way.
Sidenote, a Docsify user can override those values in their own CSS. They're sort of like options in a sense.
Thanks so much @trusktr for the very helpful info! I will give this a go. Also appreciate the tip re: changing these values in custom CSS as that would even be better for my situation etc.๐
I too would love to see this as an option in v5๐
Hi @trusktr , thanks to your help I've got a right-side Sidebar partially working! https://paulhibbitts.github.io/test-docsify-open-course-starter-kit-right-sidebar/#/
Here is my custom CSS so far (for others interested in this via CSS):
.sidebar {
left: unset;
right: 0;
}
@media screen and (max-width: 768px) {
left: unset;
right: - $sidebar-width;
}
body.close {
.sidebar
transform: - translateX($sidebar-width) ;
}
.sidebar + .content {
margin-left: unset;
margin-right: var(--sidebar-width);
transition: right 250ms ease;
}
.app-nav {
margin: 25px 60px 0px 0px;
right: unset;
left: 0;
text-align: left;
}
My CSS skills are minimal, but I've tried to review your draft PR for other needed changes re: sidebar toggle , Navbar display, and the sidebar not visible at first but I've not been able to yet overcome those issues.
Might you please be able to point/help me with those when convenient for you? I will be sure to share back your suggestions so others can also use this approach etc.
Thanks very much, Paul
Hi,
I've also made a custom CSS right sidebar that works across all screen sizes, if anyone is interested. It took more than just a few lines of CSS to make it fully responsive.
Nice! I think we can apply CSS in this way based on an option. @jhildenbiddle (our CSS guru) would you like to bring this in? I imagine docsify-themeable might need to play well with it.
@trusktr -- Sure thing.
I would love to see this feature too, it would specially help folks who are embedding a Docsify-based content within other Web sites and so a left/right sidebar can help to improve UX re: specific display context.