Skip to content
Back to skills

Mui

ASecurity

Material UI — accessible React + Material Design; official MCP.

  • 6 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 6, 2026
ai-agentsreactapi

Works with

  • claude code
  • cli
  • api
  • mcp

Security analysis

A100/100

Scanned September 6, 2026

npx -y skills add Dev-Toolbelt/dev-team-agents --skill mui --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Mui?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Mui
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dev-toolbelt-mui/badge)](https://www.skillsdirectory.com/skills/dev-toolbelt-mui)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: mui
description: Material UI — accessible React + Material Design; official MCP.
---

## Detection Signals

- `@mui/material` in `package.json`
- `@emotion/react` and `@emotion/styled` dependencies
- `ThemeProvider`, `createTheme` imports in codebase
- `CssBaseline` component at app root
- `sx` prop usage on components

## MCP Setup

MUI has an official MCP server for component docs, prop references, examples, and theming.

**Add to `.claude/settings.json`**:

```json
{
  "mcpServers": {
    "mui": {
      "command": "npx",
      "args": ["-y", "@mui/mcp@latest"]
    }
  }
}
```

> If auto-configuration fails, ask the user to add the entry manually in their CLI's MCP settings (**Claude Code → Settings → MCP Servers**, the `mcp` block of `opencode.json`, or Codex CLI's MCP config). The MCP provides real-time component API access without leaving the editor.

## Core Concepts

| Concept | Detail |
|---------|--------|
| **ThemeProvider** | Wraps the app; all components read theme tokens from it |
| **`sx` prop** | Inline styling via theme tokens — preferred over `style` or CSS classes |
| **`createTheme()`** | Extends/overrides Material Design defaults |
| **Emotion** | CSS-in-JS engine used internally — don't mix with other CSS-in-JS libs |
| **Breakpoints** | `xs` (0px), `sm` (600px), `md` (900px), `lg` (1200px), `xl` (1536px) |
| **`useTheme()`** | Access theme tokens inside component logic |

## Component Patterns

```tsx
// sx prop — use theme tokens, not raw values
<Box sx={{ p: 2, bgcolor: 'background.paper', borderRadius: 1 }}>

// Responsive values via sx
<Typography sx={{ fontSize: { xs: '1rem', md: '1.25rem' } }} />

// Theme extension — brand decisions belong here, not in CSS files
const theme = createTheme({
  palette: { primary: { main: '#1976d2' } },
  typography: { fontFamily: '"Inter", sans-serif' },
})

// Grid2 (v5+) — the deprecated Grid has been replaced
import Grid from '@mui/material/Grid2'
<Grid container spacing={2}>
  <Grid size={6}><Item /></Grid>
</Grid>
```

## Critical Rules

- **ThemeProvider is mandatory** at app root — components without it fall back to defaults and look inconsistent
- **Use `sx` over `style`** — `sx` resolves theme tokens, breakpoints, and pseudo-selectors; `style` does not
- **Extend via `createTheme()`** — put all brand decisions there, not in global CSS overrides
- **Use `Grid2`** (not the legacy `Grid`) in MUI v5+
- **Check MUI version** before writing code — v5 and v6 have significant API differences; look at `package.json`
- **Never mix Emotion with other CSS-in-JS** — style conflicts are hard to debug and runtime cost doubles

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.