prism-react-renderer
A lightweight, themeable Prism syntax highlighter for React and React Native, built on a render-props API.
Repository Health
Technical Analysis
prism-react-renderer is a lean React component that tokenizes source code with a vendored, sandboxed copy of Prism and hands you the resulting tokens through a render-props API. Instead of shipping opinionated markup, it gives you tokens, getLineProps, and getTokenProps so you decide exactly how highlighted code is rendered — as <pre>/<span> trees, custom components, or even React Native views.
It ships with over twenty VSCode-inspired themes out of the box and a typed theming format that composes cleanly with SSR and static site generators, which is why it powers syntax highlighting inside Docusaurus and a wide range of other documentation tooling.
What You Get
- A
<Highlight>render-props component that returns tokens plusgetLineProps/getTokenPropsprop getters - A vendored, sandboxed Prism build that doesn’t pollute
window.Prism, plus an escape hatch to bring your own Prism instance - 20+ built-in VSCode-style themes (Dracula, Night Owl, GitHub, One Dark, and more) with a typed theming format
- Cross-platform support for React DOM and React Native from the same API
- Utility exports (
useTokenize,normalizeTokens) for building custom highlighting UIs
Common Use Cases
- Rendering syntax-highlighted code blocks in documentation sites and MDX content (it’s the highlighter behind Docusaurus)
- Building custom code-block components for blogs, changelogs, or in-app code viewers
- Adding live, theme-aware code previews to design systems and component playgrounds
- Highlighting code snippets inside React Native apps where DOM-based highlighters don’t work
Under The Hood
Architecture - The library is a thin, layered wrapper around Prism: the public Highlight component in index.ts injects default prism/theme props and delegates to an internal Highlight (components/highlight.ts), which resolves a theme dictionary via themeToDict, tokenizes the code with the useTokenize hook, and returns a render-props payload (tokens, className, style, getLineProps, getTokenProps) for the caller’s children function to render. useTokenize (components/useTokenize.ts) memoizes on code/grammar/language/prism, runs Prism’s before-tokenize/after-tokenize hooks, and passes raw Prism output through normalizeTokens (utils/normalizeTokens.ts), a non-recursive stack-based walker that flattens Prism’s nested token tree into Token[][] grouped by line, guarding against call-stack overflow on deeply nested grammars.
Tech Stack - Written in TypeScript, built as a pnpm workspace (packages/prism-react-renderer, packages/generate-prism-languages, packages/demo) with tsup for bundling to CJS/ESM/.d.ts, vitest for tests, and changesets for release management. It vendors and patches prismjs@1.29.0 (see patches/prismjs@1.29.0.patch) and depends only on clsx and @types/prismjs at runtime, with react as a peer dependency (>=16.0.0) so it stays framework-version-agnostic.
Used by 55 apps in this directory
Medplum
Authentication · Databases · Developer Tools
An open-source, FHIR-native healthcare platform that gives developers a compliant backend, authentication, a React component library, and serverless bots to build clinical applications in weeks instead of years.
medusa
Ecommerce
The most flexible open-source commerce platform — build B2C, B2B, and marketplace applications with modular, composable commerce primitives.
MLflow
AI Development · Monitoring
The open source AI engineering platform for debugging, evaluating, monitoring, and optimizing production LLMs and agents at scale.
Next AI Draw.io
AI Design Tools · Design Tools · Developer Tools
Turn natural language into professional draw.io diagrams with AI, cloud icons, and an MCP server for your IDE.
Notifuse
Marketing
Open-source, self-hosted alternative to Mailchimp, Brevo, and Klaviyo — send newsletters and transactional emails without per-email pricing or vendor lock-in.
Novu
Developer Tools
Open-source communication infrastructure that connects your products and AI agents to every channel your users live on — Inbox, Email, SMS, Push, Chat, and more.
Obot
AI Agents · Mcp
An open-source MCP platform for organizations — host MCP servers, run MCP registries, monitor usage, and build agents and chatbots on top of the Model Context Protocol from one self-hosted deployment.
Open Scouts
AI Agents · Automation
Create automated AI scouts that continuously search the web and send email alerts when they find what you're looking for.
OpenPanel
Devops · Hosting Control Panel
Docker-powered web hosting control panel that gives every user a fully isolated environment with dedicated web server, database, and networking — VPS-grade security on shared hardware.