washiveil
uichipsource: ok · refreshed
Chip
Taxonomy pill in the tri-color hues (ruri / korozen / sumire) plus a neutral glass register.
npx shadcn add "https://washiveil.alexchih.com/r/chip.json"free
Where it goes
signup
Visual style
glass-blur
Tags auto-generated by rules on 9/24/2026 — empty means no evidence, not lack of support.
Dependencies
Bundle weight · lightradix-ui
Registry dependencies
https://washiveil.alexchih.com/r/theme.json
Files1 · source cached 10/8/2026, 10:10:37 AM
registry/washiveil/ui/chip.tsx
import { Slot } from 'radix-ui';
import { cn } from '@/lib/utils';
const hues = {
ruri: 'border-ruri/25 bg-ruri/10 text-ruri dark:border-ruri-soft/25 dark:bg-ruri-soft/10 dark:text-ruri-soft',
korozen:
'border-korozen/25 bg-korozen/5 text-korozen-deep dark:border-korozen-soft/25 dark:bg-korozen-soft/10 dark:text-korozen-soft',
sumire:
'border-sumire/25 bg-sumire/5 text-sumire-deep dark:border-sumire-soft/25 dark:bg-sumire-soft/10 dark:text-sumire-soft',
neutral: 'border-glass-edge bg-glass text-muted-foreground backdrop-blur',
} as const;
export type ChipHue = keyof typeof hues;
export interface ChipProps extends React.HTMLAttributes<HTMLSpanElement> {
hue?: ChipHue;
asChild?: boolean;
}
export function Chip({ hue = 'ruri', asChild, className, children, ...props }: ChipProps) {
const Comp = asChild ? Slot.Root : 'span';
return (
<Comp
className={cn(
'inline-block rounded-full border px-2.5 py-0.5 font-mono text-[0.75rem] tracking-[0.2em] uppercase',
hues[hue],
className,
)}
{...props}
>
{children}
</Comp>
);
}