{"id":50103134,"url":"https://github.com/software-mansion-labs/react-native-enriched-markdown","last_synced_at":"2026-06-09T00:00:46.630Z","repository":{"id":333652166,"uuid":"1077535932","full_name":"software-mansion-labs/react-native-enriched-markdown","owner":"software-mansion-labs","description":"Markdown Input \u0026 Text for React Native","archived":false,"fork":false,"pushed_at":"2026-06-07T17:12:40.000Z","size":10949,"stargazers_count":704,"open_issues_count":46,"forks_count":49,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-07T17:24:50.207Z","etag":null,"topics":["markdown","markdown-editor","react-native","rich-text","rich-text-editor","text-input"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/react-native-enriched-markdown","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/software-mansion-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-16T11:39:51.000Z","updated_at":"2026-06-07T12:19:22.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/software-mansion-labs/react-native-enriched-markdown","commit_stats":null,"previous_names":["software-mansion-labs/react-native-enriched-markdown"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/software-mansion-labs/react-native-enriched-markdown","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/software-mansion-labs%2Freact-native-enriched-markdown","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/software-mansion-labs%2Freact-native-enriched-markdown/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/software-mansion-labs%2Freact-native-enriched-markdown/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/software-mansion-labs%2Freact-native-enriched-markdown/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/software-mansion-labs","download_url":"https://codeload.github.com/software-mansion-labs/react-native-enriched-markdown/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/software-mansion-labs%2Freact-native-enriched-markdown/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34085321,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["markdown","markdown-editor","react-native","rich-text","rich-text-editor","text-input"],"created_at":"2026-05-23T09:00:21.139Z","updated_at":"2026-06-09T00:00:46.622Z","avatar_url":"https://github.com/software-mansion-labs.png","language":"Kotlin","funding_links":[],"categories":["Kotlin"],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/user-attachments/assets/83cb462c-17df-4809-8b8a-fa4abb258cb3\" alt=\"react-native-enriched-markdown by Software Mansion\" width=\"100%\"\u003e\n\n# react-native-enriched-markdown\n\n`react-native-enriched-markdown` is a powerful React Native library that renders Markdown content as native text and provides a rich text input with Markdown output. It supports iOS, Android, macOS, and Web, and requires the New Architecture (Fabric) for native platforms.\n\n### EnrichedMarkdownText\n\n- ⚡ Fully native text rendering (no WebView)\n- 🌐 Web support via [react-native-web](https://necolas.github.io/react-native-web/) + [md4c](https://github.com/mity/md4c) compiled to WebAssembly\n- 🎯 High-performance Markdown parsing with [md4c](https://github.com/mity/md4c)\n- 📐 CommonMark standard compliant\n- 📊 GitHub Flavored Markdown (GFM)\n- 🧮 LaTeX math rendering (block `$$...$$` with `flavor=\"github\"`, inline `$...$` in all flavors)\n- 🔀 [Markdown Streaming](docs/MARKDOWN_STREAMING.md) support (via [react-native-streamdown](https://github.com/software-mansion-labs/react-native-streamdown))\n- 🎨 Fully customizable styles for all elements\n- ✨ Text selection and copy support\n- 📌 Custom text selection context menu items\n- 🔗 Interactive link handling with [per-URL-pattern styling](docs/MENTIONS.md#link-variants-styling) (`linkVariants`)\n- 👤 Renders mentions as styled links (compatible with `EnrichedMarkdownTextInput` mention output)\n- 🙈 Spoiler text with animated particle overlay and tap-to-reveal\n- 🖼️ Native image interactions (iOS: Copy, Save to Camera Roll)\n- 🌐 Native platform features (Translate, Look Up, Search Web, Share)\n- 🗣️ Accessibility support (VoiceOver on iOS, TalkBack on Android, semantic HTML on web)\n- 🔄 Full RTL (right-to-left) support including text, lists, blockquotes, tables, and task lists\n\n### EnrichedMarkdownTextInput\n\n- ✏️ Rich text input with Markdown output\n- 🕹️ Imperative API for toggling styles and managing links\n- 📋 Native context menu with formatting submenu\n- 🔍 Real-time style state detection\n- 🔗 Auto-link detection with customizable regex\n- 🔄 Smart copy/paste with Markdown preservation\n- 🎨 Customizable bold, italic, and link colors\n- 👤 [Mentions](docs/MENTIONS.md) with configurable indicators, suggestion lifecycle events, and per-pattern link styling\n\nSince 2012 [Software Mansion](https://swmansion.com) is a software agency with experience in building web and mobile apps. We are Core React Native Contributors and experts in dealing with all kinds of React Native issues.\nWe can help you build your next dream product –\n[Hire us](https://swmansion.com/contact/projects?utm_source=react-native-enriched-markdown\u0026utm_medium=readme).\n\n## Table of Contents\n\n- [Prerequisites](#prerequisites)\n- [Installation](#installation)\n- [EnrichedMarkdownText](#enrichedmarkdowntext-1)\n  - [Usage](docs/TEXT.md#usage)\n  - [Supported Markdown Elements](docs/TEXT.md#supported-markdown-elements)\n  - [Copy Options](docs/TEXT.md#copy-options)\n  - [Accessibility](docs/TEXT.md#accessibility)\n  - [RTL Support](docs/TEXT.md#rtl-support)\n  - [Customizing Styles](docs/TEXT.md#customizing-styles)\n  - [LaTeX Math](docs/LATEX_MATH.md)\n  - [Image Caching](docs/IMAGE_CACHING.md)\n  - [Markdown Streaming](docs/MARKDOWN_STREAMING.md)\n- [EnrichedMarkdownTextInput](#enrichedmarkdowntextinput-1)\n  - [Usage](docs/INPUT.md#usage)\n  - [Inline Styles](docs/INPUT.md#inline-styles)\n  - [Links](docs/INPUT.md#links)\n  - [Auto-Link Detection](docs/INPUT.md#auto-link-detection)\n  - [Mentions](docs/MENTIONS.md)\n  - [Style Detection](docs/INPUT.md#style-detection)\n  - [Other Events](docs/INPUT.md#other-events)\n  - [Customizing Styles](docs/INPUT.md#customizing-enrichedmarkdowntextinput--styles)\n- [API Reference](#api-reference)\n- [Web Support](docs/WEB.md)\n- [macOS Support](docs/MACOS.md)\n- [Compatibility Table](#compatibility-table)\n- [Contributing](#contributing)\n- [Future Plans](#future-plans)\n- [License](#license)\n\n## Prerequisites\n\n**Native (iOS / Android / macOS)**\n\n- Requires [the React Native New Architecture (Fabric)](https://reactnative.dev/architecture/landing-page)\n- See [Compatibility Table](#compatibility-table) for supported React Native versions\n- macOS support via [react-native-macos](https://github.com/microsoft/react-native-macos) `0.81+`\n\n**Web**\n\n- Requires [`react-native-web`](https://necolas.github.io/react-native-web/) and Metro (or another bundler with `.web.tsx` platform resolution)\n- No New Architecture requirement — the web renderer runs entirely in JavaScript via WebAssembly\n- Only `EnrichedMarkdownText` is supported on web (`EnrichedMarkdownTextInput` is native-only)\n- LaTeX math requires the optional [`katex`](https://katex.org/) peer dependency\n\n## Installation\n\n### Web\n\nNo steps beyond having `react-native-web` configured. For LaTeX math, install the optional peer dependency:\n\n```sh\nnpm install katex\n# or\nyarn add katex\n```\n\nSee [Web Support](docs/WEB.md) for full setup details, supported features, and prop behaviour.\n\n### Bare React Native app (iOS / Android)\n\n#### 1. Install the library\n\n```sh\nyarn add react-native-enriched-markdown\n```\n\n\u003e [!TIP]\n\u003e To try the latest features before they land in a stable release, install the nightly build:\n\u003e\n\u003e ```sh\n\u003e yarn add react-native-enriched-markdown@nightly\n\u003e ```\n\u003e\n\u003e Nightly versions are published to npm automatically and may contain breaking changes.\n\n#### 2. Install iOS / macOS dependencies\n\nThe library includes native code so you will need to re-build the native app.\n\n```sh\n# iOS\ncd ios \u0026\u0026 bundle install \u0026\u0026 bundle exec pod install\n\n# macOS (react-native-macos)\ncd macos \u0026\u0026 bundle install \u0026\u0026 bundle exec pod install\n```\n\n### Expo app\n\n#### 1. Install the library\n\n```sh\nnpx expo install react-native-enriched-markdown\n```\n\n#### 2. Run prebuild\n\nThe library includes native code so you will need to re-build the native app.\n\n```sh\nnpx expo prebuild\n```\n\n\u003e [!NOTE]\n\u003e The library won't work in Expo Go as it needs native changes.\n\n\u003e [!IMPORTANT]\n\u003e **iOS: Save to Camera Roll**\n\u003e\n\u003e If your Markdown content includes images and you want users to save them to their photo library, add the following to your `Info.plist`:\n\u003e\n\u003e ```xml\n\u003e \u003ckey\u003eNSPhotoLibraryAddUsageDescription\u003c/key\u003e\n\u003e \u003cstring\u003eThis app needs access to your photo library to save images.\u003c/string\u003e\n\u003e ```\n\n## EnrichedMarkdownText\n\nSee [EnrichedMarkdownText](docs/TEXT.md) for detailed documentation on usage examples, GFM tables, task lists, link handling, supported elements, copy options, accessibility, RTL support, and customizing styles. Mentions created by `EnrichedMarkdownTextInput` render as styled links — use [`linkVariants`](docs/MENTIONS.md#link-variants-styling) to customize their appearance.\n\n## EnrichedMarkdownTextInput\n\nSee [EnrichedMarkdownTextInput](docs/INPUT.md) for detailed documentation on usage examples, inline styles, links, style detection, events, and customizing styles.\n\n## API Reference\n\nSee the [API Reference](docs/API_REFERENCE.md) for a detailed overview of all the props, methods, and events available.\n\n## Web Support\n\nSee [Web Support](docs/WEB.md) for details on supported features, web-specific prop behaviour, and known limitations.\n\n## macOS Support\n\n`react-native-enriched-markdown` supports macOS via [react-native-macos](https://github.com/microsoft/react-native-macos). See [macOS Support](docs/MACOS.md) for details on macOS-specific features, known limitations, and the example app.\n\n## Future Plans\n\nWe're actively working on expanding the capabilities of `react-native-enriched-markdown`. Here's what's on the roadmap:\n\n- `EnrichedMarkdownTextInput`: headings, lists, blockquotes, code blocks, inline images\n- `EnrichedMarkdownTextInput` web support\n- macOS: block math rendering, VoiceOver accessibility, tail fade-in animation\n- Web: spoiler text, streaming animation, configurable link `target`, copy options (Copy as Markdown, multi-format clipboard)\n\n## Compatibility Table\n\n| | 0.81 | 0.82 | 0.83 | 0.84 | 0.85 |\n|---|:---:|:---:|:---:|:---:|:---:|\n| **nightly** | ⛔ | ⛔ | ✅ | ✅ | ✅ |\n| **0.6.0** | ⛔ | ⛔ | ✅ | ✅ | ✅ |\n| **0.5.0** | ⛔ | ⛔ | ✅ | ✅ | ✅ |\n| **0.4.x** | ✅ | ✅ | ✅ | ✅ | ⛔ |\n| **0.3.0** | ✅ | ✅ | ✅ | ✅ | ⛔ |\n| **0.2.x** | ✅ | ✅ | ✅ | ✅ | ⛔ |\n\n## Contributing\n\nSee the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.\n\n## License\n\n`react-native-enriched-markdown` library is licensed under [The MIT License](./LICENSE).\n\n---\n\nBuilt by [Software Mansion](https://swmansion.com/).\n\n[\u003cimg width=\"128\" height=\"69\" alt=\"Software Mansion Logo\" src=\"https://github.com/user-attachments/assets/f0e18471-a7aa-4e80-86ac-87686a86fe56\" /\u003e](https://swmansion.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftware-mansion-labs%2Freact-native-enriched-markdown","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoftware-mansion-labs%2Freact-native-enriched-markdown","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftware-mansion-labs%2Freact-native-enriched-markdown/lists"}