Skip to Content
Getting StartedYour First Editor

Your First Editor

A minimal but complete example with all standard free plugins enabled.

components/FullEditor.tsx
"use client" import { useState } from 'react' import { RichTextEditor } from '@inkstream/react-editor' import { availablePlugins } from "@inkstream/starter-kit" import { headingPlugin } from '@inkstream/heading' import { linkBubbleWrapperPlugin } from '@inkstream/link-bubble' const PLUGINS = [ availablePlugins.paragraph, availablePlugins.bold, availablePlugins.italic, availablePlugins.underline, availablePlugins.strike, availablePlugins.textColor, availablePlugins.highlight, availablePlugins.alignment, availablePlugins.lists, availablePlugins.superscript, availablePlugins.subscript, availablePlugins.blockquote, availablePlugins.codeBlock, availablePlugins.image, availablePlugins.horizontalLine, availablePlugins.history, linkBubbleWrapperPlugin ] const TOOLBAR = [ 'heading', '|', 'bold', 'italic', 'underline', 'strike', '|', 'textColor', 'highlight', '|', 'alignLeft', 'alignCenter', 'alignRight', 'alignJustify', '|', 'lists', '|', 'blockquote', 'code', 'image', 'link', '|', 'horizontalLine', 'undo', 'redo', ] export default function FullEditor() { const [html, setHtml] = useState('') return ( <div> <RichTextEditor initialContent="<p>Start typing...</p>" plugins={PLUGINS} toolbarLayout={TOOLBAR} onChange={setHtml} /> <pre style={{ marginTop: 16, fontSize: 12 }}>{html}</pre> </div> ) }

The toolbarLayout array controls both order and visibility. Items not listed are hidden. Use '|' to insert a visual separator.

Next steps