ConfigProvider
Global configuration provider for setting default values across all Codespark components.
ConfigProvider is a global configuration provider that sets default values for theme, imports, font family, and editor engine across all Codespark components in your application.
import { ConfigProvider } from '@codespark/react';When to Use
Use ConfigProvider when you want to:
- Set a global theme for all Codespark instances
- Define shared import maps for external dependencies
- Configure a default font family for all editors
- Set a default editor engine (Monaco or CodeMirror)
Basic Usage
Wrap your application (or a section of it) with ConfigProvider:
<ConfigProvider theme="dark" fontFamily="JetBrains Mono">
<Codespark code={code1} />
<Codespark code={code2} />
{/* Both instances inherit dark theme and font */}
</ConfigProvider>Props
theme
Global theme mode for all editors and previews.
| Type | Default | Since |
|---|---|---|
'light' | 'dark' | 'light' | v1.0.0 |
< ="dark">
{/* All children use dark theme by default */}
</>imports
Global import map for external dependencies. These imports are available to all Codespark instances.
| Type | Default | Since |
|---|---|---|
Record<string, string> | - | v1.0.0 |
<
={{
'lodash-es': 'https://esm.sh/lodash-es@4.17.21',
'date-fns': 'https://esm.sh/date-fns@3.0.0'
}}
>
{/* All children can use these imports */}
</>fontFamily
Default font family for all code editors.
| Type | Default | Since |
|---|---|---|
string | 'Fira Code' | v1.0.0 |
< ="JetBrains Mono">
{/* All editors use JetBrains Mono */}
</>editor
Default editor engine component to use (Monaco or CodeMirror).
| Type | Default | Since |
|---|---|---|
typeof Monaco | typeof CodeMirror | CodeMirror | v1.0.0 |
import { } from '@codespark/react';
import { } from '@codespark/react/Monaco';
< ={}>
{/* All editors use Monaco by default */}
</>children
Child components that will inherit the configuration.
| Type | Default | Since |
|---|---|---|
ReactNode | - | v1.0.0 |
Configuration Hierarchy
Configuration values are inherited in the following order (later values override earlier ones):
- ConfigProvider - Global defaults
- CodesparkProvider - Instance-level configuration
- Component props - Direct props on individual components
<ConfigProvider theme="dark">
{/* Uses dark theme from ConfigProvider */}
<Codespark code={code1} />
<CodesparkProvider theme="light">
{/* Uses light theme from CodesparkProvider */}
<CodesparkEditor />
</CodesparkProvider>
{/* Uses light theme from direct prop */}
<Codespark code={code2} theme="light" />
</ConfigProvider>Last updated on