Radix UI ν΅ν©
Radix ThemesΒ μ Theme provider μμμ Inkio μλν°λ₯Ό μ¬μ©νλ μμ μ λλ€.
μ€μΉ
pnpm add @radix-ui/themes @inkio/editor @inkio/extensionCSS μν¬νΈ μμ
// Radix μ€νμΌ λ¨Όμ
import '@radix-ui/themes/styles.css';
// κ·Έ λ€μ Inkio μ€νμΌ
import '@inkio/editor/minimal.css';
import '@inkio/extension/style.css';μ 체 μ½λ
import '@radix-ui/themes/styles.css';
import '@inkio/editor/minimal.css';
import '@inkio/extension/style.css';
import { Box, Card, Container, Heading, Text, Theme } from '@radix-ui/themes';
import { Editor } from '@inkio/editor';
import { getDefaultInkioExtensions } from '@inkio/extension';
import { useMemo } from 'react';
export default function RadixEditor({ theme }: { theme?: 'light' | 'dark' }) {
const extensions = useMemo(
() => getDefaultInkioExtensions({ placeholder: 'Start typing...' }),
[],
);
return (
<Theme appearance={theme ?? 'light'} accentColor="blue" grayColor="slate" radius="medium">
<Container size="3" p="6">
<Box mb="4">
<Heading size="6">My Editor</Heading>
<Text size="2" color="gray">
Radix Themes + Inkio
</Text>
</Box>
<Card size="3">
<Editor
extensions={extensions}
initialContent="<p>Hello from Radix!</p>"
showBubbleMenu
showFloatingMenu
/>
</Card>
</Container>
</Theme>
);
}ν λ§ μ°λ
Radixμ Theme μ»΄ν¬λνΈλ appearance propμΌλ‘ ν
λ§λ₯Ό μ μ΄ν©λλ€.
Inkioμ λ€ν¬ λͺ¨λμ μ°λνλ €λ©΄:
useEffect(() => {
document.documentElement.classList.toggle('dark', theme === 'dark');
}, [theme]);Last updated on