Navigation
Search Bar
A command-style search overlay without page blur or heavy visual effects.import { SearchBar } from "@hyzrui/core";
export function Example() {
return <SearchBar items={[{ group: "Docs", label: "Button", href: "/docs/components/button" }]} placeholder="Search components..." />;
}Installation
Install the primitive source, then keep editing it inside your app. The command names the component file you want copied.
pnpm dlx hyzrui add search-barUsage
Import the component from the generated source folder and compose it with normal React props.
import { SearchBar } from "@hyzrui/core";<SearchBar className="my-search-bar" />Customization
Every primitive accepts local props and class names, then inherits design tokens from HyzrThemeProvider . Copy the file, keep the markup, and tune the CSS until it matches your product.
--hui-radiusControls the default corner system for buttons, inputs, cards, overlays, and nested surfaces.--hui-foregroundControls the page and component text colors. Dark mode uses the same component source with different tokens.--hui-surfaceControls card, dialog, popover, and input surfaces.--hui-borderControls separators, input strokes, card outlines, and menu edges.--hui-primaryControls the main action color and the matching foreground color for solid controls.--hui-font-familyControls the font stack used by every primitive inside the provider.--hui-control-font-sizeControls the default font size for buttons, inputs, selects, tabs, command rows, and menu triggers.--hui-font-weight-controlControls the default weight of buttons, tabs, menus, badges, and compact actions.--hui-control-heightControls the default field and trigger height across forms and navigation.--hui-button-heightControls button height independently from form fields.--hui-button-paddingControls horizontal button spacing without changing the text size.--hui-card-paddingControls card, dialog, sheet, drawer, and panel interior spacing.--hui-border-widthControls default edge width for controls, cards, tables, and floating panels.--hui-focus-widthControls keyboard focus outline thickness.--hui-transition-durationControls shared hover timing for controls and surfaces.--hui-hover-liftControls subtle hover lift for raised styles.--hui-overlayControls dialog, sheet, drawer, and command overlay strength.--hui-floating-offsetControls menu, command, popover, and hover-card distance from the trigger.import { defineHyzrTheme } from "@hyzrui/core";
export const theme = defineHyzrTheme({
id: "product",
density: "comfortable",
radius: 10,
shadow: 0.08,
colors: {
background: "#fbfbfc",
foreground: "#09090b",
surface: "#ffffff",
border: "#e4e4e7",
primary: "#18181b",
primaryForeground: "#ffffff",
},
typography: {
controlSize: 14,
controlWeight: 500,
headingWeight: 680,
},
sizing: {
controlHeight: 38,
buttonHeight: 34,
buttonPadding: 14,
cardPadding: 18,
},
borders: {
radius: 10,
radiusSm: 7,
radiusLg: 16,
width: 1,
focusWidth: 2,
},
motion: {
duration: 150,
hoverLift: 0,
hoverMix: 5,
},
});See the customization guide for the full theme shape, style presets, scoped CSS overrides, and source-edit workflow.
Examples
These examples show the same primitive in realistic combinations and states.
Global search
A command-style search trigger with a keyboard shortcut hint and grouped results.
import { SearchBar } from "@hyzrui/core";
export function GlobalSearch() {
return (
<SearchBar
placeholder="Search docs and components…"
shortcut="K"
items={[
{ group: "Components", label: "Button", href: "/docs/components/button" },
{ group: "Components", label: "Dialog", href: "/docs/components/dialog" },
{ group: "Guides", label: "Theming", href: "/docs/customization" },
]}
/>
);
}API Reference
Props are intentionally small. For deeper changes, edit the component source file directly.
| Prop | Type | Default | Description |
|---|---|---|---|
className | string | - | Adds classes to the copied component without replacing the default structure. |
children | React.ReactNode | - | The rendered content for compound or wrapper components. |
...props | HTMLAttributes | - | Forwards native element props such as id, aria attributes, and event handlers. |
items | SearchBarItem[] | - | Searchable items. |
shortcut | string | K | Shortcut label shown in the trigger. |
onSelect | (item: SearchBarItem) => void | - | Called when a result is selected. |