Skip to content

AppBar documentation #1749

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

Merged
merged 36 commits into from
Nov 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
d44f8dd
docs(appbar): overview and docs structure
svdimitr Nov 14, 2023
3972cf1
docs(appbar): position article
svdimitr Nov 14, 2023
a0b7a55
docs(appbar): sections article
svdimitr Nov 14, 2023
975f14f
docs(appbar): separators article
svdimitr Nov 14, 2023
428ce1a
docs(appbar): use the correct snippet in the separators article
svdimitr Nov 14, 2023
3d6b7c0
docs(appbar): appearance article
svdimitr Nov 14, 2023
5674812
docs(appbar): add the component to the config file
svdimitr Nov 14, 2023
b85db7c
Update components/appbar/overview.md
svdimitr Nov 14, 2023
6cfa8e4
docs(appbar): remove the position step from overview
svdimitr Nov 14, 2023
87ea70a
Update components/appbar/overview.md
svdimitr Nov 14, 2023
1d28322
Update components/appbar/overview.md
svdimitr Nov 14, 2023
589c32e
Update components/appbar/overview.md
svdimitr Nov 14, 2023
2761ea3
Update components/appbar/overview.md
svdimitr Nov 14, 2023
469c206
Update components/appbar/appearance.md
svdimitr Nov 14, 2023
c65e5a9
Update components/appbar/position.md
svdimitr Nov 14, 2023
3a3f772
Update components/appbar/position.md
svdimitr Nov 14, 2023
5ef1a9f
docs(appbar): link the API from AppBar parameters
svdimitr Nov 14, 2023
4139dbd
Update components/appbar/sections.md
svdimitr Nov 14, 2023
e180546
Update components/appbar/sections.md
svdimitr Nov 14, 2023
ae43599
Update components/appbar/sections.md
svdimitr Nov 14, 2023
feb61d7
docs(appbar): beautify the snippet in the overview article
svdimitr Nov 14, 2023
252a840
docs(appbar): move the class, width, and height to style table
svdimitr Nov 14, 2023
ceca370
docs(appbar): fix the next steps
svdimitr Nov 14, 2023
dc9ba4c
Update components/appbar/separators.md
svdimitr Nov 14, 2023
3b54fa4
Update components/appbar/separators.md
svdimitr Nov 14, 2023
693fbfb
Update components/appbar/separators.md
svdimitr Nov 14, 2023
99ff2ff
docs(appbar): use singular in both columns
svdimitr Nov 14, 2023
59b4027
docs(appbar): improve positions article
svdimitr Nov 14, 2023
e954cd5
docs(appbar): imrpove Spacer docs
svdimitr Nov 14, 2023
94232d9
Update components/appbar/overview.md
svdimitr Nov 14, 2023
4b10b5d
Update components/appbar/overview.md
svdimitr Nov 14, 2023
8da108a
Update components/appbar/separators.md
svdimitr Nov 14, 2023
012ec13
Update components/appbar/separators.md
svdimitr Nov 14, 2023
c3416cd
Update components/appbar/separators.md
svdimitr Nov 14, 2023
959a512
Update components/appbar/separators.md
svdimitr Nov 14, 2023
771ea7c
Update components/appbar/overview.md
svdimitr Nov 14, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,8 @@ navigation:
title: "Spreadsheet"
"*gauges/arc":
title: "Arc"
"*appbar":
title: "AppBar"
"*autocomplete":
title: "AutoComplete"
"*avatar":
Expand Down Expand Up @@ -603,6 +605,7 @@ intro_columns:
-
title: "Layout"
items:
"AppBar": "appbar-overview"
"Animation Container": "components/animationcontainer/overview"
"Card": "card-overview"
"Carousel": "carousel-overview"
Expand Down
86 changes: 86 additions & 0 deletions components/appbar/appearance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
---
title: Appearance
page_title: AppBar Appearance
description: Appearance settings of the AppBar for Blazor.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use detailed descriptions with a length of around 150 symbols. This is more like a placeholder.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is not, do you have a suggestion for a better description? The feature itself is rather small

slug: appbar-appearance
tags: telerik,blazor,appbar,navbar,appearance
published: True
position: 35
---

# Appearance Settings

This article outlines the available AppBar parameters, which control its appearance.

## ThemeColor

You can change the color of the AppBar by setting the `ThemeColor` parameter to a member of the `Telerik.Blazor.ThemeConstants.AppBar.ThemeColor` class:

| Class members | Manual declarations |
|---------------|--------|
| `Base` | `base` |
| `Primary` | `primary`|
| `Secondary` | `secondary`|
| `Tertiary` | `tertiary`|
| `Info` | `info` |
| `Success` | `success`|
| `Warning` | `warning`|
| `Error` | `error` |
| `Dark` | `dark` |
| `Light` | `light` |
| `Inverse` | `inverse`|

>caption The built-in AppBar colors

````CSHTML
<TelerikDropDownList Data="@ThemeColors" @bind-Value="@SelectedColor" Width="150px"></TelerikDropDownList>

<TelerikAppBar ThemeColor="@SelectedColor">
<AppBarSection>
<span>Our Logo</span>
</AppBarSection>

<AppBarSpacer Size="25%"></AppBarSpacer>

<AppBarSection>
<span>Our Products</span>
</AppBarSection>

<AppBarSpacer Size="50px"></AppBarSpacer>

<AppBarSection>
<span>Our Mission</span>
</AppBarSection>

<AppBarSpacer></AppBarSpacer>

<AppBarSection>
<TelerikSvgIcon Icon="@SvgIcon.User"></TelerikSvgIcon>
</AppBarSection>

<AppBarSeparator></AppBarSeparator>

<AppBarSection>
<TelerikSvgIcon Icon="@SvgIcon.Logout"></TelerikSvgIcon>
</AppBarSection>
</TelerikAppBar>

@code {
private string SelectedColor { get; set; } = "base";

private List<string> ThemeColors { get; set; } = new List<string>()
{
"base",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Better use the static constants, as we want to encourage customers to do the same.

"primary",
"secondary",
"tertiary",
"info",
"success",
"warning",
"error",
"dark",
"light",
"inverse"
};
}
````
131 changes: 131 additions & 0 deletions components/appbar/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
---
title: Overview
page_title: AppBar Overview
description: Discover the AppBar component for Blazor. Learn how to add the component to your app and explore its features like sections, dividers, positioning, and various styling options.
slug: appbar-overview
tags: telerik,blazor,appbar,navbar
published: True
position: 0
---

# Blazor AppBar Overview

The <a href = "https://www.telerik.com/blazor-ui/appbar" target="_blank">Blazor AppBar component</a> helps you build navigation bars for your application seamlessly. This article explains how to start using the component and describes its features.

## Creating Blazor AppBar

1. Add the `<TelerikAppBar>` tag to a Razor file.
1. Use the `<AppBarSection>` child tag to add content to the AppBar component.
1. (optional) Use [spacers or separators](#content-dividers) to add visual distinction between the sections in the AppBar.

>caption Basic configuration of the Telerik AppBar

````CSHTML
<TelerikAppBar>
<AppBarSection>
<span>Company Logo</span>
</AppBarSection>

<AppBarSpacer></AppBarSpacer>

<AppBarSection>
<span>Our Products</span>
</AppBarSection>

<AppBarSeparator></AppBarSeparator>

<AppBarSection>
<span>Our Mission</span>
</AppBarSection>

<AppBarSeparator></AppBarSeparator>

<AppBarSection>
<span>Contact Us</span>
</AppBarSection>

<AppBarSpacer></AppBarSpacer>

<AppBarSection>
<TelerikSvgIcon Icon="@SvgIcon.User"></TelerikSvgIcon>
</AppBarSection>

<AppBarSeparator></AppBarSeparator>

<AppBarSection>
<TelerikSvgIcon Icon="@SvgIcon.Logout"></TelerikSvgIcon>
</AppBarSection>
</TelerikAppBar>
````

## AppBar Sections

Use the AppBar Sections to render arbitrary HTML content to match the UI and UX needs of your application. [Read more about the Blazor AppBar sections...]({%slug appbar-sections%})

## Content Dividers

The AppBar features separators and spacers that can visually divide the component items. [Read more about the Blazor AppBar separators and spacers.]({%slug appbar-separators%}).

## Positioning

You can control the position of the AppBar and how the component behaves according to the flow of the page. [Read more about the Blazor AppBar positioning.]({%slug appbar-position%}).

## AppBar Parameters

The Blazor AppBar provides parameters to configure the component. Also check the [AppBar API Reference](/blazor-ui/api/Telerik.Blazor.Components.TelerikAppBar) for a full list of properties.

@[template](/_contentTemplates/common/parameters-table-styles.md#table-layout)

| Parameter | Type | Description |
| ----------- | ----------- | ----------- |
| `Position` | `AppBarPosition` <br /> (`None`) | The position of the AppBar on the page. [Read more about AppBar positioning.]({%slug appbar-position%}) |
| `PositionMode` | `AppBarPosition` <br /> (`Static`) | Sets how the AppBar is positioned according to the flow of the document. [Read more about AppBar positioning.]({%slug appbar-position%}) |

### Styling and Appearance

The following parameters enable you to customize the appearance of the Blazor AppBar:

| Parameter | Type | Description |
| --- | --- | --- |
| `Class` | `string` | The CSS class to be rendered on the main wrapping element of the AppBar component, which is `<div class="k-appbar">`. Use for [styling customizations]({%slug themes-override%}). |
| `Height` | `string` | The height of the AppBar. |
| `ThemeColor` | `Telerik.Blazor.ThemeConstants.AppBar.ThemeColor` | Adjust the color of the AppBar |
| `Width` | `string` | The width of the AppBar. |

You can find more information for customizing the AppBar appearance in the [Appearance article]({%slug appbar-appearance%}).

## AppBar Reference and Methods

To execute AppBar methods, obtain reference to the component instance with `@ref`.

| Method | Description |
|---------|-------------|
| `Refresh` | Use the method to programmatically re-render the AppBar. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When will this be necessary?


<div class="skip-repl"></div>

````CSHTML
<TelerikButton OnClick="@RefreshAppBar">Refresh AppBar</TelerikButton>

<TelerikAppBar @ref="AppBarRef" />

@code {
private TelerikAppBar AppBarRef { get; set; }

private void RefreshAppBar()
{
AppBarRef.Refresh();
}
}
````

## Next Steps

* [Explore the AppBar Sections]({%slug appbar-sections%})
* [Use the AppBar Sections]({%slug appbar-separators%})
* [Customize the AppBar position]({%slug appbar-position%})
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* [Customize the AppBar position]({%slug appbar-position%})
* [Customize the AppBar Position]({%slug appbar-position%})


## See Also

* [Live AppBar Demos](https://demos.telerik.com/blazor-ui/appbar/overview)
* [AppBar API Reference](/blazor-ui/api/Telerik.Blazor.Components.TelerikAppBar)
41 changes: 41 additions & 0 deletions components/appbar/position.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
title: Position
page_title: AppBar Position
description: Position settings of the AppBar for Blazor.
slug: appbar-position
tags: telerik,blazor,appbar,navbar,position
published: True
position: 35
---

# Position Settings

This article outlines the available AppBar parameters, which control its position.

>note Read the [CSS positioning MDN documentation article](https://developer.mozilla.org/en-US/docs/Web/CSS/position) to get a better understanding of how the AppBar component positioning works.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest removing this link. You should refer to such resources when there is something specific that you don't want to copy and paste here. Or when you need to point to a specific concept.
This note sounds to me like "Go read this and then come back when you're smarter".


## Position

The `Position` parameter accepts a member of the `AppBarPosition` enum and sets the `top` and `bottom` CSS properties:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not realistic to expect everyone to go read the CSS article, or to understand it. Better explain in simple terms what each position configuration will achieve. You can still leave the CSS details for the CSS nerds.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have, I think, the Position only manipulates the top and bottom CSS properties. The PositionMode manipulates the position CSS property, but I have added some short explanations.

Copy link
Contributor

@dimodi dimodi Nov 14, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My idea is to explain the resulting behavior and not just the technical HTML/CSS output of the component. For example - "the component will display at the top of the viewport and not move during page scrolling". Something like that.


| Enum member | Description |
|---------------|--------|
| `None` <br /> (default) | Does not set any values for the `top` and `bottom` CSS properties. |
| `Top` | Sets the `top: 0` and `bottom: auto` CSS properties. |
| `Bottom` | Sets the `top: auto` and `bottom: 0` CSS properties. |

>info The `Position` parameter takes effect when used with fixed [PositionMode](#positionmode).

## PositionMode

The `PositionMode` parameter accepts a member of the `AppBarPositionMode` enum and sets how the AppBar is positioned according to the [flow of the document](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Normal_Flow):

| Enum member | Description |
|---------------|--------|
| `Static` <br /> default value | The AppBar displays at the position where it is defined and scrolls together with the other page content. |
| `Fixed` | The AppBar displays at a fixed place, which depends on the `Position` parameter. The component doesn't scroll with the other page content. |
| `Sticky` | The AppBar displays at the position where it is defined. It scrolls together with the other page content, until it reaches the top of the browser viewport. Then the component will remain there. Use the `Sticky` `PositionMode` together with `Top` `Position` .|

## See Also
Copy link
Contributor

@dimodi dimodi Nov 14, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add the most logical next step(s) before See Also. It's good for SEO too.


* [Live Demo: AppBar Position](https://demos.telerik.com/blazor-ui/appbar/position)
59 changes: 59 additions & 0 deletions components/appbar/sections.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
title: Sections
page_title: AppBar - Sections
description: Add Content in the AppBar Component
slug: appbar-sections
tags: telerik,blazor,appbar,sections,section,content
published: True
position: 1
---

# Sections

The `<AppBarSection>` is a template-based component that allows you to render HTML content or Razor components in the AppBar component.

>note Render content only inside the `<AppBarSection>` tag, otherwise it will display outside the AppBar component.

## AppBar Section Parameters

The nested `AppBarSection` tag exposes parameters:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The nested `AppBarSection` tag exposes parameters:
The nested `AppBarSection` tag exposes the following parameters:


| Parameter | Type and Default Value | Description |
| ----------- | ----------- | ----------- |
| `Class` | `string` | The CSS class that will be rendered on the main wrapping element of the AppBar section. You could use that class to cascade styles. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| `Class` | `string` | The CSS class that will be rendered on the main wrapping element of the AppBar section. You could use that class to cascade styles. |
| `Class` | `string` | The CSS class that will be rendered on the main wrapping element of the AppBar section. Use that class to cascade styles. |

| `Visible` | `bool` <br /> (`true`) | Specifies if the section will be visible in the AppBar. |

>caption The Telerik AppBar sections with its parameter

````CSHTML
@* The AppBar sections with its parameters *@

<style>
.products-section-class {
font-weight: bolder;
}
</style>

<TelerikButton OnClick="@(() => isSectionVisible = !isSectionVisible)">Toggle the visibility of the Our Mission section</TelerikButton>

<br />

<TelerikAppBar>
<AppBarSection Class="products-section-class">
<span>Our Products</span>
</AppBarSection>

<AppBarSection Visible="@isSectionVisible">
<span>Our Mission</span>
</AppBarSection>
</TelerikAppBar>

@code{
private bool isSectionVisible { get; set; } = true;
}
````

## See Also

* [Live Demo: AppBar Overview](https://demos.telerik.com/blazor-ui/appbar/overview)
* [AppBar Overview]({%slug appbar-overview%})
Loading