-
Notifications
You must be signed in to change notification settings - Fork 6.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bottom-nav component #408
Comments
Thanks for opening this up @jelbourn. I plan on implementing and have already begun some of the coding. I'm also working on writing up a design doc as you pointed out. There's several more things I need to think about that will hopefully come out in the design document but here's my initial thoughts. I've been looking at an android/java implementation to learn from that: https://github.com/roughike/BottomBar So far I've thought about providing a declarative approach such as <md-bottomnav>
<md-bottomnav-item>
</md-bottomnav-item>
</md-bottomnav> and a programatic approach that consumes an array <md-bottomnav [items]="items"> The spec mentions that the component can be used for bottom navigation but it doesn't mention anything about its behavior automatically positioning itself to the bottom. I'm not sure if it's more in the spirit that using this component should automatically fix it to the bottom of its containing element, if it shouldn't be concerned with overall layout whatsoever (leaving that up to the consumer of the component), or if it should be a container component that takes up the full height of the view and has a projection area. |
For the API, the first approach is preferable. When you want to include items programmatically, you would use The bottom-nav should behave like the toolbar in WRT to the user being able to decide where to place it. |
Agree with @jelbourn. Also, can we make it |
WIP design document (not very far yet): https://docs.google.com/document/d/1h3fQaEaWYKv9GISAYitKSjbPvgNBB4_veIo2hOAquOE/edit?usp=sharing |
Thinking about the API a bit more while working on the design doc, the main piece of the component from a UI perspective is the set of icons. So I have to think about how to use MD icons and could use some feedback. A few ideas:
Although I'm generally in the composition over inheritance camp as most people are, I think this may be a good use case for it. The nav items are essentially just icons. The only differences I know of being added on in the subtype right now are:
Thoughts? |
@mikehaas763 The content of the bottom-nav items should be completely up to the user. People will most likely put an It should be something like <md-bottom-nav>
<a md-nav-item ...> <md-icon>home</md-icon> </a>
...
</md-bottom-nav> |
@jelbourn I took this statement from the spec too literally: "Because bottom navigation actions are presented as icons, they should be used for content that can be suitably communicated with icons". Meaning I thought it was a restriction material2 would want to match. That makes it a lot easier though so I'll just make that a projection area. |
@jelbourn Do you agree that the component should provide default styling so that if something like the following is used then it will look as it would in the spec? <a md-nav-item>
<md-icon>home</md-icon>
<span>Home</span>
</a> |
@mikehaas763 yes, but it should be via an explicit attribute rather than looking for something like |
update: I'm doing some prototyping to help flush out some design considerations I'm not sure of yet at mikehaas763/material2 in my bottomnav branch. master...mikehaas763:bottomnav |
Forgive my ignorance, but I use a tabs for this exact same functionality... I use CSS to flip the views and you could do the same to hide the indicator. Looking at the design spec's it seems you could use the same code for both components instead of creating something totally different and having to maintain two implementations . Here is an example of a simply flipped tabs component: http://plnkr.co/edit/hyacHu?p=preview Tabs & Bottom Nav: Text or icons, full width, truncation, ripples, I'm just thinking adding a few attributes or css classes would be better than a whole new component.. |
I see the bottom nav as being different from tabs in a few ways:
|
Right, but with so much being the same I was curious why have two codebases. The biggest thing I get is semantically you wouldn't have it be "Tabs" as even though the code is identical the use case is different which I get.. |
Hi! Looking in the design doc, you forgot to include that in tablets and desktops this should be displayed aside, to the left. btw. I agree this may share some code with tabs, but it would easier to understand if you separate concerns. |
@michaeljota just for clarity purposes, my understanding of the spec is different.
This says to me that a consuming application can optionally choose to use a side nav on bigger displays, but not that the component itself should concern itself with resizing and snapping itself to a side nav. If it were a valid use case in the future to have a component that did have knowledge to dynamically use a side nav or bottom nav based on screen size, then I'd think that should be a new component that wraps each respectively. Eg. AutoNavigationMenu etc :) In any case, I'm starting small anyway and can add more features as time goes on. |
Yeah, I see your point. I'm spanish speaker, in spanish But you are right, that may it's saying it is optional. This component should not care about being in a large screen or whatever. :) |
Hey all. <bottom-nav [tabs]="navBarTabs"></bottom-nav> With an interface for the tabs: export interface NavTab {
title: string;
icon: string;
link: string;
}
@Component({
selector: 'bottom-nav',
templateUrl: './bottom-nav.ng.html',
styleUrls: ['./bottom-nav.scss']
})
export class BottomNavComponent {
@Input() tabs: NavTab[];
} |
@pyle revisiting this, my current thinking is that the bottom-nav should have the same API as the tab-nav-bar: <nav md-bottom-nav>
<a md-bottom-nav-item routerLink="troubleshoot"> ... </a>
<a md-bottom-nav-item routerLink="status"> ... </a>
<a md-bottom-nav-item routerLink="faq"> ... </a>
</nav> |
@jelbourn I like that implmentation a lot better, easier to read from the HTML side. I'll start on the design doc sometime next week and open it up for comments |
Hello all, I have been working on in a component, but this one is using bootstrap 4, if any of you want to do an angular material version, just send a pull request it follows the api that you have been speaking here. https://github.com/robertofd1995/BottomBar_Component Thanks also to @pyle , he help me showing me his version |
News? |
@pyle It's been almost 2 YEARS since this issue started, and we still don't have a bottom navbar. Why is it taking so long? |
Hey all, sorry for the silence but I've been pretty busy as of late (and the times before). That being said, im going to dig up my previous code and see where I got up to. From memory I had it working no issues but needed to add some tests and polish up some of the styles. |
https://twitter.com/stephenfluin/status/1054499414461472768 |
@GoNode5 Hey there! We use multiple sources of information to try to prioritize between technical debt, refactoring, new features, new components, bugfixing, API changes, and more. Not everyone reads our GitHub issues, so combining conversations with developers, information from social media channels, and our GitHub issues & PRs gives us a more holistic picture of developer needs and wants. |
App bars: bottom |
@max-SS that's offtopic for this thread on bottom navigation. There is an issue for App bars: top. But I don't see one for App bars: bottom yet. Would you like to open a feature request? |
Ok thank you very much for the correction. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Please feel free to click the 👍 in the OP to express your interest in this feature. It is currently a P5, the lowest priority and it is listed in the repo's README that it is "not planned". If you need this functionality soon, please look at creating your own implementation and possibly contributing it to an open source project like https://github.com/tiaguinho/material-community-components. |
This comment has been minimized.
This comment has been minimized.
So, i've got a bottombar written in Angular, using Angular Material Theming. Here's a Stackblits: https://stackblitz.com/edit/mat-bottom-bar @Splaktar reckon this could be a candidate for the community components? |
@breningham as mentioned in #408 (comment), bottom navigation (this issue) is different from App bars: bottom. However, I think that would be a good contribution to https://github.com/tiaguinho/material-community-components. Also I think that the shadow should be on top, rather than bottom, for a bottom app bar. |
New year, new component? Any updates here? |
@jlandsmann no updates here. This P5 issue is very low priority at this time. |
This comment has been minimized.
This comment has been minimized.
This seems like an option: https://github.com/kevlatus/ngx-bottom-nav#readme |
hi are there any plans to add this component?, i've try to read the whole conversation but it's not clear to me, what is the official angular-material team position about this feature request:
|
See https://material.io/design/components/bottom-navigation.html
The text was updated successfully, but these errors were encountered: