or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

core.mddata-display.mddata-entry.mdfeedback.mdindex.mdlayout.mdnavigation.md

navigation.mddocs/

0

# Navigation Components

1

2

Components for application navigation and wayfinding including menus, breadcrumbs, pagination, and navigation elements.

3

4

## Capabilities

5

6

### Menu Component

7

8

Comprehensive menu system with horizontal, vertical, and inline modes.

9

10

```typescript { .api }

11

/**

12

* Menu directive

13

* Selector: [nz-menu]

14

*/

15

interface NzMenuDirective {

16

/** Menu mode */

17

nzMode: 'vertical' | 'horizontal' | 'inline';

18

/** Menu theme */

19

nzTheme: 'light' | 'dark';

20

/** Inline collapsed state */

21

nzInlineCollapsed: boolean;

22

/** Indent size for inline mode */

23

nzInlineIndent: number;

24

/** Selectable menu items */

25

nzSelectable: boolean;

26

/** Menu click event */

27

nzClick: EventEmitter<NzMenuItemDirective>;

28

}

29

30

/**

31

* Menu item component

32

* Selector: [nz-menu-item]

33

*/

34

interface NzMenuItemComponent {

35

/** Disabled state */

36

nzDisabled: boolean;

37

/** Selected state */

38

nzSelected: boolean;

39

/** Danger style */

40

nzDanger: boolean;

41

/** Padding left */

42

nzPaddingLeft: number | null;

43

/** Menu item title */

44

nzTitle: string | null;

45

/** Match router */

46

nzMatchRouter: boolean;

47

/** Match router exact */

48

nzMatchRouterExact: boolean;

49

}

50

51

/**

52

* Submenu component

53

* Selector: [nz-submenu]

54

*/

55

interface NzSubMenuComponent {

56

/** Submenu title */

57

nzTitle: string | TemplateRef<void>;

58

/** Submenu icon */

59

nzIcon: string;

60

/** Open state */

61

nzOpen: boolean;

62

/** Disabled state */

63

nzDisabled: boolean;

64

/** Menu class for popup mode */

65

nzMenuClassName: string;

66

/** Popup class name */

67

nzPopupClassName: string;

68

/** Open change event */

69

nzOpenChange: EventEmitter<boolean>;

70

}

71

72

/**

73

* Menu group component

74

* Selector: [nz-menu-group]

75

*/

76

interface NzMenuGroupComponent {

77

/** Group title */

78

nzTitle: string | TemplateRef<void>;

79

}

80

81

/**

82

* Menu divider directive

83

* Selector: [nz-menu-divider]

84

*/

85

interface NzMenuDividerDirective {}

86

87

// Module

88

class NzMenuModule {

89

static forRoot(): ModuleWithProviders<NzMenuModule>;

90

}

91

```

92

93

**Usage Examples:**

94

95

```typescript

96

import { NzMenuModule } from 'ng-zorro-antd/menu';

97

98

@Component({

99

template: `

100

<!-- Horizontal menu -->

101

<ul nz-menu nzMode="horizontal" nzTheme="dark">

102

<li nz-menu-item nzSelected>

103

<i nz-icon nzType="mail"></i>

104

Navigation One

105

</li>

106

<li nz-menu-item nzDisabled>

107

<i nz-icon nzType="appstore"></i>

108

Navigation Two

109

</li>

110

<li nz-submenu nzTitle="Navigation Three" nzIcon="setting">

111

<ul>

112

<li nz-menu-group nzTitle="Item 1">

113

<ul>

114

<li nz-menu-item>Option 1</li>

115

<li nz-menu-item>Option 2</li>

116

</ul>

117

</li>

118

</ul>

119

</li>

120

</ul>

121

122

<!-- Vertical inline menu -->

123

<ul nz-menu nzMode="inline" [nzInlineCollapsed]="isCollapsed">

124

<li nz-submenu nzOpen nzTitle="Navigation One" nzIcon="user">

125

<ul>

126

<li nz-menu-item>Option 1</li>

127

<li nz-menu-item>Option 2</li>

128

</ul>

129

</li>

130

<li nz-menu-item>

131

<i nz-icon nzType="video-camera"></i>

132

<span>Navigation Two</span>

133

</li>

134

</ul>

135

`

136

})

137

export class MenuExampleComponent {

138

isCollapsed = false;

139

}

140

```

141

142

### Breadcrumb Component

143

144

Breadcrumb navigation showing the current page location within a hierarchy.

145

146

```typescript { .api }

147

/**

148

* Breadcrumb component

149

* Selector: nz-breadcrumb

150

*/

151

interface NzBreadCrumbComponent {

152

/** Auto generate breadcrumb */

153

nzAutoGenerate: boolean;

154

/** Separator between breadcrumbs */

155

nzSeparator: string | TemplateRef<void> | null;

156

/** Route config for auto generation */

157

nzRouteLabel: string;

158

/** Route config key */

159

nzRouteLabelFn: (label: string) => string;

160

}

161

162

/**

163

* Breadcrumb item component

164

* Selector: nz-breadcrumb-item

165

*/

166

interface NzBreadCrumbItemComponent {

167

/** Overlay for dropdown */

168

nzOverlay: TemplateRef<void>;

169

}

170

171

/**

172

* Breadcrumb separator component

173

* Selector: nz-breadcrumb-separator

174

*/

175

interface NzBreadCrumbSeparatorComponent {}

176

177

// Module

178

class NzBreadCrumbModule {

179

static forRoot(): ModuleWithProviders<NzBreadCrumbModule>;

180

}

181

```

182

183

**Usage Examples:**

184

185

```typescript

186

import { NzBreadCrumbModule } from 'ng-zorro-antd/breadcrumb';

187

188

@Component({

189

template: `

190

<!-- Basic breadcrumb -->

191

<nz-breadcrumb>

192

<nz-breadcrumb-item>

193

<a [routerLink]="['/']">Home</a>

194

</nz-breadcrumb-item>

195

<nz-breadcrumb-item>

196

<a [routerLink]="['/list']">Application List</a>

197

</nz-breadcrumb-item>

198

<nz-breadcrumb-item>

199

Application

200

</nz-breadcrumb-item>

201

</nz-breadcrumb>

202

203

<!-- With custom separator -->

204

<nz-breadcrumb nzSeparator=">">

205

<nz-breadcrumb-item>Home</nz-breadcrumb-item>

206

<nz-breadcrumb-item>Application Center</nz-breadcrumb-item>

207

<nz-breadcrumb-item>Application List</nz-breadcrumb-item>

208

<nz-breadcrumb-item>An Application</nz-breadcrumb-item>

209

</nz-breadcrumb>

210

`

211

})

212

export class BreadcrumbExampleComponent {}

213

```

214

215

### Pagination Component

216

217

Pagination component for breaking up large datasets across multiple pages.

218

219

```typescript { .api }

220

/**

221

* Pagination component

222

* Selector: nz-pagination

223

*/

224

interface NzPaginationComponent {

225

/** Total number of data items */

226

nzTotal: number;

227

/** Current page number */

228

nzPageIndex: number;

229

/** Number of data items per page */

230

nzPageSize: number;

231

/** Page size options */

232

nzPageSizeOptions: number[];

233

/** Show size changer */

234

nzShowSizeChanger: boolean;

235

/** Show quick jumper */

236

nzShowQuickJumper: boolean;

237

/** Show total info */

238

nzShowTotal: TemplateRef<{ $implicit: number; range: [number, number] }> | null;

239

/** Simple mode */

240

nzSimple: boolean;

241

/** Disabled state */

242

nzDisabled: boolean;

243

/** Responsive mode */

244

nzResponsive: boolean;

245

/** Hide on single page */

246

nzHideOnSinglePage: boolean;

247

/** Page size changer options */

248

nzPageSizeOptions: number[];

249

/** Size */

250

nzSize: 'default' | 'small';

251

/** Item render function */

252

nzItemRender: TemplateRef<PaginationItemRenderContext> | null;

253

/** Page index change event */

254

nzPageIndexChange: EventEmitter<number>;

255

/** Page size change event */

256

nzPageSizeChange: EventEmitter<number>;

257

}

258

259

// Types

260

interface PaginationItemRenderContext {

261

$implicit: 'page' | 'prev' | 'next' | 'prev_5' | 'next_5';

262

page: number;

263

}

264

265

// Module

266

class NzPaginationModule {

267

static forRoot(): ModuleWithProviders<NzPaginationModule>;

268

}

269

```

270

271

### Steps Component

272

273

Steps component for guiding users through a process with multiple steps.

274

275

```typescript { .api }

276

/**

277

* Steps component

278

* Selector: nz-steps

279

*/

280

interface NzStepsComponent {

281

/** Current step index */

282

nzCurrent: number;

283

/** Step direction */

284

nzDirection: 'horizontal' | 'vertical';

285

/** Label placement */

286

nzLabelPlacement: 'horizontal' | 'vertical';

287

/** Step type */

288

nzType: 'default' | 'navigation';

289

/** Step size */

290

nzSize: 'default' | 'small';

291

/** Starting index */

292

nzStartIndex: number;

293

/** Status of current step */

294

nzStatus: 'wait' | 'process' | 'finish' | 'error';

295

/** Progress dot mode */

296

nzProgressDot: boolean | TemplateRef<{ $implicit: TemplateRef<void>; status: string; index: number }>;

297

}

298

299

/**

300

* Step component

301

* Selector: nz-step

302

*/

303

interface NzStepComponent {

304

/** Step title */

305

nzTitle: string | TemplateRef<void>;

306

/** Step subtitle */

307

nzSubtitle: string | TemplateRef<void>;

308

/** Step description */

309

nzDescription: string | TemplateRef<void>;

310

/** Step status */

311

nzStatus: 'wait' | 'process' | 'finish' | 'error';

312

/** Step icon */

313

nzIcon: string | TemplateRef<void>;

314

/** Disabled state */

315

nzDisabled: boolean;

316

/** Percentage of progress */

317

nzPercentage: number | null;

318

}

319

320

// Module

321

class NzStepsModule {

322

static forRoot(): ModuleWithProviders<NzStepsModule>;

323

}

324

```

325

326

### Tabs Component

327

328

Tab component for organizing content into multiple panels.

329

330

```typescript { .api }

331

/**

332

* Tab set component

333

* Selector: nz-tabset

334

*/

335

interface NzTabSetComponent {

336

/** Active tab index */

337

nzSelectedIndex: number;

338

/** Tab position */

339

nzTabPosition: 'top' | 'bottom' | 'left' | 'right';

340

/** Tab type */

341

nzType: 'line' | 'card' | 'editable-card';

342

/** Tab size */

343

nzSize: 'large' | 'default' | 'small';

344

/** Animated tabs */

345

nzAnimated: boolean | { inkBar: boolean; tabPane: boolean };

346

/** Tab bar extra content */

347

nzTabBarExtraContent: TemplateRef<void>;

348

/** Show add button */

349

nzShowPagination: boolean;

350

/** Hide all tabs */

351

nzHideAll: boolean;

352

/** Link router */

353

nzLinkRouter: boolean;

354

/** Link exact */

355

nzLinkExact: boolean;

356

/** Center tabs */

357

nzCentered: boolean;

358

/** Tab bar gutter */

359

nzTabBarGutter: number;

360

/** Tab bar style */

361

nzTabBarStyle: NgStyleInterface;

362

/** Selected index change event */

363

nzSelectedIndexChange: EventEmitter<number>;

364

/** Select change event */

365

nzSelectChange: EventEmitter<{ nzSelectedIndex: number; tab: NzTabComponent }>;

366

/** Close event */

367

nzClose: EventEmitter<{ index: number }>;

368

/** Add event */

369

nzAdd: EventEmitter<void>;

370

}

371

372

/**

373

* Tab component

374

* Selector: nz-tab

375

*/

376

interface NzTabComponent {

377

/** Tab title */

378

nzTitle: string | TemplateRef<void>;

379

/** Tab disabled */

380

nzDisabled: boolean;

381

/** Tab closable */

382

nzClosable: boolean;

383

/** Tab force render */

384

nzForceRender: boolean;

385

/** Route link */

386

nzRouterIdentifier: string;

387

/** Click event */

388

nzClick: EventEmitter<void>;

389

/** Context menu event */

390

nzContextmenu: EventEmitter<MouseEvent>;

391

/** Select event */

392

nzSelect: EventEmitter<void>;

393

/** Deselect event */

394

nzDeselect: EventEmitter<void>;

395

}

396

397

// Module

398

class NzTabsModule {

399

static forRoot(): ModuleWithProviders<NzTabsModule>;

400

}

401

```

402

403

### Dropdown Component

404

405

Dropdown component for displaying a list of actions in a floating menu.

406

407

```typescript { .api }

408

/**

409

* Dropdown directive

410

* Selector: [nz-dropdown]

411

*/

412

interface NzDropdownDirective {

413

/** Dropdown menu */

414

nzDropdownMenu: NzDropdownMenuComponent | null;

415

/** Dropdown trigger */

416

nzTrigger: 'click' | 'hover';

417

/** Dropdown placement */

418

nzPlacement: 'bottomLeft' | 'bottomCenter' | 'bottomRight' | 'topLeft' | 'topCenter' | 'topRight';

419

/** Dropdown disabled */

420

nzDisabled: boolean;

421

/** Dropdown visible */

422

nzVisible: boolean;

423

/** Click hide */

424

nzClickHide: boolean;

425

/** Backdrop */

426

nzBackdrop: boolean;

427

/** Overlay class name */

428

nzOverlayClassName: string;

429

/** Overlay style */

430

nzOverlayStyle: NgStyleInterface;

431

/** Visible change event */

432

nzVisibleChange: EventEmitter<boolean>;

433

}

434

435

/**

436

* Dropdown menu component

437

* Selector: nz-dropdown-menu

438

*/

439

interface NzDropdownMenuComponent {

440

/** Dropdown direction */

441

nzSelectable: boolean;

442

}

443

444

/**

445

* Dropdown button directive

446

* Selector: nz-dropdown-button, [nz-dropdown-button]

447

*/

448

interface NzDropdownButtonDirective {

449

/** Button disabled */

450

nzDisabled: boolean;

451

/** Button size */

452

nzSize: 'large' | 'default' | 'small';

453

/** Button type */

454

nzType: 'primary' | 'ghost' | 'dashed' | 'link' | 'text' | 'default';

455

/** Button ghost */

456

nzGhost: boolean;

457

/** Button danger */

458

nzDanger: boolean;

459

/** Button loading */

460

nzLoading: boolean;

461

/** Button icon */

462

nzIcon: string | null;

463

}

464

465

// Module

466

class NzDropDownModule {

467

static forRoot(): ModuleWithProviders<NzDropDownModule>;

468

}

469

```

470

471

### Anchor Component

472

473

Anchor component for in-page navigation with scroll tracking.

474

475

```typescript { .api }

476

/**

477

* Anchor component

478

* Selector: nz-anchor

479

*/

480

interface NzAnchorComponent {

481

/** Anchor container */

482

nzContainer: string | HTMLElement;

483

/** Scroll offset to trigger change */

484

nzOffsetTop: number;

485

/** Scroll offset from bottom */

486

nzOffsetBottom: number;

487

/** Show ink ball */

488

nzShowInkInFixed: boolean;

489

/** Bounds for active anchor */

490

nzBounds: number;

491

/** Target offset for scrolling */

492

nzTargetOffset: number;

493

/** Anchor click event */

494

nzClick: EventEmitter<string>;

495

/** Scroll event */

496

nzScroll: EventEmitter<NzAnchorLinkComponent>;

497

}

498

499

/**

500

* Anchor link component

501

* Selector: nz-anchor-link

502

*/

503

interface NzAnchorLinkComponent {

504

/** Link href */

505

nzHref: string;

506

/** Link title */

507

nzTitle: string | TemplateRef<void>;

508

/** Target element */

509

nzTarget: string;

510

}

511

512

// Module

513

class NzAnchorModule {

514

static forRoot(): ModuleWithProviders<NzAnchorModule>;

515

}

516

```

517

518

### Affix Component

519

520

Affix component for sticking elements to the viewport.

521

522

```typescript { .api }

523

/**

524

* Affix component

525

* Selector: nz-affix

526

*/

527

interface NzAffixComponent {

528

/** Offset from top */

529

nzOffsetTop: number | null;

530

/** Offset from bottom */

531

nzOffsetBottom: number | null;

532

/** Target container */

533

nzTarget: string | Element | Window;

534

/** Change event */

535

nzChange: EventEmitter<boolean>;

536

}

537

538

// Module

539

class NzAffixModule {

540

static forRoot(): ModuleWithProviders<NzAffixModule>;

541

}

542

```

543

544

### Back Top Component

545

546

Back to top component for quick navigation to page top.

547

548

```typescript { .api }

549

/**

550

* Back top component

551

* Selector: nz-back-top

552

*/

553

interface NzBackTopComponent {

554

/** Target container */

555

nzTarget: string | Element | Window;

556

/** Visibility height */

557

nzVisibilityHeight: number;

558

/** Click event */

559

nzClick: EventEmitter<boolean>;

560

/** Duration for scrolling animation */

561

nzDuration: number;

562

}

563

564

// Module

565

class NzBackTopModule {

566

static forRoot(): ModuleWithProviders<NzBackTopModule>;

567

}

568

```

569

570

### Page Header Component

571

572

Page header component for displaying page title and actions.

573

574

```typescript { .api }

575

/**

576

* Page header component

577

* Selector: nz-page-header

578

*/

579

interface NzPageHeaderComponent {

580

/** Page title */

581

nzTitle: string | TemplateRef<void>;

582

/** Page subtitle */

583

nzSubtitle: string | TemplateRef<void>;

584

/** Show back button */

585

nzBackIcon: string | TemplateRef<void> | null;

586

/** Ghost mode */

587

nzGhost: boolean;

588

/** Back event */

589

nzBack: EventEmitter<void>;

590

}

591

592

/**

593

* Page header breadcrumb directive

594

* Selector: [nz-page-header-breadcrumb]

595

*/

596

interface NzPageHeaderBreadcrumbDirective {}

597

598

/**

599

* Page header avatar directive

600

* Selector: [nz-page-header-avatar]

601

*/

602

interface NzPageHeaderAvatarDirective {}

603

604

/**

605

* Page header title directive

606

* Selector: [nz-page-header-title]

607

*/

608

interface NzPageHeaderTitleDirective {}

609

610

/**

611

* Page header subtitle directive

612

* Selector: [nz-page-header-subtitle]

613

*/

614

interface NzPageHeaderSubtitleDirective {}

615

616

/**

617

* Page header content directive

618

* Selector: [nz-page-header-content]

619

*/

620

interface NzPageHeaderContentDirective {}

621

622

/**

623

* Page header extra directive

624

* Selector: [nz-page-header-extra]

625

*/

626

interface NzPageHeaderExtraDirective {}

627

628

/**

629

* Page header footer directive

630

* Selector: [nz-page-header-footer]

631

*/

632

interface NzPageHeaderFooterDirective {}

633

634

/**

635

* Page header tags directive

636

* Selector: [nz-page-header-tags]

637

*/

638

interface NzPageHeaderTagDirective {}

639

640

// Module

641

class NzPageHeaderModule {

642

static forRoot(): ModuleWithProviders<NzPageHeaderModule>;

643

}

644

```