Skip to content
EliteChart

Anatomy — overview

Every UI surface in EliteChart, region by region. Start here, then drill into each part.

EliteChart presents nine distinct UI regions, each with its own responsibilities, keyboard targets, and customisation hooks. This section drills into every one. Start here for the bird's-eye view.

Quick example

code
'use client';
import { EliteChart } from '@elitechart/elitechart';
import '@elitechart/elitechart/styles.css';

export default function Page() {
  return (
    <div style={{ width: '100%', height: '100vh' }}>
      <EliteChart symbol="BTCUSD" timeframe="1h" />
    </div>
  );
}

How it works

EliteChart's chrome is composed of nine fixed regions arranged around the central chart area. The layout is viewport-clamped — every dimension uses clamp(min, vw, max) so the workspace breathes from a 14" laptop to a 32" monitor without going sloppy at either end.

The chrome is opt-out, not opt-in. Phase 1b lands the bars={{ top, left, right, bottom }} prop for hiding individual regions; until then, hide via CSS — see customize-toolbar for the full recipe.

Regions

RegionDrill-downRole
Top bartop-barSymbol, resolution, indicators, compare, layouts, alerts
Left toolbarleft-toolbarDrawing tools, magnet, lock, hide, color picker
Chart areachart-areaPrice + time axes, crosshair, watermark, legend
Right sidebarright-sidebarWatchlist, Alerts, Hotlist, News, Data Window
Bottom barbottom-barTrading Panel, Strategy Tester, Notes, Screeners
Floating drawing toolbarfloating-drawing-toolbarPer-drawing inline chrome
ModalsmodalsSymbol Search, Indicators, Settings, About, Hotkeys
InteractionsinteractionsPan / zoom / crosshair / context menus / drag
Keyboardkeyboard-shortcutsEvery keybinding

Variations

Hide every chrome region (chart-only mode)

code
/* your-app.css */
header[role="banner"],
nav[aria-label="Drawing tools"],
aside[aria-label="Sidebar"],
footer[role="contentinfo"] {
  display: none !important;
}

Power-user-only — hide the bottom drawer until invoked

code
import { useEffect } from 'react';
import { useUIStore } from '@elitechart/elitechart';

function CompactWorkspace() {
  useEffect(() => useUIStore.getState().setBottomTab(null), []);
  return null;
}

API

RegionDefault visibleCustomisation
Top baryesCSS hide; bars prop in 1b
Left toolbaryesCSS hide
Right sidebaryes (rail)useUIStore.setRightPanel()
Bottom baryes (strip)useUIStore.setBottomTab()