Skip to content

Lexical libraries comparison

How @rozie-ui/lexical compares to the existing per-framework Lexical wrappers. Lexical's editor core is framework-agnostic and mounts anywhere — every wrapper exists only to glue reactive state, register plugins, and bridge decorator nodes. The result is the thinnest binding ecosystem of any major editor: a first-party React package, a stale Vue and Solid story, a single-maintainer Svelte package, and nothing for Angular or Lit. Rozie ships one source to all six targets — including the two the ecosystem leaves entirely unserved, Angular and Lit.

Research snapshot: 2026-07-18. Versions and download counts move; treat them as of that date.

The wrappers at a glance

WrapperPackageMaintainerStatus
React (official)@lexical/reactMeta (first-party)Healthy — the reference binding
Vue (community)lexical-vuewobsorianoStale — pinned many minors behind core
Solid (community)lexical-solidmosheduminerStale — tracks core slowly
Svelte (community)svelte-lexicalumaranisCapable but bus-factor-1
AngularNo maintained wrapper exists
LitNo wrapper exists
Rozie@rozie-ui/lexical-*One Learning CommunityOne source → all 6 targets (incl. Angular + Lit)

The wedge is strongest for Angular and Lit (no wrapper at all) and Vue / Solid (stale, pinned behind core). The recurring failure mode across the ecosystem — "a thin React transliteration, pinned N versions behind" — is exactly what Rozie's single-source model counters: one .rozie source compiles to every target from the same pinned engine.

Feature matrix

Capability@lexical/reactlexical-vuelexical-solidsvelte-lexicalAngular (none)Lit (none)@rozie-ui/lexical
Mount editorhand-rollhand-roll
Shared editor context for childrenhand-rollhand-roll$inject('rozie-lexical-editor')
RichText baselinehand-rollhand-roll✅ (shell + RichTextPlugin)
History (undo/redo)hand-rollhand-rollHistoryPlugin
List pluginhand-rollhand-rollListPlugin
Link pluginhand-rollhand-rollLinkPlugin
Selection-reading toolbarbuild it yourselfbuild it yourselfbuild it yourself✅ (rich sample)hand-rollhand-roll✅ bidirectional Toolbar
Decorator-node component rendererhand-rollhand-roll✅ neutral-descriptor bridge (6 targets)
Tracks the latest Lexical core⚠️ stale⚠️ stale✅ pinned 0.48.0 lockstep
One source → many frameworks✅ (all 6 targets)

Where Rozie wins today

  • One definition, six idiomatic packages — including the two frameworks the ecosystem leaves entirely unserved: Angular (no wrapper) and Lit (no wrapper). An Angular or Lit developer today hand-rolls the whole editor integration; Rozie gives them an idiomatic standalone component / web component.
  • A shared-editor context ($inject('rozie-lexical-editor')) with the same shape on every target — the extension seam custom plugins and the toolbar ride on, versus each framework's bespoke context/provider idiom.
  • A bidirectional selection-reading toolbar out of the box on all six — buttons that both dispatch commands and reflect the caret's current formatting — where React/Vue/Solid consumers build it themselves.
  • A neutral-descriptor decorator bridge proven end-to-end across six targets by the reference @mention node — including Lit through an open shadow root — plus an authoring recipe for custom nodes.
  • Lockstep-pinned enginelexical + every @lexical/* subpackage at 0.48.0, so the family never drifts behind core the way the community Vue/Solid wrappers have.

Staging — what ships today vs v1.1

@rozie-ui/lexical now ships all six targets; the remaining deferrals are explicit so nothing reads as a silent gap:

ItemStage
React / Vue / Svelte / Angular / Solid / LitShipping today
Editor shell + RichText / History / List / Link + toolbar + @mention decorator (6 bridges)Shipping today
Lit target + Lit decorator bridge (open shadow root; browser floor Chrome 137+ / FF 142+ / Safari 17+)Shipping today
Markdown-shortcuts pluginv1.1
Tables pluginv1.1

Lit ships with one parity caveat the other five don't: a documented browser-version floor and open-shadow-DOM obligations (theme CSS per shadow root, getComposedRanges selection). See the decorator recipe's Lit section for the full obligation list.

Honest caveats

  • All six targets ship, but Lit carries a browser floor. The Lit build requires Chrome 137+ / FF 142+ / Safari 17+ (getComposedRanges for cross-shadow selection); the other five have no such floor. The comparison rows for Angular/Lit describe the upstream ecosystem (no wrapper) — Rozie ships both.
  • @rozie-ui/lexical is 0.1.0. The surface (the shell + four plugins + toolbar + one decorator node) is stable and gate-verified, but younger than the multi-year @lexical/react.
  • Deliberately unopinionated. The toolbar and chips ship minimally styled by design (theme + your CSS is the styling path). This is the family ethos, not an omission — see the scope & posture notes.
  • No collaboration / no SSR hydration. @lexical/yjs collaboration and server-rendered-document hydration are out of scope (the editor is import-safe under SSR, but there is no hydration path).

Cross-references

Pre-v1.0 — internal monorepo.