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).
Style guidelines for building headless React component libraries, extracted from the MUI Base UI codebase.
This skill teaches the patterns and conventions used by MUI Base UI to build unstyled, accessible React components. It covers:
# Install dependencies
pnpm install
# Build the skill
pnpm build
# Validate the skill
pnpm validate
Apply this skill when:
references/ with the appropriate prefix (e.g., comp-, name-, org-, err-, style-)assets/templates/_template.mdEach rule file follows this structure:
---
title: Rule Title Starting with Verb
impact: CRITICAL | HIGH | MEDIUM | LOW
impactDescription: quantified impact statement
tags: category, relevant, tags
---
## Rule Title Starting with Verb
Brief explanation of why this matters.
**Incorrect (reason why it's wrong):**
\`\`\`typescript
// Anti-pattern code
\`\`\`
**Correct (reason why it's right):**
\`\`\`typescript
// Recommended code
\`\`\`
**When to use:**
- Situation 1
- Situation 2
{prefix}-{slug}.md (e.g., comp-forward-ref-named.md)comp- - Component Patternsname- - Naming Conventionsorg- - Organizationerr- - Error Handlingstyle- - Style| Level | Description | Use When | |-------|-------------|----------| | CRITICAL | Prevents bugs or security issues | Breaking patterns that cause runtime errors | | HIGH | Significant quality improvement | Patterns affecting maintainability or DX | | MEDIUM | Moderate improvement | Consistency and code organization | | LOW | Minor enhancement | Nice-to-have conventions |
pnpm build - Compile AGENTS.md from rule filespnpm validate - Run validation checks on all filespnpm validate --strict - Fail on warnings too'use client'
import * as React from 'react'
export const AccordionTrigger = React.forwardRef(function AccordionTrigger(
componentProps: AccordionTrigger.Props,
forwardedRef: React.ForwardedRef<HTMLButtonElement>
) {
const { render, className, disabled = false, ...elementProps } = componentProps
const { open, setOpen } = useAccordionItemContext()
const state = React.useMemo(() => ({ open, disabled }), [open, disabled])
return useRenderElement('button', componentProps, {
state,
ref: forwardedRef,
props: [elementProps],
stateAttributesMapping,
})
})
export namespace AccordionTrigger {
export type Props = AccordionTriggerProps
export type State = AccordionTriggerState
}
accordion/
root/
AccordionRoot.tsx
AccordionRootContext.ts
item/
AccordionItem.tsx
AccordionItemContext.ts
trigger/
AccordionTrigger.tsx
stateAttributesMapping.ts
panel/
AccordionPanel.tsx
index.ts
index.parts.ts
DataAttributes.ts
Extracted from MUI Base UI (packages/ directory) on 2026-01-17.
SKILL.md - Entry point with quick referenceAGENTS.md - Compiled comprehensive guidereferences/ - Individual rule filesassets/templates/ - Templates for extending the skillSearch for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer