Skip to main content
skill CX Codex

mui-base — Claude Code skill: MUI Base UI component rules

A skill with 48 rules for building headless React component libraries the MUI Base UI way. Useful when logic and styling stay apart.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add pproenca/dot-skills --skill mui-base -a claude-code
Open on GitHub

What mui-base does

The skill splits into five categories by priority: component patterns (CRITICAL), naming, organization, error handling and style. Inside are 48 rules tagged comp-, name-, org-, err- and style-. Each rule lives in its own file under references/ with an explanation and code samples, and the whole set is compiled into AGENTS.md.

The rules get specific: forwardRef with a named function, useRenderElement for DOM rendering, useControlled to support controlled and uncontrolled modes in one component, memoized state objects and context provider values. There is a section on compound components with render props and on ARIA accessibility patterns. Naming is fixed too: components as ParentPart, props interfaces as ComponentProps, constants in SCREAMING_SNAKE_CASE.

The rules were pulled from the MUI Base UI codebase, so they describe how that library is built rather than general advice. If your components follow a different architecture, expect to drop some of them. Install works through npx skills add in Claude, Codex, Cursor, Gemini CLI and OpenCode; GitHub Copilot uses gh skill install.

What it helps with

  • build an unstyled component with no bundled CSS
  • create a compound component with render props
  • support controlled and uncontrolled modes in one component
  • lay out a component library into directories
  • add ARIA markup to a UI primitive

Example prompts for the agent

  • help me design a headless Select component following mui-base rules
  • check my compound component against the comp- rules in mui-base
  • how does mui-base name props interfaces and context?

How to install mui-base

1Skills CLI (Vercel)

npx skills add pproenca/dot-skills --skill mui-base -a claude-code

2Manually: put the files in place

~/.claude/skills/mui-base/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/mui-base/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about mui-base

How do I install mui-base in Claude?

Run npx skills add pproenca/dot-skills --skill mui-base -a claude-code. The skill file then lands at ~/.claude/skills/mui-base/SKILL.md.

What does mui-base do?

It hands the agent 48 rules for building headless React components in MUI Base UI style: component patterns, naming, file organization, error handling and code style.

Is the skill only for MUI Base UI?

The rules come from the MUI Base UI codebase, so they target its architecture. In a library built differently, some rules will not apply.

Source text

SKILL.md · MIT
---
name: mui-base
description: MUI Base UI style guidelines for building headless React component libraries (formerly headless-ui-style). This skill should be used when creating unstyled UI components, compound components with render props, accessibility-first patterns, or component libraries that separate logic from styling. Extracted from the MUI Base UI codebase (github.com/mui/base-ui).
---

# MUI Headless UI Best Practices

Comprehensive style guide for building headless React component libraries following MUI Base UI patterns. Contains 48 rules across 5 categories, prioritized by impact.

## When to Apply

Reference these guidelines when:
- Building headless/unstyled component libraries
- Creating compound components with context-based composition
- Implementing accessible UI primitives with ARIA patterns
- Using render props and className callbacks for styling flexibility
- Writing components that support both controlled and uncontrolled modes

## Rule Categories by Priority

| Priority | Category | Impact | Prefix |
|----------|----------|--------|--------|
| 1 | Component Patterns | CRITICAL | `comp-` |
| 2 | Naming Conventions | HIGH | `name-` |
| 3 | Organization | HIGH | `org-` |
| 4 | Error Handling | HIGH | `err-` |
| 5 | Style | MEDIUM | `style-` |

## Quick Reference

### 1. Component Patterns (CRITICAL)

- `comp-forward-ref-named` - Use forwardRef with Named Function
- `comp-props-parameter-naming` - Name Props Parameter componentProps
- `comp-use-render-element` - Use useRenderElement for DOM Rendering
- `comp-context-undefined-default` - Create Context with Undefined Default
- `comp-context-error-message` - Context Error Messages with Hierarchy
- `comp-use-controlled` - Use useControlled Hook for Dual Modes
- `comp-state-memoization` - Memoize State Objects
- `comp-context-value-memo` - Memoize Context Provider Values
- `comp-plain-function-root` - Plain Function for Non-DOM Roots
- `comp-hook-namespace-exports` - Hook Namespace Exports
- `comp-props-destructure-order` - Props Destructuring Order
- `comp-use-client-directive` - Add use client Directive

### 2. Naming Conventions (HIGH)

- `name-component-naming` - Component Naming as ParentPart
- `name-file-matches-export` - File Name Matches Primary Export
- `name-directory-kebab-case` - Directory Naming kebab-case
- `name-part-directory-lowercase` - Part Directory Naming lowercase
- `name-context-suffix` - Context Naming with Suffix
- `name-context-hook` - Context Hook as useComponentContext
- `name-props-interface` - Props Interface as ComponentProps
- `name-state-interface` - State Interface as ComponentState
- `name-namespace-type-exports` - Namespace Type Exports
- `name-event-type` - Event Type Naming Convention
- `name-constants` - Constant Naming SCREAMING_SNAKE_CASE
- `name-data-attributes` - Data Attribute Naming lowercase
- `name-hooks` - Hook Naming with use Prefix
- `name-refs` - Ref Variable Naming with Suffix
- `name-handlers` - Handler Naming Convention

### 3. Organization (HIGH)

- `org-component-directory` - Component Directory Structure
- `org-dual-barrel-exports` - Dual Barrel Export Pattern
- `org-test-colocation` - Test File Colocation
- `org-context-placement` - Context File Placement
- `org-data-attributes-file` - Data Attributes Documentation File
- `org-state-attributes-mapping` - State Attributes Mapping File
- `org-css-vars-file` - CSS Variables Documentation File
- `org-package-exports` - Package-Level Wildcard Exports

### 4. Error Handling (HIGH)

- `err-dev-only-warnings` - Development-Only Warnings
- `err-deduplicated-warnings` - Deduplicated Warning Messages
- `err-message-prefix` - Message Prefix Standard
- `err-context-error-guidance` - Context Error Guidance
- `err-prop-validation-timing` - Prop Validation Timing
- `err-cancelable-events` - Cancelable Event Pattern
- `err-event-reason-constants` - Event Reason Constants
- `err-typed-event-reasons` - Type-Safe Event Reasons

### 5. Style (MEDIUM)

- `style-react-import` - React Import as Namespace
- `style-internal-imports` - Internal Import Paths
- `style-explicit-undefined` - Explicit Undefined in Prop Types
- `style-default-values` - Default Values in Destructuring
- `style-jsdoc-documentation` - JSDoc Documentation

## How to Use

Read individual reference files for detailed explanations and code examples:

- [Section definitions](references/_sections.md) - Category structure and impact levels
- [Rule template](assets/templates/_template.md) - Template for adding new rules
- Example: [comp-forward-ref-named](references/comp-forward-ref-named.md)
- Example: [org-component-directory](references/org-component-directory.md)

## Source

Extracted from [MUI Base UI](https://github.com/mui/base-ui) codebase on 2026-01-17.

## Full Compiled Document

For the complete guide with all rules expanded: `AGENTS.md`

© pproenca · MIT · pproenca/dot-skills

Similar skills

Everything for Frontend and UI →

From the same set45

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor