Luthor
DocumentationDemoPlaygroundGitHub
Luthor

A headless, extensible rich text editor built on Lexical. Ship faster with production-ready defaults and TypeScript-first APIs.

Documentation

IntroductionInstallation@lyfie/headless@lyfie/luthor

Resources

DemoPlaygroundGitHubnpm Package

Support the Project

Buy me a coffeeStar on GitHub

Built with love by developers for developers.

DocsGitHubllms.txtllms-full.txt
  1. Home
  2. Docs
  3. Luthor
  4. Presets
  5. Extensive Editor

Luthor Documentation

Getting Started

  • Introduction
  • Installation
  • @lyfie/headless
  • @lyfie/luthor

@lyfie/headless

  • Features
  • Typography and Text
  • Structure and Lists
  • Media and Embeds
  • Code and Devtools
  • Interaction and Productivity
  • Customization and Theming

@lyfie/luthor

  • Presets
  • Extensive
  • Simple Text
  • Rich Text
  • Chat Window
  • Email Compose
  • Markdown
  • Notion Like
  • Headless Preset
  • Notes

Extensive

ExtensiveEditor is the base full-feature preset editor.

Usage

tsx
import { ExtensiveEditor } from '@lyfie/luthor';
import '@lyfie/luthor/styles.css';

export function App() {
  return <ExtensiveEditor placeholder="Write anything..." />;
}

Core props

  • initialTheme: 'light' (default) | 'dark'
  • showDefaultContent: true (default) | false
  • placeholder: 'Write anything...' (default) | string | { visual?: string; jsonb?: string }
  • initialMode: 'visual' (default) | 'jsonb'
  • availableModes: ['visual', 'jsonb'] (default) | ('visual' | 'jsonb')[]
  • toolbarPosition: 'top' (default) | 'bottom'
  • toolbarAlignment: 'left' (default) | 'center' | 'right'
  • isToolbarEnabled: true (default) | false
  • minimumDefaultLineHeight: 1.5 (default) | string | number
  • scaleByRatio: false (default) | true
  • syncHeadingOptionsWithCommands: true (default) | false
  • commandPaletteShortcutOnly: false (default) | true
  • isCopyAllowed: true (default) | false
  • syntaxHighlighting: 'auto' | 'disabled' | extension default behavior if omitted

Ref API

  • injectJSONB(content: string): void
  • getJSONB(): string

Notes

This is the base preset that other presets build on.

Previous: Presets
Next: Simple Text