VideoFlowcodeGitHubStudioTry itCoreRenderersReact Video EditorPlaygroundExamplesDocscodeGitHubStudioTry it
Getting started
InstallationQuick startCore conceptsYour first video
Builder
Builder APITime formatsParallel & wait
Layers
TextImageVideoAudioCaptionsShapeGroups
Animation
Animate & keyframesEasing functionsTransitionsEffects
Renderers
Browser rendererServer rendererDOM preview
React Video Editor
QuickstartThemingUploadsCustom panelsHooks & commandsKeyboard shortcuts
API reference
Overview@videoflow/core@videoflow/renderer-browser@videoflow/renderer-server@videoflow/renderer-dom@videoflow/react-video-editor

Editor theming

Pick a built-in theme with the theme prop, then override any CSS variable inline or from your own stylesheet — the editor reads from its own custom element scope so overrides don't bleed.

Built-in themes

The editor ships four themes: Light, Grey, Dark, and Night. Open any of them live in the Playground.

<VideoEditor theme="light" />
<VideoEditor theme="grey" />
<VideoEditor theme="dark" />
<VideoEditor theme="night" />

Brand overrides

<VideoEditor
  theme="night"
  style={{
    '--vf-primary':       '#a855f7',
    '--vf-primary-hover': '#9333ea',
    '--vf-accent':        '#ec4899',
  }}
/>

Every variable

VariableRole
--vf-bgRoot background.
--vf-panelPanel surface (sidebar, timeline).
--vf-panel-2Elevated surface.
--vf-borderDefault border.
--vf-textPrimary text.
--vf-text-mutedSecondary text.
--vf-primaryBrand colour (buttons, selection).
--vf-primary-hoverBrand hover.
--vf-accentSecondary brand.
--vf-success / --vf-warning / --vf-dangerStatus colours.
--vf-titlebar-heightDefault 48px.
--vf-sidebar-widthDefault 320px.
--vf-timeline-heightDefault 260px.
--vf-radiusDefault radius.
--vf-font-familyDefault system-ui.

Scoped. The editor's styles are scoped to its custom-element shell, so overrides you make inline never leak out.

VideoFlow

Open-source toolkit for composing videos from code.

Product

CoreRenderersReact Video EditorPlaygroundStudio

Learn

DocsAPI referenceExamplesvs. Remotionvs. FFmpeg

Project

GitHubLicenseContactTermsPrivacy

From the blog

All posts →Building a "Canva for Video" with the @videoflow/react-video-editorAutomating Social Media Captions: A Developer's Guide to Frame-Perfect SubtitlesBeyond Node: How to Render Cinematic Videos from Python and GoBuilding a Video Rendering API with Node.js and VideoFlow (No FFmpeg Required)Mastering Programmatic Video Transitions: A Developer's GuideProgrammatic Video Storage: Why Your MP4s Should Live as Version-Controlled JSONThe Video Markdown Pattern: Turning Static Content into Automated MP4sZero-Cost Video Rendering: How to Export MP4s Directly in the Browser
© 2026 VideoFlow. Apache-2.0 core.