marketplace-build-component

Build UI with Blok Design System

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "marketplace-build-component" with this command: npx skills add vercel-labs/sitecore-skills/vercel-labs-sitecore-skills-marketplace-build-component

Build UI with Blok Design System

You are helping the user build UI components for a Sitecore Marketplace app using the Blok design system (Sitecore's shadcn-based component library).

Key Principles

  • Always use Blok components — they match the Sitecore host UI and support light/dark themes automatically

  • SDK data integration — use loading states (Skeleton) and error states (Alert) when fetching SDK data

  • Extension point awareness — different extension types have different UI constraints (see below)

  • Responsive — components render inside iframes of varying sizes

Installing Components

Blok components are installed via the shadcn CLI:

Install the Blok theme (required first)

npx shadcn@latest add https://marketplace-sdk.sitecorecloud.io/r/blok-theme.json

Install individual components

npx shadcn@latest add https://marketplace-sdk.sitecorecloud.io/r/<component-name>.json

See blok-components.md for the full component catalog with install commands.

UI Patterns by Extension Type

Compact Field (custom-field)

  • Very limited space (~300px wide, variable height)

  • Use: Input, Select, Badge, small inline components

  • Avoid: Tables, large layouts, modals

Dashboard Widget

  • Medium space (~400x300px default, resizable)

  • Use: Cards, Charts, Stats, compact Tables

  • Good for: Summary data, quick actions

Pages Context Panel

  • Side panel (~350px wide, full height)

  • Use: Vertical layouts, Lists, Accordion, Tabs

  • Good for: Contextual info about current page, actions

Fullscreen

  • Full viewport within the Sitecore shell

  • Use: Any components, complex layouts, Tables, Forms

  • Good for: Full CRUD interfaces, dashboards, settings

Standalone

  • Independent page, not in Sitecore shell

  • Use: Any components, full creative freedom

  • Good for: Public-facing pages, OAuth callbacks

SDK Data Integration Pattern

"use client";

import { useEffect, useState } from "react"; import { useSitecoreClient } from "@/hooks/use-sitecore"; import { Skeleton } from "@/components/ui/skeleton"; import { Alert, AlertDescription } from "@/components/ui/alert";

export function MyComponent() { const client = useSitecoreClient(); const [data, setData] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState<string | null>(null);

useEffect(() => { async function fetchData() { try { const result = await client.query("app.context"); setData(result); } catch (err) { setError(err instanceof Error ? err.message : "Failed to load"); } finally { setLoading(false); } } fetchData(); }, [client]);

if (loading) return <Skeleton className="h-32 w-full" />; if (error) return <Alert variant="destructive"><AlertDescription>{error}</AlertDescription></Alert>;

return <div>{/* Render data */}</div>; }

Reference Files

  • Blok Components — Full component catalog with install commands

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

marketplace-add-xmc

No summary provided by upstream source.

Repository SourceNeeds Review
General

marketplace-sdk-reference

No summary provided by upstream source.

Repository SourceNeeds Review
General

marketplace-add-extension

No summary provided by upstream source.

Repository SourceNeeds Review
General

marketplace-deploy

No summary provided by upstream source.

Repository SourceNeeds Review