Theming

Built-in Themes

<MokaJsonViewer Json="@json" Theme="MokaJsonTheme.Light" />
<MokaJsonViewer Json="@json" Theme="MokaJsonTheme.Dark" />
<MokaJsonViewer Json="@json" Theme="MokaJsonTheme.Auto" />  @* follows system preference *@
Theme Description
Auto Follows the system's light/dark preference (default)
Light Light background with dark text
Dark Dark background with light text
Inherit No built-in styles applied; bring your own via CSS variables

Custom CSS Variables

Override any of these CSS custom properties to create your own theme:

.my-custom-viewer {
    /* Syntax highlighting */
    --moka-json-color-key: #0451a5;
    --moka-json-color-string: #a31515;
    --moka-json-color-number: #098658;
    --moka-json-color-boolean: #0000ff;
    --moka-json-color-null: #808080;
    --moka-json-color-bracket: #319331;

    /* UI chrome */
    --moka-json-bg: transparent;
    --moka-json-color-text: #1e1e1e;
    --moka-json-color-border: #e0e0e0;
    --moka-json-color-hover: rgba(0, 0, 0, 0.04);
    --moka-json-color-selected: rgba(0, 120, 212, 0.1);
    --moka-json-toolbar-bg: #f3f3f3;
    --moka-json-context-bg: #ffffff;

    /* Search highlighting */
    --moka-json-color-search-match: rgba(234, 192, 0, 0.4);
    --moka-json-color-search-active: rgba(234, 128, 0, 0.6);

    /* Typography */
    --moka-json-font-family: 'Cascadia Code', 'Fira Code', Consolas, monospace;
    --moka-json-font-size: 13px;
    --moka-json-line-height: 1.6;
}

Use Theme="MokaJsonTheme.Inherit" and wrap the viewer with your custom class:

<div class="my-custom-viewer">
    <MokaJsonViewer Json="@json" Theme="MokaJsonTheme.Inherit" />
</div>
Last updated: 2026-04-02
Was this page helpful?