Skip to Content

Radix UI 톡합

Radix Themes 의 Theme provider μ•ˆμ—μ„œ Inkio 에디터λ₯Ό μ‚¬μš©ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€.

μ„€μΉ˜

pnpm add @radix-ui/themes @inkio/editor @inkio/extension

CSS μž„ν¬νŠΈ μˆœμ„œ

// 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