Free
Pro

Rich Text Editor

Ply rich-text-editor is a copy-in Angular WYSIWYG: themed toolbar, contenteditable body, ControlValueAccessor for ngModel, and SSR gates so document is not touched during prerender. Pro. Agents copy it in instead of generating toolbar and sanitizer from scratch — walkthrough at /learn/ai-agent-tokens-rich-text-editor/.

When to use

  • Bios, comments, and CMS fields that need headings, lists, links, and Angular forms.
  • When you want the editor source in your repo so an agent can read and restyle it.

When not to use

  • Plain text or Markdown-only fields — use textarea or a Markdown pipeline.
  • A collaborative Notion-like canvas — this is a focused HTML editor, not a CRDT document.

Install with npx ply-ui-cli add rich-text-editor.

Pro Built with Ply icon buttons, tooltips, dropdown, and divider.

Reconstructed Claude/Grok session (teaching simulation, not a lab benchmark): token cost with Ply vs from scratch.

Pro — licensed

Rich Text Editor — part of Ply Pro

Unlock it plus 90 pro blocks, widgets & layouts — $99 one-time. Lifetime updates, 14-day money-back guarantee.

Unlock Pro

Basic usage

Bind HTML with [(ngModel)] or a reactive form control. The toolbar covers bold / italic / underline / strike, headings, lists, alignment, links, undo / redo, and clear formatting.

Welcome to the Ply rich text editor. Try italic, underline, lists, and links.

HTML value

<p>Welcome to the <strong>Ply</strong> rich text editor. Try <em>italic</em>, <u>underline</u>, lists, and links.</p>

Installation

Run the following command to add this component to your project:

bash
npx ply-ui-cli add rich-text-editor

API Reference

For AI agents

Copy a prompt with the registry name, CLI install, and import — or add the Ply MCP server.

bash
npx -y ply-ui-mcp

Ply provides standalone components. Import the exact elements you want to use into your component.

typescript (Example)
// Install: npx ply-ui-cli add rich-text-editor
// Paths are relative to aliases.components (default: src/app/components)
import { RichTextEditorComponent } from './rich-text-editor/rich-text-editor.component';

@Component({
  selector: 'app-your-component',
  imports: [
    RichTextEditorComponent
  ],
  template: `...`
})
export class YourComponent {}

API for rich-text-editor — generated from JSDoc in the library source.

API reference for rich-text-editor
APIMemberTypeDefaultDescription
ply-rich-text-editorclassstring''Extra host classes merged via `cn()`.
ply-rich-text-editorplaceholderunknown'Write something...'Placeholder shown when the editor is empty.
ply-rich-text-editorminHeightnumber180Minimum height of the editable area in pixels.
ply-rich-text-editorariaLabelunknown'Rich text editor'Accessible label for the editable region.