Visão geral do componente da barra de navegação Angular
O Ignite UI for Angular IgxNavbarComponent
é um componente de cabeçalho de aplicativo que informa o usuário sobre sua posição atual em um aplicativo e o ajuda a voltar (muito parecido com o botão "voltar" em um navegador). A Barra de Navegação também pode fornecer links para ações rápidas, como pesquisar ou favoritos, ajudando os usuários a navegar suavemente por um aplicativo sem tentar mover para rotas ou estados inválidos. A barra fica no topo do contêiner em que é colocada.
Angular Navbar Example
Getting Started with Ignite UI for Angular Navbar
Para começar a usar o componente Ignite UI for Angular Navbar, primeiro você precisa instalar Ignite UI for Angular. Em um aplicativo Angular existente, digite o seguinte comando:
ng add igniteui-angular
Para obter uma introdução completa ao Ignite UI for Angular, leia o tópico de introdução.
O primeiro passo é importar o IgxNavbarModule
dentro do nosso arquivo app.module.ts.
// app.module.ts
import { IgxNavbarModule } from 'igniteui-angular';
// import { IgxNavbarModule } from '@infragistics/igniteui-angular'; for licensed package
@NgModule({
...
imports: [..., IgxNavbarModule],
...
})
export class AppModule {}
Como alternativa, a partir da 16.0.0
, você pode importar o IgxNavbarComponent
como uma dependência autônoma ou usar o token IGX_NAVBAR_DIRECTIVES
para importar o componente e todos os seus componentes e diretivas de suporte.
// home.component.ts
import { IGX_NAVBAR_DIRECTIVES } from 'igniteui-angular';
// import { IGX_NAVBAR_DIRECTIVES } from '@infragistics/igniteui-angular'; for licensed package
@Component({
selector: 'app-home',
template: '<igx-navbar title="Ignite UI for Angular"></igx-navbar>',
styleUrls: ['home.component.scss'],
standalone: true,
imports: [IGX_NAVBAR_DIRECTIVES],
/* or imports: [IgxNavbarComponent] */
})
export class HomeComponent {}
Agora que você importou o módulo Ignite UI for Angular Navbar ou as diretivas, você pode começar a usar o componente igx-navbar
.
Using the Angular Navbar
Então, no modelo do nosso componente, podemos adicionar o seguinte código para mostrar uma barra de navegação básica com um título:
<!--navbar.component.html-->
<igx-navbar title="Ignite UI for Angular"> </igx-navbar>
Add Menu Button
Para adicionar um botão de menu, mostraremos o botão de ação usando a propriedade actionButtonIcon
e faremos com que ele use um ícone de menu da seguinte maneira:
<!--navbar.component.html-->
<igx-navbar title="Sample App" actionButtonIcon="menu" [isActionButtonVisible]="true"></igx-navbar>
Note
O actionButtonIcon
usa o conjunto de fontes Material por design.
Add Icon Buttons
Podemos tornar nosso aplicativo um pouco mais funcional adicionando opções de pesquisa, favoritos e mais. Para fazer isso, vamos pegar os módulos IgxIconButton e IgxIcon e importá-los em nosso arquivo app.module.ts.
// app.module.ts
...
import { IgxNavbarModule, IgxIconButtonDirective, IgxIconModule } from 'igniteui-angular';
// import { IgxNavbarModule, IgxButtonModule, IgxIconModule } from '@infragistics/igniteui-angular'; for licensed package
@NgModule({
...
imports: [..., IgxIconButtonDirective, IgxIconModule],
})
export class AppModule {}
Em seguida, precisamos atualizar nosso modelo com um botão de ícone para cada uma das opções que queremos que nosso aplicativo forneça:
<!--navbar.component.html-->
<igx-navbar title="Sample App">
<button igxIconButton="flat">
<igx-icon>search</igx-icon>
</button>
<button igxIconButton="flat">
<igx-icon>favorite</igx-icon>
</button>
<button igxIconButton="flat">
<igx-icon>more_vert</igx-icon>
</button>
</igx-navbar>
Se tudo correr bem, você deverá ver o seguinte no seu navegador:
Add Custom Action
E se quisermos usar um modelo personalizado para a navegação do nosso aplicativo na parte mais à esquerda da barra de navegação? Podemos facilmente fazer isso usando a diretiva igx-navbar-action
, que renderizará o conteúdo que fornecemos. Faremos isso usando um botão com o ícone inicial do Font Awesome.
/* navbar.component.css */
@import url("https://unpkg.com/@fortawesome/fontawesome-free-webfonts@^1.0.9/css/fontawesome.css");
@import url("https://unpkg.com/@fortawesome/fontawesome-free-webfonts@^1.0.9/css/fa-regular.css");
@import url("https://unpkg.com/@fortawesome/fontawesome-free-webfonts@^1.0.9/css/fa-solid.css");
<!--navbar.component.html-->
<igx-navbar title="Sample App">
<igx-navbar-action>
<button igxIconButton="flat">
<igx-icon family="fa" name="fa-home"></igx-icon>
</button>
</igx-navbar-action>
<button igxIconButton="flat">
<igx-icon>search</igx-icon>
</button>
<button igxIconButton="flat">
<igx-icon>favorite</igx-icon>
</button>
<button igxIconButton="flat">
<igx-icon>more_vert</igx-icon>
</button>
</igx-navbar>
Por fim, é assim que nossa barra de navegação deve ficar com seu ícone de botão de ação personalizado:
Add Navigation Icon
Se quisermos criar uma barra de navegação com um ícone navegando de volta, devemos seguir alguns passos. Primeiro, podemos usar a propriedade actionButtonIcon
para escolher um ícone adequado do conjunto de fontes Material. Então, podemos fazer uma verificação simples se há páginas visitadas anteriormente para voltar e passar o resultado para a propriedade isActionButtonVisible
. O último passo é criar um método para navegar de volta e conectá-lo à propriedade action
.
<!--navbar.component.html-->
<igx-navbar
title="Ignite UI for Angular"
actionButtonIcon="arrow_back"
[isActionButtonVisible]="canGoBack()"
(action)="navigateBack()"
>
</igx-navbar>
export class NavbarSample3Component {
constructor(private _location: Location) {}
public ngOnInit() {}
public navigateBack() {
this._location.back();
}
public canGoBack() {
return window.history.length > 0;
}
}
Se o exemplo estiver configurado corretamente, você deverá ver o seguinte no seu navegador:
Note
Se igx-navbar-action
ou igxNavbarAction
for fornecido, o actionButtonIcon
padrão não será usado.
Add Custom Title
Se quisermos fornecer um conteúdo personalizado para o título de uma barra de navegação, podemos fazer isso usando a diretiva igx-navbar-title
ou igxNavbarTitle
. Elas substituirão o título padrão da barra de navegação fornecido pela propriedade de entrada title
. O exemplo abaixo tem um título personalizado contendo um link com uma imagem:
<!--navbar.component.html-->
<div class="sample-column">
<igx-navbar>
<igx-navbar-action>
<button igxIconButton="flat">
<igx-icon>menu</igx-icon>
</button>
</igx-navbar-action>
<div igxNavbarTitle>
<a href="https://pt-br.infragistics.com/products/ignite-ui-angular" target="_blank">
<img
src="https://static.infragistics.com/marketing/Website/products/ignite-ui-landing/ignite-ui-logo.svg"
width="120px"
height="50px"
alt
style="margin-top: 7px;"
/>
</a>
</div>
<button igxIconButton="flat">
<igx-icon>search</igx-icon>
</button>
<button igxIconButton="flat">
<igx-icon>favorite</igx-icon>
</button>
<button igxIconButton="flat">
<igx-icon>more_vert</igx-icon>
</button>
</igx-navbar>
</div>
Note
Se igx-navbar-title
ou igxNavbarTitle
for fornecido, o title
padrão não será usado.
Estilização
Para começar a estilizar a barra de navegação, precisamos importar o arquivo index
, onde todas as funções do tema e mixins de componentes estão localizados:
@use "igniteui-angular/theming" as *;
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
Seguindo a abordagem mais simples, criamos um novo tema que estende o navbar-theme
e aceita os parâmetros $text-color
, $background
, $idle-icon-color
e $hover-icon-color
.
$custom-navbar-theme: navbar-theme(
$text-color: #151515,
$background: #dedede,
$idle-icon-color: #151515,
$hover-icon-color: #8c8c8c,
);
Note
Em vez de codificar os valores de cor como acabamos de fazer, podemos obter maior flexibilidade em termos de cores usando as palette
funções e color
. Consulte o Palettes
tópico para obter orientações detalhadas sobre como usá-los.
O último passo é passar o tema recém-criado para o mixin css-vars
:
@include css-vars($custom-navbar-theme);
Demo
API References
- Componente IgxNavbar
- IgxNavbarActionDirectiva
- IgxNavbarTitleDirectiva
- Estilos de componentes IgxNavbar
Componentes e/ou diretivas adicionais com APIs relativas que foram usadas: