Skip to content
Development
Skill

/building-admin-dashboard-customizations

Load automatically when planning, researching, or implementing Medusa Admin dashboard UI (widgets, custom pages, forms, tables, data loading, navigation). REQUIRED for all admin UI work in ALL modes (planning, implementation, exploration). Contains design patterns, component

From plugin
medusa-agent-skills
20818 skills1 MCP
Install
$ npx -y skills add medusajs/medusa-agent-skills --skill building-admin-dashboard-customizations --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/building-admin-dashboard-customizations

Context preview

The summary Claude sees to decide when to auto-load this skill.

Load automatically when planning, researching, or implementing Medusa Admin dashboard UI (widgets, custom pages, forms, tables, data loading, navigation). REQUIRED for all admin UI work in ALL modes (planning, implementation, exploration). Contains design patterns, component

SKILL.md

building-admin-dashboard-customizations.SKILL.md
name: building-admin-dashboard-customizations
description: Load automatically when planning, researching, or implementing Medusa Admin dashboard UI (widgets, custom pages, forms, tables, data loading, navigation). REQUIRED for all admin UI work in ALL modes (planning, implementation, exploration). Contains design patterns, component usage, and data loading patterns that MCP servers don't provide.

Medusa Admin Dashboard Customizations

Build custom UI extensions for the Medusa Admin dashboard using the Admin SDK and Medusa UI components.

**Note:** "UI Routes" are custom admin pages, different from backend API routes (which use building-with-medusa skill).

When to Apply

**Load this skill for ANY admin UI development task, including:**

  • Creating widgets for product/order/customer pages
  • Building custom admin pages
  • Implementing forms and modals
  • Displaying data with tables or lists
  • Adding navigation between pages

**Also load these skills when:**

  • **building-with-medusa:** Building backend API routes that the admin UI calls
  • **building-storefronts:** If working on storefront instead of admin dashboard

CRITICAL: Load Reference Files When Needed

**The quick reference below is NOT sufficient for implementation.** You MUST load relevant reference files before writing code for that component.

**Load these references based on what you're implementing:**

  • **Creating widgets?** → MUST load `references/data-loading.md` first
  • **Building forms/modals?** → MUST load `references/forms.md` first
  • **Displaying data in tables/lists?** → MUST load `references/display-patterns.md` first
  • **Selecting from large datasets?** → MUST load `references/table-selection.md` first
  • **Adding navigation?** → MUST load `references/navigation.md` first
  • **Styling components?** → MUST load `references/typography.md` first

**Minimum requirement:** Load at least 1-2 reference files relevant to your specific task before implementing.

When to Use This Skill vs MedusaDocs MCP Server

**⚠️ CRITICAL: This skill should be consulted FIRST for planning and implementation.**

**Use this skill for (PRIMARY SOURCE):**

  • **Planning** - Understanding how to structure admin UI features
  • **Component patterns** - Widgets, pages, forms, tables, modals
  • **Design system** - Typography, colors, spacing, semantic classes
  • **Data loading** - Critical separate query pattern, cache invalidation
  • **Best practices** - Correct vs incorrect patterns (e.g., display queries on mount)
  • **Critical rules** - What NOT to do (common mistakes like conditional display queries)

**Use MedusaDocs MCP server for (SECONDARY SOURCE):**

  • Specific component prop signatures after you know which component to use
  • Available widget zones list
  • JS SDK method details
  • Configuration options reference

**Why skills come first:**

  • Skills contain critical patterns like separate display/modal queries that MCP doesn't emphasize
  • Skills show correct vs incorrect patterns; MCP shows what's possible
  • Planning requires understanding patterns, not just API reference

Critical Setup Rules

SDK Client Configuration

**CRITICAL:** Always use exact configuration - different values cause errors:

// src/admin/lib/client.ts
import Medusa from "@medusajs/js-sdk"

export const sdk = new Medusa({
  baseUrl: import.meta.env.VITE_BACKEND_URL || "/",
  debug: import.meta.env.DEV,
  auth: {
    type: "session",
  },
})

pnpm Users ONLY

**CRITICAL:** Install peer dependencies BEFORE writing any code:

# Find exact version from dashboard
pnpm list @tanstack/react-query --depth=10 | grep @medusajs/dashboard
# Install that exact version
pnpm add @tanstack/react-query@[exact-version]

# If using navigation (Link component)
pnpm list react-router-dom --depth=10 | grep @medusajs/dashboard
pnpm add react-router-dom@[exact-version]

**npm/yarn users:** DO NOT install these packages - already available.

Rule Categories by Priority

| Priority | Category | Impact | Prefix | |----------|----------|--------|--------| | 1 | Data Loading | CRITICAL | `data-` | | 2 | Design System | CRITICAL | `design-` | | 3 | Data Display | HIGH (includes CRITICAL price rule) | `display-` | | 4 | Typography | HIGH | `typo-` | | 5 | Forms & Modals | MEDIUM | `form-` | | 6 | Selection Patterns | MEDIUM | `select-` |

Quick Reference

1. Data Loading (CRITICAL)

  • `data-sdk-always` - **ALWAYS use Medusa JS SDK for ALL API requests** - NEVER use regular fetch() (missing auth headers causes errors)
  • `data-sdk-method-choice` - Use existing SDK methods for built-in endpoints (`sdk.admin.product.list()`), use `sdk.client.fetch()` for custom routes
  • `data-display-on-mount` - Display queries MUST load on mount (no enabled condition based on UI state)
  • `data-separate-queries` - Separate display queries from modal/form queries
  • `data-invalidate-display` - Invalidate display queries after mutations, not just modal queries
  • `data-loading-states` - Always show loading states (Spinner), not empty states
  • `data-pnpm-install-first` - pnpm users MUST install @tanstack/react-query BEFORE coding

2. Design System (CRITICAL)

  • `design-semantic-colors` - Always use semantic color classes (bg-ui-bg-base, text-ui-fg-subtle), never hardcoded
  • `design-spacing` - Use px-6 py-4 for section padding, gap-2 for lists, gap-3 for items
  • `design-button-size` - Always use size="small" for buttons in widgets and tables
  • `design-medusa-components` - Always use Medusa UI components (Container, Button, Text), not raw HTML

3. Data Display (HIGH)

  • `display-price-format` - **CRITICAL**: Prices from Medusa are stored as-is ($49.99 = 49.99, NOT in cents). Display them directly - NEVER divide by 100

4. Typography (HIGH)

  • `typo-text-component` - Always use Text component from @medusajs/ui, never plain span/p tags
  • `typo-labels` - Use `<Text size="small" leading="compact" weight="plus">` for labels/headings
  • `typo-descriptions` - Use `<Text size
Read more
Ships withmedusa-agent-skills

A collection of skills composed as Claude Code plugins for building Medusa applications with best practices and architectural patterns. These skills can be used with any agent, as explained in the Usage with Other Agents section.

Get the whole plugin
Stats
208
Stars
26
Forks
Active
Maintenance
JavaScript
Language
4d ago
Last commit
6mo ago
Created

Repo: medusajs/medusa-agent-skills

Other skills on medusa-agent-skills.