Oww i get your idea, thank you so much for your response and amazing work. @Probability
Im really glad that my minor mini project became an idea for something bigger!
great work!
In theory combining the two doesnāt seem like something hard, you can rebuild the navbar as you wish, and make it behave / work / look as you wish, due to it not being based on streamlit, its just a simple html with some redirections.
If i undestand you idea , itās possible to have a fixe navbar?
by fixe navbar, i mean : Each time we click in a new item in menu , the navbar goes down then up,
Hello! Thanks for your great work!
But iām having a problem with the streamlit rerun() feature, every time itās triggered I got the Exception āPlease use the main app.ā
Do you have any workaround on this?
Thanks again!
Hey,
The application needs 2 ports.
1 is for the āBackendā which is the streamlit app, and 1 is for the āFrontendā which is the HTML page with the navbar, in order to use the navbar, you need to open the port with the frontend, which is the port on which the flask app runs with the navbar.
you are getting the āPlease use the main appā because you are trying to access the streamlit app directly, in which situation the navigation function searches for the route, and does not get any.
cheers
Awesome component, thanks for all your work.
I had one question - when using sticky nav, I am unable to access the Streamlit menu - itās normally available by clicking the 3 horizontal lines in the top right of the page, but with sticky_nav set to True, the menu is not accessible. Unless Iām missing something, which is definitely a possibility!
When using sticky mode, the Streamlit menu has to be hidden, as it takes up a horizontal strip that would make the navbar sit lower. Itās the trade off of using the sticky mode. I experimented with putting the navbar over it, but then if you have too many menu entries, the hamburger would mix with the menu items and create an issue.
I figured that something like that was probably the case. Appreciate the response.
No problem, itās funny, Iām partial to using the navbar in non-sticky mode, as I like to fill the space above with a banner, but everyoneās got different tastes
Itās mainly because i wrote the navbar to use with the Hydralit framework and it has the ability to automatically insert a banner over the auto generated navbar in the constructor for the parent app.
app = HydraApp(
title='Secure Hydralit Data Explorer',
favicon="š",
hide_streamlit_markers=True,
#add a nice banner, this banner has been defined as 5 sections with spacing defined by the banner_spacing array below.
use_banner_images=["./resources/hydra.png",None,{'header':"<h1 style='text-align:center;padding: 0px 0px;color:grey;font-size:200%;'>Secure Hydralit Explorer</h1><br>"},None,"./resources/lock.png"],
banner_spacing=[5,30,60,30,5],
use_navbar=True,
navbar_sticky=False,
navbar_animation=True,
navbar_theme=over_theme,
)
Makes this,
This way you can turn the Streamlit hamburger back on by just changing this line,
hide_streamlit_markers=False
Hey @Probability , Hydralit is really great component and I have really found it useful. Just 2 questions, is there any way to change the font using CSS hack? I have tried some things but it is not working. Another is when the menu is in zoomed in, there is hamburger version of the menu which has a transparent background color. Is there any CSS hack to change that? Please let me know as it would be very helpful!!
Thanks for the great component!!
Hi, Iām trying to publish my application in streamlit cloud but I use hydralit as a library and it is giving me a problem to publish my app, it tells me that it does not recognize the library as such, what can I make a friend?
Please DM me the details and Iāll be happy to help, it definitely works in streamlit cloud, so sounds like something about the environment.
Hi @Probability and all,
Hydralit looks amazing. Iāve been playing with the demo sample and have a few questions on styling. Is it possible to style the menu tabs:
- As rectangular highlights like this?
- Change the text color on mouse hover.
- Change the selected menu highlight color.
- Pin the menu fixed to the top and covers the entire width of the page?
- Adjust the top and bottom padding of the menu to make it shorter and tighter at the top?
Thinking of using Hydralit for a project. Any insight or comment is appreciated.
Thanks,
AndyW
As another very nice option which is not mention in this useful thread: GitHub - victoryhb/streamlit-option-menu
i have a question. i made navbar. but the existing multi pages are gone.
Canāt I use navbar and multi pages together?
how to modify the font-size and background only dropdown-menu when navbar in sidebar?
I want to modify the submenu style so it different with menu.
I use st.markdown(āstyleā,unsafte) to setting, the menu didnāt have any change!
<ul class="dropdown-menu show">
<li>
<a class="dropdown-item" href="#NaN" data-toggle="tooltip" data-placement="top" data-html="true">
<i class="fa fa-users"></i> Sub-item 1</a></li>
<li><a class="dropdown-item" href="#NaN" data-toggle="tooltip" data-placement="top" data-html="true">
<i class=""></i>𤣠Sub-item 2</a></li>
<li><a class="dropdown-item" href="#NaN" data-toggle="tooltip" data-placement="top" data-html="true"><i class="fa fa-database"></i> Sub-item 3</a></li></ul>
styl = """
<style>
.css-1vq4p4l.e1fqkh3o4{
padding:4rem 0 1.5rem 1.5rem;
}
.navbar-nav>li>.dropdown-menu.show{
background:#081407!important;
color: purple;
}
.dropdown-item{
padding-left: 0.5rem 1.9rem!important;
}
footer{
visibility:hidden
}
</style>
"""
st.markdown(styl, unsafe_allow_html=True)