Atom label settings
Screen-space labels are opt-in and avoid displayed atoms and other labels. This is the exhaustive option table — for the narrative, see the dedicated Atom Labels section: activating labels, how placement works (the concepts behind the placement, repair, callout, and performance knobs below), and labels in the widget.
| Option | Type | Default | Description |
|---|---|---|---|
atomLabels.show | String or Array | "none" | none, all, non-hydrogen, or an array of atom selectors/specifications. |
atomLabels.placementMode | String | "auto-omit" | auto-omit adaptively uses quality placement for ordinary visible workloads and performance placement for dense ones; quality-omit forces exact candidate evaluation with repair; performance-omit forces front-to-back, zoom-specific no-space reuse without repair; maximum-coverage searches farther and adds callouts. Omission modes reject confusing crossings. |
atomLabels.text | Object | {} | Optional display-text overrides keyed by base label or symmetry-qualified atom ID. |
atomLabels.fontSize | Number | 14 | Canvas text font size in CSS pixels. |
atomLabels.fontWeight | Number | 500 | Canvas text font weight. |
atomLabels.fontFamily | String | "system-ui, -apple-system, sans-serif" | Canvas text font family. |
atomLabels.colorMode | String | "uniform" | uniform uses atomLabels.color; atom uses each atom's element colour. |
atomLabels.color | Color | "#111111" | Label text colour in uniform colour mode. |
atomLabels.atomColorLuminanceCeiling | Number | 0.25 | In atom colour mode, the element palette is scaled so its brightest colour reaches this relative-luminance ceiling without clustering colours there. |
atomLabels.atomColorLuminanceFloor | Number|null | null | When set (0–1), replaces the ceiling: in atom colour mode the palette is mixed towards white so its darkest element colour reaches this relative luminance — keeps labels readable on dark backgrounds. See the default dark theme. |
atomLabels.haloColor | Color | "#ffffff" | Contrast halo colour behind label text. |
atomLabels.haloWidth | Number | 2 | Contrast halo width in CSS pixels. |
atomLabels.leaderLines | String | "auto" | Controls when leader lines from a label to its atom are drawn. |
atomLabels.leaderColor | Color | "rgba(17, 17, 17, 0.55)" | Leader-line colour. |
atomLabels.leaderWidth | Number | 1 | Leader-line width in CSS pixels. |
atomLabels.atomPadding | Number | 3 | Collision clearance around atoms in CSS pixels. |
atomLabels.bondPadding | Number | 2 | Collision clearance around bonds in CSS pixels. |
atomLabels.labelPadding | Number | 2 | Collision clearance between labels in CSS pixels. |
atomLabels.viewportPadding | Number | 4 | Collision clearance to the viewport edges in CSS pixels. |
atomLabels.fallbackDistance | Number | 18 | Farther fallback spacing when close placements are unavailable, in CSS pixels. |
atomLabels.maxConnectorLength | Number | Infinity | Hard connector-length ceiling in CSS pixels. Labels which cannot fit within the ceiling are omitted rather than drawn with extreme connectors. |
atomLabels.ringPenalty | Number | 1000 | Candidate scoring penalty for interference with ADP rings. |
atomLabels.movementPenalty | Number | 80 | Candidate scoring penalty for movement between successive layouts. |
atomLabels.repairDepth | Number | 2 | Maximum depth of displacement repair before a label is omitted or given a distant callout. Set to 0 to disable repair. |
atomLabels.repairSearchLimit | Number | 48 | Maximum candidate evaluations during displacement repair. Set to 0 to disable repair. |
atomLabels.autoPerformanceLabelThreshold | Number | 500 | Visible requested-label count above which auto-omit selects performance placement. Because this uses the current projection, zooming may switch policy. |
atomLabels.performanceNoSpaceCellSize | Number | 24 | Screen-space tile size used by performance placement. Larger tiles reuse more front-atom no-space results but may omit more deeper labels. Tiles are rebuilt after zoom or other camera changes. |
atomLabels.spatialCellSize | Number | 64 | Uniform screen-space collision-index cell size in CSS pixels. |
atomLabels.useWorker | Boolean | true | Runs collision placement in a Web Worker after the structure's first paint. Unsupported or failed workers fall back to the main thread. |
atomLabels.showLoadingIndicator | Boolean | true | Shows an accessible progress status when asynchronous layout exceeds the configured delay. |
atomLabels.loadingIndicatorDelayMs | Number | 120 | Delay in milliseconds before the loading indicator appears. |
atomLabels.layoutThrottleMs | Number | 32 | Minimum time between relayouts during interaction, in milliseconds. |
atomLabels.interactionLabelLimit | Number | 300 | Label count above which relayout is deferred until interaction ends. |
atomLabels.hideLabelsDuringDeferredLayout | Boolean | true | Hides stale labels while a deferred layout is recomputed after dragging, avoiding after-images. |
atomLabels.calloutPlacement | String | "structure" | structure keeps maximum-coverage callouts just outside the projected structure; viewport uses the full viewport edges. |
atomLabels.calloutGap | Number | 12 | Compact structure clearance for callouts in CSS pixels. |
atomLabels.maximumCoverageDistanceSteps | Number | 6 | Number of local radial distance bands searched in maximum-coverage mode before callouts. More bands give repair additional moderate placements at added worker cost. |
atomLabels.calloutColumns | Number | 3 | Callout lane count used by maximum-coverage placement. |
atomLabels.calloutColumnGap | Number | 8 | Horizontal spacing between callout lanes in CSS pixels. |
atomLabels.calloutRowGap | Number | 4 | Vertical spacing between callout rows in CSS pixels. |
atomLabels.calloutSearchLimit | Number | 64 | Maximum callout candidates examined per label. |
atomLabels.calloutChoiceLimit | Number | 4 | Maximum callout candidates retained per label. |
atomLabels.leaderBondCrossingPenalty | Number | 25 | Candidate-score penalty for a leader line crossing a displayed bond. |
atomLabels.maxVisible | Number | Infinity | Maximum labels attempted; excess labels are reported as hidden. |