Background
Documentation Index
Fetch the complete documentation index at: /llms.txt. Use this file to discover all available pages before exploring further.
Style chart backgrounds with built-in and custom patterns.
Usage
<EvilLineChart xDataKey="month" {data} {chartConfig} backgroundVariant="dots" /> Variants
Dots
Grid
Cross Hatch
Diagonal Lines
Plus
Falling Triangles
4-Pointed Star
Tiny Checkers
Overlapping Circles
Wiggle Lines
Bubbles
Custom Variant
Add your own style: define an SVG <pattern> and register it as a variant.
- Add the new name to the
BackgroundVariantunion insrc/lib/registry/ui/layerchart-background/types.ts. - Create a pattern component that returns a
<pattern>with your SVG shapes. - Register the pattern component in
PATTERN_MAP.
Example custom pattern:
export type BackgroundVariant =
| 'dots'
| 'grid'
| 'cross-hatch'
| 'diagonal-lines'
| 'plus'
| 'falling-triangles'
| '4-pointed-star'
| 'tiny-checkers'
| 'overlapping-circles'
| 'wiggle-lines'
| 'bubbles'
| 'custom-pattern';<script lang="ts">
let { id }: { id: string } = $props();
</script>
<pattern {id} x="0" y="0" width="24" height="24" patternUnits="userSpaceOnUse">
<path
class="text-border dark:text-border"
d="M12 2l2.2 4.6L19 9l-4.8 2.4L12 16l-2.2-4.6L5 9l4.8-2.4L12 2z"
fill="currentColor"
fill-opacity="0.35"
/>
</pattern>import type { Component } from 'svelte';
import Bubbles from './patterns/bubbles.svelte';
import CrossHatch from './patterns/cross-hatch.svelte';
import DiagonalLines from './patterns/diagonal-lines.svelte';
import DotsPattern from './patterns/dots.svelte';
import FallingTriangles from './patterns/falling-triangles.svelte';
import FourPointedStar from './patterns/four-pointed-star.svelte';
import GridPattern from './patterns/grid.svelte';
import OverlappingCircles from './patterns/overlapping-circles.svelte';
import Plus from './patterns/plus.svelte';
import TinyCheckers from './patterns/tiny-checkers.svelte';
import WiggleLines from './patterns/wiggle-lines.svelte';
import CustomPattern from './patterns/custom-pattern.svelte';
import type { BackgroundVariant, PatternProps } from './types.js';
export const PATTERN_MAP: Record<BackgroundVariant, Component<PatternProps>> = {
dots: DotsPattern,
grid: GridPattern,
plus: Plus,
bubbles: Bubbles,
'cross-hatch': CrossHatch,
'diagonal-lines': DiagonalLines,
'falling-triangles': FallingTriangles,
'4-pointed-star': FourPointedStar,
'tiny-checkers': TinyCheckers,
'overlapping-circles': OverlappingCircles,
'wiggle-lines': WiggleLines,
'custom-pattern': CustomPattern
};Then use it in any chart:
<EvilLineChart xDataKey="month" {data} {chartConfig} backgroundVariant="custom-pattern" /> Note
Tip: Use your logo as a pattern. Swap the SVG shape for an <image> pointing to your logo, then control its size and transparency: <image href="/logo.svg" width="24" height="24" opacity="0.2" />.