> mui-base
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).
curl "https://skillshub.wtf/pproenca/dot-skills/mui-base?format=md"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 Functioncomp-props-parameter-naming- Name Props Parameter componentPropscomp-use-render-element- Use useRenderElement for DOM Renderingcomp-context-undefined-default- Create Context with Undefined Defaultcomp-context-error-message- Context Error Messages with Hierarchycomp-use-controlled- Use useControlled Hook for Dual Modescomp-state-memoization- Memoize State Objectscomp-context-value-memo- Memoize Context Provider Valuescomp-plain-function-root- Plain Function for Non-DOM Rootscomp-hook-namespace-exports- Hook Namespace Exportscomp-props-destructure-order- Props Destructuring Ordercomp-use-client-directive- Add use client Directive
2. Naming Conventions (HIGH)
name-component-naming- Component Naming as ParentPartname-file-matches-export- File Name Matches Primary Exportname-directory-kebab-case- Directory Naming kebab-casename-part-directory-lowercase- Part Directory Naming lowercasename-context-suffix- Context Naming with Suffixname-context-hook- Context Hook as useComponentContextname-props-interface- Props Interface as ComponentPropsname-state-interface- State Interface as ComponentStatename-namespace-type-exports- Namespace Type Exportsname-event-type- Event Type Naming Conventionname-constants- Constant Naming SCREAMING_SNAKE_CASEname-data-attributes- Data Attribute Naming lowercasename-hooks- Hook Naming with use Prefixname-refs- Ref Variable Naming with Suffixname-handlers- Handler Naming Convention
3. Organization (HIGH)
org-component-directory- Component Directory Structureorg-dual-barrel-exports- Dual Barrel Export Patternorg-test-colocation- Test File Colocationorg-context-placement- Context File Placementorg-data-attributes-file- Data Attributes Documentation Fileorg-state-attributes-mapping- State Attributes Mapping Fileorg-css-vars-file- CSS Variables Documentation Fileorg-package-exports- Package-Level Wildcard Exports
4. Error Handling (HIGH)
err-dev-only-warnings- Development-Only Warningserr-deduplicated-warnings- Deduplicated Warning Messageserr-message-prefix- Message Prefix Standarderr-context-error-guidance- Context Error Guidanceerr-prop-validation-timing- Prop Validation Timingerr-cancelable-events- Cancelable Event Patternerr-event-reason-constants- Event Reason Constantserr-typed-event-reasons- Type-Safe Event Reasons
5. Style (MEDIUM)
style-react-import- React Import as Namespacestyle-internal-imports- Internal Import Pathsstyle-explicit-undefined- Explicit Undefined in Prop Typesstyle-default-values- Default Values in Destructuringstyle-jsdoc-documentation- JSDoc Documentation
How to Use
Read individual reference files for detailed explanations and code examples:
- Section definitions - Category structure and impact levels
- Rule template - Template for adding new rules
- Example: comp-forward-ref-named
- Example: org-component-directory
Source
Extracted from MUI Base UI codebase on 2026-01-17.
Full Compiled Document
For the complete guide with all rules expanded: AGENTS.md
> related_skills --same-repo
> rust-write-tests
Skill for writing expert-level Rust tests. Teaches the "What Could Break?" framework, five transformations from superficial to expert tests, flake hunting protocol, intent-based assertions, naming conventions, and a mandatory self-review checklist. Triggers on writing Rust tests, designing test cases, improving test quality, or reviewing test coverage.
> rust-implement
Write production-grade Rust code using a multi-pass approach. Design types first, then implement, then simplify, then verify with automated lint. Use this skill whenever writing new Rust functions, structs, modules, or features. Triggers on Rust implementation, new Rust code, Rust functions, Rust modules, error handling in Rust, async Rust, or type design in Rust.
> valid-skill
A valid test skill with proper formatting. This skill should pass all validations and serves as a reference for the expected format.
> too-long-skill
This skill has more than 500 lines which should fail validation.