Mantine ํตํฉ
Mantineย ์ Provider์ ์ปดํฌ๋ํธ ์์์ Inkio ์๋ํฐ๋ฅผ ์ฌ์ฉํ๋ ์์ ์ ๋๋ค.
์ค์น
pnpm add @mantine/core @inkio/editor @inkio/extensionCSS ์ํฌํธ ์์
// Mantine ์คํ์ผ ๋จผ์
import '@mantine/core/styles.css';
// ๊ทธ ๋ค์ Inkio ์คํ์ผ
import '@inkio/editor/minimal.css';
import '@inkio/extension/style.css';์ค์: Mantine CSS๋ฅผ Inkio CSS๋ณด๋ค ๋จผ์ ์ํฌํธํด์ผ ํฉ๋๋ค. ์์๊ฐ ๋ฐ๋๋ฉด Mantine์ ๊ธ๋ก๋ฒ ๋ฆฌ์ ์ด ์๋ํฐ ์คํ์ผ์ ๋ฎ์ด์๋๋ค.
์ ์ฒด ์ฝ๋
import '@mantine/core/styles.css';
import '@inkio/editor/minimal.css';
import '@inkio/extension/style.css';
import { Card, Container, MantineProvider, Stack, Text, Title } from '@mantine/core';
import { Editor } from '@inkio/editor';
import { getDefaultInkioExtensions } from '@inkio/extension';
import { useMemo } from 'react';
export default function MantineEditor({ theme }: { theme?: 'light' | 'dark' }) {
const extensions = useMemo(
() => getDefaultInkioExtensions({ placeholder: 'Start typing...' }),
[],
);
return (
<MantineProvider forceColorScheme={theme ?? 'light'}>
<Container size="lg" py="md">
<Stack>
<div>
<Title order={2}>My Editor</Title>
<Text c="dimmed" size="sm">
Mantine + Inkio
</Text>
</div>
<Card withBorder shadow="sm" radius="md" p="md">
<Editor
extensions={extensions}
initialContent="<p>Hello from Mantine!</p>"
showBubbleMenu
showFloatingMenu
/>
</Card>
</Stack>
</Container>
</MantineProvider>
);
}ํ ๋ง ์ฐ๋
Mantine์ forceColorScheme prop์ ์ฌ์ฉํ์ฌ ๋คํฌ/๋ผ์ดํธ ๋ชจ๋๋ฅผ ์ ์ดํฉ๋๋ค.
Inkio๋ document.documentElement์ .dark ํด๋์ค๋ฅผ ๊ฐ์งํ๋ฏ๋ก, Mantine ํ
๋ง์ ํจ๊ป ํด๋์ค๋ฅผ ํ ๊ธํ๋ฉด ๋ฉ๋๋ค:
useEffect(() => {
document.documentElement.classList.toggle('dark', theme === 'dark');
}, [theme]);Last updated on