Comprehensive React UI component library for building complex, data-dense desktop web applications.
—
Quality
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Pending
The risk profile of this skill
Navigation and menu components for building application structure including breadcrumbs, navbars, tabs, and context menus. These components provide consistent navigation patterns with accessibility support.
Top-level navigation bar components for application headers.
/**
* Horizontal navigation bar container with consistent styling
* @param props - Navbar configuration and content
*/
function Navbar(props: NavbarProps): JSX.Element;
/**
* Section grouping component for organizing navbar content
* @param props - Navbar group alignment and content
*/
function NavbarGroup(props: NavbarGroupProps): JSX.Element;
/**
* Navbar heading component for application titles
* @param props - Heading content and styling
*/
function NavbarHeading(props: NavbarHeadingProps): JSX.Element;
/**
* Visual separator for navbar sections
* @param props - Divider styling options
*/
function NavbarDivider(props: NavbarDividerProps): JSX.Element;
interface NavbarProps extends Props {
fixedToTop?: boolean;
children?: React.ReactNode;
}
interface NavbarGroupProps extends Props {
align?: Alignment;
children?: React.ReactNode;
}
interface NavbarHeadingProps extends Props {
children?: React.ReactNode;
}
interface NavbarDividerProps extends Props {}Usage Examples:
import { Navbar, NavbarGroup, NavbarHeading, NavbarDivider, Button, Alignment } from "@blueprintjs/core";
<Navbar>
<NavbarGroup>
<NavbarHeading>My App</NavbarHeading>
<NavbarDivider />
<Button text="Home" minimal />
<Button text="About" minimal />
</NavbarGroup>
<NavbarGroup align={Alignment.RIGHT}>
<Button text="Login" />
</NavbarGroup>
</Navbar>Hierarchical navigation showing current location.
/**
* Container for breadcrumb navigation items
* @param props - Breadcrumbs configuration and overflow handling
*/
function Breadcrumbs(props: BreadcrumbsProps): JSX.Element;
/**
* Individual breadcrumb item with optional link behavior
* @param props - Breadcrumb content and interaction handlers
*/
function Breadcrumb(props: BreadcrumbProps): JSX.Element;
interface BreadcrumbsProps extends Props {
breadcrumbRenderer?: (props: BreadcrumbProps) => React.ReactNode;
collapseFrom?: Boundary;
currentBreadcrumbRenderer?: (props: BreadcrumbProps) => React.ReactNode;
items: BreadcrumbProps[];
minVisibleItems?: number;
overflowListProps?: Partial<OverflowListProps>;
popoverProps?: Partial<PopoverProps>;
}
interface BreadcrumbProps extends ActionProps, LinkProps, Props {
current?: boolean;
disabled?: boolean;
href?: string;
icon?: IconName | MaybeElement;
target?: string;
text?: React.ReactNode;
}
enum Boundary {
START = "start",
END = "end"
}Vertical menu structures for navigation and actions.
/**
* Vertical menu container for menu items and dividers
* @param props - Menu configuration and content
*/
function Menu(props: MenuProps): JSX.Element;
/**
* Individual menu item with icon, text, and interaction support
* @param props - Menu item content, styling, and event handlers
*/
function MenuItem(props: MenuItemProps): JSX.Element;
/**
* Visual separator between menu sections
* @param props - Menu divider styling and content
*/
function MenuDivider(props: MenuDividerProps): JSX.Element;
interface MenuProps extends Props {
large?: boolean;
ulRef?: React.Ref<HTMLUListElement>;
children?: React.ReactNode;
}
interface MenuItemProps extends ActionProps, LinkProps, Props {
active?: boolean;
disabled?: boolean;
href?: string;
htmlTitle?: string;
icon?: IconName | MaybeElement;
intent?: Intent;
label?: React.ReactNode;
labelClassName?: string;
labelElement?: React.ReactElement;
multiline?: boolean;
popoverProps?: Partial<PopoverProps>;
roleStructure?: "menuitem" | "listoption" | "listitem" | "none";
selected?: boolean;
shouldDismissPopover?: boolean;
submenuProps?: Partial<PopoverProps>;
tagName?: keyof JSX.IntrinsicElements;
target?: string;
text?: React.ReactNode;
textClassName?: string;
children?: React.ReactNode;
}
interface MenuDividerProps extends Props {
title?: React.ReactNode;
}Usage Examples:
import { Menu, MenuItem, MenuDivider, Intent } from "@blueprintjs/core";
<Menu>
<MenuItem icon="new-text-box" text="New File" />
<MenuItem icon="new-object" text="New Folder" />
<MenuDivider />
<MenuItem icon="cog" text="Settings" />
<MenuItem
icon="log-out"
text="Logout"
intent={Intent.DANGER}
onClick={handleLogout}
/>
</Menu>Tabbed interface for organizing content sections.
/**
* Tabbed interface container with tab list and panel management
* @param props - Tabs configuration, selection, and content
*/
function Tabs(props: TabsProps): JSX.Element;
/**
* Individual tab with title, icon, and selection state
* @param props - Tab content and styling options
*/
function Tab(props: TabProps): JSX.Element;
/**
* Content panel associated with a specific tab
* @param props - Tab panel content and configuration
*/
function TabPanel(props: TabPanelProps): JSX.Element;
/**
* Flexible space expander for tab layouts
* @param props - Expander styling options
*/
function TabsExpander(props: Props): JSX.Element;
interface TabsProps extends Props {
animate?: boolean;
defaultSelectedTabId?: TabId;
fill?: boolean;
large?: boolean;
onChange?: (newTabId: TabId, prevTabId: TabId | undefined, event: React.MouseEvent<HTMLElement>) => void;
renderActiveTabPanelOnly?: boolean;
selectedTabId?: TabId;
vertical?: boolean;
children?: React.ReactNode;
}
interface TabProps extends Props {
disabled?: boolean;
icon?: IconName | MaybeElement;
id: TabId;
panel?: React.ReactNode;
panelClassName?: string;
tagName?: keyof JSX.IntrinsicElements;
title?: React.ReactNode;
children?: React.ReactNode;
}
interface TabPanelProps extends Props {
children?: React.ReactNode;
}
type TabId = string | number;
// Alias for TabsExpander
const Expander = TabsExpander;Usage Examples:
import { Tabs, Tab, TabPanel } from "@blueprintjs/core";
// Basic tabs
<Tabs id="example-tabs" onChange={handleTabChange}>
<Tab id="home" title="Home" panel={<div>Home content</div>} />
<Tab id="profile" title="Profile" icon="user" panel={<div>Profile content</div>} />
<Tab id="settings" title="Settings" panel={<div>Settings content</div>} />
</Tabs>
// Controlled tabs with separate panels
<Tabs selectedTabId={activeTab} onChange={setActiveTab}>
<Tab id="tab1" title="First Tab" />
<Tab id="tab2" title="Second Tab" />
</Tabs>
<TabPanel>
{activeTab === "tab1" ? <FirstTabContent /> : <SecondTabContent />}
</TabPanel>import { Breadcrumbs, Button } from "@blueprintjs/core";
const breadcrumbItems = [
{ text: "Home", href: "/" },
{ text: "Documents", href: "/documents" },
{ text: "Projects", href: "/documents/projects" },
{ text: "Current Project", current: true }
];
<Breadcrumbs
items={breadcrumbItems}
minVisibleItems={2}
overflowListProps={{
collapseFrom: "start"
}}
/>import { Menu, MenuItem, MenuDivider, Popover } from "@blueprintjs/core";
// Menu with submenus
<Menu>
<MenuItem text="File">
<MenuItem text="New" icon="document" />
<MenuItem text="Open" icon="folder-open" />
<MenuDivider />
<MenuItem text="Save" icon="floppy-disk" />
</MenuItem>
<MenuItem text="Edit">
<MenuItem text="Undo" icon="undo" />
<MenuItem text="Redo" icon="redo" />
</MenuItem>
</Menu>
// Menu with custom rendering
<Menu>
<MenuItem
text="User Profile"
label="Ctrl+P"
labelElement={<span className="custom-label">★</span>}
multiline
/>
</Menu>// Action and link prop interfaces
interface ActionProps {
disabled?: boolean;
icon?: IconName | MaybeElement;
onClick?: (event: React.MouseEvent<HTMLElement>) => void;
text?: React.ReactNode;
}
interface LinkProps {
href?: string;
target?: string;
rel?: string;
}