Loading...
Loading...
Cloudflare product design guidance. Use when designing, implementing, or reviewing Cloudflare dashboard interfaces, Kumo UI, responsive styling, dialogs, or frontend tests.
npx skill4agent add cloudflare/kumo kumo-designcontent-text-size<Text>Content text</Text><Text size="lg">Content text</Text>heading-case<Text as="h2">Recent requests</Text><Text as="h2">Recent Requests</Text><Text as="h2" DANGEROUS_className="uppercase">
Recent requests
</Text>font-trackingtracking-*<span className="text-lg">Worker Metrics</span><span className="text-lg tracking-tight">Worker Metrics</span>font-weightfont-boldfont-semiboldfont-medium<Text as="h3" variant="heading3">Account settings</Text>
<Text as="strong" bold>required</Text><Text as="h3" DANGEROUS_className="font-bold">Account settings</Text>
<Text as="strong" DANGEROUS_className="font-bold">required</Text>related-text-spacing<div className="grid gap-6">
<div className="grid gap-1.5">
<Text as="h3">Web Analytics</Text>
<Text>Measure site traffic without changing your code.</Text>
</div>
<Button>Configure</Button>
</div><div className="grid gap-4">
<Text as="h3">Web Analytics</Text>
<Text>Measure site traffic without changing your code.</Text>
<Button>Configure</Button>
</div>text-spacing<LayerCard className="px-5 py-4">...</LayerCard><LayerCard className="p-5">...</LayerCard>hover-color-transitions<button className="hover:bg-kumo-tint">...</button><button className="transition-colors duration-300 hover:bg-kumo-tint">
...
</button>shadow-bordersring ring-kumo-line<LayerCard className="shadow-md ring ring-kumo-line">...</LayerCard><LayerCard className="border border-kumo-line shadow-md">...</LayerCard>concentric-border-radius<div className="rounded-xl p-1">
<div className="rounded-lg">...</div>
</div><div className="rounded-xl p-1">
<div className="rounded-xl">...</div>
</div>icon-alignmenth-lh flex items-center<div className="flex items-start gap-2">
<span className="h-lh flex items-center">
<Icon />
</span>
<Text>Text that may wrap onto multiple lines</Text>
</div><div className="flex items-start gap-2">
<span className="flex items-center">
<Icon />
</span>
<Text>Text that may wrap onto multiple lines</Text>
</div><div className="flex items-center gap-2">
<Icon />
<Text>Text that may wrap onto multiple lines</Text>
</div>inline-monospace-size<Text size="lg">
Edit <span className="font-mono text-[0.9em]">wrangler.toml</span> to
continue.
</Text><Text size="lg">
Edit <span className="font-mono">wrangler.toml</span> to continue.
</Text>sticky-bordersborder<div className="sticky top-0 border-b border-kumo-line">...</div><div className="sticky top-0">...</div>collapse-content-size<motion.div animate={{ width: open ? 256 : 0 }}>
<div className="w-64">...</div>
</motion.div><motion.div animate={{ width: open ? 256 : 0 }}>
<div className="w-full min-w-0">...</div>
</motion.div>layer-card-nestingLayerCard<div>
<Text as="h3">Recent requests</Text>
<LayerCard>...</LayerCard>
</div><LayerCard>
<Text as="h3">Recent requests</Text>
<LayerCard>...</LayerCard>
</LayerCard>dialog-renderingopen<Dialog.Root open={open} onOpenChange={setOpen}>
<Dialog>
<Dialog.Title>Edit Worker</Dialog.Title>
<Dialog.Description>Update this Worker's settings.</Dialog.Description>
</Dialog>
</Dialog.Root>{
open && (
<Dialog.Root open>
<Dialog>
<Dialog.Title>Edit Worker</Dialog.Title>
</Dialog>
</Dialog.Root>
);
}