Skip to content

Commit d439f0f

Browse files
committed
feat(navbar): Add title area in the middle
1 parent 710523f commit d439f0f

File tree

5 files changed

+65
-14
lines changed

5 files changed

+65
-14
lines changed

projects/igniteui-angular/migrations/update-9_1_0/changes/inputs.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,14 @@
2525
"selector": "igx-grid",
2626
"type": "component"
2727
}
28+
},
29+
{
30+
"name": "<igx-action-icon",
31+
"replaceWith": "<igx-icon igxActionIcon"
32+
},
33+
{
34+
"name": "IgxActionIconDirective",
35+
"replaceWith": "IgxNavbarActionDirective"
2836
}
2937
]
3038
}

projects/igniteui-angular/src/lib/core/styles/components/navbar/_navbar-theme.scss

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,10 +137,18 @@
137137
}
138138
}
139139

140-
igx-action-icon {
140+
[igxNavbarAction] {
141141
display: flex;
142142
align-items: center;
143143
}
144+
145+
[igxNavbarTitle] {
146+
display: flex;
147+
align-items: center;
148+
font-size: $navbar-title-fz;
149+
line-height: $navbar-title-lh;
150+
user-select: none;
151+
}
144152
}
145153

146154
/// Adds typography styles for the igx-navbar component.

projects/igniteui-angular/src/lib/navbar/navbar.component.html

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
<nav class="igx-navbar" role="navigation" [attr.aria-labelledby]="titleId">
22
<div class="igx-navbar__left">
3-
<igx-icon (click)="_triggerAction()" fontSet="material" *ngIf="isActionButtonVisible">{{actionButtonIcon}}</igx-icon>
4-
<ng-content select="igx-action-icon"></ng-content>
5-
<h1 class="igx-navbar__title" [attr.id]="titleId">{{ title }}</h1>
3+
<igx-icon (click)="_triggerAction()" fontSet="material" *ngIf="isActionButtonVisible">{{actionButtonIcon}}
4+
</igx-icon>
5+
<ng-content select="[igxNavbarAction]"></ng-content>
6+
<h1 *ngIf="!isTitleContentVisible" class="igx-navbar__title" [attr.id]="titleId">{{ title }}</h1>
7+
</div>
8+
<div class="igx-navbar__middle">
9+
<ng-content select="[igxNavbarTitle]"></ng-content>
610
</div>
711
<div class="igx-navbar__right">
812
<ng-content></ng-content>

projects/igniteui-angular/src/lib/navbar/navbar.component.ts

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,15 @@ import { IgxIconModule } from '../icon/public_api';
1717
*/
1818
@Directive({
1919
// tslint:disable-next-line:directive-selector
20-
selector: 'igx-action-icon'
20+
selector: '[igxNavbarAction]'
2121
})
22-
export class IgxActionIconDirective { }
22+
export class IgxNavbarActionDirective { }
23+
24+
@Directive({
25+
selector: '[igxNavbarTitle]',
26+
27+
})
28+
export class IgxNavbarTitleDirective { }
2329

2430
let NEXT_ID = 0;
2531
/**
@@ -81,6 +87,10 @@ export class IgxNavbarComponent {
8187
return this.isVisible;
8288
}
8389

90+
public get isTitleContentVisible(): boolean {
91+
return this.titleContent ? true : false;
92+
}
93+
8494
/**
8595
* Sets whether the action button of the `IgxNavbarComponent` is visible.
8696
* ```html
@@ -133,8 +143,14 @@ export class IgxNavbarComponent {
133143
/**
134144
* @hidden
135145
*/
136-
@ContentChild(IgxActionIconDirective, { read: IgxActionIconDirective })
137-
protected actionIconTemplate: IgxActionIconDirective;
146+
@ContentChild(IgxNavbarActionDirective, { read: IgxNavbarActionDirective })
147+
protected actionIconTemplate: IgxNavbarActionDirective;
148+
149+
/**
150+
* @hidden
151+
*/
152+
@ContentChild(IgxNavbarTitleDirective, { read: IgxNavbarTitleDirective })
153+
protected titleContent: IgxNavbarTitleDirective;
138154

139155
/**
140156
* @hidden
@@ -148,8 +164,8 @@ export class IgxNavbarComponent {
148164
* @hidden
149165
*/
150166
@NgModule({
151-
declarations: [IgxNavbarComponent, IgxActionIconDirective],
152-
exports: [IgxNavbarComponent, IgxActionIconDirective],
167+
declarations: [IgxNavbarComponent, IgxNavbarActionDirective, IgxNavbarTitleDirective],
168+
exports: [IgxNavbarComponent, IgxNavbarActionDirective, IgxNavbarTitleDirective],
153169
imports: [IgxButtonModule, IgxIconModule, CommonModule]
154170
})
155171
export class IgxNavbarModule {

src/app/navbar/navbar.sample.html

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ <h4 class="sample-title">With nav and action icons</h4>
1717
<article class="sample-column">
1818
<h4 class="sample-title">With nav icon</h4>
1919
<div class="navbar-sample">
20-
<igx-navbar [title]="currentView" actionButtonIcon="arrow_back" [isActionButtonVisible]="canGoBack()" (onAction)="navigateBack()">
20+
<igx-navbar [title]="currentView" actionButtonIcon="arrow_back" [isActionButtonVisible]="canGoBack"
21+
(onAction)="navigateBack()">
2122
</igx-navbar>
2223
</div>
2324
</article>
@@ -38,9 +39,23 @@ <h4 class="sample-title">With custom nav icon and action icons</h4>
3839
<igx-icon>favorite</igx-icon>
3940
<igx-icon>more_vert</igx-icon>
4041

41-
<igx-action-icon>
42-
<igx-icon fontSet="material" class="bidirectional-icon">arrow_back</igx-icon>
43-
</igx-action-icon>
42+
<igx-icon igxNavbarAction fontSet="material" class="bidirectional-icon">arrow_back</igx-icon>
43+
</igx-navbar>
44+
</div>
45+
</article>
46+
47+
<article class="sample-column">
48+
<h4 class="sample-title">Navbar with title directive</h4>
49+
<div class="navbar-sample dark-navbar">
50+
<igx-navbar title="Title sample">
51+
<igx-icon igxNavbarAction>home</igx-icon>
52+
<div igxNavbarAction>IG</div>
53+
54+
<div igxNavbarTitle>IG Title</div>
55+
56+
<igx-icon>search</igx-icon>
57+
<igx-icon>favorite</igx-icon>
58+
<igx-icon>more_vert</igx-icon>
4459
</igx-navbar>
4560
</div>
4661
</article>

0 commit comments

Comments
 (0)