diff --git a/ROADMAP.md b/ROADMAP.md
index be67dd7..9788f53 100644
--- a/ROADMAP.md
+++ b/ROADMAP.md
@@ -1,4 +1,4 @@
-# Blazor UI Kit Roadmap � Bootstrap Italia Components
+# Blazor UI Kit Roadmap — Bootstrap Italia Components
This document outlines the development roadmap for a Blazor UI kit library implementing the official [Bootstrap Italia](https://italia.github.io/bootstrap-italia/docs) components. The project targets .NET 9.
diff --git a/docs/README.md b/docs/README.md
index 3a77d84..a935133 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -76,6 +76,13 @@ Pagination control for navigating large data sets across multiple pages.
- Optional jump-to-page input and total-items summary
- Customizable previous/next buttons and alignment
+#### [Toolbar](components/toolbar.md)
+Navigation toolbar for grouping icon-based action items.
+- Horizontal and vertical orientations
+- Three size variants (default, medium, small)
+- Badge counts and labels on items
+- `BitToolbarDivider` sub-component for visual separation
+
### Form Components
BitBlazor provides a comprehensive set of form components that integrate seamlessly with ASP.NET Core Blazor's form system and Bootstrap Italia styling.
diff --git a/docs/components/toolbar.md b/docs/components/toolbar.md
new file mode 100644
index 0000000..eeae6f5
--- /dev/null
+++ b/docs/components/toolbar.md
@@ -0,0 +1,190 @@
+# BitToolbar
+
+The `BitToolbar` component represents a [toolbar using Bootstrap Italia styles](https://italia.github.io/bootstrap-italia/docs/menu-di-navigazione/toolbar/).
+
+## Namespace
+
+```csharp
+BitBlazor.Components
+```
+
+## Description
+
+The Toolbar component provides a navigation bar for grouping and displaying icon-based action items. It supports horizontal and vertical orientations, three size variants, optional badge counts, and a divider sub-component. Items support an active and a disabled state, and are compatible with both static (SSR) and interactive rendering modes.
+
+Each `BitToolbarItem` can be used as a navigation link (via `Href`), a click handler (via `OnClick`), or both at the same time. When both are provided, `OnClick` takes precedence in interactive rendering while `Href` remains available for browser-native behaviors such as right-click → Open in new tab. In static SSR rendering, `Href` is the only navigation mechanism.
+
+## Components
+
+| Component | Description |
+|-----------|-------------|
+| `BitToolbar` | Root container that renders a `
+
+@code {
+ private RenderFragment RenderBadgeLabel() => @@BadgeLabel;
+}
diff --git a/src/BitBlazor/Components/Toolbar/BitToolbarItem.razor.cs b/src/BitBlazor/Components/Toolbar/BitToolbarItem.razor.cs
new file mode 100644
index 0000000..a288ef3
--- /dev/null
+++ b/src/BitBlazor/Components/Toolbar/BitToolbarItem.razor.cs
@@ -0,0 +1,169 @@
+using BitBlazor.Core;
+using Microsoft.AspNetCore.Components;
+using Microsoft.AspNetCore.Components.Web;
+
+namespace BitBlazor.Components;
+
+///
+/// Represents a toolbar item component that can be used within a component.
+///
+public partial class BitToolbarItem
+{
+ [CascadingParameter]
+ BitToolbar Parent { get; set; } = default!;
+
+ [Inject]
+ private NavigationManager NavigationManager { get; set; } = default!;
+
+ ///
+ /// Gets or sets the label for the toolbar item.
+ ///
+ [Parameter]
+ [EditorRequired]
+ public string Label { get; set; } = string.Empty;
+
+ ///
+ /// Gets or sets the name of the icon to be displayed for the toolbar item.
+ ///
+ [Parameter]
+ [EditorRequired]
+ public string IconName { get; set; } = string.Empty;
+
+ ///
+ /// Gets or sets the URL that the toolbar item should link to.
+ /// In SSR rendering, the browser follows this URL directly on click.
+ /// In interactive rendering, this URL is used as a navigation fallback when has no delegate,
+ /// and as a secondary browser behavior target (right-click, Ctrl+Click) when is set.
+ /// When both and are set, takes precedence for primary interaction.
+ ///
+ [Parameter]
+ public string? Href { get; set; }
+
+ ///
+ /// Gets or sets a value indicating whether the toolbar item is active. When set to true, the item will be styled as active.
+ ///
+ [Parameter]
+ public bool Active { get; set; }
+
+ ///
+ /// Gets or sets whether the toolbar item is disabled. When set to true, the item will be styled as disabled and will not respond to user interactions.
+ ///
+ [Parameter]
+ public bool Disabled { get; set; }
+
+ ///
+ /// Gets or sets the count to be displayed as a badge on the toolbar item. If set, a badge will be shown with the specified count.
+ ///
+ [Parameter]
+ public int? BadgeCount { get; set; }
+
+ ///
+ /// Gets or sets the label for the badge on the toolbar item. This label can provide additional context for the badge count.
+ ///
+ [Parameter]
+ public string? BadgeLabel { get; set; }
+
+ ///
+ /// Gets or sets the primary interactive callback, invoked when the toolbar item is clicked.
+ /// When set, it takes precedence over navigation in interactive rendering.
+ /// Not invoked during static (SSR) rendering — provide as a navigation fallback for SSR contexts.
+ ///
+ [Parameter]
+ public EventCallback OnClick { get; set; }
+
+ ///
+ /// Gets or sets additional attributes that do not match any of the explicitly defined parameters.
+ ///
+ [Parameter(CaptureUnmatchedValues = true)]
+ public IDictionary AdditionalAttributes { get; set; } = new Dictionary();
+
+ private bool HasBadgeNumber => BadgeCount.HasValue && BadgeCount.Value > 0;
+
+ private bool HasBadgeLabel => !string.IsNullOrWhiteSpace(BadgeLabel);
+
+ private bool HasBadge => HasBadgeNumber || HasBadgeLabel;
+
+ private bool IsToolbarSizeDefault => Parent.Size is ToolbarSize.Default;
+
+ ///
+ protected override void OnInitialized()
+ {
+ if (Parent is null)
+ {
+ throw new InvalidOperationException("BitToolbarItem component must be used inside a BitToolbar component");
+ }
+ }
+
+ ///
+ protected override void OnParametersSet()
+ {
+ SetDisabled();
+ }
+
+ private void SetDisabled()
+ {
+ if (Disabled)
+ {
+ AdditionalAttributes["aria-disabled"] = "true";
+ }
+ else
+ {
+ AdditionalAttributes.Remove("aria-disabled");
+ }
+ }
+
+ private string ComputeLinkCssClass()
+ {
+ var builder = new CssClassBuilder();
+
+ if (Active)
+ {
+ builder.Add("active");
+ }
+
+ if (Disabled)
+ {
+ builder.Add("disabled");
+ }
+
+ return builder.Build();
+ }
+
+ private string ComputeLabelCssClass()
+ {
+ var builder = new CssClassBuilder();
+
+ var labelClass = Parent.Size switch
+ {
+ ToolbarSize.Medium or ToolbarSize.Small => "visually-hidden",
+ _ => "toolbar-label"
+ };
+ builder.Add(labelClass);
+
+
+ return builder.Build();
+ }
+
+ private async Task ClickAsync()
+ {
+ if (Disabled)
+ return;
+
+ if (OnClick.HasDelegate)
+ {
+ await OnClick.InvokeAsync();
+ }
+ else if (Href is not null)
+ {
+ NavigationManager.NavigateTo(Href);
+ }
+ }
+
+ private async Task OnKeyDownAsync(KeyboardEventArgs args)
+ {
+ if (args.Key is "Enter" or " ")
+ {
+ await ClickAsync();
+ }
+ }
+}
diff --git a/src/BitBlazor/Components/Toolbar/BitToolbarItem.razor.css b/src/BitBlazor/Components/Toolbar/BitToolbarItem.razor.css
new file mode 100644
index 0000000..903e9bf
--- /dev/null
+++ b/src/BitBlazor/Components/Toolbar/BitToolbarItem.razor.css
@@ -0,0 +1,3 @@
+a {
+ cursor: pointer;
+}
diff --git a/src/BitBlazor/Components/Toolbar/ToolbarSize.cs b/src/BitBlazor/Components/Toolbar/ToolbarSize.cs
new file mode 100644
index 0000000..84220e3
--- /dev/null
+++ b/src/BitBlazor/Components/Toolbar/ToolbarSize.cs
@@ -0,0 +1,22 @@
+namespace BitBlazor.Components;
+
+///
+/// Defines the size options for a toolbar component. This enumeration is used to specify the size of the toolbar, allowing for different visual styles and layouts based on the selected size.
+///
+public enum ToolbarSize
+{
+ ///
+ /// The default size for the toolbar
+ ///
+ Default,
+
+ ///
+ /// The medium size for the toolbar, which is smaller than the default size but larger than the small size.
+ ///
+ Medium,
+
+ ///
+ /// The small size for the toolbar.
+ ///
+ Small
+}
diff --git a/src/BitBlazor/Orientation.cs b/src/BitBlazor/Orientation.cs
new file mode 100644
index 0000000..8aa3832
--- /dev/null
+++ b/src/BitBlazor/Orientation.cs
@@ -0,0 +1,17 @@
+namespace BitBlazor;
+
+///
+/// Defines the orientation options for a component.
+///
+public enum Orientation
+{
+ ///
+ /// Vertical orientation
+ ///
+ Vertical,
+
+ ///
+ /// Horizontal orientation
+ ///
+ Horizontal
+}
diff --git a/stories/BitBlazor.Stories/Components/Stories/Components/BitToolbar.stories.razor b/stories/BitBlazor.Stories/Components/Stories/Components/BitToolbar.stories.razor
new file mode 100644
index 0000000..094b47a
--- /dev/null
+++ b/stories/BitBlazor.Stories/Components/Stories/Components/BitToolbar.stories.razor
@@ -0,0 +1,160 @@
+@attribute [Stories("Components/BitToolbar")]
+
+
+
+
+
+
+
+
+
+
+
+
+