npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

flowtext-editor

v0.1.2

Published

A reusable, framework-agnostic Email Rich Text Editor React component.

Readme

FlowText Editor

npm version License

A modern, feature-rich React Rich Text Editor built for email templates, newsletters, and content editing.


🌐 Live Playground

Try the editor live in your browser:
👉 https://flowtext-editor.vercel.app

FlowText Editor


✨ Features

  • ✅ Rich Text Editing — Clean contenteditable environment inside an isolated iframe to prevent style pollution.
  • ✅ Heading & Paragraph Styles — Easily switch between Headings (H1 to H6) and paragraph blocks.
  • ✅ Font Size Controls — Fluid font size selector with quick step controls.
  • ✅ Text & Background Color — Premium palette picker with custom Hex value input support.
  • ✅ Bold / Italic / Underline — Quick standard formatting shortcuts and visual active indicators.
  • ✅ Numbered & Bulleted Lists — Predefined list styles plus custom character bullet overrides.
  • ✅ Text Alignment — Left, Center, Right, and Justified alignments.
  • ✅ Tables — Drag-resizable cell margins, cell borders, and hover-triggered add row/column buttons.
  • ✅ Links & Assets — Popover anchor editor to insert, edit, follow, and remove links easily.
  • ✅ Undo / Redo — Complete editor action history.
  • ✅ Spellcheck Support — Built-in native browser spellcheck with user-provided exclude lists.
  • ✅ Responsive Toolbar — Automatic wrapping and row-edge spacing alignment.
  • ✅ Light & Dark Theme — Clean custom variables to theme the host shell and inner workspace.
  • ✅ Modern UI — Highly polished, split-button container layout inspired by Notion and Google Docs.

📦 Installation

Install the package via your preferred package manager:

# npm
npm install flowtext-editor

# yarn
yarn add flowtext-editor

# pnpm
pnpm add flowtext-editor

🚀 Quick Start

Here is a clean React example to get started:

import React, { useState } from 'react';
import { FlowTextEditor } from 'flowtext-editor';
import 'flowtext-editor/styles.css';

export default function App() {
  const [content, setContent] = useState('<p>Start typing here...</p>');

  return (
    <div style={{ padding: '24px', maxWidth: '1000px', margin: '0 auto' }}>
      <h1>My Editor</h1>
      <FlowTextEditor
        content={content}
        setContent={setContent}
        modalHeight="500px"
        spellcheckIgnoreWords={['FlowText']}
      />
    </div>
  );
}

[!IMPORTANT] Styles Opt-In: Remember to import flowtext-editor/styles.css once in your application entry file to load design tokens and core dialog transitions correctly.


⚙️ Props

The FlowTextEditor component accepts the following props:

| Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | content | string | — | Required. Controlled HTML value representing the editor content. | | setContent | (content: string) => void | — | Required. Callback triggered on input change, returning the updated HTML. | | resetContent | boolean | false | When set to true, forces the editor to overwrite its internal content with the current content prop value. | | modalHeight | string | '650px' | Height of the editor container (accepts any valid CSS unit like px, vh, rem). | | spellcheckIgnoreWords | string[] | [] | List of custom words (like brand names or codes) that will be excluded from the native browser spellchecker. |


🚀 AI Features

FlowText Editor with AI Features

AI-powered writing tools are currently under development and will be available in a future release. Stay tuned for exciting updates.


📄 License

This project is licensed under the MIT License — see the LICENSE file for details.