---
name: mantine-ui
description: Build, change, or review Homarr application UI using Mantine component discovery, current documentation, built-in props, and the Styles API. Use for component selection, layout, responsive behavior, and styling changes.
---
# Mantine UI
## Discover and read before editing
1. Check the owning workspace's Mantine dependencies and existing `packages/ui` components. The live docs may describe a newer release; confirm the chosen API exists in the installed version.
2. At the start of a UI task, call this plugin's Mantine MCP server's `list_items({"kind":"component","limit":500})` to discover the available components across Core and extensions. Use `package`, `category`, or `query` filters to narrow the catalog, and `search_docs` for the behavior you need. Check hooks when they can replace custom interaction or state code.
3. **Always call `get_item_doc` for each component or hook you introduce, change, or review, before implementing it or drawing review conclusions.** Reuse documents already fetched during the task. For component styling, request `full: true` so you read the props and complete Styles API, including inner selectors and public CSS variables; an outline alone is insufficient. `get_item_props` and `get_api` supplement this lookup.
For example:
```json
{ "name": "Heatmap", "full": true }
```
When working on styling, also consult `get_item_doc` for `styles-style-props` and `styles-styles-api`. The default response is an outline; fetch the relevant `section` or use `full: true`.
## Prefer Mantine's styling features
Choose the first option that expresses the requirement:
1. **Component props:** use the documented `size`, `variant`, `color`, `radius`, `orientation`, `fullWidth`, `withBorder`, `shadow`, and similar props. Reuse built-in controls before constructing a custom equivalent, and use the polymorphic `component` prop when only the rendered element needs to change.
2. **Layout and style props:** use `Group`, `Stack`, `Flex`, `Grid`, `SimpleGrid`, and `Box`, with spacing, sizing, alignment, and responsive props. Use theme tokens and public CSS variables for values that should follow Homarr's theme.
3. **Styles API:** target documented inner selectors with `styles` and public component CSS variables with `vars`. Keep overrides on the owning component so shared editors retain one styling implementation. Preserve the theme and unrelated screens during a focused change.
4. **CSS modules through `classNames`:** use these for pseudo-classes, nested selectors, or responsive rules that the component and style props cannot express. The `styles` prop accepts flat inline styles, not nested selectors or media queries. Keep only the CSS needed for that remaining behavior.
Before finishing a UI change, account for every new CSS rule against these options, remove superseded rules, and verify shared callers and the intended responsive widths.
## Official Markdown fallback
Use the MCP server first. If its tools are unavailable or a request fails, read the corresponding official LLM Markdown document and report the tool failure briefly. Prefer the returned item's `llmUrl`, the page's LLM documentation link, or the [documentation index](https://mantine.dev/llms.txt) to find the exact URL.
For example:
- Component page:
- Full LLM documentation, including props and Styles API:
Fetch the pages needed for the task instead of loading `llms-full.txt`. See [Mantine with LLMs](https://mantine.dev/guides/llms/) for the official MCP and documentation workflow.