DemoDocsPlaygroundGitHub

An extensible rich text editor framework built on Lexical. Ship faster with production-ready defaults and TypeScript-first APIs.

Documentation

IntroductionInstallation@lyfie/luthor-headless@lyfie/luthor

Resources

DemoFeaturesPlaygroundGitHubluthor @ npmluthor-headless @ npm

Support the Project

Buy me a coffeeStar on GitHub

Built with ❤️ by Lyfie.org

HomeDocsFeaturesDemoGitHubllms.txtllms-full.txt
  1. Home
  2. Docs
  3. Luthor
  4. Presets
  5. Compose Editor

Luthor Documentation

Getting Started

  • Introduction
  • Installation
  • Contributor Guide
  • AI Agents and Vibe Coding
  • Capabilities
  • @lyfie/luthor-headless
  • @lyfie/luthor

@lyfie/luthor-headless

  • Architecture
  • Extensions and API
  • Metadata Comment System
  • Features
  • Typography and Text
  • Structure and Lists
  • Media and Embeds
  • Code and Devtools
  • Interaction and Productivity
  • Customization and Theming

@lyfie/luthor

  • Architecture
  • Props Reference
  • Feature Flags
  • Presets
  • Extensive Editor
  • Compose Editor
  • Simple Editor
  • Legacy Rich Editor
  • MD Editor
  • HTML Editor
  • Slash Editor
  • Headless Editor

Compose Editor

ComposeEditor is a focused drafting preset for writing flows where speed and clarity matter more than every possible feature.

Usage

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

export function App() {
  return (
    <ComposeEditor
      compactToolbar
      placeholder="Write your draft..."
    />
  );
}

Props

ComposeEditorProps inherits all ExtensiveEditorProps except direct featureFlags, then adds:

  • featureFlags: FeatureFlagOverrides (optional overrides)
  • compactToolbar: false (default) | true

Default mode profile

  • availableModes: ["visual", "json"]
  • Toolbar is enabled by default (inherited from ExtensiveEditor).

Default feature profile

Enabled by default:

  • bold, italic, underline, strikethrough
  • list, history, link, blockFormat, codeFormat

Disabled by default:

  • image, table, iframeEmbed, youTubeEmbed
  • emoji, floatingToolbar, contextMenu
  • commandPalette, slashCommand
  • draggableBlock, customNode

Behavior

  • Great for writing drafts, briefs, notes, and long-form content where rich media is optional.
  • Keeps the surface clean while still allowing the core writing commands most teams use daily.
  • Supports user-provided featureFlags overrides so you can selectively re-enable disabled features.

Related pages

  • Extensive Editor
  • Feature Flags
Previous: Extensive Editor
Next: Simple Editor