pnpm install @mantine/core @mantine/hooks
pnpm install --save-dev postcss postcss-preset-mantine postcss-simple-vars
src/providers.tsx
"use client";
import { MantineProvider } from "@mantine/core";
import type { FC, ReactNode } from "react";
type Props = {
children: ReactNode;
};
export const Providers: FC<Props> = ({ children }) => {
return (
<MantineProvider defaultColorScheme="light">{children}</MantineProvider>
);
};
postcss.config.mjs
/** @type {import('postcss-load-config').Config} */
const config = {
plugins: {
'postcss-preset-mantine': {},
'postcss-simple-vars': {
variables: {
'mantine-breakpoint-xs': '36em',
'mantine-breakpoint-sm': '48em',
'mantine-breakpoint-md': '62em',
'mantine-breakpoint-lg': '75em',
'mantine-breakpoint-xl': '88em',
},
},
},
};
export default config;
src/components/UserMenu.tsx
"use client";
import { Button, Menu } from "@mantine/core";
export function UserMenu() {
return (
<Menu shadow="md" width={200}>
<Menu.Target>
<Button>Toggle menu</Button>
</Menu.Target>
<Menu.Dropdown>
<Menu.Label>Application</Menu.Label>
<Menu.Item>Settings</Menu.Item>
<Menu.Item>Messages</Menu.Item>
<Menu.Item>Gallery</Menu.Item>
<Menu.Divider />
<Menu.Label>Danger zone</Menu.Label>
<Menu.Item color="red">Delete my account</Menu.Item>
</Menu.Dropdown>
</Menu>
);
}