# RenderConfig

> Full rendering behaviour configuration. Use INTERACTIVERENDERCONFIG or STATICRENDERCONFIG as a starting point.

> **RenderConfig** = `object`

Full rendering behaviour configuration. Use `INTERACTIVE_RENDER_CONFIG` or `STATIC_RENDER_CONFIG` as a starting point.

## Properties

### animation

> **animation**: `object`

#### duration

> **duration**: `number`

#### ease

> **ease**: (`t`) => `number`

##### Parameters

###### t

`number`

##### Returns

`number`

***

### caves

> **caves**: `object`

#### amplitude

> **amplitude**: `object`

##### amplitude.max

> **max**: `number`

##### amplitude.min

> **min**: `number`

##### amplitude.ratio

> **ratio**: `number`

#### pathSteps

> **pathSteps**: `number`

***

### columnHeaders

> **columnHeaders**: `object`

Column titles drawn in the panel's top margin, over a rule that sits
`construction.cementPad.height` px above the drawing area (clear of the
pad). The top margin must hold `height` plus that.

#### active

> **active**: `boolean`

#### height

> **height**: `number`

Height of the header row, taken from the top margin.

#### labels

> **labels**: `object`

##### labels.construction

> **construction**: `string`

##### labels.depth

> **depth**: `string`

##### labels.description

> **description**: `string`

Shown only when lithology annotations are drawn.

##### labels.lithology

> **lithology**: `string`

***

### construction

> **construction**: `object`

#### casingShoe

> **casingShoe**: `object`

Casing shoe: a filled triangle outside each wall where the casing /
screen string really ends (not at panel cuts or joints).

##### casingShoe.active

> **active**: `boolean`

##### casingShoe.size

> **size**: `number`

Triangle leg in pixels (constant regardless of zoom).

#### cementPad

> **cementPad**: `object`

Fixed-size pad drawn above the surface as two slabs around the
outermost pipe, with break lines at the outer ends (not to scale). The
profile's `cement_pad` width and thickness don't change it (they only
show in the tooltip).

##### cementPad.height

> **height**: `number`

Pad height in pixels (constant regardless of zoom).

##### cementPad.widthRatio

> **widthRatio**: `number`

Pad width as a ratio of the construction column width; widened when the pipe opening needs it.

#### centralizer

> **centralizer**: `object`

##### centralizer.markerHalfHeight

> **markerHalfHeight**: `number`

Half the marker height in pixels (constant regardless of zoom).

#### pump

> **pump**: `object`

Current pump + riser layer (`.well` v2.3 `pump_installations`).

##### pump.active

> **active**: `boolean`

Whether the current pump is drawn.

##### pump.bodyHeight

> **bodyHeight**: `number`

Pump body height in pixels (constant regardless of zoom); the body ends at `intake_depth`.

##### pump.bodyWidthRatio

> **bodyWidthRatio**: `number`

Pump body width as a fraction of the casing/screen diameter at the intake.

##### pump.riserWidthRatio

> **riserWidthRatio**: `number`

Riser width as a fraction of the casing diameter, used when `riser_diameter` is absent.

#### screenEnds

> **screenEnds**: `object`

Screen ends: a dashed line across the pipe at the top and base of
every screen (not at panel cuts). Styled by `theme.wellScreen`
`endStrokeWidth` / `endDasharray`.

##### screenEnds.active

> **active**: `boolean`

#### surfaceCase

> **surfaceCase**: `object`

##### surfaceCase.diameterPaddingRatio

> **diameterPaddingRatio**: `number`

***

### constructionLabels

> **constructionLabels**: `object`

#### active

> **active**: `boolean`

#### labelMaxWidth?

> `optional` **labelMaxWidth?**: `number`

#### labelRadius

> **labelRadius**: `number`

#### labels

> **labels**: `object`

##### labels.wellCasePrefix

> **wellCasePrefix**: `string`

##### labels.wellScreenPrefix

> **wellScreenPrefix**: `string`

##### labels.wellScreenSlotPrefix

> **wellScreenSlotPrefix**: `string`

#### side?

> `optional` **side?**: `"left"` \| `"right"`

`left` (default): each label ends `xOffset` px left of its own casing
wall. `right`: labels start `xOffset` px right of the construction
column, in one aligned column.

#### xOffset

> **xOffset**: `number`

***

### fractures

> **fractures**: `object`

#### hitBuffer

> **hitBuffer**: `object`

##### hitBuffer.single

> **single**: `number`

##### hitBuffer.swarm

> **swarm**: `number`

#### swarm

> **swarm**: `object`

##### swarm.lineCountBase

> **lineCountBase**: `number`

##### swarm.lineCountVariance

> **lineCountVariance**: `number`

##### swarm.spread

> **spread**: `number`

#### widthMultiplier

> **widthMultiplier**: `number`

***

### geologic

> **geologic**: `object`

#### xLeft

> **xLeft**: `number`

#### xRightInset

> **xRightInset**: `number`

***

### highlights

> **highlights**: `object`

#### fill

> **fill**: `string`

#### fillOpacity

> **fillOpacity**: `number`

#### labelBackground

> **labelBackground**: `string`

#### labelColor

> **labelColor**: `string`

#### labelFontSize

> **labelFontSize**: `number`

#### labelPadding

> **labelPadding**: `number`

#### labelRadius

> **labelRadius**: `number`

#### padding

> **padding**: `number`

#### stroke

> **stroke**: `string`

#### strokeDasharray?

> `optional` **strokeDasharray?**: `string`

#### strokeWidth

> **strokeWidth**: `number`

***

### labels

> **labels**: `object`

#### active

> **active**: `boolean` \| (`"lithology"` \| `"fractures"` \| `"caves"`)[]

false = hide all; true = show all; array = show only listed types

#### caveLabelHeight?

> `optional` **caveLabelHeight?**: `number`

#### caveLabelPadX?

> `optional` **caveLabelPadX?**: `number`

#### continuation

> **continuation**: `object`

Marks layers and construction items that start above the panel (they
continue from the previous one): `↑ {prefix} · from–to` on lithology
annotations, a leading `↑` on construction labels.

##### continuation.active

> **active**: `boolean`

##### continuation.prefix

> **prefix**: `string`

#### depthTipHeight

> **depthTipHeight**: `number`

#### depthTipPadX

> **depthTipPadX**: `number`

#### descriptionMaxWidth

> **descriptionMaxWidth**: `number`

#### descriptionXOffset

> **descriptionXOffset**: `number`

#### fractureLabelLeaderGap?

> `optional` **fractureLabelLeaderGap?**: `number`

#### fractureLabelPadX?

> `optional` **fractureLabelPadX?**: `number`

#### fractureLabelPadY?

> `optional` **fractureLabelPadY?**: `number`

#### lithology?

> `optional` **lithology?**: `boolean` \| [`LithologyLabelItem`](/render/api/type-aliases/LithologyLabelItem)[]

Fine-grained lithology sub-item control; `true` = depth, description and dividers

#### stackingGap

> **stackingGap**: `number`

#### stackingLineHeight

> **stackingLineHeight**: `number`

#### typeLabels?

> `optional` **typeLabels?**: `object`

##### typeLabels.cave?

> `optional` **cave?**: `string`

##### typeLabels.caveWater?

> `optional` **caveWater?**: `string`

##### typeLabels.fracture?

> `optional` **fracture?**: `string`

##### typeLabels.fractureWater?

> `optional` **fractureWater?**: `string`

***

### layout

> **layout**: `object`

#### pocoCenterRatio

> **pocoCenterRatio**: `number`

#### pocoWidthRatio

> **pocoWidthRatio**: `number`

***

### legend

> **legend**: [`LegendRenderConfig`](/render/api/type-aliases/LegendRenderConfig)

***

### markers

> **markers**: `object`

Circled 1-based index on each lithology layer, `F{n}` next to each fracture.

#### fractures

> **fractures**: `boolean`

#### lithology

> **lithology**: `boolean`

#### radius

> **radius**: `number`

***

### maxZoomScale?

> `optional` **maxZoomScale?**: `number`

Upper bound for zoom scale, enforced for wheel/drag and `zoomBy`/`resetZoom` alike (default 150 = 15000%).

***

### minZoomScale?

> `optional` **minZoomScale?**: `number`

Lower bound for zoom scale, enforced for wheel/drag and `zoomBy`/`resetZoom` alike (default 0 = 0%).

***

### overlap

> **overlap**: `object`

Band over the depths a panel repeats (`SvgInstance.repeatedTo`).

#### label

> **label**: `string`

`{range}` is replaced by the repeated depth range, e.g. `116–124 m`.

***

### overview

> **overview**: `object`

Mini-map: the whole well's lithology drawn as a thin column in the
panel's left margin, with a window outlining the panel's depth range.

#### active

> **active**: `boolean`

#### height

> **height**: `number`

Height in pixels; capped at the panel's drawing height.

#### width

> **width**: `number`

#### x

> **x**: `number`

Left edge in SVG coordinates.

***

### pan

> **pan**: `boolean`

***

### textures?

> `optional` **textures?**: `TexturesConfig`

***

### tooltipLabels

> **tooltipLabels**: [`TooltipLabels`](/render/api/type-aliases/TooltipLabels)

Resolved (plain-string) tooltip titles/field labels — see `TooltipLabels`.

***

### tooltips?

> `optional` **tooltips?**: [`TooltipKey`](/render/api/type-aliases/TooltipKey)[] \| `false`

undefined = show all; false or [] = show none; array = show only listed keys

***

### unitLabels

> **unitLabels**: `object`

#### active

> **active**: `boolean`

Show geologic_unit and aquifer_unit strips to the left of the lithology column

#### innerDividerWidth

> **innerDividerWidth**: `number`

Stroke width of divider lines between adjacent segments of different units

#### minHeightForText

> **minHeightForText**: `number`

#### outerEdgeWidth

> **outerEdgeWidth**: `number`

Stroke width of the top/bottom boundary (and page-clip edges in multi-SVG rendering)

#### stripWidth

> **stripWidth**: `number`

#### xOffset

> **xOffset**: `number`

X position of the first (leftmost) strip in geologic group coordinates

***

### zoom

> **zoom**: `boolean`

***

### zoomLevel?

> `optional` **zoomLevel?**: `number`

Initial zoom scale applied on first render (1 = fit all, 2 = start 2× zoomed in).
