Integrations · TradingView
Provider market data, LUC-shaped
TradingView embeds cover the market views a product should not rebuild: standard charts, quotes, screeners, heatmaps, news and macro calendars. They complement Luc UI's own chart engines rather than replacing them, and they stay provider data — LUC never reads a widget to get a number.
Three lanes, one visual language
A page can hold all three at once. They are different jobs, not competing implementations.
| Lane | Data | Rendered by | Use it for | Not for |
|---|---|---|---|---|
| TradingView widgets | Provider market data | TradingView | Standard market presentation: quotes, candlesticks, screeners, heatmaps, news, calendars. | Do not use when the data must be yours, or when you need cross-engine sync or your own annotations. |
| LUC FinancialChart | Your prepared OHLC | Lightweight Charts | Your candles, overlays, panes and indicators, with Luc UI's theme, tooltips and accessible table fallback. | Do not use to re-implement a generic market chart the provider already hosts well. |
| LUC research charts | Your analytics | Apache ECharts | Drawdown, regimes, distributions, correlations and anything LUC computes and has to explain. | Do not use for live quotes. Nothing in the chart layer fetches. |
Catalog
Every current, officially documented widget, audited against TradingView's own directory. The registry below drives this table, the sidebar and the package exports.
| Widget | Category | Format | Min size | Theme / symbol / link | Docs |
|---|---|---|---|---|---|
| AdvancedChart | charts | iframe | 400×500 | theme · true | Official page |
| SymbolOverview | charts | iframe | 300×300 | theme · true | Official page |
| MiniChart | charts | Web Component | 250×78 | theme · true · symbol-url | Official page |
| SeasonalChart | charts | Web Component | 350×300 | theme · true · symbol-url | Official page |
| MarketSummary | watchlists | Web Component | 300×100 | theme · true · symbol-url | Official page |
| MarketOverview | watchlists | Web Component | 320×300 | theme · true · symbol-url | Official page |
| MarketData | watchlists | Web Component | 300×180 | theme · true · symbol-url | Official page |
| WorldMarketSummary | watchlists | Web Component | 400×360 | theme · symbol-url | Official page |
| TickerTape | tickers | Web Component | 300×70 | theme · true · symbol-url | Official page |
| Tickers | tickers | Web Component | 300×100 | theme · true · symbol-url | Official page |
| SingleTicker | tickers | Web Component | 250×100 | theme · true · symbol-url | Official page |
| TickerTag | tickers | Web Component | 96×28 | theme · true · symbol-url | Official page |
| StockHeatmap | heatmaps | iframe | 400×400 | theme · symbol-url | Official page |
| CryptoHeatmap | heatmaps | iframe | 400×400 | theme · symbol-url | Official page |
| EtfHeatmap | heatmaps | iframe | 400×400 | theme · symbol-url | Official page |
| ForexTable | heatmaps | Web Component | 360×300 | theme · symbol-url | Official page |
| Screener | screeners | iframe | 400×400 | theme | Official page |
| CryptocurrencyMarket | screeners | iframe | 400×400 | theme | Official page |
| SymbolInfo | symbol-details | iframe | 300×200 | theme · true | Official page |
| TechnicalAnalysis | symbol-details | Web Component | 300×300 | theme · true · symbol-url | Official page |
| FundamentalData | symbol-details | iframe | 320×400 | theme · true | Official page |
| CompanyProfile | symbol-details | Web Component | 320×400 | theme · true · symbol-url | Official page |
| TopStories | news | iframe | 300×400 | theme | Official page |
| EconomicCalendar | calendars | iframe | 350×450 | theme | Official page |
| EconomicMap | economics | Web Component | 500×400 | theme · symbol-url | Official page |
| BrokerRating | brokers | Web Component | 220×120 | theme | Official page |
| BrokerReviews | brokers | Web Component | 260×260 | theme | Official page |
16 Web Components and 11 iframe widgets. No legacy embed is wrapped: a canonical replacement always wins.
Legacy and replaced
Recorded so nobody restores one of these by accident.
| Embed script | Canonical replacement | Still served | Note |
|---|---|---|---|
embed-widget-tickers.js | tickers | served | Iframe ticker strip — superseded by the tv-tickers Web Component. |
embed-widget-ticker-tape.js | ticker-tape | served | Iframe ticker tape — superseded by tv-ticker-tape. |
embed-widget-mini-symbol-overview.js | mini-chart | served | Iframe mini chart — superseded by tv-mini-chart. |
embed-widget-market-overview.js | market-overview | served | Iframe market overview — superseded by tv-market-overview. |
embed-widget-market-quotes.js | market-data | served | Iframe market quotes — superseded by tv-market-data (overview/performance views). |
embed-widget-forex-cross-rates.js | forex-table | served | Iframe cross rates — superseded by tv-forex-table. |
embed-widget-forex-heat-map.js | forex-table | served | Iframe forex heat map — superseded by tv-forex-table's heatmap colouring. |
embed-widget-symbol-profile.js | company-profile | served | Iframe symbol profile — superseded by tv-company-profile. |
embed-widget-ticker.js | single-ticker | withdrawn | Legacy single ticker. TradingView no longer serves it (HTTP 403). |
embed-widget-market-summary.js | market-summary | withdrawn | Legacy iframe market summary. Not served (HTTP 403); the canonical widget is tv-market-summary. |
embed-widget-single-ticker.js | single-ticker | withdrawn | Legacy iframe single ticker. Not served (HTTP 403); the canonical widget is tv-single-ticker. |
What LUC controls, and what it cannot
Two customization depths, kept apart on purpose.
Web Components — deep
Closed shadow roots, so LUC styles only through the provider's published contract: a theme attribute, its documented CSS custom properties (mapped from LUC tokens by TRADINGVIEW_TOKEN_BRIDGE), and ::part() where a widget exposes one.
iframes — config only
A separate document. LUC can pass the provider's own keys (colorTheme, backgroundColor, gridColor, isTransparent and size the box. It cannot restyle the inside, and it does not pretend to — the visual difference between the two formats is visible on the Themes page rather than hidden.
Attribution is never touched. TradingView's copyright block is rendered exactly as the provider ships it, and nothing in LUC is ever placed over a widget box: only symbol links can be redirected, through the provider's ownsymbol-url contract and tv-link-open event.
Failure is a state, not a crash
Both formats below point at widget modules that do not exist, on the provider's real hosts. That is what an unreachable provider looks like — and it never takes the page with it.
MiniChart
Web ComponentWeb Component whose module 404s: the wrapper waits, gives up, and offers a retry.
SymbolInfo
iframeiframe whose embed script 404s: the script's own error event becomes the wrapper's error state.
Brokers
The two Broker widgets are the provider's partner embeds: the broker id is part of the script URL, and the widget shows one broker's rating and reviews.
BrokerRating
Web ComponentA broker partner's TradingView star rating and awards.
Network policy
These are the only Showcase routes that depend on third-party resources.
Nothing is requested until a wrapper is near the viewport, and nothing outside the catalog pages loads TradingView at all. A production CSP needs the domains below — derived from the provider's own embeds and observed requests, not guessed:
# domains the TradingView integrations require
script-src https://s3.tradingview.com https://widgets.tradingview-widget.com https://www.tradingview-widget.com
frame-src https://www.tradingview-widget.com https://s.tradingview.com
img-src https://s3.tradingview.com https://www.tradingview.com https://*.tradingview.com blob:
connect-src https://widget-sheriff.tradingview-widget.comRendering a widget also loads third-party resources in the visitor's browser, which is a privacy and consent question for the consuming product to answer. LUC documents the behaviour; it does not decide the legal position.