Resource List
kumo-svelte
api-edge Active
checkout-worker Active
image-resizer Active

Installation

ResourceListPage is a <strong>block</strong> - a CLI-installed component
that you own and can customize. Unlike regular components, blocks are copied
into your project so you have full control over the code.



  **1. Initialize Kumo config (first time only)**
npx @cloudflare/kumo init

2. Install the block

npx @cloudflare/kumo add ResourceListPage

3. Import from your local path

// The path depends on your kumo.json blocksDir setting
// Default: src/components/kumo/
Why blocks? Blocks give you full ownership of the code, allowing you to customize layouts to fit your specific needs. They're ideal for page-level patterns that often need project-specific modifications.

Usage


export default function DatabasesPage() {
  return (
    <ResourceListPage
title="Databases"
description="Manage your database instances and configurations"
      icon={<DatabaseIcon size={32} className="text-kumo-strong" />}
    >
      <Surface className="p-6">{/* Your resource list content */}</Surface>
    </ResourceListPage>
  );
}

Examples

Basic

A minimal resource list page with title, description, and icon.

api-edge Active
checkout-worker Active
image-resizer Active

With Usage Sidebar

Include a sidebar with usage examples or quick start guides.

api-edge Active
checkout-worker Active
image-resizer Active

API Reference

<table class="w-full text-sm">
  <thead>
    <tr class="border-b border-kumo-hairline">
      <th class="px-4 py-3 text-left font-semibold">Property</th>
      <th class="px-4 py-3 text-left font-semibold">Type</th>
      <th class="px-4 py-3 text-left font-semibold">Description</th>
    </tr>
  </thead>
  <tbody>
    <tr class="border-b border-kumo-hairline">
      <td class="px-4 py-3 font-mono text-xs">title</td>
      <td class="px-4 py-3 font-mono text-xs">string</td>
      <td class="px-4 py-3">Page title displayed at the top</td>
    </tr>
    <tr class="border-b border-kumo-hairline">
      <td class="px-4 py-3 font-mono text-xs">description</td>
      <td class="px-4 py-3 font-mono text-xs">string</td>
      <td class="px-4 py-3">Page description below the title</td>
    </tr>
    <tr class="border-b border-kumo-hairline">
      <td class="px-4 py-3 font-mono text-xs">icon</td>
      <td class="px-4 py-3 font-mono text-xs">ReactNode</td>
      <td class="px-4 py-3">Icon displayed next to the title</td>
    </tr>
    <tr class="border-b border-kumo-hairline">
      <td class="px-4 py-3 font-mono text-xs">usage</td>
      <td class="px-4 py-3 font-mono text-xs">ReactNode</td>
      <td class="px-4 py-3">
        Sidebar content for usage examples or quick start guides
      </td>
    </tr>
    <tr class="border-b border-kumo-hairline">
      <td class="px-4 py-3 font-mono text-xs">additionalContent</td>
      <td class="px-4 py-3 font-mono text-xs">ReactNode</td>
      <td class="px-4 py-3">
        Additional sidebar content (e.g., resources, links)
      </td>
    </tr>
    <tr class="border-b border-kumo-hairline">
      <td class="px-4 py-3 font-mono text-xs">children</td>
      <td class="px-4 py-3 font-mono text-xs">ReactNode</td>
      <td class="px-4 py-3">Main content area for the resource list</td>
    </tr>
    <tr class="border-b border-kumo-hairline">
      <td class="px-4 py-3 font-mono text-xs">className</td>
      <td class="px-4 py-3 font-mono text-xs">string</td>
      <td class="px-4 py-3">Additional CSS classes</td>
    </tr>
  </tbody>
</table>