Command
Navigation
Command palette for keyboard navigation.
Installation
npm install cmdkImport
import { PixelCommand, PixelCommandInput, PixelCommandList, PixelCommandEmpty, PixelCommandGroup, PixelCommandItem } from "@/components/ui/pixel-command"Usage
No results.
Item 1
Item 2
Item 3
Component Source
Copy and paste the following code into your project at /src/components/ui/pixel-command.tsx
"use client";
import type { DialogProps } from "@radix-ui/react-dialog";
import { Command as CommandPrimitive } from "cmdk";
import { Search } from "lucide-react";
import type * as React from "react";
import { cn } from "@/lib/utils";
import { PixelDialog, PixelDialogContent } from "./pixel-dialog";
function PixelCommand({
className,
...props
}: React.ComponentProps<typeof CommandPrimitive>) {
return (
<CommandPrimitive
className={cn(
"flex h-full w-full flex-col overflow-hidden border-4 border-black bg-[#fffacd] dark:bg-[#2a2a2a] shadow-[4px_4px_0px_0px_rgba(0,0,0,1)]",
"font-[family-name:var(--font-press-start)]",
className,
)}
{...props}
/>
);
}
interface PixelCommandDialogProps extends DialogProps {}
function PixelCommandDialog({ children, ...props }: PixelCommandDialogProps) {
return (
<PixelDialog {...props}>
<PixelDialogContent className="overflow-hidden p-0">
<PixelCommand className="[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-bold [&_[cmdk-group-heading]]:text-[#555] dark:[&_[cmdk-group-heading]]:text-[#aaa] [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5">
{children}
</PixelCommand>
</PixelDialogContent>
</PixelDialog>
);
}
function PixelCommandInput({
className,
...props
}: React.ComponentProps<typeof CommandPrimitive.Input>) {
return (
<div
className="flex items-center border-b-4 border-black px-3"
cmdk-input-wrapper=""
>
<Search className="mr-2 h-4 w-4 shrink-0 opacity-50" />
<CommandPrimitive.Input
// ... (more code below)Accessibility
This component is built with accessibility in mind, including proper ARIA attributes, keyboard navigation, and focus management.