import * as React from "react"; import { Link } from "react-router-dom"; import Code from "./Code"; export default function Home() { return ( <>

kbar {" "} is a fully extensible command+k interface for your site. Try it out – press cmd and k, or click the logo above.

Background

Command+k interfaces are used to create a web experience where any type of action users would be able to do via clicking can be done through a command menu.

With macOS's Spotlight and Linear's command+k experience in mind, kbar aims to be a simple abstraction to add a fast and extensible command+k menu to your site.

Features

Usage

Have a fully functioning command menu for your site in minutes. Let's start with a basic example. First, install kbar.

At the root of your site, import and wrap the site with a{" "} KBarProvider.

)`} />

kbar is built on top of actions. Actions define what to execute when a user selects it. Actions can have children which are just other actions.

Let's create a few static actions. Static actions are actions with no external dependencies; they don't rely on a method from some other hook, for instance. We'll talk about dynamic actions later.

window.location.pathname = "blog" }, { id: "contact", name: "Contact", shortcut: ["c"], keywords: "email", perform: () => window.location.pathname = "contact" } ] return ( )`} />

kbar exposes a few components which handle animations, keyboard events, etc. You can compose them together like so:

`} />

Hit cmd+k and you should see a primitive command menu. kbar allows you to have full control over all aspects of your command menu – refer to the docs to get an understanding of further capabilities.

); }