dbt Charts YAML Schema Reference¶
Fields are optional unless they appear under a Required label.
Board¶
AuthoredBoard definition from YAML.
| Field | Type | Description |
|---|---|---|
title |
str | Heading shown at the top of the board. |
notes |
str | What search finds: say what the board is for and which tables or sources it reads, in a sentence or two, with the other words someone might search for (synonyms of its measures). No dates or "as of". |
tags |
list[str] | Keywords for grouping and searching boards. |
aliases |
list[str] | Additional URLs that redirect to this board's canonical file-path URL. Each entry must be absolute (leading /). Requests to these URLs are redirected (302) to the board's real path, query string preserved. Valid on .yml, .yaml, .md, and folder index.* boards. |
_schema_version |
str | The latest released dbt charts YAML schema version this file was last migrated to, written by dct migrate only -- never hand-author this. Informational: nothing reads it back when your board loads, and it is not a validated guarantee about the file's actual grammar (a hand-edit after migration can make it stale). YAML key: _schema_version. |
text |
str | A Markdown block, as Jinja over query results: {{ queries.totals.one.revenue }} for a one-row query, {{ queries.top.rows[0].name }} for row N. A value prints raw, so format it in SQL; titles and subtitles read the same way. |
html_policy |
enum: "none", "safe-subset", "trusted-raw" | HTML rendering policy for the board's body text. Inline nested boards inherit it unless they set their own; tabs always inherit, and imported board files do not. One of: "none" (default): HTML is escaped and rendered as plain markdown; "safe-subset": reserved for a parser-checked allowlist (not yet enforced; currently renders as none); "trusted-raw": raw HTML via foreignObject. TRUSTED-CONTENT ONLY: this is NOT a security sandbox. <script>/event-handlers are stripped as a best-effort guard, not a guarantee. Enable only on first-party boards you fully control. |
source |
str | Default source name for all queries in this board. Inheritable via meta.yml cascade. |
cache |
bool | str | Cache | const: "forever" | Cache policy for every query in this dashboard, e.g. cache: 1h: queries inherit it and may refine it; cache: false opts the whole dashboard out. Inheritable via the meta.yml cascade. |
incremental |
str | const: false | Default watermark column for incremental refresh: queries in this board fetch only new rows since the last run and merge them with the cached result, keyed on this column. Queries inherit this value and may override it with their own incremental: setting. Set to false on a nested board to opt out of a parent's incremental setting. |
variables |
dict[str, Variable | str | VariableRef] | Named inputs that parameterize queries; each renders as a control unless it sets visible: false. |
queries |
dict[str, str | SqlQuery | HttpQuery | ValuesQuery | CompactValuesQuery | SchemaQuery | QueryRef] | Named result sets the charts draw from (SQL, CSV, HTTP, and more). |
charts |
dict[str, BarChart | LineChart | AreaChart | ScatterChart | HeatmapChart | PieChart | KpiChart | TableChart | PointMapChart | GeoshapeChart | CalloutChart | SparkBarChart | CustomChart | str | ChartRef] | Named chart definitions. When no explicit layout is present, charts render as an implicit row layout in authored order. |
rows |
list[str | Board | BarChart | LineChart | AreaChart | ScatterChart | HeatmapChart | PieChart | KpiChart | TableChart | PointMapChart | GeoshapeChart | CalloutChart | SparkBarChart | CustomChart | dict[str, BarChart | LineChart | AreaChart | ScatterChart | HeatmapChart | PieChart | KpiChart | TableChart | PointMapChart | GeoshapeChart | CalloutChart | SparkBarChart | CustomChart]] | Vertical stack layout: list of chart names or inline chart/board definitions. |
cols |
list[str | Board | BarChart | LineChart | AreaChart | ScatterChart | HeatmapChart | PieChart | KpiChart | TableChart | PointMapChart | GeoshapeChart | CalloutChart | SparkBarChart | CustomChart | dict[str, BarChart | LineChart | AreaChart | ScatterChart | HeatmapChart | PieChart | KpiChart | TableChart | PointMapChart | GeoshapeChart | CalloutChart | SparkBarChart | CustomChart]] | Horizontal layout: list of chart names or inline chart/board definitions. |
grid |
GridLayout | CSS-grid style layout with explicit row/column placement. |
tabs |
TabLayout | Tabbed navigation layout where each tab contains its own layout. |
card_gap |
bool | When True, adds gap between cards. Default: cards are edge-to-edge (0 gap). |
chart_focus |
str | Render only this named chart with its dependent variables (useful for embedding or SVG export). |
details |
str | BoardDetails | Collapsible section metadata. String shorthand: details: 'text' → BoardDetails(summary='text'). Block form: details: {summary: ..., expanded_title: ..., expanded: false}. |
id |
str | Explicit ID for this board. Auto-generated from filename if omitted. |
style |
Style | Appearance overrides for this board (background, border, and more). Most fields this board or an ancestor board explicitly authors cascade to nested child boards. Per-board fields (margin, padding): a nested board resolves these against its own theme, never an ancestor's. Root-board-only fields (footer, timestamp): a nested board never draws its own footer or timestamp line, so these never reach it either. background is the one appearance field that never cascades: unset means transparent, not an ancestor's color. |
width |
str | int | Width when nested (e.g., '50%', '400px', or an integer in pixels). On the root board there is no parent to place it into, so it instead sets the board's own width (equivalent to 'style.frame.width'); percentages are rejected there since there's nothing to size relative to. |
height |
str | int | Height when nested (e.g., '300px' or an integer in pixels). |
visible |
bool | str | SingleRowBoolProbe | Controls whether this layout item is rendered. Accepts a bool, variable name, Jinja expression, or {query, column} probe. |
extends |
str | list[str] | enum: "clarity", "neon", "paper", "stark", "vivid" | Themes or board files to inherit; the last one wins. A bare name is a built-in theme; write ./ before a file path (./_brand.yml). One name or a list: extends: neon, extends: [./base.yml, neon]. The board's own explicit style, a background included, beats every extended theme, so a dark variant of a base that sets a background restates that background in the variant. |
links |
BoardLinks | Link behavior for the whole board: links.auto adds detail-page links to table charts, links.open sets how links open. Root board only; a nested board's links: is an error. |
regional |
Regional | Locale and currency for every number on the board. Set it in charts/meta.yml to cover a folder; a nested board takes its root's. |
theme |
enum: "clarity", "neon", "paper", "stark", "vivid" | Built-in theme name; shorthand for extends: <name>. |
Cache¶
Cache policy at one scope: cache: 1h / forever / true / false (the only opt-out).
| Field | Type | Description |
|---|---|---|
ttl |
str | const: "forever" | Expire cached results after this wall-clock age (lazy: the next read recomputes). Short-duration string: units s/m/h/d/w, m = minutes, compound allowed ('1h30m'). Omit to inherit from the parent scope; write 'forever' to override an inherited ttl with never-auto-expire (manual refresh always remains available). |
Variable¶
Variable definition from YAML.
| Field | Type | Description |
|---|---|---|
input |
enum: "auto", "select", "multiselect", "input", "text", "number", "textarea", "slider", "range", "date", "datepicker", "daterange", "checkbox", "radio" | Control type. auto (the default) picks one from options and data_type: omit it except for daterange. |
label |
str | Caption naming what this input sets. |
notes |
str | Help text for this input, carried to the host rather than drawn on the board. |
default |
Any | Value used when no URL param or --var sets one; a dropdown starts at "All", so omit it there. Quote one containing :. A daterange takes a list. |
placeholder |
str | Hint text shown inside the input while it is empty. |
required |
bool | When True, a value must be provided before queries execute. |
visible |
bool | When False, the variable is not rendered in the UI but can still be set via URL params. |
enabled |
bool | str | SingleRowBoolProbe | Enable this control. Accepts: static bool; a variable name or Jinja boolean expression string (no {{ }} required, bare names auto-wrap); or a {query, column} form that reads a single boolean cell from a named query. None = enabled. Absent variable in a string expression raises (use a default). |
column |
str | A dropdown of this column's values, as 'table.column'. Use 'schema.table.column' outside the default schema. It starts at "All"; filter() turns "All" into no constraint. |
query |
str | SqlQuery | HttpQuery | ValuesQuery | CompactValuesQuery | SchemaQuery | Query name or inline query definition for populating options. |
options |
VariableOptions | Dropdown values come from a query column, or (rarely) a written-out list. |
data_type |
enum: "string", "number", "date", "boolean", "array" | The type of the values a select, radio or multiselect sends back. 'number', 'date' and 'boolean' convert the value before it reaches SQL; needed when the options come from a query, since a static numeric list already implies 'number'. 'string' and 'array' leave the value as sent. |
min |
int | float | Minimum value for number, slider and range inputs. |
max |
int | float | Maximum value for number, slider and range inputs. |
step |
int | float | Step size for number, slider and range inputs. |
operator |
str | SQL operator used when generating filter expressions (e.g., '=', 'IN', 'LIKE'). |
VariableRef¶
Cross-file variable reference. Bare string is coerced automatically.
Required
| Field | Type | Description |
|---|---|---|
ref |
str | Reference path: '<file>.variables.<name>'. May start with one or more '../' segments to reach a sibling directory. A bare string value is coerced automatically. |
SqlQuery¶
Raw SQL query: the default query type.
| Field | Type | Description |
|---|---|---|
source |
str | dict[str, Any] | Source name reference, or an inline file path (e.g. ./data/sales.csv). File paths are detected by / or data file extension. An inline connection-bearing dict ({type: postgres, ...}) is rejected at compile time; reference a named source instead. |
notes |
str | What this query returns; handed to tooling with its results, never drawn. |
ignore |
list[one of: 'WARN-ADJACENT-TEXT-ROWS', 'WARN-ANNOTATION-NOTHING-DRAWN', 'WARN-AREA-UNSTACKED-READS-AS-STACKED', 'WARN-AREA-ZERO-BASELINE-CROPPED', 'WARN-AXIS-ALIGN-DISCARDED', 'WARN-AXIS-LABEL-COLLISION', 'WARN-AXIS-TITLE-TRUNCATED', 'WARN-BAR-BAND-WIDTH-TOO-NARROW', 'WARN-BAR-GROUPED-SERIES-COINCIDE', 'WARN-CALLOUT-TEXT-TRUNCATED', 'WARN-CATEGORY-COLOR-PIN-UNSEEN', 'WARN-CHART-TITLE-TRUNCATED', 'WARN-COLUMN-CHECK-UNAVAILABLE', 'WARN-DATE-AS-TEXT', 'WARN-DBT-MANIFEST-MISSING', 'WARN-DBT-MODEL-COLUMNS-UNRESOLVED', 'WARN-DBT-QUERY-COLUMNS-INDETERMINATE', 'WARN-DEFAULTS-FILE-GIVEN-AS-BOARD', 'WARN-DOUBLE-HEADER', 'WARN-DUAL-AXIS-COMPETING-SCALES', 'WARN-ENDPOINT-LABEL-GAP-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-TIED', 'WARN-FACET-PANEL-WIDTH-BELOW-MINIMUM', 'WARN-FANOUT-RISK', 'WARN-FLAT-COLS-UNSIZED-OVERFLOW', 'WARN-FORMAT-UNUSED-NAME', 'WARN-H1-BODY-NO-TITLE', 'WARN-HTML-POLICY-CAPPED', 'WARN-INHERITED-LAYOUT-REPLACED', 'WARN-KPI-ALIGN-OVERFLOW', 'WARN-KPI-INLINE-VARIANT-FALLBACK-TO-STACKED', 'WARN-KPI-LABEL-TRUNCATED', 'WARN-KPI-SUPPORT-TRUNCATED', 'WARN-LAYER-DATA-OUTSIDE-DOMAIN', 'WARN-LAYER-X-DOMAIN-PAINT-ORDER', 'WARN-LAYERED-CHART-SHARED-Y-AXIS-SCALE-MISMATCH', 'WARN-LAYOUT-MIN-EXCEEDS-HEIGHT', 'WARN-LEGEND-POSITION-WIDTH-FALLBACK', 'WARN-LEGEND-VALUES-UNRESOLVED', 'WARN-LIKELY-CURRENCY-OR-PERCENT-MISSING-FORMATTER', 'WARN-LOCAL-TIME-LABEL-EXPR-ON-BUCKETED-AXIS', 'WARN-LOW-TEXT-CONTRAST', 'WARN-MISSING-JOIN-PREDICATE', 'WARN-NORMALIZE-PERCENT-FORMAT-READS-RAW-VALUE', 'WARN-PALETTE-UNSUPPORTED', 'WARN-PARSE-ERROR', 'WARN-PIE-DOMINANT-SEGMENT', 'WARN-PIE-TOO-MANY-SEGMENTS', 'WARN-PIE-TOTAL-EXCEEDS-INNER-RADIUS', 'WARN-PLOT-HEIGHT-BELOW-MINIMUM', 'WARN-PLOT-WIDTH-BELOW-MINIMUM', 'WARN-POINT-MAP-NEGATIVE-SIZE-VALUES', 'WARN-POINT-MAP-OUT-OF-PROJECTION', 'WARN-QUERY-RESULT-TRUNCATED', 'WARN-QUERY-RETURNED-ZERO-ROWS', 'WARN-REAGGREGATION', 'WARN-REDUNDANT-AUTHORED-DEFAULT', 'WARN-REDUNDANT-AUTHORED-LABEL', 'WARN-REDUNDANT-ENCODING', 'WARN-RESTATED-FORMAT', 'WARN-RESTATED-INFERRED', 'WARN-RESTATED-STYLE', 'WARN-RETIRED-IGNORE-CODE', 'WARN-SCHEMA-MIGRATED', 'WARN-SERIES-LABEL-TRUNCATED', 'WARN-SERIES-LABELS-REPEAT-WORD', 'WARN-SINGLE-CHART-REDUNDANT-TITLE', 'WARN-SPARK-LABEL-TRUNCATED', 'WARN-STATIC-PAGINATION-CAPPED', 'WARN-SUPPORT-TABLE-CELL-OVERFLOW', 'WARN-TABLE-COLUMNS-OVERFLOW', 'WARN-TABLE-CRAMPED', 'WARN-TABLE-PAGE-SQUEEZED', 'WARN-TABLE-TEXT-TRUNCATED', 'WARN-TEMPORAL-SINGLE-POINT', 'WARN-TOO-MANY-COLOR-CATEGORIES', 'WARN-TOO-MANY-X-CATEGORIES', 'WARN-UNREFERENCED-CHART', 'WARN-UNREFERENCED-QUERY', 'WARN-VALUE-LABELS-CROWD-WIDTH', 'WARN-WAREHOUSE-CHECK-UNAVAILABLE', 'WARN-WIDE-MEASURE-LABEL-COLLISION', 'WARN-Y-ENCODING-MOSTLY-NULL'] | Diagnostic codes to suppress for this query (e.g., ['WARN-MISSING-JOIN-PREDICATE', 'WARN-REAGGREGATION']). |
cache |
bool | str | Cache | const: "forever" | Cache policy override for this query, e.g. cache: 5m: refines the policy inherited from the source and project scopes; cache: false opts out of result caching entirely. Queries with cache: false cannot be used as {{ queries.X.cache }} upstream references. |
formats |
dict[str, one of: 'compact', 'currency', 'currency_compact', 'currency_full', 'currency_whole', 'date_short', 'delta', 'email', 'id', 'integer', 'latitude', 'longitude', 'number', 'number_full', 'percent', 'percent_delta', 'percent_whole', 'rating', 'time_short', 'url', 'year' | str] | A column's format, set once on its query, only where the default would misread (currency, percent, a unit); counts and plain numbers need none. Every chart showing the column follows it; a chart sets its own only to differ. A d3 spec is rejected. |
incremental |
str | const: false | Column used as the monotonic watermark for incremental refresh: the executor fetches only rows after the prior watermark and merges them with the cached result. incremental: false opts this query out of a board's incremental setting. Inherits from the board-level incremental setting when omitted. |
type |
const: "sql" | |
sql |
str | The SQL to run, as Jinja2. {{ queries.base }} inlines another query of the same source as a subquery already aliased to its name (add no AS); a bare FROM base fails. Variables go in through filter(), filter_date_range() or {{ name }}. |
setup_sql |
str | Non-nestable SQL preamble executed before the main query (e.g., CREATE TEMP FUNCTION). |
target |
str | dbt target name for queries against a dbt_profile source (defaults to 'dev'). |
dialect |
enum: "athena", "bigquery", "clickhouse", "databricks", "duckdb", "fabric", "lakecompute", "mysql", "postgres", "presto", "redshift", "snowflake", "spark", "sqlite", "sqlserver", "trino" | Warehouse dialect the SQL is written in, translated to the source's. |
HttpQuery¶
REST API query.
Required
| Field | Type | Description |
|---|---|---|
url |
str | HTTP endpoint URL for REST API queries. |
Optional
| Field | Type | Description |
|---|---|---|
source |
str | dict[str, Any] | Source name reference, or an inline file path (e.g. ./data/sales.csv). File paths are detected by / or data file extension. An inline connection-bearing dict ({type: postgres, ...}) is rejected at compile time; reference a named source instead. |
notes |
str | What this query returns; handed to tooling with its results, never drawn. |
ignore |
list[one of: 'WARN-ADJACENT-TEXT-ROWS', 'WARN-ANNOTATION-NOTHING-DRAWN', 'WARN-AREA-UNSTACKED-READS-AS-STACKED', 'WARN-AREA-ZERO-BASELINE-CROPPED', 'WARN-AXIS-ALIGN-DISCARDED', 'WARN-AXIS-LABEL-COLLISION', 'WARN-AXIS-TITLE-TRUNCATED', 'WARN-BAR-BAND-WIDTH-TOO-NARROW', 'WARN-BAR-GROUPED-SERIES-COINCIDE', 'WARN-CALLOUT-TEXT-TRUNCATED', 'WARN-CATEGORY-COLOR-PIN-UNSEEN', 'WARN-CHART-TITLE-TRUNCATED', 'WARN-COLUMN-CHECK-UNAVAILABLE', 'WARN-DATE-AS-TEXT', 'WARN-DBT-MANIFEST-MISSING', 'WARN-DBT-MODEL-COLUMNS-UNRESOLVED', 'WARN-DBT-QUERY-COLUMNS-INDETERMINATE', 'WARN-DEFAULTS-FILE-GIVEN-AS-BOARD', 'WARN-DOUBLE-HEADER', 'WARN-DUAL-AXIS-COMPETING-SCALES', 'WARN-ENDPOINT-LABEL-GAP-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-TIED', 'WARN-FACET-PANEL-WIDTH-BELOW-MINIMUM', 'WARN-FANOUT-RISK', 'WARN-FLAT-COLS-UNSIZED-OVERFLOW', 'WARN-FORMAT-UNUSED-NAME', 'WARN-H1-BODY-NO-TITLE', 'WARN-HTML-POLICY-CAPPED', 'WARN-INHERITED-LAYOUT-REPLACED', 'WARN-KPI-ALIGN-OVERFLOW', 'WARN-KPI-INLINE-VARIANT-FALLBACK-TO-STACKED', 'WARN-KPI-LABEL-TRUNCATED', 'WARN-KPI-SUPPORT-TRUNCATED', 'WARN-LAYER-DATA-OUTSIDE-DOMAIN', 'WARN-LAYER-X-DOMAIN-PAINT-ORDER', 'WARN-LAYERED-CHART-SHARED-Y-AXIS-SCALE-MISMATCH', 'WARN-LAYOUT-MIN-EXCEEDS-HEIGHT', 'WARN-LEGEND-POSITION-WIDTH-FALLBACK', 'WARN-LEGEND-VALUES-UNRESOLVED', 'WARN-LIKELY-CURRENCY-OR-PERCENT-MISSING-FORMATTER', 'WARN-LOCAL-TIME-LABEL-EXPR-ON-BUCKETED-AXIS', 'WARN-LOW-TEXT-CONTRAST', 'WARN-MISSING-JOIN-PREDICATE', 'WARN-NORMALIZE-PERCENT-FORMAT-READS-RAW-VALUE', 'WARN-PALETTE-UNSUPPORTED', 'WARN-PARSE-ERROR', 'WARN-PIE-DOMINANT-SEGMENT', 'WARN-PIE-TOO-MANY-SEGMENTS', 'WARN-PIE-TOTAL-EXCEEDS-INNER-RADIUS', 'WARN-PLOT-HEIGHT-BELOW-MINIMUM', 'WARN-PLOT-WIDTH-BELOW-MINIMUM', 'WARN-POINT-MAP-NEGATIVE-SIZE-VALUES', 'WARN-POINT-MAP-OUT-OF-PROJECTION', 'WARN-QUERY-RESULT-TRUNCATED', 'WARN-QUERY-RETURNED-ZERO-ROWS', 'WARN-REAGGREGATION', 'WARN-REDUNDANT-AUTHORED-DEFAULT', 'WARN-REDUNDANT-AUTHORED-LABEL', 'WARN-REDUNDANT-ENCODING', 'WARN-RESTATED-FORMAT', 'WARN-RESTATED-INFERRED', 'WARN-RESTATED-STYLE', 'WARN-RETIRED-IGNORE-CODE', 'WARN-SCHEMA-MIGRATED', 'WARN-SERIES-LABEL-TRUNCATED', 'WARN-SERIES-LABELS-REPEAT-WORD', 'WARN-SINGLE-CHART-REDUNDANT-TITLE', 'WARN-SPARK-LABEL-TRUNCATED', 'WARN-STATIC-PAGINATION-CAPPED', 'WARN-SUPPORT-TABLE-CELL-OVERFLOW', 'WARN-TABLE-COLUMNS-OVERFLOW', 'WARN-TABLE-CRAMPED', 'WARN-TABLE-PAGE-SQUEEZED', 'WARN-TABLE-TEXT-TRUNCATED', 'WARN-TEMPORAL-SINGLE-POINT', 'WARN-TOO-MANY-COLOR-CATEGORIES', 'WARN-TOO-MANY-X-CATEGORIES', 'WARN-UNREFERENCED-CHART', 'WARN-UNREFERENCED-QUERY', 'WARN-VALUE-LABELS-CROWD-WIDTH', 'WARN-WAREHOUSE-CHECK-UNAVAILABLE', 'WARN-WIDE-MEASURE-LABEL-COLLISION', 'WARN-Y-ENCODING-MOSTLY-NULL'] | Diagnostic codes to suppress for this query (e.g., ['WARN-MISSING-JOIN-PREDICATE', 'WARN-REAGGREGATION']). |
cache |
bool | str | Cache | const: "forever" | Cache policy override for this query, e.g. cache: 5m: refines the policy inherited from the source and project scopes; cache: false opts out of result caching entirely. Queries with cache: false cannot be used as {{ queries.X.cache }} upstream references. |
formats |
dict[str, one of: 'compact', 'currency', 'currency_compact', 'currency_full', 'currency_whole', 'date_short', 'delta', 'email', 'id', 'integer', 'latitude', 'longitude', 'number', 'number_full', 'percent', 'percent_delta', 'percent_whole', 'rating', 'time_short', 'url', 'year' | str] | A column's format, set once on its query, only where the default would misread (currency, percent, a unit); counts and plain numbers need none. Every chart showing the column follows it; a chart sets its own only to differ. A d3 spec is rejected. |
incremental |
str | const: false | Column used as the monotonic watermark for incremental refresh: the executor fetches only rows after the prior watermark and merges them with the cached result. incremental: false opts this query out of a board's incremental setting. Inherits from the board-level incremental setting when omitted. |
type |
const: "http" | |
method |
enum: "GET", "POST", "PUT", "DELETE", "PATCH" | Verb the request is sent with (GET, POST, PUT, DELETE, PATCH). |
headers |
dict[str, str] | Header lines sent with the request, such as auth and content type. |
params |
dict[str, Any] | Values appended to the URL after the '?'. |
body |
dict[str, Any] | str | Payload sent with the request, on POST, PUT, and PATCH. |
limit |
int | Maximum number of rows returned. |
json_path |
str | JSONPath expression to extract tabular data from the HTTP response. |
ValuesQuery¶
Inline data authored as a list of row mappings.
Required
| Field | Type | Description |
|---|---|---|
rows |
list[dict[str, Any]] | Inline data rows (list of row dicts). Use the compact columns-and-values form instead when row values are positional. |
Optional
| Field | Type | Description |
|---|---|---|
source |
str | dict[str, Any] | Source name reference, or an inline file path (e.g. ./data/sales.csv). File paths are detected by / or data file extension. An inline connection-bearing dict ({type: postgres, ...}) is rejected at compile time; reference a named source instead. |
notes |
str | What this query returns; handed to tooling with its results, never drawn. |
ignore |
list[one of: 'WARN-ADJACENT-TEXT-ROWS', 'WARN-ANNOTATION-NOTHING-DRAWN', 'WARN-AREA-UNSTACKED-READS-AS-STACKED', 'WARN-AREA-ZERO-BASELINE-CROPPED', 'WARN-AXIS-ALIGN-DISCARDED', 'WARN-AXIS-LABEL-COLLISION', 'WARN-AXIS-TITLE-TRUNCATED', 'WARN-BAR-BAND-WIDTH-TOO-NARROW', 'WARN-BAR-GROUPED-SERIES-COINCIDE', 'WARN-CALLOUT-TEXT-TRUNCATED', 'WARN-CATEGORY-COLOR-PIN-UNSEEN', 'WARN-CHART-TITLE-TRUNCATED', 'WARN-COLUMN-CHECK-UNAVAILABLE', 'WARN-DATE-AS-TEXT', 'WARN-DBT-MANIFEST-MISSING', 'WARN-DBT-MODEL-COLUMNS-UNRESOLVED', 'WARN-DBT-QUERY-COLUMNS-INDETERMINATE', 'WARN-DEFAULTS-FILE-GIVEN-AS-BOARD', 'WARN-DOUBLE-HEADER', 'WARN-DUAL-AXIS-COMPETING-SCALES', 'WARN-ENDPOINT-LABEL-GAP-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-TIED', 'WARN-FACET-PANEL-WIDTH-BELOW-MINIMUM', 'WARN-FANOUT-RISK', 'WARN-FLAT-COLS-UNSIZED-OVERFLOW', 'WARN-FORMAT-UNUSED-NAME', 'WARN-H1-BODY-NO-TITLE', 'WARN-HTML-POLICY-CAPPED', 'WARN-INHERITED-LAYOUT-REPLACED', 'WARN-KPI-ALIGN-OVERFLOW', 'WARN-KPI-INLINE-VARIANT-FALLBACK-TO-STACKED', 'WARN-KPI-LABEL-TRUNCATED', 'WARN-KPI-SUPPORT-TRUNCATED', 'WARN-LAYER-DATA-OUTSIDE-DOMAIN', 'WARN-LAYER-X-DOMAIN-PAINT-ORDER', 'WARN-LAYERED-CHART-SHARED-Y-AXIS-SCALE-MISMATCH', 'WARN-LAYOUT-MIN-EXCEEDS-HEIGHT', 'WARN-LEGEND-POSITION-WIDTH-FALLBACK', 'WARN-LEGEND-VALUES-UNRESOLVED', 'WARN-LIKELY-CURRENCY-OR-PERCENT-MISSING-FORMATTER', 'WARN-LOCAL-TIME-LABEL-EXPR-ON-BUCKETED-AXIS', 'WARN-LOW-TEXT-CONTRAST', 'WARN-MISSING-JOIN-PREDICATE', 'WARN-NORMALIZE-PERCENT-FORMAT-READS-RAW-VALUE', 'WARN-PALETTE-UNSUPPORTED', 'WARN-PARSE-ERROR', 'WARN-PIE-DOMINANT-SEGMENT', 'WARN-PIE-TOO-MANY-SEGMENTS', 'WARN-PIE-TOTAL-EXCEEDS-INNER-RADIUS', 'WARN-PLOT-HEIGHT-BELOW-MINIMUM', 'WARN-PLOT-WIDTH-BELOW-MINIMUM', 'WARN-POINT-MAP-NEGATIVE-SIZE-VALUES', 'WARN-POINT-MAP-OUT-OF-PROJECTION', 'WARN-QUERY-RESULT-TRUNCATED', 'WARN-QUERY-RETURNED-ZERO-ROWS', 'WARN-REAGGREGATION', 'WARN-REDUNDANT-AUTHORED-DEFAULT', 'WARN-REDUNDANT-AUTHORED-LABEL', 'WARN-REDUNDANT-ENCODING', 'WARN-RESTATED-FORMAT', 'WARN-RESTATED-INFERRED', 'WARN-RESTATED-STYLE', 'WARN-RETIRED-IGNORE-CODE', 'WARN-SCHEMA-MIGRATED', 'WARN-SERIES-LABEL-TRUNCATED', 'WARN-SERIES-LABELS-REPEAT-WORD', 'WARN-SINGLE-CHART-REDUNDANT-TITLE', 'WARN-SPARK-LABEL-TRUNCATED', 'WARN-STATIC-PAGINATION-CAPPED', 'WARN-SUPPORT-TABLE-CELL-OVERFLOW', 'WARN-TABLE-COLUMNS-OVERFLOW', 'WARN-TABLE-CRAMPED', 'WARN-TABLE-PAGE-SQUEEZED', 'WARN-TABLE-TEXT-TRUNCATED', 'WARN-TEMPORAL-SINGLE-POINT', 'WARN-TOO-MANY-COLOR-CATEGORIES', 'WARN-TOO-MANY-X-CATEGORIES', 'WARN-UNREFERENCED-CHART', 'WARN-UNREFERENCED-QUERY', 'WARN-VALUE-LABELS-CROWD-WIDTH', 'WARN-WAREHOUSE-CHECK-UNAVAILABLE', 'WARN-WIDE-MEASURE-LABEL-COLLISION', 'WARN-Y-ENCODING-MOSTLY-NULL'] | Diagnostic codes to suppress for this query (e.g., ['WARN-MISSING-JOIN-PREDICATE', 'WARN-REAGGREGATION']). |
cache |
bool | str | Cache | const: "forever" | Cache policy override for this query, e.g. cache: 5m: refines the policy inherited from the source and project scopes; cache: false opts out of result caching entirely. Queries with cache: false cannot be used as {{ queries.X.cache }} upstream references. |
formats |
dict[str, one of: 'compact', 'currency', 'currency_compact', 'currency_full', 'currency_whole', 'date_short', 'delta', 'email', 'id', 'integer', 'latitude', 'longitude', 'number', 'number_full', 'percent', 'percent_delta', 'percent_whole', 'rating', 'time_short', 'url', 'year' | str] | A column's format, set once on its query, only where the default would misread (currency, percent, a unit); counts and plain numbers need none. Every chart showing the column follows it; a chart sets its own only to differ. A d3 spec is rejected. |
incremental |
str | const: false | Column used as the monotonic watermark for incremental refresh: the executor fetches only rows after the prior watermark and merges them with the cached result. incremental: false opts this query out of a board's incremental setting. Inherits from the board-level incremental setting when omitted. |
type |
const: "values" |
CompactValuesQuery¶
Inline data authored as column names plus positional row values.
Required
| Field | Type | Description |
|---|---|---|
columns |
list[str] | Column names for the compact syntax. Every compact values query also requires values. |
values |
list[list[Any]] | Inline row-oriented data (list of lists) for the compact syntax. Every compact values query also requires columns. |
Optional
| Field | Type | Description |
|---|---|---|
source |
str | dict[str, Any] | Source name reference, or an inline file path (e.g. ./data/sales.csv). File paths are detected by / or data file extension. An inline connection-bearing dict ({type: postgres, ...}) is rejected at compile time; reference a named source instead. |
notes |
str | What this query returns; handed to tooling with its results, never drawn. |
ignore |
list[one of: 'WARN-ADJACENT-TEXT-ROWS', 'WARN-ANNOTATION-NOTHING-DRAWN', 'WARN-AREA-UNSTACKED-READS-AS-STACKED', 'WARN-AREA-ZERO-BASELINE-CROPPED', 'WARN-AXIS-ALIGN-DISCARDED', 'WARN-AXIS-LABEL-COLLISION', 'WARN-AXIS-TITLE-TRUNCATED', 'WARN-BAR-BAND-WIDTH-TOO-NARROW', 'WARN-BAR-GROUPED-SERIES-COINCIDE', 'WARN-CALLOUT-TEXT-TRUNCATED', 'WARN-CATEGORY-COLOR-PIN-UNSEEN', 'WARN-CHART-TITLE-TRUNCATED', 'WARN-COLUMN-CHECK-UNAVAILABLE', 'WARN-DATE-AS-TEXT', 'WARN-DBT-MANIFEST-MISSING', 'WARN-DBT-MODEL-COLUMNS-UNRESOLVED', 'WARN-DBT-QUERY-COLUMNS-INDETERMINATE', 'WARN-DEFAULTS-FILE-GIVEN-AS-BOARD', 'WARN-DOUBLE-HEADER', 'WARN-DUAL-AXIS-COMPETING-SCALES', 'WARN-ENDPOINT-LABEL-GAP-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-TIED', 'WARN-FACET-PANEL-WIDTH-BELOW-MINIMUM', 'WARN-FANOUT-RISK', 'WARN-FLAT-COLS-UNSIZED-OVERFLOW', 'WARN-FORMAT-UNUSED-NAME', 'WARN-H1-BODY-NO-TITLE', 'WARN-HTML-POLICY-CAPPED', 'WARN-INHERITED-LAYOUT-REPLACED', 'WARN-KPI-ALIGN-OVERFLOW', 'WARN-KPI-INLINE-VARIANT-FALLBACK-TO-STACKED', 'WARN-KPI-LABEL-TRUNCATED', 'WARN-KPI-SUPPORT-TRUNCATED', 'WARN-LAYER-DATA-OUTSIDE-DOMAIN', 'WARN-LAYER-X-DOMAIN-PAINT-ORDER', 'WARN-LAYERED-CHART-SHARED-Y-AXIS-SCALE-MISMATCH', 'WARN-LAYOUT-MIN-EXCEEDS-HEIGHT', 'WARN-LEGEND-POSITION-WIDTH-FALLBACK', 'WARN-LEGEND-VALUES-UNRESOLVED', 'WARN-LIKELY-CURRENCY-OR-PERCENT-MISSING-FORMATTER', 'WARN-LOCAL-TIME-LABEL-EXPR-ON-BUCKETED-AXIS', 'WARN-LOW-TEXT-CONTRAST', 'WARN-MISSING-JOIN-PREDICATE', 'WARN-NORMALIZE-PERCENT-FORMAT-READS-RAW-VALUE', 'WARN-PALETTE-UNSUPPORTED', 'WARN-PARSE-ERROR', 'WARN-PIE-DOMINANT-SEGMENT', 'WARN-PIE-TOO-MANY-SEGMENTS', 'WARN-PIE-TOTAL-EXCEEDS-INNER-RADIUS', 'WARN-PLOT-HEIGHT-BELOW-MINIMUM', 'WARN-PLOT-WIDTH-BELOW-MINIMUM', 'WARN-POINT-MAP-NEGATIVE-SIZE-VALUES', 'WARN-POINT-MAP-OUT-OF-PROJECTION', 'WARN-QUERY-RESULT-TRUNCATED', 'WARN-QUERY-RETURNED-ZERO-ROWS', 'WARN-REAGGREGATION', 'WARN-REDUNDANT-AUTHORED-DEFAULT', 'WARN-REDUNDANT-AUTHORED-LABEL', 'WARN-REDUNDANT-ENCODING', 'WARN-RESTATED-FORMAT', 'WARN-RESTATED-INFERRED', 'WARN-RESTATED-STYLE', 'WARN-RETIRED-IGNORE-CODE', 'WARN-SCHEMA-MIGRATED', 'WARN-SERIES-LABEL-TRUNCATED', 'WARN-SERIES-LABELS-REPEAT-WORD', 'WARN-SINGLE-CHART-REDUNDANT-TITLE', 'WARN-SPARK-LABEL-TRUNCATED', 'WARN-STATIC-PAGINATION-CAPPED', 'WARN-SUPPORT-TABLE-CELL-OVERFLOW', 'WARN-TABLE-COLUMNS-OVERFLOW', 'WARN-TABLE-CRAMPED', 'WARN-TABLE-PAGE-SQUEEZED', 'WARN-TABLE-TEXT-TRUNCATED', 'WARN-TEMPORAL-SINGLE-POINT', 'WARN-TOO-MANY-COLOR-CATEGORIES', 'WARN-TOO-MANY-X-CATEGORIES', 'WARN-UNREFERENCED-CHART', 'WARN-UNREFERENCED-QUERY', 'WARN-VALUE-LABELS-CROWD-WIDTH', 'WARN-WAREHOUSE-CHECK-UNAVAILABLE', 'WARN-WIDE-MEASURE-LABEL-COLLISION', 'WARN-Y-ENCODING-MOSTLY-NULL'] | Diagnostic codes to suppress for this query (e.g., ['WARN-MISSING-JOIN-PREDICATE', 'WARN-REAGGREGATION']). |
cache |
bool | str | Cache | const: "forever" | Cache policy override for this query, e.g. cache: 5m: refines the policy inherited from the source and project scopes; cache: false opts out of result caching entirely. Queries with cache: false cannot be used as {{ queries.X.cache }} upstream references. |
formats |
dict[str, one of: 'compact', 'currency', 'currency_compact', 'currency_full', 'currency_whole', 'date_short', 'delta', 'email', 'id', 'integer', 'latitude', 'longitude', 'number', 'number_full', 'percent', 'percent_delta', 'percent_whole', 'rating', 'time_short', 'url', 'year' | str] | A column's format, set once on its query, only where the default would misread (currency, percent, a unit); counts and plain numbers need none. Every chart showing the column follows it; a chart sets its own only to differ. A d3 spec is rejected. |
incremental |
str | const: false | Column used as the monotonic watermark for incremental refresh: the executor fetches only rows after the prior watermark and merges them with the cached result. incremental: false opts this query out of a board's incremental setting. Inherits from the board-level incremental setting when omitted. |
type |
const: "values" |
SchemaQuery¶
dbt source schema query.
| Field | Type | Description |
|---|---|---|
source |
str | dict[str, Any] | Source name reference, or an inline file path (e.g. ./data/sales.csv). File paths are detected by / or data file extension. An inline connection-bearing dict ({type: postgres, ...}) is rejected at compile time; reference a named source instead. |
notes |
str | What this query returns; handed to tooling with its results, never drawn. |
ignore |
list[one of: 'WARN-ADJACENT-TEXT-ROWS', 'WARN-ANNOTATION-NOTHING-DRAWN', 'WARN-AREA-UNSTACKED-READS-AS-STACKED', 'WARN-AREA-ZERO-BASELINE-CROPPED', 'WARN-AXIS-ALIGN-DISCARDED', 'WARN-AXIS-LABEL-COLLISION', 'WARN-AXIS-TITLE-TRUNCATED', 'WARN-BAR-BAND-WIDTH-TOO-NARROW', 'WARN-BAR-GROUPED-SERIES-COINCIDE', 'WARN-CALLOUT-TEXT-TRUNCATED', 'WARN-CATEGORY-COLOR-PIN-UNSEEN', 'WARN-CHART-TITLE-TRUNCATED', 'WARN-COLUMN-CHECK-UNAVAILABLE', 'WARN-DATE-AS-TEXT', 'WARN-DBT-MANIFEST-MISSING', 'WARN-DBT-MODEL-COLUMNS-UNRESOLVED', 'WARN-DBT-QUERY-COLUMNS-INDETERMINATE', 'WARN-DEFAULTS-FILE-GIVEN-AS-BOARD', 'WARN-DOUBLE-HEADER', 'WARN-DUAL-AXIS-COMPETING-SCALES', 'WARN-ENDPOINT-LABEL-GAP-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-TIED', 'WARN-FACET-PANEL-WIDTH-BELOW-MINIMUM', 'WARN-FANOUT-RISK', 'WARN-FLAT-COLS-UNSIZED-OVERFLOW', 'WARN-FORMAT-UNUSED-NAME', 'WARN-H1-BODY-NO-TITLE', 'WARN-HTML-POLICY-CAPPED', 'WARN-INHERITED-LAYOUT-REPLACED', 'WARN-KPI-ALIGN-OVERFLOW', 'WARN-KPI-INLINE-VARIANT-FALLBACK-TO-STACKED', 'WARN-KPI-LABEL-TRUNCATED', 'WARN-KPI-SUPPORT-TRUNCATED', 'WARN-LAYER-DATA-OUTSIDE-DOMAIN', 'WARN-LAYER-X-DOMAIN-PAINT-ORDER', 'WARN-LAYERED-CHART-SHARED-Y-AXIS-SCALE-MISMATCH', 'WARN-LAYOUT-MIN-EXCEEDS-HEIGHT', 'WARN-LEGEND-POSITION-WIDTH-FALLBACK', 'WARN-LEGEND-VALUES-UNRESOLVED', 'WARN-LIKELY-CURRENCY-OR-PERCENT-MISSING-FORMATTER', 'WARN-LOCAL-TIME-LABEL-EXPR-ON-BUCKETED-AXIS', 'WARN-LOW-TEXT-CONTRAST', 'WARN-MISSING-JOIN-PREDICATE', 'WARN-NORMALIZE-PERCENT-FORMAT-READS-RAW-VALUE', 'WARN-PALETTE-UNSUPPORTED', 'WARN-PARSE-ERROR', 'WARN-PIE-DOMINANT-SEGMENT', 'WARN-PIE-TOO-MANY-SEGMENTS', 'WARN-PIE-TOTAL-EXCEEDS-INNER-RADIUS', 'WARN-PLOT-HEIGHT-BELOW-MINIMUM', 'WARN-PLOT-WIDTH-BELOW-MINIMUM', 'WARN-POINT-MAP-NEGATIVE-SIZE-VALUES', 'WARN-POINT-MAP-OUT-OF-PROJECTION', 'WARN-QUERY-RESULT-TRUNCATED', 'WARN-QUERY-RETURNED-ZERO-ROWS', 'WARN-REAGGREGATION', 'WARN-REDUNDANT-AUTHORED-DEFAULT', 'WARN-REDUNDANT-AUTHORED-LABEL', 'WARN-REDUNDANT-ENCODING', 'WARN-RESTATED-FORMAT', 'WARN-RESTATED-INFERRED', 'WARN-RESTATED-STYLE', 'WARN-RETIRED-IGNORE-CODE', 'WARN-SCHEMA-MIGRATED', 'WARN-SERIES-LABEL-TRUNCATED', 'WARN-SERIES-LABELS-REPEAT-WORD', 'WARN-SINGLE-CHART-REDUNDANT-TITLE', 'WARN-SPARK-LABEL-TRUNCATED', 'WARN-STATIC-PAGINATION-CAPPED', 'WARN-SUPPORT-TABLE-CELL-OVERFLOW', 'WARN-TABLE-COLUMNS-OVERFLOW', 'WARN-TABLE-CRAMPED', 'WARN-TABLE-PAGE-SQUEEZED', 'WARN-TABLE-TEXT-TRUNCATED', 'WARN-TEMPORAL-SINGLE-POINT', 'WARN-TOO-MANY-COLOR-CATEGORIES', 'WARN-TOO-MANY-X-CATEGORIES', 'WARN-UNREFERENCED-CHART', 'WARN-UNREFERENCED-QUERY', 'WARN-VALUE-LABELS-CROWD-WIDTH', 'WARN-WAREHOUSE-CHECK-UNAVAILABLE', 'WARN-WIDE-MEASURE-LABEL-COLLISION', 'WARN-Y-ENCODING-MOSTLY-NULL'] | Diagnostic codes to suppress for this query (e.g., ['WARN-MISSING-JOIN-PREDICATE', 'WARN-REAGGREGATION']). |
cache |
bool | str | Cache | const: "forever" | Cache policy override for this query, e.g. cache: 5m: refines the policy inherited from the source and project scopes; cache: false opts out of result caching entirely. Queries with cache: false cannot be used as {{ queries.X.cache }} upstream references. |
formats |
dict[str, one of: 'compact', 'currency', 'currency_compact', 'currency_full', 'currency_whole', 'date_short', 'delta', 'email', 'id', 'integer', 'latitude', 'longitude', 'number', 'number_full', 'percent', 'percent_delta', 'percent_whole', 'rating', 'time_short', 'url', 'year' | str] | A column's format, set once on its query, only where the default would misread (currency, percent, a unit); counts and plain numbers need none. Every chart showing the column follows it; a chart sets its own only to differ. A d3 spec is rejected. |
incremental |
str | const: false | Column used as the monotonic watermark for incremental refresh: the executor fetches only rows after the prior watermark and merges them with the cached result. incremental: false opts this query out of a board's incremental setting. Inherits from the board-level incremental setting when omitted. |
type |
const: "schema" | Never inferred; write type: schema explicitly. |
schema |
str | Which schema to inspect; lists every schema in the source if omitted (YAML key: schema). |
table |
str | Which table to inspect; lists the schema's tables if omitted. |
column |
str | Which column to profile; profiles every column in the table if omitted. |
fields |
list[str] | Project the result rows to exactly these keys, in this order: the schema-query counterpart of a SQL SELECT list. A projected key a row lacks yields null. Omit to return every key each row carries. |
QueryRef¶
Cross-file query reference. Bare string is coerced automatically.
Required
| Field | Type | Description |
|---|---|---|
ref |
str | Reference path: '<file>.queries.<name>'. May start with one or more '../' segments to reach a sibling directory. A bare string value is coerced automatically. |
BarChart¶
Authored patch for bar and histogram charts; histogram adds automatic x binning.
Required
| Field | Type | Description |
|---|---|---|
type |
enum: "bar", "histogram" | Selects the chart family. |
Optional
| Field | Type | Description |
|---|---|---|
field_labels |
dict[str, str] | Display text per query column in legends, tooltips and axis titles. The default is the column name prettified (model_year reads "Model year"): set one only to say something different. Painted as written wherever the chart would otherwise derive text from the column's name; x_label/y_label and a layer's label win on their own surface. Not for kpi or table: use style.columns.<column>.label. |
id |
str | Identifier for this chart. Generated from its charts: key, or, written inline, from its title (its label: on type: kpi), falling back to its position. |
notes |
str | Human-readable notes used by AI search. Emitted into the SVG DOM as a data-chart-notes attribute; never painted as visible pixels. |
query |
str | SqlQuery | HttpQuery | ValuesQuery | CompactValuesQuery | SchemaQuery | QueryRef | Where this chart reads its data: a named query, an inline query block, or a SQL string. |
link |
str | Link | const: false | Click-through URL template for drill-down links, or {url, open} to choose how a click opens the target (the board's links.open when unset). Set to false to suppress this chart's automatic link on a board with links.auto: true; table column links are unaffected. |
visible |
bool | str | SingleRowBoolProbe | Controls whether this layout item is rendered. |
warnings_ignore |
list[one of: 'WARN-ADJACENT-TEXT-ROWS', 'WARN-ANNOTATION-NOTHING-DRAWN', 'WARN-AREA-UNSTACKED-READS-AS-STACKED', 'WARN-AREA-ZERO-BASELINE-CROPPED', 'WARN-AXIS-ALIGN-DISCARDED', 'WARN-AXIS-LABEL-COLLISION', 'WARN-AXIS-TITLE-TRUNCATED', 'WARN-BAR-BAND-WIDTH-TOO-NARROW', 'WARN-BAR-GROUPED-SERIES-COINCIDE', 'WARN-CALLOUT-TEXT-TRUNCATED', 'WARN-CATEGORY-COLOR-PIN-UNSEEN', 'WARN-CHART-TITLE-TRUNCATED', 'WARN-COLUMN-CHECK-UNAVAILABLE', 'WARN-DBT-MANIFEST-MISSING', 'WARN-DBT-MODEL-COLUMNS-UNRESOLVED', 'WARN-DBT-QUERY-COLUMNS-INDETERMINATE', 'WARN-DEFAULTS-FILE-GIVEN-AS-BOARD', 'WARN-DOUBLE-HEADER', 'WARN-DUAL-AXIS-COMPETING-SCALES', 'WARN-ENDPOINT-LABEL-GAP-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-TIED', 'WARN-FACET-PANEL-WIDTH-BELOW-MINIMUM', 'WARN-FANOUT-RISK', 'WARN-FLAT-COLS-UNSIZED-OVERFLOW', 'WARN-FORMAT-UNUSED-NAME', 'WARN-H1-BODY-NO-TITLE', 'WARN-HTML-POLICY-CAPPED', 'WARN-INHERITED-LAYOUT-REPLACED', 'WARN-KPI-ALIGN-OVERFLOW', 'WARN-KPI-INLINE-VARIANT-FALLBACK-TO-STACKED', 'WARN-KPI-LABEL-TRUNCATED', 'WARN-KPI-SUPPORT-TRUNCATED', 'WARN-LAYER-DATA-OUTSIDE-DOMAIN', 'WARN-LAYER-X-DOMAIN-PAINT-ORDER', 'WARN-LAYERED-CHART-SHARED-Y-AXIS-SCALE-MISMATCH', 'WARN-LAYOUT-MIN-EXCEEDS-HEIGHT', 'WARN-LEGEND-POSITION-WIDTH-FALLBACK', 'WARN-LEGEND-VALUES-UNRESOLVED', 'WARN-LIKELY-CURRENCY-OR-PERCENT-MISSING-FORMATTER', 'WARN-LOCAL-TIME-LABEL-EXPR-ON-BUCKETED-AXIS', 'WARN-LOW-TEXT-CONTRAST', 'WARN-NORMALIZE-PERCENT-FORMAT-READS-RAW-VALUE', 'WARN-PALETTE-UNSUPPORTED', 'WARN-PIE-DOMINANT-SEGMENT', 'WARN-PIE-TOO-MANY-SEGMENTS', 'WARN-PIE-TOTAL-EXCEEDS-INNER-RADIUS', 'WARN-PLOT-HEIGHT-BELOW-MINIMUM', 'WARN-PLOT-WIDTH-BELOW-MINIMUM', 'WARN-POINT-MAP-NEGATIVE-SIZE-VALUES', 'WARN-POINT-MAP-OUT-OF-PROJECTION', 'WARN-QUERY-RESULT-TRUNCATED', 'WARN-QUERY-RETURNED-ZERO-ROWS', 'WARN-REDUNDANT-AUTHORED-DEFAULT', 'WARN-REDUNDANT-AUTHORED-LABEL', 'WARN-REDUNDANT-ENCODING', 'WARN-RESTATED-FORMAT', 'WARN-RESTATED-INFERRED', 'WARN-RESTATED-STYLE', 'WARN-RETIRED-IGNORE-CODE', 'WARN-SCHEMA-MIGRATED', 'WARN-SERIES-LABEL-TRUNCATED', 'WARN-SERIES-LABELS-REPEAT-WORD', 'WARN-SINGLE-CHART-REDUNDANT-TITLE', 'WARN-SPARK-LABEL-TRUNCATED', 'WARN-STATIC-PAGINATION-CAPPED', 'WARN-SUPPORT-TABLE-CELL-OVERFLOW', 'WARN-TABLE-COLUMNS-OVERFLOW', 'WARN-TABLE-CRAMPED', 'WARN-TABLE-PAGE-SQUEEZED', 'WARN-TABLE-TEXT-TRUNCATED', 'WARN-TEMPORAL-SINGLE-POINT', 'WARN-TOO-MANY-COLOR-CATEGORIES', 'WARN-TOO-MANY-X-CATEGORIES', 'WARN-UNREFERENCED-CHART', 'WARN-UNREFERENCED-QUERY', 'WARN-VALUE-LABELS-CROWD-WIDTH', 'WARN-WAREHOUSE-CHECK-UNAVAILABLE', 'WARN-WIDE-MEASURE-LABEL-COLLISION', 'WARN-Y-ENCODING-MOSTLY-NULL'] | Codes of render warnings to suppress for this chart. Query-domain codes such as WARN-REAGGREGATION go in queries.<name>.ignore instead. |
title |
str | Heading naming what the chart shows. Rejected on type: kpi. |
subtitle |
str | Supporting text beneath the chart title; a KPI uses support.label instead. |
x |
str | X-axis column name from the query result. |
y |
str | list[str] | Y-axis column name(s). Accepts a single column or list for multi-series charts. |
x_label |
str | X axis title, replacing the column-derived one (model_year reads "Model year"): set it only to say something different. Quote a number, as in '2013'. |
y_label |
str | Y axis title, replacing the derived one (model_year reads "Model year"): set it only to say something different. Quote a number, as in '2013'. |
color |
str | Column that splits the marks into colored series; on heatmap, the measure its cells are shaded by. Bare column name only; a literal color goes in style.color.static. |
sort |
ChartSort | Which column orders the marks, and in which direction (asc/desc). |
multiples |
MultiplesConfig | Small multiples by a rows column, a columns column, or both. Panels share one measure scale by default. A layer's own query must not return the partition column. |
support_table |
list[str | ChartSupportTableSource | ChartSupportTableAggregate | ChartSupportTablePerSeries] | ChartSupportTable | Optional mini data-grid attached below/above the chart. |
height |
int | float | Explicit chart height in pixels. Positive number only. When set, overrides aspect_ratio and theme cascade. Valid on cartesian chart families (area, bar, heatmap, histogram, line, scatter), pie/donut, and geo families (geoshape, map, point_map, bubble_map). Other chart families use renderer-owned or layout-owned sizing contracts. |
width |
int | float | Chart width in pixels. Positive number only. In a rows layout the chart's slot pins to this width (a fixed footprint, capped at the row). In cols and grid layouts it contributes to the dashboard's intrinsic width measurement when the board has no width of its own, and the layout still owns the final slot. Valid on cartesian chart families (area, bar, heatmap, histogram, line, scatter), pie/donut, and geo families (geoshape, map, point_map, bubble_map). Other chart families use renderer-owned or layout-owned sizing contracts. |
y_start |
str | Column each bar starts from instead of zero (waterfall, range, Gantt, lollipop). Same kind as y: both numeric, or both dates. Not with stacking. |
style |
BarChartStyle | Appearance overrides for this chart alone. |
layers |
list[BarLayer | LineLayer | AreaLayer | ScatterLayer] | Extra marks on one shared x, each with its own type. Not supported when type: histogram: a histogram bins x and aggregates to a count, so there is no shared y measure for an overlay to plot against. |
LineChart¶
Authored patch for line charts.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "line" |
Optional
| Field | Type | Description |
|---|---|---|
field_labels |
dict[str, str] | Display text per query column in legends, tooltips and axis titles. The default is the column name prettified (model_year reads "Model year"): set one only to say something different. Painted as written wherever the chart would otherwise derive text from the column's name; x_label/y_label and a layer's label win on their own surface. Not for kpi or table: use style.columns.<column>.label. |
id |
str | Identifier for this chart. Generated from its charts: key, or, written inline, from its title (its label: on type: kpi), falling back to its position. |
notes |
str | Human-readable notes used by AI search. Emitted into the SVG DOM as a data-chart-notes attribute; never painted as visible pixels. |
query |
str | SqlQuery | HttpQuery | ValuesQuery | CompactValuesQuery | SchemaQuery | QueryRef | Where this chart reads its data: a named query, an inline query block, or a SQL string. |
link |
str | Link | const: false | Click-through URL template for drill-down links, or {url, open} to choose how a click opens the target (the board's links.open when unset). Set to false to suppress this chart's automatic link on a board with links.auto: true; table column links are unaffected. |
visible |
bool | str | SingleRowBoolProbe | Controls whether this layout item is rendered. |
warnings_ignore |
list[one of: 'WARN-ADJACENT-TEXT-ROWS', 'WARN-ANNOTATION-NOTHING-DRAWN', 'WARN-AREA-UNSTACKED-READS-AS-STACKED', 'WARN-AREA-ZERO-BASELINE-CROPPED', 'WARN-AXIS-ALIGN-DISCARDED', 'WARN-AXIS-LABEL-COLLISION', 'WARN-AXIS-TITLE-TRUNCATED', 'WARN-BAR-BAND-WIDTH-TOO-NARROW', 'WARN-BAR-GROUPED-SERIES-COINCIDE', 'WARN-CALLOUT-TEXT-TRUNCATED', 'WARN-CATEGORY-COLOR-PIN-UNSEEN', 'WARN-CHART-TITLE-TRUNCATED', 'WARN-COLUMN-CHECK-UNAVAILABLE', 'WARN-DBT-MANIFEST-MISSING', 'WARN-DBT-MODEL-COLUMNS-UNRESOLVED', 'WARN-DBT-QUERY-COLUMNS-INDETERMINATE', 'WARN-DEFAULTS-FILE-GIVEN-AS-BOARD', 'WARN-DOUBLE-HEADER', 'WARN-DUAL-AXIS-COMPETING-SCALES', 'WARN-ENDPOINT-LABEL-GAP-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-TIED', 'WARN-FACET-PANEL-WIDTH-BELOW-MINIMUM', 'WARN-FANOUT-RISK', 'WARN-FLAT-COLS-UNSIZED-OVERFLOW', 'WARN-FORMAT-UNUSED-NAME', 'WARN-H1-BODY-NO-TITLE', 'WARN-HTML-POLICY-CAPPED', 'WARN-INHERITED-LAYOUT-REPLACED', 'WARN-KPI-ALIGN-OVERFLOW', 'WARN-KPI-INLINE-VARIANT-FALLBACK-TO-STACKED', 'WARN-KPI-LABEL-TRUNCATED', 'WARN-KPI-SUPPORT-TRUNCATED', 'WARN-LAYER-DATA-OUTSIDE-DOMAIN', 'WARN-LAYER-X-DOMAIN-PAINT-ORDER', 'WARN-LAYERED-CHART-SHARED-Y-AXIS-SCALE-MISMATCH', 'WARN-LAYOUT-MIN-EXCEEDS-HEIGHT', 'WARN-LEGEND-POSITION-WIDTH-FALLBACK', 'WARN-LEGEND-VALUES-UNRESOLVED', 'WARN-LIKELY-CURRENCY-OR-PERCENT-MISSING-FORMATTER', 'WARN-LOCAL-TIME-LABEL-EXPR-ON-BUCKETED-AXIS', 'WARN-LOW-TEXT-CONTRAST', 'WARN-NORMALIZE-PERCENT-FORMAT-READS-RAW-VALUE', 'WARN-PALETTE-UNSUPPORTED', 'WARN-PIE-DOMINANT-SEGMENT', 'WARN-PIE-TOO-MANY-SEGMENTS', 'WARN-PIE-TOTAL-EXCEEDS-INNER-RADIUS', 'WARN-PLOT-HEIGHT-BELOW-MINIMUM', 'WARN-PLOT-WIDTH-BELOW-MINIMUM', 'WARN-POINT-MAP-NEGATIVE-SIZE-VALUES', 'WARN-POINT-MAP-OUT-OF-PROJECTION', 'WARN-QUERY-RESULT-TRUNCATED', 'WARN-QUERY-RETURNED-ZERO-ROWS', 'WARN-REDUNDANT-AUTHORED-DEFAULT', 'WARN-REDUNDANT-AUTHORED-LABEL', 'WARN-REDUNDANT-ENCODING', 'WARN-RESTATED-FORMAT', 'WARN-RESTATED-INFERRED', 'WARN-RESTATED-STYLE', 'WARN-RETIRED-IGNORE-CODE', 'WARN-SCHEMA-MIGRATED', 'WARN-SERIES-LABEL-TRUNCATED', 'WARN-SERIES-LABELS-REPEAT-WORD', 'WARN-SINGLE-CHART-REDUNDANT-TITLE', 'WARN-SPARK-LABEL-TRUNCATED', 'WARN-STATIC-PAGINATION-CAPPED', 'WARN-SUPPORT-TABLE-CELL-OVERFLOW', 'WARN-TABLE-COLUMNS-OVERFLOW', 'WARN-TABLE-CRAMPED', 'WARN-TABLE-PAGE-SQUEEZED', 'WARN-TABLE-TEXT-TRUNCATED', 'WARN-TEMPORAL-SINGLE-POINT', 'WARN-TOO-MANY-COLOR-CATEGORIES', 'WARN-TOO-MANY-X-CATEGORIES', 'WARN-UNREFERENCED-CHART', 'WARN-UNREFERENCED-QUERY', 'WARN-VALUE-LABELS-CROWD-WIDTH', 'WARN-WAREHOUSE-CHECK-UNAVAILABLE', 'WARN-WIDE-MEASURE-LABEL-COLLISION', 'WARN-Y-ENCODING-MOSTLY-NULL'] | Codes of render warnings to suppress for this chart. Query-domain codes such as WARN-REAGGREGATION go in queries.<name>.ignore instead. |
title |
str | Heading naming what the chart shows. Rejected on type: kpi. |
subtitle |
str | Supporting text beneath the chart title; a KPI uses support.label instead. |
x |
str | X-axis column name from the query result. |
y |
str | list[str] | Y-axis column name(s). Accepts a single column or list for multi-series charts. |
x_label |
str | X axis title, replacing the column-derived one (model_year reads "Model year"): set it only to say something different. Quote a number, as in '2013'. |
y_label |
str | Y axis title, replacing the derived one (model_year reads "Model year"): set it only to say something different. Quote a number, as in '2013'. |
color |
str | Column that splits the marks into colored series; on heatmap, the measure its cells are shaded by. Bare column name only; a literal color goes in style.color.static. |
sort |
ChartSort | Which column orders the marks, and in which direction (asc/desc). |
multiples |
MultiplesConfig | Small multiples by a rows column, a columns column, or both. Panels share one measure scale by default. A layer's own query must not return the partition column. |
support_table |
list[str | ChartSupportTableSource | ChartSupportTableAggregate | ChartSupportTablePerSeries] | ChartSupportTable | Optional mini data-grid attached below/above the chart. |
height |
int | float | Explicit chart height in pixels. Positive number only. When set, overrides aspect_ratio and theme cascade. Valid on cartesian chart families (area, bar, heatmap, histogram, line, scatter), pie/donut, and geo families (geoshape, map, point_map, bubble_map). Other chart families use renderer-owned or layout-owned sizing contracts. |
width |
int | float | Chart width in pixels. Positive number only. In a rows layout the chart's slot pins to this width (a fixed footprint, capped at the row). In cols and grid layouts it contributes to the dashboard's intrinsic width measurement when the board has no width of its own, and the layout still owns the final slot. Valid on cartesian chart families (area, bar, heatmap, histogram, line, scatter), pie/donut, and geo families (geoshape, map, point_map, bubble_map). Other chart families use renderer-owned or layout-owned sizing contracts. |
style |
LineChartStyle | Appearance overrides for this chart alone. |
layers |
list[BarLayer | LineLayer | AreaLayer | ScatterLayer] | Extra marks on one shared x, each with its own type. |
AreaChart¶
Authored patch for area charts.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "area" |
Optional
| Field | Type | Description |
|---|---|---|
field_labels |
dict[str, str] | Display text per query column in legends, tooltips and axis titles. The default is the column name prettified (model_year reads "Model year"): set one only to say something different. Painted as written wherever the chart would otherwise derive text from the column's name; x_label/y_label and a layer's label win on their own surface. Not for kpi or table: use style.columns.<column>.label. |
id |
str | Identifier for this chart. Generated from its charts: key, or, written inline, from its title (its label: on type: kpi), falling back to its position. |
notes |
str | Human-readable notes used by AI search. Emitted into the SVG DOM as a data-chart-notes attribute; never painted as visible pixels. |
query |
str | SqlQuery | HttpQuery | ValuesQuery | CompactValuesQuery | SchemaQuery | QueryRef | Where this chart reads its data: a named query, an inline query block, or a SQL string. |
link |
str | Link | const: false | Click-through URL template for drill-down links, or {url, open} to choose how a click opens the target (the board's links.open when unset). Set to false to suppress this chart's automatic link on a board with links.auto: true; table column links are unaffected. |
visible |
bool | str | SingleRowBoolProbe | Controls whether this layout item is rendered. |
warnings_ignore |
list[one of: 'WARN-ADJACENT-TEXT-ROWS', 'WARN-ANNOTATION-NOTHING-DRAWN', 'WARN-AREA-UNSTACKED-READS-AS-STACKED', 'WARN-AREA-ZERO-BASELINE-CROPPED', 'WARN-AXIS-ALIGN-DISCARDED', 'WARN-AXIS-LABEL-COLLISION', 'WARN-AXIS-TITLE-TRUNCATED', 'WARN-BAR-BAND-WIDTH-TOO-NARROW', 'WARN-BAR-GROUPED-SERIES-COINCIDE', 'WARN-CALLOUT-TEXT-TRUNCATED', 'WARN-CATEGORY-COLOR-PIN-UNSEEN', 'WARN-CHART-TITLE-TRUNCATED', 'WARN-COLUMN-CHECK-UNAVAILABLE', 'WARN-DBT-MANIFEST-MISSING', 'WARN-DBT-MODEL-COLUMNS-UNRESOLVED', 'WARN-DBT-QUERY-COLUMNS-INDETERMINATE', 'WARN-DEFAULTS-FILE-GIVEN-AS-BOARD', 'WARN-DOUBLE-HEADER', 'WARN-DUAL-AXIS-COMPETING-SCALES', 'WARN-ENDPOINT-LABEL-GAP-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-TIED', 'WARN-FACET-PANEL-WIDTH-BELOW-MINIMUM', 'WARN-FANOUT-RISK', 'WARN-FLAT-COLS-UNSIZED-OVERFLOW', 'WARN-FORMAT-UNUSED-NAME', 'WARN-H1-BODY-NO-TITLE', 'WARN-HTML-POLICY-CAPPED', 'WARN-INHERITED-LAYOUT-REPLACED', 'WARN-KPI-ALIGN-OVERFLOW', 'WARN-KPI-INLINE-VARIANT-FALLBACK-TO-STACKED', 'WARN-KPI-LABEL-TRUNCATED', 'WARN-KPI-SUPPORT-TRUNCATED', 'WARN-LAYER-DATA-OUTSIDE-DOMAIN', 'WARN-LAYER-X-DOMAIN-PAINT-ORDER', 'WARN-LAYERED-CHART-SHARED-Y-AXIS-SCALE-MISMATCH', 'WARN-LAYOUT-MIN-EXCEEDS-HEIGHT', 'WARN-LEGEND-POSITION-WIDTH-FALLBACK', 'WARN-LEGEND-VALUES-UNRESOLVED', 'WARN-LIKELY-CURRENCY-OR-PERCENT-MISSING-FORMATTER', 'WARN-LOCAL-TIME-LABEL-EXPR-ON-BUCKETED-AXIS', 'WARN-LOW-TEXT-CONTRAST', 'WARN-NORMALIZE-PERCENT-FORMAT-READS-RAW-VALUE', 'WARN-PALETTE-UNSUPPORTED', 'WARN-PIE-DOMINANT-SEGMENT', 'WARN-PIE-TOO-MANY-SEGMENTS', 'WARN-PIE-TOTAL-EXCEEDS-INNER-RADIUS', 'WARN-PLOT-HEIGHT-BELOW-MINIMUM', 'WARN-PLOT-WIDTH-BELOW-MINIMUM', 'WARN-POINT-MAP-NEGATIVE-SIZE-VALUES', 'WARN-POINT-MAP-OUT-OF-PROJECTION', 'WARN-QUERY-RESULT-TRUNCATED', 'WARN-QUERY-RETURNED-ZERO-ROWS', 'WARN-REDUNDANT-AUTHORED-DEFAULT', 'WARN-REDUNDANT-AUTHORED-LABEL', 'WARN-REDUNDANT-ENCODING', 'WARN-RESTATED-FORMAT', 'WARN-RESTATED-INFERRED', 'WARN-RESTATED-STYLE', 'WARN-RETIRED-IGNORE-CODE', 'WARN-SCHEMA-MIGRATED', 'WARN-SERIES-LABEL-TRUNCATED', 'WARN-SERIES-LABELS-REPEAT-WORD', 'WARN-SINGLE-CHART-REDUNDANT-TITLE', 'WARN-SPARK-LABEL-TRUNCATED', 'WARN-STATIC-PAGINATION-CAPPED', 'WARN-SUPPORT-TABLE-CELL-OVERFLOW', 'WARN-TABLE-COLUMNS-OVERFLOW', 'WARN-TABLE-CRAMPED', 'WARN-TABLE-PAGE-SQUEEZED', 'WARN-TABLE-TEXT-TRUNCATED', 'WARN-TEMPORAL-SINGLE-POINT', 'WARN-TOO-MANY-COLOR-CATEGORIES', 'WARN-TOO-MANY-X-CATEGORIES', 'WARN-UNREFERENCED-CHART', 'WARN-UNREFERENCED-QUERY', 'WARN-VALUE-LABELS-CROWD-WIDTH', 'WARN-WAREHOUSE-CHECK-UNAVAILABLE', 'WARN-WIDE-MEASURE-LABEL-COLLISION', 'WARN-Y-ENCODING-MOSTLY-NULL'] | Codes of render warnings to suppress for this chart. Query-domain codes such as WARN-REAGGREGATION go in queries.<name>.ignore instead. |
title |
str | Heading naming what the chart shows. Rejected on type: kpi. |
subtitle |
str | Supporting text beneath the chart title; a KPI uses support.label instead. |
x |
str | X-axis column name from the query result. |
y |
str | list[str] | Y-axis column name(s). Accepts a single column or list for multi-series charts. |
x_label |
str | X axis title, replacing the column-derived one (model_year reads "Model year"): set it only to say something different. Quote a number, as in '2013'. |
y_label |
str | Y axis title, replacing the derived one (model_year reads "Model year"): set it only to say something different. Quote a number, as in '2013'. |
color |
str | Column that splits the marks into colored series; on heatmap, the measure its cells are shaded by. Bare column name only; a literal color goes in style.color.static. |
sort |
ChartSort | Which column orders the marks, and in which direction (asc/desc). |
multiples |
MultiplesConfig | Small multiples by a rows column, a columns column, or both. Panels share one measure scale by default. A layer's own query must not return the partition column. |
support_table |
list[str | ChartSupportTableSource | ChartSupportTableAggregate | ChartSupportTablePerSeries] | ChartSupportTable | Optional mini data-grid attached below/above the chart. |
height |
int | float | Explicit chart height in pixels. Positive number only. When set, overrides aspect_ratio and theme cascade. Valid on cartesian chart families (area, bar, heatmap, histogram, line, scatter), pie/donut, and geo families (geoshape, map, point_map, bubble_map). Other chart families use renderer-owned or layout-owned sizing contracts. |
width |
int | float | Chart width in pixels. Positive number only. In a rows layout the chart's slot pins to this width (a fixed footprint, capped at the row). In cols and grid layouts it contributes to the dashboard's intrinsic width measurement when the board has no width of its own, and the layout still owns the final slot. Valid on cartesian chart families (area, bar, heatmap, histogram, line, scatter), pie/donut, and geo families (geoshape, map, point_map, bubble_map). Other chart families use renderer-owned or layout-owned sizing contracts. |
style |
AreaChartStyle | Appearance overrides for this chart alone. |
layers |
list[BarLayer | LineLayer | AreaLayer | ScatterLayer] | Extra marks on one shared x, each with its own type. |
ScatterChart¶
Authored patch for scatter charts.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "scatter" |
Optional
| Field | Type | Description |
|---|---|---|
field_labels |
dict[str, str] | Display text per query column in legends, tooltips and axis titles. The default is the column name prettified (model_year reads "Model year"): set one only to say something different. Painted as written wherever the chart would otherwise derive text from the column's name; x_label/y_label and a layer's label win on their own surface. Not for kpi or table: use style.columns.<column>.label. |
id |
str | Identifier for this chart. Generated from its charts: key, or, written inline, from its title (its label: on type: kpi), falling back to its position. |
notes |
str | Human-readable notes used by AI search. Emitted into the SVG DOM as a data-chart-notes attribute; never painted as visible pixels. |
query |
str | SqlQuery | HttpQuery | ValuesQuery | CompactValuesQuery | SchemaQuery | QueryRef | Where this chart reads its data: a named query, an inline query block, or a SQL string. |
link |
str | Link | const: false | Click-through URL template for drill-down links, or {url, open} to choose how a click opens the target (the board's links.open when unset). Set to false to suppress this chart's automatic link on a board with links.auto: true; table column links are unaffected. |
visible |
bool | str | SingleRowBoolProbe | Controls whether this layout item is rendered. |
warnings_ignore |
list[one of: 'WARN-ADJACENT-TEXT-ROWS', 'WARN-ANNOTATION-NOTHING-DRAWN', 'WARN-AREA-UNSTACKED-READS-AS-STACKED', 'WARN-AREA-ZERO-BASELINE-CROPPED', 'WARN-AXIS-ALIGN-DISCARDED', 'WARN-AXIS-LABEL-COLLISION', 'WARN-AXIS-TITLE-TRUNCATED', 'WARN-BAR-BAND-WIDTH-TOO-NARROW', 'WARN-BAR-GROUPED-SERIES-COINCIDE', 'WARN-CALLOUT-TEXT-TRUNCATED', 'WARN-CATEGORY-COLOR-PIN-UNSEEN', 'WARN-CHART-TITLE-TRUNCATED', 'WARN-COLUMN-CHECK-UNAVAILABLE', 'WARN-DBT-MANIFEST-MISSING', 'WARN-DBT-MODEL-COLUMNS-UNRESOLVED', 'WARN-DBT-QUERY-COLUMNS-INDETERMINATE', 'WARN-DEFAULTS-FILE-GIVEN-AS-BOARD', 'WARN-DOUBLE-HEADER', 'WARN-DUAL-AXIS-COMPETING-SCALES', 'WARN-ENDPOINT-LABEL-GAP-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-TIED', 'WARN-FACET-PANEL-WIDTH-BELOW-MINIMUM', 'WARN-FANOUT-RISK', 'WARN-FLAT-COLS-UNSIZED-OVERFLOW', 'WARN-FORMAT-UNUSED-NAME', 'WARN-H1-BODY-NO-TITLE', 'WARN-HTML-POLICY-CAPPED', 'WARN-INHERITED-LAYOUT-REPLACED', 'WARN-KPI-ALIGN-OVERFLOW', 'WARN-KPI-INLINE-VARIANT-FALLBACK-TO-STACKED', 'WARN-KPI-LABEL-TRUNCATED', 'WARN-KPI-SUPPORT-TRUNCATED', 'WARN-LAYER-DATA-OUTSIDE-DOMAIN', 'WARN-LAYER-X-DOMAIN-PAINT-ORDER', 'WARN-LAYERED-CHART-SHARED-Y-AXIS-SCALE-MISMATCH', 'WARN-LAYOUT-MIN-EXCEEDS-HEIGHT', 'WARN-LEGEND-POSITION-WIDTH-FALLBACK', 'WARN-LEGEND-VALUES-UNRESOLVED', 'WARN-LIKELY-CURRENCY-OR-PERCENT-MISSING-FORMATTER', 'WARN-LOCAL-TIME-LABEL-EXPR-ON-BUCKETED-AXIS', 'WARN-LOW-TEXT-CONTRAST', 'WARN-NORMALIZE-PERCENT-FORMAT-READS-RAW-VALUE', 'WARN-PALETTE-UNSUPPORTED', 'WARN-PIE-DOMINANT-SEGMENT', 'WARN-PIE-TOO-MANY-SEGMENTS', 'WARN-PIE-TOTAL-EXCEEDS-INNER-RADIUS', 'WARN-PLOT-HEIGHT-BELOW-MINIMUM', 'WARN-PLOT-WIDTH-BELOW-MINIMUM', 'WARN-POINT-MAP-NEGATIVE-SIZE-VALUES', 'WARN-POINT-MAP-OUT-OF-PROJECTION', 'WARN-QUERY-RESULT-TRUNCATED', 'WARN-QUERY-RETURNED-ZERO-ROWS', 'WARN-REDUNDANT-AUTHORED-DEFAULT', 'WARN-REDUNDANT-AUTHORED-LABEL', 'WARN-REDUNDANT-ENCODING', 'WARN-RESTATED-FORMAT', 'WARN-RESTATED-INFERRED', 'WARN-RESTATED-STYLE', 'WARN-RETIRED-IGNORE-CODE', 'WARN-SCHEMA-MIGRATED', 'WARN-SERIES-LABEL-TRUNCATED', 'WARN-SERIES-LABELS-REPEAT-WORD', 'WARN-SINGLE-CHART-REDUNDANT-TITLE', 'WARN-SPARK-LABEL-TRUNCATED', 'WARN-STATIC-PAGINATION-CAPPED', 'WARN-SUPPORT-TABLE-CELL-OVERFLOW', 'WARN-TABLE-COLUMNS-OVERFLOW', 'WARN-TABLE-CRAMPED', 'WARN-TABLE-PAGE-SQUEEZED', 'WARN-TABLE-TEXT-TRUNCATED', 'WARN-TEMPORAL-SINGLE-POINT', 'WARN-TOO-MANY-COLOR-CATEGORIES', 'WARN-TOO-MANY-X-CATEGORIES', 'WARN-UNREFERENCED-CHART', 'WARN-UNREFERENCED-QUERY', 'WARN-VALUE-LABELS-CROWD-WIDTH', 'WARN-WAREHOUSE-CHECK-UNAVAILABLE', 'WARN-WIDE-MEASURE-LABEL-COLLISION', 'WARN-Y-ENCODING-MOSTLY-NULL'] | Codes of render warnings to suppress for this chart. Query-domain codes such as WARN-REAGGREGATION go in queries.<name>.ignore instead. |
title |
str | Heading naming what the chart shows. Rejected on type: kpi. |
subtitle |
str | Supporting text beneath the chart title; a KPI uses support.label instead. |
x |
str | X-axis column name from the query result. |
y |
str | list[str] | Y-axis column name(s). Accepts a single column or list for multi-series charts. |
x_label |
str | X axis title, replacing the column-derived one (model_year reads "Model year"): set it only to say something different. Quote a number, as in '2013'. |
y_label |
str | Y axis title, replacing the derived one (model_year reads "Model year"): set it only to say something different. Quote a number, as in '2013'. |
color |
str | Column that splits the marks into colored series; on heatmap, the measure its cells are shaded by. Bare column name only; a literal color goes in style.color.static. |
sort |
ChartSort | Which column orders the marks, and in which direction (asc/desc). |
multiples |
MultiplesConfig | Small multiples by a rows column, a columns column, or both. Panels share one measure scale by default. A layer's own query must not return the partition column. |
support_table |
list[str | ChartSupportTableSource | ChartSupportTableAggregate | ChartSupportTablePerSeries] | ChartSupportTable | Optional mini data-grid attached below/above the chart. |
height |
int | float | Explicit chart height in pixels. Positive number only. When set, overrides aspect_ratio and theme cascade. Valid on cartesian chart families (area, bar, heatmap, histogram, line, scatter), pie/donut, and geo families (geoshape, map, point_map, bubble_map). Other chart families use renderer-owned or layout-owned sizing contracts. |
width |
int | float | Chart width in pixels. Positive number only. In a rows layout the chart's slot pins to this width (a fixed footprint, capped at the row). In cols and grid layouts it contributes to the dashboard's intrinsic width measurement when the board has no width of its own, and the layout still owns the final slot. Valid on cartesian chart families (area, bar, heatmap, histogram, line, scatter), pie/donut, and geo families (geoshape, map, point_map, bubble_map). Other chart families use renderer-owned or layout-owned sizing contracts. |
size |
str | Column used to size-encode data points (quantitative). |
shape |
str | Column used to shape-encode data points (categorical). |
style |
ScatterChartStyle | Appearance overrides for this chart alone. |
layers |
list[BarLayer | LineLayer | AreaLayer | ScatterLayer] | Extra marks on one shared x, each with its own type. |
HeatmapChart¶
Authored patch for heatmap charts.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "heatmap" |
Optional
| Field | Type | Description |
|---|---|---|
field_labels |
dict[str, str] | Display text per query column in legends, tooltips and axis titles. The default is the column name prettified (model_year reads "Model year"): set one only to say something different. Painted as written wherever the chart would otherwise derive text from the column's name; x_label/y_label and a layer's label win on their own surface. Not for kpi or table: use style.columns.<column>.label. |
id |
str | Identifier for this chart. Generated from its charts: key, or, written inline, from its title (its label: on type: kpi), falling back to its position. |
notes |
str | Human-readable notes used by AI search. Emitted into the SVG DOM as a data-chart-notes attribute; never painted as visible pixels. |
query |
str | SqlQuery | HttpQuery | ValuesQuery | CompactValuesQuery | SchemaQuery | QueryRef | Where this chart reads its data: a named query, an inline query block, or a SQL string. |
link |
str | Link | const: false | Click-through URL template for drill-down links, or {url, open} to choose how a click opens the target (the board's links.open when unset). Set to false to suppress this chart's automatic link on a board with links.auto: true; table column links are unaffected. |
visible |
bool | str | SingleRowBoolProbe | Controls whether this layout item is rendered. |
warnings_ignore |
list[one of: 'WARN-ADJACENT-TEXT-ROWS', 'WARN-ANNOTATION-NOTHING-DRAWN', 'WARN-AREA-UNSTACKED-READS-AS-STACKED', 'WARN-AREA-ZERO-BASELINE-CROPPED', 'WARN-AXIS-ALIGN-DISCARDED', 'WARN-AXIS-LABEL-COLLISION', 'WARN-AXIS-TITLE-TRUNCATED', 'WARN-BAR-BAND-WIDTH-TOO-NARROW', 'WARN-BAR-GROUPED-SERIES-COINCIDE', 'WARN-CALLOUT-TEXT-TRUNCATED', 'WARN-CATEGORY-COLOR-PIN-UNSEEN', 'WARN-CHART-TITLE-TRUNCATED', 'WARN-COLUMN-CHECK-UNAVAILABLE', 'WARN-DBT-MANIFEST-MISSING', 'WARN-DBT-MODEL-COLUMNS-UNRESOLVED', 'WARN-DBT-QUERY-COLUMNS-INDETERMINATE', 'WARN-DEFAULTS-FILE-GIVEN-AS-BOARD', 'WARN-DOUBLE-HEADER', 'WARN-DUAL-AXIS-COMPETING-SCALES', 'WARN-ENDPOINT-LABEL-GAP-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-TIED', 'WARN-FACET-PANEL-WIDTH-BELOW-MINIMUM', 'WARN-FANOUT-RISK', 'WARN-FLAT-COLS-UNSIZED-OVERFLOW', 'WARN-FORMAT-UNUSED-NAME', 'WARN-H1-BODY-NO-TITLE', 'WARN-HTML-POLICY-CAPPED', 'WARN-INHERITED-LAYOUT-REPLACED', 'WARN-KPI-ALIGN-OVERFLOW', 'WARN-KPI-INLINE-VARIANT-FALLBACK-TO-STACKED', 'WARN-KPI-LABEL-TRUNCATED', 'WARN-KPI-SUPPORT-TRUNCATED', 'WARN-LAYER-DATA-OUTSIDE-DOMAIN', 'WARN-LAYER-X-DOMAIN-PAINT-ORDER', 'WARN-LAYERED-CHART-SHARED-Y-AXIS-SCALE-MISMATCH', 'WARN-LAYOUT-MIN-EXCEEDS-HEIGHT', 'WARN-LEGEND-POSITION-WIDTH-FALLBACK', 'WARN-LEGEND-VALUES-UNRESOLVED', 'WARN-LIKELY-CURRENCY-OR-PERCENT-MISSING-FORMATTER', 'WARN-LOCAL-TIME-LABEL-EXPR-ON-BUCKETED-AXIS', 'WARN-LOW-TEXT-CONTRAST', 'WARN-NORMALIZE-PERCENT-FORMAT-READS-RAW-VALUE', 'WARN-PALETTE-UNSUPPORTED', 'WARN-PIE-DOMINANT-SEGMENT', 'WARN-PIE-TOO-MANY-SEGMENTS', 'WARN-PIE-TOTAL-EXCEEDS-INNER-RADIUS', 'WARN-PLOT-HEIGHT-BELOW-MINIMUM', 'WARN-PLOT-WIDTH-BELOW-MINIMUM', 'WARN-POINT-MAP-NEGATIVE-SIZE-VALUES', 'WARN-POINT-MAP-OUT-OF-PROJECTION', 'WARN-QUERY-RESULT-TRUNCATED', 'WARN-QUERY-RETURNED-ZERO-ROWS', 'WARN-REDUNDANT-AUTHORED-DEFAULT', 'WARN-REDUNDANT-AUTHORED-LABEL', 'WARN-REDUNDANT-ENCODING', 'WARN-RESTATED-FORMAT', 'WARN-RESTATED-INFERRED', 'WARN-RESTATED-STYLE', 'WARN-RETIRED-IGNORE-CODE', 'WARN-SCHEMA-MIGRATED', 'WARN-SERIES-LABEL-TRUNCATED', 'WARN-SERIES-LABELS-REPEAT-WORD', 'WARN-SINGLE-CHART-REDUNDANT-TITLE', 'WARN-SPARK-LABEL-TRUNCATED', 'WARN-STATIC-PAGINATION-CAPPED', 'WARN-SUPPORT-TABLE-CELL-OVERFLOW', 'WARN-TABLE-COLUMNS-OVERFLOW', 'WARN-TABLE-CRAMPED', 'WARN-TABLE-PAGE-SQUEEZED', 'WARN-TABLE-TEXT-TRUNCATED', 'WARN-TEMPORAL-SINGLE-POINT', 'WARN-TOO-MANY-COLOR-CATEGORIES', 'WARN-TOO-MANY-X-CATEGORIES', 'WARN-UNREFERENCED-CHART', 'WARN-UNREFERENCED-QUERY', 'WARN-VALUE-LABELS-CROWD-WIDTH', 'WARN-WAREHOUSE-CHECK-UNAVAILABLE', 'WARN-WIDE-MEASURE-LABEL-COLLISION', 'WARN-Y-ENCODING-MOSTLY-NULL'] | Codes of render warnings to suppress for this chart. Query-domain codes such as WARN-REAGGREGATION go in queries.<name>.ignore instead. |
title |
str | Heading naming what the chart shows. Rejected on type: kpi. |
subtitle |
str | Supporting text beneath the chart title; a KPI uses support.label instead. |
x |
str | X-axis column name from the query result. |
y |
str | list[str] | Y-axis column name(s). Accepts a single column or list for multi-series charts. |
x_label |
str | X axis title, replacing the column-derived one (model_year reads "Model year"): set it only to say something different. Quote a number, as in '2013'. |
y_label |
str | Y axis title, replacing the derived one (model_year reads "Model year"): set it only to say something different. Quote a number, as in '2013'. |
color |
str | Column that splits the marks into colored series; on heatmap, the measure its cells are shaded by. Bare column name only; a literal color goes in style.color.static. |
sort |
ChartSort | Which column orders the marks, and in which direction (asc/desc). |
multiples |
MultiplesConfig | Small multiples by a rows column, a columns column, or both. Panels share one measure scale by default. A layer's own query must not return the partition column. |
support_table |
list[str | ChartSupportTableSource | ChartSupportTableAggregate | ChartSupportTablePerSeries] | ChartSupportTable | Optional mini data-grid attached below/above the chart. |
height |
int | float | Explicit chart height in pixels. Positive number only. When set, overrides aspect_ratio and theme cascade. Valid on cartesian chart families (area, bar, heatmap, histogram, line, scatter), pie/donut, and geo families (geoshape, map, point_map, bubble_map). Other chart families use renderer-owned or layout-owned sizing contracts. |
width |
int | float | Chart width in pixels. Positive number only. In a rows layout the chart's slot pins to this width (a fixed footprint, capped at the row). In cols and grid layouts it contributes to the dashboard's intrinsic width measurement when the board has no width of its own, and the layout still owns the final slot. Valid on cartesian chart families (area, bar, heatmap, histogram, line, scatter), pie/donut, and geo families (geoshape, map, point_map, bubble_map). Other chart families use renderer-owned or layout-owned sizing contracts. |
style |
HeatmapChartStyle | Appearance overrides for this chart alone. |
PieChart¶
Authored patch for pie and donut charts; donut defaults style.inner_radius to 0.6.
Required
| Field | Type | Description |
|---|---|---|
type |
enum: "pie", "donut" | Selects the chart family. |
theta |
str | Column for angular encoding in pie (arc) charts. |
Optional
| Field | Type | Description |
|---|---|---|
field_labels |
dict[str, str] | Display text per query column in legends, tooltips and axis titles. The default is the column name prettified (model_year reads "Model year"): set one only to say something different. Painted as written wherever the chart would otherwise derive text from the column's name; x_label/y_label and a layer's label win on their own surface. Not for kpi or table: use style.columns.<column>.label. |
id |
str | Identifier for this chart. Generated from its charts: key, or, written inline, from its title (its label: on type: kpi), falling back to its position. |
notes |
str | Human-readable notes used by AI search. Emitted into the SVG DOM as a data-chart-notes attribute; never painted as visible pixels. |
query |
str | SqlQuery | HttpQuery | ValuesQuery | CompactValuesQuery | SchemaQuery | QueryRef | Where this chart reads its data: a named query, an inline query block, or a SQL string. |
link |
str | Link | const: false | Click-through URL template for drill-down links, or {url, open} to choose how a click opens the target (the board's links.open when unset). Set to false to suppress this chart's automatic link on a board with links.auto: true; table column links are unaffected. |
visible |
bool | str | SingleRowBoolProbe | Controls whether this layout item is rendered. |
warnings_ignore |
list[one of: 'WARN-ADJACENT-TEXT-ROWS', 'WARN-ANNOTATION-NOTHING-DRAWN', 'WARN-AREA-UNSTACKED-READS-AS-STACKED', 'WARN-AREA-ZERO-BASELINE-CROPPED', 'WARN-AXIS-ALIGN-DISCARDED', 'WARN-AXIS-LABEL-COLLISION', 'WARN-AXIS-TITLE-TRUNCATED', 'WARN-BAR-BAND-WIDTH-TOO-NARROW', 'WARN-BAR-GROUPED-SERIES-COINCIDE', 'WARN-CALLOUT-TEXT-TRUNCATED', 'WARN-CATEGORY-COLOR-PIN-UNSEEN', 'WARN-CHART-TITLE-TRUNCATED', 'WARN-COLUMN-CHECK-UNAVAILABLE', 'WARN-DBT-MANIFEST-MISSING', 'WARN-DBT-MODEL-COLUMNS-UNRESOLVED', 'WARN-DBT-QUERY-COLUMNS-INDETERMINATE', 'WARN-DEFAULTS-FILE-GIVEN-AS-BOARD', 'WARN-DOUBLE-HEADER', 'WARN-DUAL-AXIS-COMPETING-SCALES', 'WARN-ENDPOINT-LABEL-GAP-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-TIED', 'WARN-FACET-PANEL-WIDTH-BELOW-MINIMUM', 'WARN-FANOUT-RISK', 'WARN-FLAT-COLS-UNSIZED-OVERFLOW', 'WARN-FORMAT-UNUSED-NAME', 'WARN-H1-BODY-NO-TITLE', 'WARN-HTML-POLICY-CAPPED', 'WARN-INHERITED-LAYOUT-REPLACED', 'WARN-KPI-ALIGN-OVERFLOW', 'WARN-KPI-INLINE-VARIANT-FALLBACK-TO-STACKED', 'WARN-KPI-LABEL-TRUNCATED', 'WARN-KPI-SUPPORT-TRUNCATED', 'WARN-LAYER-DATA-OUTSIDE-DOMAIN', 'WARN-LAYER-X-DOMAIN-PAINT-ORDER', 'WARN-LAYERED-CHART-SHARED-Y-AXIS-SCALE-MISMATCH', 'WARN-LAYOUT-MIN-EXCEEDS-HEIGHT', 'WARN-LEGEND-POSITION-WIDTH-FALLBACK', 'WARN-LEGEND-VALUES-UNRESOLVED', 'WARN-LIKELY-CURRENCY-OR-PERCENT-MISSING-FORMATTER', 'WARN-LOCAL-TIME-LABEL-EXPR-ON-BUCKETED-AXIS', 'WARN-LOW-TEXT-CONTRAST', 'WARN-NORMALIZE-PERCENT-FORMAT-READS-RAW-VALUE', 'WARN-PALETTE-UNSUPPORTED', 'WARN-PIE-DOMINANT-SEGMENT', 'WARN-PIE-TOO-MANY-SEGMENTS', 'WARN-PIE-TOTAL-EXCEEDS-INNER-RADIUS', 'WARN-PLOT-HEIGHT-BELOW-MINIMUM', 'WARN-PLOT-WIDTH-BELOW-MINIMUM', 'WARN-POINT-MAP-NEGATIVE-SIZE-VALUES', 'WARN-POINT-MAP-OUT-OF-PROJECTION', 'WARN-QUERY-RESULT-TRUNCATED', 'WARN-QUERY-RETURNED-ZERO-ROWS', 'WARN-REDUNDANT-AUTHORED-DEFAULT', 'WARN-REDUNDANT-AUTHORED-LABEL', 'WARN-REDUNDANT-ENCODING', 'WARN-RESTATED-FORMAT', 'WARN-RESTATED-INFERRED', 'WARN-RESTATED-STYLE', 'WARN-RETIRED-IGNORE-CODE', 'WARN-SCHEMA-MIGRATED', 'WARN-SERIES-LABEL-TRUNCATED', 'WARN-SERIES-LABELS-REPEAT-WORD', 'WARN-SINGLE-CHART-REDUNDANT-TITLE', 'WARN-SPARK-LABEL-TRUNCATED', 'WARN-STATIC-PAGINATION-CAPPED', 'WARN-SUPPORT-TABLE-CELL-OVERFLOW', 'WARN-TABLE-COLUMNS-OVERFLOW', 'WARN-TABLE-CRAMPED', 'WARN-TABLE-PAGE-SQUEEZED', 'WARN-TABLE-TEXT-TRUNCATED', 'WARN-TEMPORAL-SINGLE-POINT', 'WARN-TOO-MANY-COLOR-CATEGORIES', 'WARN-TOO-MANY-X-CATEGORIES', 'WARN-UNREFERENCED-CHART', 'WARN-UNREFERENCED-QUERY', 'WARN-VALUE-LABELS-CROWD-WIDTH', 'WARN-WAREHOUSE-CHECK-UNAVAILABLE', 'WARN-WIDE-MEASURE-LABEL-COLLISION', 'WARN-Y-ENCODING-MOSTLY-NULL'] | Codes of render warnings to suppress for this chart. Query-domain codes such as WARN-REAGGREGATION go in queries.<name>.ignore instead. |
title |
str | Heading naming what the chart shows. Rejected on type: kpi. |
subtitle |
str | Supporting text beneath the chart title; a KPI uses support.label instead. |
color |
str | Column naming each wedge, giving it its own hue. Bare column name only; a literal color goes in style.color.static. |
total |
ChartTotal | Sum of the slice values, drawn in the donut hole. |
height |
int | float | Explicit chart height in pixels. Positive number only. |
width |
int | float | Chart width in pixels. Positive number only. In a rows layout the chart's slot pins to this width (a fixed footprint, capped at the row). In cols and grid layouts it contributes to the dashboard's intrinsic width measurement when the board has no width of its own, and the layout still owns the final slot. |
style |
PieChartStyle | Appearance overrides for this chart alone. |
KpiChart¶
Authored patch for KPI (key performance indicator) charts.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "kpi" | |
value |
str | Column reference (string column name) for the headline number/text. |
Optional
| Field | Type | Description |
|---|---|---|
conditional_formatting |
dict[str, FieldConditionalFormatting] | Discrete rule-driven style overrides indexed by column name. Available on type: table and type: kpi only. On a KPI, rules on the support.value column style the support row (font.color, glyph, glyph_color, tone); rules on other columns style the headline. |
id |
str | Identifier for this chart. Generated from its charts: key, or, written inline, from its title (its label: on type: kpi), falling back to its position. |
notes |
str | Human-readable notes used by AI search. Emitted into the SVG DOM as a data-chart-notes attribute; never painted as visible pixels. |
query |
str | SqlQuery | HttpQuery | ValuesQuery | CompactValuesQuery | SchemaQuery | QueryRef | Where this chart reads its data: a named query, an inline query block, or a SQL string. |
link |
str | Link | const: false | Click-through URL template for drill-down links, or {url, open} to choose how a click opens the target (the board's links.open when unset). Set to false to suppress this chart's automatic link on a board with links.auto: true; table column links are unaffected. |
visible |
bool | str | SingleRowBoolProbe | Controls whether this layout item is rendered. |
warnings_ignore |
list[one of: 'WARN-ADJACENT-TEXT-ROWS', 'WARN-ANNOTATION-NOTHING-DRAWN', 'WARN-AREA-UNSTACKED-READS-AS-STACKED', 'WARN-AREA-ZERO-BASELINE-CROPPED', 'WARN-AXIS-ALIGN-DISCARDED', 'WARN-AXIS-LABEL-COLLISION', 'WARN-AXIS-TITLE-TRUNCATED', 'WARN-BAR-BAND-WIDTH-TOO-NARROW', 'WARN-BAR-GROUPED-SERIES-COINCIDE', 'WARN-CALLOUT-TEXT-TRUNCATED', 'WARN-CATEGORY-COLOR-PIN-UNSEEN', 'WARN-CHART-TITLE-TRUNCATED', 'WARN-COLUMN-CHECK-UNAVAILABLE', 'WARN-DBT-MANIFEST-MISSING', 'WARN-DBT-MODEL-COLUMNS-UNRESOLVED', 'WARN-DBT-QUERY-COLUMNS-INDETERMINATE', 'WARN-DEFAULTS-FILE-GIVEN-AS-BOARD', 'WARN-DOUBLE-HEADER', 'WARN-DUAL-AXIS-COMPETING-SCALES', 'WARN-ENDPOINT-LABEL-GAP-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-TIED', 'WARN-FACET-PANEL-WIDTH-BELOW-MINIMUM', 'WARN-FANOUT-RISK', 'WARN-FLAT-COLS-UNSIZED-OVERFLOW', 'WARN-FORMAT-UNUSED-NAME', 'WARN-H1-BODY-NO-TITLE', 'WARN-HTML-POLICY-CAPPED', 'WARN-INHERITED-LAYOUT-REPLACED', 'WARN-KPI-ALIGN-OVERFLOW', 'WARN-KPI-INLINE-VARIANT-FALLBACK-TO-STACKED', 'WARN-KPI-LABEL-TRUNCATED', 'WARN-KPI-SUPPORT-TRUNCATED', 'WARN-LAYER-DATA-OUTSIDE-DOMAIN', 'WARN-LAYER-X-DOMAIN-PAINT-ORDER', 'WARN-LAYERED-CHART-SHARED-Y-AXIS-SCALE-MISMATCH', 'WARN-LAYOUT-MIN-EXCEEDS-HEIGHT', 'WARN-LEGEND-POSITION-WIDTH-FALLBACK', 'WARN-LEGEND-VALUES-UNRESOLVED', 'WARN-LIKELY-CURRENCY-OR-PERCENT-MISSING-FORMATTER', 'WARN-LOCAL-TIME-LABEL-EXPR-ON-BUCKETED-AXIS', 'WARN-LOW-TEXT-CONTRAST', 'WARN-NORMALIZE-PERCENT-FORMAT-READS-RAW-VALUE', 'WARN-PALETTE-UNSUPPORTED', 'WARN-PIE-DOMINANT-SEGMENT', 'WARN-PIE-TOO-MANY-SEGMENTS', 'WARN-PIE-TOTAL-EXCEEDS-INNER-RADIUS', 'WARN-PLOT-HEIGHT-BELOW-MINIMUM', 'WARN-PLOT-WIDTH-BELOW-MINIMUM', 'WARN-POINT-MAP-NEGATIVE-SIZE-VALUES', 'WARN-POINT-MAP-OUT-OF-PROJECTION', 'WARN-QUERY-RESULT-TRUNCATED', 'WARN-QUERY-RETURNED-ZERO-ROWS', 'WARN-REDUNDANT-AUTHORED-DEFAULT', 'WARN-REDUNDANT-AUTHORED-LABEL', 'WARN-REDUNDANT-ENCODING', 'WARN-RESTATED-FORMAT', 'WARN-RESTATED-INFERRED', 'WARN-RESTATED-STYLE', 'WARN-RETIRED-IGNORE-CODE', 'WARN-SCHEMA-MIGRATED', 'WARN-SERIES-LABEL-TRUNCATED', 'WARN-SERIES-LABELS-REPEAT-WORD', 'WARN-SINGLE-CHART-REDUNDANT-TITLE', 'WARN-SPARK-LABEL-TRUNCATED', 'WARN-STATIC-PAGINATION-CAPPED', 'WARN-SUPPORT-TABLE-CELL-OVERFLOW', 'WARN-TABLE-COLUMNS-OVERFLOW', 'WARN-TABLE-CRAMPED', 'WARN-TABLE-PAGE-SQUEEZED', 'WARN-TABLE-TEXT-TRUNCATED', 'WARN-TEMPORAL-SINGLE-POINT', 'WARN-TOO-MANY-COLOR-CATEGORIES', 'WARN-TOO-MANY-X-CATEGORIES', 'WARN-UNREFERENCED-CHART', 'WARN-UNREFERENCED-QUERY', 'WARN-VALUE-LABELS-CROWD-WIDTH', 'WARN-WAREHOUSE-CHECK-UNAVAILABLE', 'WARN-WIDE-MEASURE-LABEL-COLLISION', 'WARN-Y-ENCODING-MOSTLY-NULL'] | Codes of render warnings to suppress for this chart. Query-domain codes such as WARN-REAGGREGATION go in queries.<name>.ignore instead. |
label |
str | Caption naming what the headline value measures; style.variant places it. |
glyph |
str | Text shown before the headline value (e.g. '▲', '●'). |
support |
KpiSupportConfig | Secondary block, a delta, comparison, or note; style.variant places it. |
style |
KpiChartStyle | Appearance overrides for this chart alone. |
background |
str | dict[str, Any] | Gradient background channel, {column, scale} shape. Paints the card background by the value's position in the scale. |
TableChart¶
Authored patch for table charts.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "table" |
Optional
| Field | Type | Description |
|---|---|---|
conditional_formatting |
dict[str, FieldConditionalFormatting] | Discrete rule-driven style overrides indexed by column name. Available on type: table and type: kpi only. On a KPI, rules on the support.value column style the support row (font.color, glyph, glyph_color, tone); rules on other columns style the headline. |
id |
str | Identifier for this chart. Generated from its charts: key, or, written inline, from its title (its label: on type: kpi), falling back to its position. |
notes |
str | Human-readable notes used by AI search. Emitted into the SVG DOM as a data-chart-notes attribute; never painted as visible pixels. |
query |
str | SqlQuery | HttpQuery | ValuesQuery | CompactValuesQuery | SchemaQuery | QueryRef | Where this chart reads its data: a named query, an inline query block, or a SQL string. |
link |
str | Link | const: false | Click-through URL template for drill-down links, or {url, open} to choose how a click opens the target (the board's links.open when unset). Set to false to suppress this chart's automatic link on a board with links.auto: true; table column links are unaffected. |
visible |
bool | str | SingleRowBoolProbe | Controls whether this layout item is rendered. |
warnings_ignore |
list[one of: 'WARN-ADJACENT-TEXT-ROWS', 'WARN-ANNOTATION-NOTHING-DRAWN', 'WARN-AREA-UNSTACKED-READS-AS-STACKED', 'WARN-AREA-ZERO-BASELINE-CROPPED', 'WARN-AXIS-ALIGN-DISCARDED', 'WARN-AXIS-LABEL-COLLISION', 'WARN-AXIS-TITLE-TRUNCATED', 'WARN-BAR-BAND-WIDTH-TOO-NARROW', 'WARN-BAR-GROUPED-SERIES-COINCIDE', 'WARN-CALLOUT-TEXT-TRUNCATED', 'WARN-CATEGORY-COLOR-PIN-UNSEEN', 'WARN-CHART-TITLE-TRUNCATED', 'WARN-COLUMN-CHECK-UNAVAILABLE', 'WARN-DBT-MANIFEST-MISSING', 'WARN-DBT-MODEL-COLUMNS-UNRESOLVED', 'WARN-DBT-QUERY-COLUMNS-INDETERMINATE', 'WARN-DEFAULTS-FILE-GIVEN-AS-BOARD', 'WARN-DOUBLE-HEADER', 'WARN-DUAL-AXIS-COMPETING-SCALES', 'WARN-ENDPOINT-LABEL-GAP-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-TIED', 'WARN-FACET-PANEL-WIDTH-BELOW-MINIMUM', 'WARN-FANOUT-RISK', 'WARN-FLAT-COLS-UNSIZED-OVERFLOW', 'WARN-FORMAT-UNUSED-NAME', 'WARN-H1-BODY-NO-TITLE', 'WARN-HTML-POLICY-CAPPED', 'WARN-INHERITED-LAYOUT-REPLACED', 'WARN-KPI-ALIGN-OVERFLOW', 'WARN-KPI-INLINE-VARIANT-FALLBACK-TO-STACKED', 'WARN-KPI-LABEL-TRUNCATED', 'WARN-KPI-SUPPORT-TRUNCATED', 'WARN-LAYER-DATA-OUTSIDE-DOMAIN', 'WARN-LAYER-X-DOMAIN-PAINT-ORDER', 'WARN-LAYERED-CHART-SHARED-Y-AXIS-SCALE-MISMATCH', 'WARN-LAYOUT-MIN-EXCEEDS-HEIGHT', 'WARN-LEGEND-POSITION-WIDTH-FALLBACK', 'WARN-LEGEND-VALUES-UNRESOLVED', 'WARN-LIKELY-CURRENCY-OR-PERCENT-MISSING-FORMATTER', 'WARN-LOCAL-TIME-LABEL-EXPR-ON-BUCKETED-AXIS', 'WARN-LOW-TEXT-CONTRAST', 'WARN-NORMALIZE-PERCENT-FORMAT-READS-RAW-VALUE', 'WARN-PALETTE-UNSUPPORTED', 'WARN-PIE-DOMINANT-SEGMENT', 'WARN-PIE-TOO-MANY-SEGMENTS', 'WARN-PIE-TOTAL-EXCEEDS-INNER-RADIUS', 'WARN-PLOT-HEIGHT-BELOW-MINIMUM', 'WARN-PLOT-WIDTH-BELOW-MINIMUM', 'WARN-POINT-MAP-NEGATIVE-SIZE-VALUES', 'WARN-POINT-MAP-OUT-OF-PROJECTION', 'WARN-QUERY-RESULT-TRUNCATED', 'WARN-QUERY-RETURNED-ZERO-ROWS', 'WARN-REDUNDANT-AUTHORED-DEFAULT', 'WARN-REDUNDANT-AUTHORED-LABEL', 'WARN-REDUNDANT-ENCODING', 'WARN-RESTATED-FORMAT', 'WARN-RESTATED-INFERRED', 'WARN-RESTATED-STYLE', 'WARN-RETIRED-IGNORE-CODE', 'WARN-SCHEMA-MIGRATED', 'WARN-SERIES-LABEL-TRUNCATED', 'WARN-SERIES-LABELS-REPEAT-WORD', 'WARN-SINGLE-CHART-REDUNDANT-TITLE', 'WARN-SPARK-LABEL-TRUNCATED', 'WARN-STATIC-PAGINATION-CAPPED', 'WARN-SUPPORT-TABLE-CELL-OVERFLOW', 'WARN-TABLE-COLUMNS-OVERFLOW', 'WARN-TABLE-CRAMPED', 'WARN-TABLE-PAGE-SQUEEZED', 'WARN-TABLE-TEXT-TRUNCATED', 'WARN-TEMPORAL-SINGLE-POINT', 'WARN-TOO-MANY-COLOR-CATEGORIES', 'WARN-TOO-MANY-X-CATEGORIES', 'WARN-UNREFERENCED-CHART', 'WARN-UNREFERENCED-QUERY', 'WARN-VALUE-LABELS-CROWD-WIDTH', 'WARN-WAREHOUSE-CHECK-UNAVAILABLE', 'WARN-WIDE-MEASURE-LABEL-COLLISION', 'WARN-Y-ENCODING-MOSTLY-NULL'] | Codes of render warnings to suppress for this chart. Query-domain codes such as WARN-REAGGREGATION go in queries.<name>.ignore instead. |
title |
str | Heading naming what the chart shows. Rejected on type: kpi. |
subtitle |
str | Supporting text beneath the chart title; a KPI uses support.label instead. |
style |
TableChartStyle | Appearance overrides for this chart alone. |
rows |
list[str] | Fields whose distinct values form the row dimension of a pivot cross-tab. Each string is a column name from the query result. Omit for flat (non-pivot) tables. |
columns |
list[str] | Fields whose distinct values become column headers in a pivot cross-tab. Multiple fields create a nested multi-dimension pivot (outer → inner). Omit for flat tables. |
values |
list[str] | Measure fields that fill pivot cells. Each string is a column name from the query result. When omitted, all query columns not claimed by rows or columns are used. |
spanners |
list[TableSpanner] | Labels drawn in an extra header row above runs of adjacent columns of a flat table. Not combinable with the pivot rows/columns/values channels. |
PointMapChart¶
Authored patch for point_map and bubble_map charts; the two type spellings are synonyms.
Required
| Field | Type | Description |
|---|---|---|
type |
enum: "point_map", "bubble_map" | Selects the chart family. |
Optional
| Field | Type | Description |
|---|---|---|
field_labels |
dict[str, str] | Display text per query column in legends, tooltips and axis titles. The default is the column name prettified (model_year reads "Model year"): set one only to say something different. Painted as written wherever the chart would otherwise derive text from the column's name; x_label/y_label and a layer's label win on their own surface. Not for kpi or table: use style.columns.<column>.label. |
id |
str | Identifier for this chart. Generated from its charts: key, or, written inline, from its title (its label: on type: kpi), falling back to its position. |
notes |
str | Human-readable notes used by AI search. Emitted into the SVG DOM as a data-chart-notes attribute; never painted as visible pixels. |
query |
str | SqlQuery | HttpQuery | ValuesQuery | CompactValuesQuery | SchemaQuery | QueryRef | Where this chart reads its data: a named query, an inline query block, or a SQL string. |
link |
str | Link | const: false | Click-through URL template for drill-down links, or {url, open} to choose how a click opens the target (the board's links.open when unset). Set to false to suppress this chart's automatic link on a board with links.auto: true; table column links are unaffected. |
visible |
bool | str | SingleRowBoolProbe | Controls whether this layout item is rendered. |
warnings_ignore |
list[one of: 'WARN-ADJACENT-TEXT-ROWS', 'WARN-ANNOTATION-NOTHING-DRAWN', 'WARN-AREA-UNSTACKED-READS-AS-STACKED', 'WARN-AREA-ZERO-BASELINE-CROPPED', 'WARN-AXIS-ALIGN-DISCARDED', 'WARN-AXIS-LABEL-COLLISION', 'WARN-AXIS-TITLE-TRUNCATED', 'WARN-BAR-BAND-WIDTH-TOO-NARROW', 'WARN-BAR-GROUPED-SERIES-COINCIDE', 'WARN-CALLOUT-TEXT-TRUNCATED', 'WARN-CATEGORY-COLOR-PIN-UNSEEN', 'WARN-CHART-TITLE-TRUNCATED', 'WARN-COLUMN-CHECK-UNAVAILABLE', 'WARN-DBT-MANIFEST-MISSING', 'WARN-DBT-MODEL-COLUMNS-UNRESOLVED', 'WARN-DBT-QUERY-COLUMNS-INDETERMINATE', 'WARN-DEFAULTS-FILE-GIVEN-AS-BOARD', 'WARN-DOUBLE-HEADER', 'WARN-DUAL-AXIS-COMPETING-SCALES', 'WARN-ENDPOINT-LABEL-GAP-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-TIED', 'WARN-FACET-PANEL-WIDTH-BELOW-MINIMUM', 'WARN-FANOUT-RISK', 'WARN-FLAT-COLS-UNSIZED-OVERFLOW', 'WARN-FORMAT-UNUSED-NAME', 'WARN-H1-BODY-NO-TITLE', 'WARN-HTML-POLICY-CAPPED', 'WARN-INHERITED-LAYOUT-REPLACED', 'WARN-KPI-ALIGN-OVERFLOW', 'WARN-KPI-INLINE-VARIANT-FALLBACK-TO-STACKED', 'WARN-KPI-LABEL-TRUNCATED', 'WARN-KPI-SUPPORT-TRUNCATED', 'WARN-LAYER-DATA-OUTSIDE-DOMAIN', 'WARN-LAYER-X-DOMAIN-PAINT-ORDER', 'WARN-LAYERED-CHART-SHARED-Y-AXIS-SCALE-MISMATCH', 'WARN-LAYOUT-MIN-EXCEEDS-HEIGHT', 'WARN-LEGEND-POSITION-WIDTH-FALLBACK', 'WARN-LEGEND-VALUES-UNRESOLVED', 'WARN-LIKELY-CURRENCY-OR-PERCENT-MISSING-FORMATTER', 'WARN-LOCAL-TIME-LABEL-EXPR-ON-BUCKETED-AXIS', 'WARN-LOW-TEXT-CONTRAST', 'WARN-NORMALIZE-PERCENT-FORMAT-READS-RAW-VALUE', 'WARN-PALETTE-UNSUPPORTED', 'WARN-PIE-DOMINANT-SEGMENT', 'WARN-PIE-TOO-MANY-SEGMENTS', 'WARN-PIE-TOTAL-EXCEEDS-INNER-RADIUS', 'WARN-PLOT-HEIGHT-BELOW-MINIMUM', 'WARN-PLOT-WIDTH-BELOW-MINIMUM', 'WARN-POINT-MAP-NEGATIVE-SIZE-VALUES', 'WARN-POINT-MAP-OUT-OF-PROJECTION', 'WARN-QUERY-RESULT-TRUNCATED', 'WARN-QUERY-RETURNED-ZERO-ROWS', 'WARN-REDUNDANT-AUTHORED-DEFAULT', 'WARN-REDUNDANT-AUTHORED-LABEL', 'WARN-REDUNDANT-ENCODING', 'WARN-RESTATED-FORMAT', 'WARN-RESTATED-INFERRED', 'WARN-RESTATED-STYLE', 'WARN-RETIRED-IGNORE-CODE', 'WARN-SCHEMA-MIGRATED', 'WARN-SERIES-LABEL-TRUNCATED', 'WARN-SERIES-LABELS-REPEAT-WORD', 'WARN-SINGLE-CHART-REDUNDANT-TITLE', 'WARN-SPARK-LABEL-TRUNCATED', 'WARN-STATIC-PAGINATION-CAPPED', 'WARN-SUPPORT-TABLE-CELL-OVERFLOW', 'WARN-TABLE-COLUMNS-OVERFLOW', 'WARN-TABLE-CRAMPED', 'WARN-TABLE-PAGE-SQUEEZED', 'WARN-TABLE-TEXT-TRUNCATED', 'WARN-TEMPORAL-SINGLE-POINT', 'WARN-TOO-MANY-COLOR-CATEGORIES', 'WARN-TOO-MANY-X-CATEGORIES', 'WARN-UNREFERENCED-CHART', 'WARN-UNREFERENCED-QUERY', 'WARN-VALUE-LABELS-CROWD-WIDTH', 'WARN-WAREHOUSE-CHECK-UNAVAILABLE', 'WARN-WIDE-MEASURE-LABEL-COLLISION', 'WARN-Y-ENCODING-MOSTLY-NULL'] | Codes of render warnings to suppress for this chart. Query-domain codes such as WARN-REAGGREGATION go in queries.<name>.ignore instead. |
title |
str | Heading naming what the chart shows. Rejected on type: kpi. |
subtitle |
str | Supporting text beneath the chart title; a KPI uses support.label instead. |
projection |
str | Projection | Map projection name or Vega-Lite projection config. |
color |
str | Column carried on the color channel: fill for geoshape regions, hue for point-map points. Bare column name only; a literal color goes in style.color.static. |
geo |
str | dict[str, Any] | Named GeoJSON boundary source, or inline GeoJSON spec, for geoshape charts. |
geo_source |
str | Named geographic data source for loading GeoJSON boundaries. |
lookup |
str | Data column to join against geographic data (map join key). |
value |
str | Data column mapped to the fill color on geoshape, taking precedence over color: when both are set. Ignored on point_map and bubble_map. |
height |
int | float | Explicit chart height in pixels. Positive number only. |
width |
int | float | Chart width in pixels. Positive number only. In a rows layout the chart's slot pins to this width (a fixed footprint, capped at the row). In cols and grid layouts it contributes to the dashboard's intrinsic width measurement when the board has no width of its own, and the layout still owns the final slot. |
latitude |
str | Column containing latitude values for point/bubble maps. |
longitude |
str | Column containing longitude values for point/bubble maps. |
size |
str | Quantitative column that scales point area. Mutually exclusive with collapse. |
collapse |
bool | Collapse marks sharing an exact latitude/longitude into one mark sized by count. Mutually exclusive with size and with any color channel. |
basemap |
BasemapConfig | Styled geographic background layer. |
style |
PointMapChartStyle | Appearance overrides for this chart alone. |
GeoshapeChart¶
Authored patch for map and geoshape charts; the two type spellings are synonyms.
Required
| Field | Type | Description |
|---|---|---|
type |
enum: "map", "geoshape" | Selects the chart family. |
Optional
| Field | Type | Description |
|---|---|---|
field_labels |
dict[str, str] | Display text per query column in legends, tooltips and axis titles. The default is the column name prettified (model_year reads "Model year"): set one only to say something different. Painted as written wherever the chart would otherwise derive text from the column's name; x_label/y_label and a layer's label win on their own surface. Not for kpi or table: use style.columns.<column>.label. |
id |
str | Identifier for this chart. Generated from its charts: key, or, written inline, from its title (its label: on type: kpi), falling back to its position. |
notes |
str | Human-readable notes used by AI search. Emitted into the SVG DOM as a data-chart-notes attribute; never painted as visible pixels. |
query |
str | SqlQuery | HttpQuery | ValuesQuery | CompactValuesQuery | SchemaQuery | QueryRef | Where this chart reads its data: a named query, an inline query block, or a SQL string. |
link |
str | Link | const: false | Click-through URL template for drill-down links, or {url, open} to choose how a click opens the target (the board's links.open when unset). Set to false to suppress this chart's automatic link on a board with links.auto: true; table column links are unaffected. |
visible |
bool | str | SingleRowBoolProbe | Controls whether this layout item is rendered. |
warnings_ignore |
list[one of: 'WARN-ADJACENT-TEXT-ROWS', 'WARN-ANNOTATION-NOTHING-DRAWN', 'WARN-AREA-UNSTACKED-READS-AS-STACKED', 'WARN-AREA-ZERO-BASELINE-CROPPED', 'WARN-AXIS-ALIGN-DISCARDED', 'WARN-AXIS-LABEL-COLLISION', 'WARN-AXIS-TITLE-TRUNCATED', 'WARN-BAR-BAND-WIDTH-TOO-NARROW', 'WARN-BAR-GROUPED-SERIES-COINCIDE', 'WARN-CALLOUT-TEXT-TRUNCATED', 'WARN-CATEGORY-COLOR-PIN-UNSEEN', 'WARN-CHART-TITLE-TRUNCATED', 'WARN-COLUMN-CHECK-UNAVAILABLE', 'WARN-DBT-MANIFEST-MISSING', 'WARN-DBT-MODEL-COLUMNS-UNRESOLVED', 'WARN-DBT-QUERY-COLUMNS-INDETERMINATE', 'WARN-DEFAULTS-FILE-GIVEN-AS-BOARD', 'WARN-DOUBLE-HEADER', 'WARN-DUAL-AXIS-COMPETING-SCALES', 'WARN-ENDPOINT-LABEL-GAP-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-TIED', 'WARN-FACET-PANEL-WIDTH-BELOW-MINIMUM', 'WARN-FANOUT-RISK', 'WARN-FLAT-COLS-UNSIZED-OVERFLOW', 'WARN-FORMAT-UNUSED-NAME', 'WARN-H1-BODY-NO-TITLE', 'WARN-HTML-POLICY-CAPPED', 'WARN-INHERITED-LAYOUT-REPLACED', 'WARN-KPI-ALIGN-OVERFLOW', 'WARN-KPI-INLINE-VARIANT-FALLBACK-TO-STACKED', 'WARN-KPI-LABEL-TRUNCATED', 'WARN-KPI-SUPPORT-TRUNCATED', 'WARN-LAYER-DATA-OUTSIDE-DOMAIN', 'WARN-LAYER-X-DOMAIN-PAINT-ORDER', 'WARN-LAYERED-CHART-SHARED-Y-AXIS-SCALE-MISMATCH', 'WARN-LAYOUT-MIN-EXCEEDS-HEIGHT', 'WARN-LEGEND-POSITION-WIDTH-FALLBACK', 'WARN-LEGEND-VALUES-UNRESOLVED', 'WARN-LIKELY-CURRENCY-OR-PERCENT-MISSING-FORMATTER', 'WARN-LOCAL-TIME-LABEL-EXPR-ON-BUCKETED-AXIS', 'WARN-LOW-TEXT-CONTRAST', 'WARN-NORMALIZE-PERCENT-FORMAT-READS-RAW-VALUE', 'WARN-PALETTE-UNSUPPORTED', 'WARN-PIE-DOMINANT-SEGMENT', 'WARN-PIE-TOO-MANY-SEGMENTS', 'WARN-PIE-TOTAL-EXCEEDS-INNER-RADIUS', 'WARN-PLOT-HEIGHT-BELOW-MINIMUM', 'WARN-PLOT-WIDTH-BELOW-MINIMUM', 'WARN-POINT-MAP-NEGATIVE-SIZE-VALUES', 'WARN-POINT-MAP-OUT-OF-PROJECTION', 'WARN-QUERY-RESULT-TRUNCATED', 'WARN-QUERY-RETURNED-ZERO-ROWS', 'WARN-REDUNDANT-AUTHORED-DEFAULT', 'WARN-REDUNDANT-AUTHORED-LABEL', 'WARN-REDUNDANT-ENCODING', 'WARN-RESTATED-FORMAT', 'WARN-RESTATED-INFERRED', 'WARN-RESTATED-STYLE', 'WARN-RETIRED-IGNORE-CODE', 'WARN-SCHEMA-MIGRATED', 'WARN-SERIES-LABEL-TRUNCATED', 'WARN-SERIES-LABELS-REPEAT-WORD', 'WARN-SINGLE-CHART-REDUNDANT-TITLE', 'WARN-SPARK-LABEL-TRUNCATED', 'WARN-STATIC-PAGINATION-CAPPED', 'WARN-SUPPORT-TABLE-CELL-OVERFLOW', 'WARN-TABLE-COLUMNS-OVERFLOW', 'WARN-TABLE-CRAMPED', 'WARN-TABLE-PAGE-SQUEEZED', 'WARN-TABLE-TEXT-TRUNCATED', 'WARN-TEMPORAL-SINGLE-POINT', 'WARN-TOO-MANY-COLOR-CATEGORIES', 'WARN-TOO-MANY-X-CATEGORIES', 'WARN-UNREFERENCED-CHART', 'WARN-UNREFERENCED-QUERY', 'WARN-VALUE-LABELS-CROWD-WIDTH', 'WARN-WAREHOUSE-CHECK-UNAVAILABLE', 'WARN-WIDE-MEASURE-LABEL-COLLISION', 'WARN-Y-ENCODING-MOSTLY-NULL'] | Codes of render warnings to suppress for this chart. Query-domain codes such as WARN-REAGGREGATION go in queries.<name>.ignore instead. |
title |
str | Heading naming what the chart shows. Rejected on type: kpi. |
subtitle |
str | Supporting text beneath the chart title; a KPI uses support.label instead. |
projection |
str | Projection | Map projection name or Vega-Lite projection config. |
color |
str | Column carried on the color channel: fill for geoshape regions, hue for point-map points. Bare column name only; a literal color goes in style.color.static. |
geo |
str | dict[str, Any] | Named GeoJSON boundary source, or inline GeoJSON spec, for geoshape charts. |
geo_source |
str | Named geographic data source for loading GeoJSON boundaries. |
lookup |
str | Data column to join against geographic data (map join key). |
value |
str | Data column mapped to the fill color on geoshape, taking precedence over color: when both are set. Ignored on point_map and bubble_map. |
height |
int | float | Explicit chart height in pixels. Positive number only. |
width |
int | float | Chart width in pixels. Positive number only. In a rows layout the chart's slot pins to this width (a fixed footprint, capped at the row). In cols and grid layouts it contributes to the dashboard's intrinsic width measurement when the board has no width of its own, and the layout still owns the final slot. |
style |
GeoshapeChartStyle | Appearance overrides for this chart alone. |
CalloutChart¶
Static callout/message chart. Minimal: no chrome, no styling, no query.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "callout" | |
message |
str | Body text the callout displays. |
Optional
| Field | Type | Description |
|---|---|---|
title |
str | Optional chart title shown above the message. |
style |
CalloutChartStyle | Appearance overrides for this chart alone (tone). |
warnings_ignore |
list[str] | Codes of render warnings to suppress for this chart. |
SparkBarChart¶
Authored patch for spark_bar charts (compact horizontal bars).
Required
| Field | Type | Description |
|---|---|---|
type |
const: "spark_bar" |
Optional
| Field | Type | Description |
|---|---|---|
id |
str | Identifier for this chart. Generated from its charts: key, or, written inline, from its title (its label: on type: kpi), falling back to its position. |
notes |
str | Human-readable notes used by AI search. Emitted into the SVG DOM as a data-chart-notes attribute; never painted as visible pixels. |
query |
str | SqlQuery | HttpQuery | ValuesQuery | CompactValuesQuery | SchemaQuery | QueryRef | Where this chart reads its data: a named query, an inline query block, or a SQL string. |
link |
str | Link | const: false | Click-through URL template for drill-down links, or {url, open} to choose how a click opens the target (the board's links.open when unset). Set to false to suppress this chart's automatic link on a board with links.auto: true; table column links are unaffected. |
visible |
bool | str | SingleRowBoolProbe | Controls whether this layout item is rendered. |
warnings_ignore |
list[one of: 'WARN-ADJACENT-TEXT-ROWS', 'WARN-ANNOTATION-NOTHING-DRAWN', 'WARN-AREA-UNSTACKED-READS-AS-STACKED', 'WARN-AREA-ZERO-BASELINE-CROPPED', 'WARN-AXIS-ALIGN-DISCARDED', 'WARN-AXIS-LABEL-COLLISION', 'WARN-AXIS-TITLE-TRUNCATED', 'WARN-BAR-BAND-WIDTH-TOO-NARROW', 'WARN-BAR-GROUPED-SERIES-COINCIDE', 'WARN-CALLOUT-TEXT-TRUNCATED', 'WARN-CATEGORY-COLOR-PIN-UNSEEN', 'WARN-CHART-TITLE-TRUNCATED', 'WARN-COLUMN-CHECK-UNAVAILABLE', 'WARN-DBT-MANIFEST-MISSING', 'WARN-DBT-MODEL-COLUMNS-UNRESOLVED', 'WARN-DBT-QUERY-COLUMNS-INDETERMINATE', 'WARN-DEFAULTS-FILE-GIVEN-AS-BOARD', 'WARN-DOUBLE-HEADER', 'WARN-DUAL-AXIS-COMPETING-SCALES', 'WARN-ENDPOINT-LABEL-GAP-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-TIED', 'WARN-FACET-PANEL-WIDTH-BELOW-MINIMUM', 'WARN-FANOUT-RISK', 'WARN-FLAT-COLS-UNSIZED-OVERFLOW', 'WARN-FORMAT-UNUSED-NAME', 'WARN-H1-BODY-NO-TITLE', 'WARN-HTML-POLICY-CAPPED', 'WARN-INHERITED-LAYOUT-REPLACED', 'WARN-KPI-ALIGN-OVERFLOW', 'WARN-KPI-INLINE-VARIANT-FALLBACK-TO-STACKED', 'WARN-KPI-LABEL-TRUNCATED', 'WARN-KPI-SUPPORT-TRUNCATED', 'WARN-LAYER-DATA-OUTSIDE-DOMAIN', 'WARN-LAYER-X-DOMAIN-PAINT-ORDER', 'WARN-LAYERED-CHART-SHARED-Y-AXIS-SCALE-MISMATCH', 'WARN-LAYOUT-MIN-EXCEEDS-HEIGHT', 'WARN-LEGEND-POSITION-WIDTH-FALLBACK', 'WARN-LEGEND-VALUES-UNRESOLVED', 'WARN-LIKELY-CURRENCY-OR-PERCENT-MISSING-FORMATTER', 'WARN-LOCAL-TIME-LABEL-EXPR-ON-BUCKETED-AXIS', 'WARN-LOW-TEXT-CONTRAST', 'WARN-NORMALIZE-PERCENT-FORMAT-READS-RAW-VALUE', 'WARN-PALETTE-UNSUPPORTED', 'WARN-PIE-DOMINANT-SEGMENT', 'WARN-PIE-TOO-MANY-SEGMENTS', 'WARN-PIE-TOTAL-EXCEEDS-INNER-RADIUS', 'WARN-PLOT-HEIGHT-BELOW-MINIMUM', 'WARN-PLOT-WIDTH-BELOW-MINIMUM', 'WARN-POINT-MAP-NEGATIVE-SIZE-VALUES', 'WARN-POINT-MAP-OUT-OF-PROJECTION', 'WARN-QUERY-RESULT-TRUNCATED', 'WARN-QUERY-RETURNED-ZERO-ROWS', 'WARN-REDUNDANT-AUTHORED-DEFAULT', 'WARN-REDUNDANT-AUTHORED-LABEL', 'WARN-REDUNDANT-ENCODING', 'WARN-RESTATED-FORMAT', 'WARN-RESTATED-INFERRED', 'WARN-RESTATED-STYLE', 'WARN-RETIRED-IGNORE-CODE', 'WARN-SCHEMA-MIGRATED', 'WARN-SERIES-LABEL-TRUNCATED', 'WARN-SERIES-LABELS-REPEAT-WORD', 'WARN-SINGLE-CHART-REDUNDANT-TITLE', 'WARN-SPARK-LABEL-TRUNCATED', 'WARN-STATIC-PAGINATION-CAPPED', 'WARN-SUPPORT-TABLE-CELL-OVERFLOW', 'WARN-TABLE-COLUMNS-OVERFLOW', 'WARN-TABLE-CRAMPED', 'WARN-TABLE-PAGE-SQUEEZED', 'WARN-TABLE-TEXT-TRUNCATED', 'WARN-TEMPORAL-SINGLE-POINT', 'WARN-TOO-MANY-COLOR-CATEGORIES', 'WARN-TOO-MANY-X-CATEGORIES', 'WARN-UNREFERENCED-CHART', 'WARN-UNREFERENCED-QUERY', 'WARN-VALUE-LABELS-CROWD-WIDTH', 'WARN-WAREHOUSE-CHECK-UNAVAILABLE', 'WARN-WIDE-MEASURE-LABEL-COLLISION', 'WARN-Y-ENCODING-MOSTLY-NULL'] | Codes of render warnings to suppress for this chart. Query-domain codes such as WARN-REAGGREGATION go in queries.<name>.ignore instead. |
title |
str | Heading naming what the chart shows. Rejected on type: kpi. |
subtitle |
str | Supporting text beneath the chart title; a KPI uses support.label instead. |
x |
str | Bar-magnitude (numeric) column name. |
y |
str | list[str] | Bar-label (category) column name(s). |
style |
SparkBarChartStyle | Appearance overrides for this chart alone. |
CustomChart¶
Authored patch for custom charts: rows in, SVG out, drawn by a template.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "custom" |
Optional
| Field | Type | Description |
|---|---|---|
id |
str | Identifier for this chart. Generated from its charts: key, or, written inline, from its title (its label: on type: kpi), falling back to its position. |
notes |
str | Human-readable notes used by AI search. Emitted into the SVG DOM as a data-chart-notes attribute; never painted as visible pixels. |
query |
str | SqlQuery | HttpQuery | ValuesQuery | CompactValuesQuery | SchemaQuery | QueryRef | Where this chart reads its data: a named query, an inline query block, or a SQL string. |
link |
str | Link | const: false | Click-through URL template for drill-down links, or {url, open} to choose how a click opens the target (the board's links.open when unset). Set to false to suppress this chart's automatic link on a board with links.auto: true; table column links are unaffected. |
visible |
bool | str | SingleRowBoolProbe | Controls whether this layout item is rendered. |
warnings_ignore |
list[one of: 'WARN-ADJACENT-TEXT-ROWS', 'WARN-ANNOTATION-NOTHING-DRAWN', 'WARN-AREA-UNSTACKED-READS-AS-STACKED', 'WARN-AREA-ZERO-BASELINE-CROPPED', 'WARN-AXIS-ALIGN-DISCARDED', 'WARN-AXIS-LABEL-COLLISION', 'WARN-AXIS-TITLE-TRUNCATED', 'WARN-BAR-BAND-WIDTH-TOO-NARROW', 'WARN-BAR-GROUPED-SERIES-COINCIDE', 'WARN-CALLOUT-TEXT-TRUNCATED', 'WARN-CATEGORY-COLOR-PIN-UNSEEN', 'WARN-CHART-TITLE-TRUNCATED', 'WARN-COLUMN-CHECK-UNAVAILABLE', 'WARN-DBT-MANIFEST-MISSING', 'WARN-DBT-MODEL-COLUMNS-UNRESOLVED', 'WARN-DBT-QUERY-COLUMNS-INDETERMINATE', 'WARN-DEFAULTS-FILE-GIVEN-AS-BOARD', 'WARN-DOUBLE-HEADER', 'WARN-DUAL-AXIS-COMPETING-SCALES', 'WARN-ENDPOINT-LABEL-GAP-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-OVERFLOW', 'WARN-ENDPOINT-LABEL-RAIL-TIED', 'WARN-FACET-PANEL-WIDTH-BELOW-MINIMUM', 'WARN-FANOUT-RISK', 'WARN-FLAT-COLS-UNSIZED-OVERFLOW', 'WARN-FORMAT-UNUSED-NAME', 'WARN-H1-BODY-NO-TITLE', 'WARN-HTML-POLICY-CAPPED', 'WARN-INHERITED-LAYOUT-REPLACED', 'WARN-KPI-ALIGN-OVERFLOW', 'WARN-KPI-INLINE-VARIANT-FALLBACK-TO-STACKED', 'WARN-KPI-LABEL-TRUNCATED', 'WARN-KPI-SUPPORT-TRUNCATED', 'WARN-LAYER-DATA-OUTSIDE-DOMAIN', 'WARN-LAYER-X-DOMAIN-PAINT-ORDER', 'WARN-LAYERED-CHART-SHARED-Y-AXIS-SCALE-MISMATCH', 'WARN-LAYOUT-MIN-EXCEEDS-HEIGHT', 'WARN-LEGEND-POSITION-WIDTH-FALLBACK', 'WARN-LEGEND-VALUES-UNRESOLVED', 'WARN-LIKELY-CURRENCY-OR-PERCENT-MISSING-FORMATTER', 'WARN-LOCAL-TIME-LABEL-EXPR-ON-BUCKETED-AXIS', 'WARN-LOW-TEXT-CONTRAST', 'WARN-NORMALIZE-PERCENT-FORMAT-READS-RAW-VALUE', 'WARN-PALETTE-UNSUPPORTED', 'WARN-PIE-DOMINANT-SEGMENT', 'WARN-PIE-TOO-MANY-SEGMENTS', 'WARN-PIE-TOTAL-EXCEEDS-INNER-RADIUS', 'WARN-PLOT-HEIGHT-BELOW-MINIMUM', 'WARN-PLOT-WIDTH-BELOW-MINIMUM', 'WARN-POINT-MAP-NEGATIVE-SIZE-VALUES', 'WARN-POINT-MAP-OUT-OF-PROJECTION', 'WARN-QUERY-RESULT-TRUNCATED', 'WARN-QUERY-RETURNED-ZERO-ROWS', 'WARN-REDUNDANT-AUTHORED-DEFAULT', 'WARN-REDUNDANT-AUTHORED-LABEL', 'WARN-REDUNDANT-ENCODING', 'WARN-RESTATED-FORMAT', 'WARN-RESTATED-INFERRED', 'WARN-RESTATED-STYLE', 'WARN-RETIRED-IGNORE-CODE', 'WARN-SCHEMA-MIGRATED', 'WARN-SERIES-LABEL-TRUNCATED', 'WARN-SERIES-LABELS-REPEAT-WORD', 'WARN-SINGLE-CHART-REDUNDANT-TITLE', 'WARN-SPARK-LABEL-TRUNCATED', 'WARN-STATIC-PAGINATION-CAPPED', 'WARN-SUPPORT-TABLE-CELL-OVERFLOW', 'WARN-TABLE-COLUMNS-OVERFLOW', 'WARN-TABLE-CRAMPED', 'WARN-TABLE-PAGE-SQUEEZED', 'WARN-TABLE-TEXT-TRUNCATED', 'WARN-TEMPORAL-SINGLE-POINT', 'WARN-TOO-MANY-COLOR-CATEGORIES', 'WARN-TOO-MANY-X-CATEGORIES', 'WARN-UNREFERENCED-CHART', 'WARN-UNREFERENCED-QUERY', 'WARN-VALUE-LABELS-CROWD-WIDTH', 'WARN-WAREHOUSE-CHECK-UNAVAILABLE', 'WARN-WIDE-MEASURE-LABEL-COLLISION', 'WARN-Y-ENCODING-MOSTLY-NULL'] | Codes of render warnings to suppress for this chart. Query-domain codes such as WARN-REAGGREGATION go in queries.<name>.ignore instead. |
title |
str | Heading naming what the chart shows. Rejected on type: kpi. |
subtitle |
str | Supporting text beneath the chart title; a KPI uses support.label instead. |
template |
str | Name of a project template: templates/<name>.svg.j2. Exactly one of template or svg is required. |
svg |
str | Inline Jinja SVG template source, used instead of template. |
x |
str | list[str] | Column(s) for the template's x channel; the template header declares it. |
y |
str | list[str] | Column(s) for the template's y channel; the template header declares it. |
color |
str | list[str] | Column(s) for the template's color channel; the template header declares it. |
size |
str | list[str] | Column(s) for the template's size channel; the template header declares it. |
shape |
str | list[str] | Column(s) for the template's shape channel; the template header declares it. |
theta |
str | list[str] | Column(s) for the template's theta channel; the template header declares it. |
value |
str | list[str] | Column(s) for the template's value channel; the template header declares it. |
options |
dict[str, str | int | float | bool | list[str]] | Values for the options the template declares in its header. |
style |
CustomChartStyle | Sizing overrides for this chart alone. |
ChartRef¶
Cross-file chart reference. Bare string is coerced automatically.
Required
| Field | Type | Description |
|---|---|---|
ref |
str | Reference path: '<file>.charts.<name>'. May start with one or more '../' segments to reach a sibling directory. A bare string value is coerced automatically. |
GridLayout¶
Grid layout configuration.
Required
| Field | Type | Description |
|---|---|---|
items |
list[GridItem] | Cells of this grid, each pairing content with its placement. |
Optional
| Field | Type | Description |
|---|---|---|
columns |
int | Grid columns, 24 unless set; write it only when it differs. Positive number only. |
TabLayout¶
Tab layout configuration.
Required
| Field | Type | Description |
|---|---|---|
items |
list[TabItem] | Tabs in display order. |
Optional
| Field | Type | Description |
|---|---|---|
id |
str | Variable name and URL param base for tab selection (auto-generated if omitted). |
position |
enum: "top", "left" | Which edge the tab bar sits on (top or left). |
default |
str | Title of the tab opened on load; the first tab if omitted. |
BoardDetails¶
Collapsible section metadata for a board.
Required
| Field | Type | Description |
|---|---|---|
summary |
str | Label shown when the section is collapsed. |
Optional
| Field | Type | Description |
|---|---|---|
expanded_title |
str | Label shown when the section is expanded. Defaults to summary. |
expanded |
bool | Whether the section is open by default. |
Style¶
Authored overlay for Style: all fields optional.
| Field | Type | Description |
|---|---|---|
frame |
FrameStyle | Board-level structural frame dimensions. |
background |
str | Working-surface background color (board and card fills). |
accent |
str | Accent color token cascaded to sparklines, bars, and focus rings. |
muted |
str | Muted secondary-text color token (KPI support rows, table and spark subtitles). |
font |
RootFontStyle | Root font: literal family, size, weight, color; never a fonts name. |
border |
str | BorderStyle | Frame drawn around the whole board: {width, color, radius} or '2px solid #333'. Omit the key for no border. |
box_shadow |
str | Drop shadow under chart cards: x offset, y offset, blur, color. |
opacity |
float | Default mark opacity (0–1). |
title |
TitleStyle | Typography for every heading: board and prose titles, and chart, table, and spark object titles. |
text |
TextStyle | Markdown and plain text content style. |
placeholder |
PlaceholderStyle | Appearance of the stand-in drawn on a chart with no data. |
charts |
ChartsStyle | Root of all chart-type styles and shared chart configuration. |
layout |
LayoutStyle | Spacing and arrangement inside the containers (rows, cols, grid, tabs, details). |
variables |
VariablesStyle | Variable controls chrome style. |
footer |
FooterStyle | Page footer chrome visibility. |
timestamp |
TimestampStyle | Data-freshness chrome: visibility, placement, format, and font. |
formats |
dict[str, str | FormatConfig] | Format alias map; None means no aliases at this cascade level. |
fonts |
dict[str, NamedFont] | Named fonts as <name>: {family, size, weight, color}, never a bare family string; other font slots reference one as font: <name> or font: {extends: <name>, ...}. heading carries the H1–H6 ramp in sizes. An entry no slot references paints nothing. |
palettes |
dict[str, one of: 'category-6-tonal-blue', 'category-6-tonal-blue.dark', 'category-6-tonal-blue.deep', 'category-6-tonal-blue.light', 'category-6-tonal-blue.pale', 'category-6-tonal-brown', 'category-6-tonal-brown.dark', 'category-6-tonal-brown.deep', 'category-6-tonal-brown.light', 'category-6-tonal-brown.pale', 'category-6-tonal-green', 'category-6-tonal-green.dark', 'category-6-tonal-green.deep', 'category-6-tonal-green.light', 'category-6-tonal-green.pale', 'category-6-tonal-orange', 'category-6-tonal-orange.dark', 'category-6-tonal-orange.deep', 'category-6-tonal-orange.light', 'category-6-tonal-orange.pale', 'category-6-tonal-purple', 'category-6-tonal-purple.dark', 'category-6-tonal-purple.deep', 'category-6-tonal-purple.light', 'category-6-tonal-purple.pale', 'dbt-creams', 'dbt-div-blue-red', 'dbt-div-blue-red-dark', 'dbt-div-coolwarm', 'dbt-div-coolwarm-dark', 'dbt-div-crimson-green', 'dbt-div-crimson-green-dark', 'dbt-div-orange-teal', 'dbt-div-orange-teal-dark', 'dbt-div-sunset', 'dbt-div-sunset-dark', 'dbt-grays', 'dbt-seq-amber', 'dbt-seq-amber-dark', 'dbt-seq-blue', 'dbt-seq-blue-dark', 'dbt-seq-brown', 'dbt-seq-brown-dark', 'dbt-seq-gray', 'dbt-seq-gray-dark', 'dbt-seq-green', 'dbt-seq-green-dark', 'dbt-seq-purple', 'dbt-seq-purple-dark', 'dbt-seq-rust', 'dbt-seq-rust-dark', 'dbt-seq-teal', 'dbt-seq-teal-dark', 'editorial-10', 'editorial-10.dark', 'editorial-10.deep', 'editorial-10.light', 'editorial-10.pale', 'hero-6', 'hero-6.dark', 'hero-6.deep', 'hero-6.light', 'hero-6.pale', 'info', 'negative', 'positive', 'tableau', 'tableau.dark', 'tableau.deep', 'tableau.light', 'tableau.pale', 'vivid-10', 'vivid-10.dark', 'vivid-10.deep', 'vivid-10.light', 'vivid-10.pale', 'warning'] | Theme palette role assignments: role name to a built-in palette name, never a color. Custom colors go in charts.color.categorical.palette: [hex, ...]. Default seed: chrome, info, negative, positive, warning, category, sequence, diverge. |
tones |
KpiTonesStyle | Semantic tone color palette (positive/negative/warning/info) for KPI support rows, table conditional glyphs, and spark negative_color. |
roles |
dict[str, str] | Optional top-level theme role aliases: bare name → role address (role[N] or role.alias). e.g. ink: chrome[10] |
padding |
str | float | SpacingValues | Per-board padding override (CSS shorthand or structured). |
margin |
str | float | SpacingValues | Per-board margin override (CSS shorthand or structured). |
gap |
str | float | Gap between layout items in pixels. |
SingleRowBoolProbe¶
Single-row boolean query probe.
Required
| Field | Type | Description |
|---|---|---|
query |
str | Name of the query to execute. |
column |
str | Column in the single result row holding the boolean value. |
BoardLinks¶
Board-wide link behavior: automatic links and how links open.
| Field | Type | Description |
|---|---|---|
auto |
bool | When True, table charts with no explicit link: automatically link each row to its canonical /data/<source>/<schema>/<table>/detail/ page. Default off. An explicit link: always wins; set link: false on a chart to suppress its automatic link. |
open |
enum: "page", "modal", "preview", "new_tab" | How a link that does not author its own open opens: page, modal, preview or new_tab. Query-only ?variable= links, a table cell's filter link, implied email/url and KPI links, and a custom chart's per-row link always open as a page. |
Regional¶
How a board writes numbers and dates: its d3 locales and currency symbol.
| Field | Type | Description |
|---|---|---|
locale |
RegionalLocale | The number and time locales. |
currency |
enum: "USD", "EUR", "GBP", "JPY", "CAD", "AUD", "CHF", "SEK", "NOK", "DKK", "INR", "CNY", "BRL", "MXN" | ISO 4217 code whose symbol replaces the locale's own in its currency template, at the locale's placement. Unset prints the locale's own. |
language |
enum: "en", "de", "fr", "es", "it", "pt", "nl", "sv", "da", "nb", "fi", "pl", "cs", "ru", "uk", "tr", "ja", "zh", "ko" | The language words the board generates (tab names, series counts) print in. Unset takes the language of locale.time, or en when that locale has no catalog or is a definition. |
VariableOptions¶
Options configuration for variable inputs.
| Field | Type | Description |
|---|---|---|
static |
list[str] | list[int | float] | Option values that are not in the data, written out: all strings or all numbers. Numeric options type the value the control sends back as a number unless data_type says otherwise. |
query |
str | Query name whose result rows provide option values. |
column |
str | Column in the query result to use as option values. |
label_column |
str | Query column shown as the option text, apart from the value. |
Link¶
Object form of a link:; a bare string takes the board's default open.
Required
| Field | Type | Description |
|---|---|---|
url |
str | Click-through URL template. |
Optional
| Field | Type | Description |
|---|---|---|
open |
enum: "page", "modal", "preview", "new_tab" | How a click opens the target: page navigates the board away; modal opens the target board in a dialog over this one; preview shows it small, beside the clicked mark; new_tab opens it in a new browser tab. Unset takes the board's links.open. |
ChartSort¶
Chart-level sort configuration for categorical axes.
Required
| Field | Type | Description |
|---|---|---|
by |
str | Column name to sort by. A category holding several rows (a color series, or a y: [...] list) is folded to one value of this column first, and on a bar that fold is the stacked total only when the chart stacks and this names its single y column; everything else, a y: [...] measure included, ranks by the smallest value the column holds in that category. Name a column that is constant within a category, or pre-aggregate in the query. |
Optional
| Field | Type | Description |
|---|---|---|
order |
enum: "asc", "desc" | Sort direction (asc or desc). |
MultiplesConfig¶
Small-multiples partition, keyed by layout direction.
| Field | Type | Description |
|---|---|---|
rows |
str | Column whose distinct values become vertically stacked panel rows. |
columns |
str | Column whose distinct values become side-by-side panel columns. |
scale |
enum: "shared", "independent" | Measure-scale sharing across panels. 'shared' (default) makes panels visually comparable; 'independent' gives each panel its own scale. |
ChartSupportTable¶
Container for a chart's support_table block.
Required
| Field | Type | Description |
|---|---|---|
entries |
list[str | ChartSupportTableSource | ChartSupportTableAggregate | ChartSupportTablePerSeries] | List of support-table entries (source, aggregate, or per-series rows). A source entry may be written as a bare column name (revenue in place of {source: revenue}), the same scalar-listable spelling y: uses. |
BarChartStyle¶
Authored overlay for BarChartStyle. Bar chart style: chart-level fields + marks sub-block.
| Field | Type | Description |
|---|---|---|
axis_quantitative |
QuantitativeAxisStyle | Per-chart-type quantitative-axis overrides; None inherits the global axis_quantitative at render. |
title |
ChartTitleStyle | Chart-level title style override; None inherits the theme title style. |
legend |
LegendStyle | Chart legend style. |
preferred_width |
float | Preferred chart width in pixels. Falls back to style.charts.preferred_width. |
padding |
PaddingStyle | Padding as {top, right, bottom, left} in pixels, never one number. Unset fields fall back to style.charts.padding. |
background |
str | Chart-local background color override; None inherits from theme. |
aspect_ratio |
float | Chart aspect ratio (width/height). Falls back to style.charts.aspect_ratio. |
min_height |
float | Minimum chart height in pixels. Falls back to style.charts.min_height. |
max_height |
float | Maximum chart height in pixels. Falls back to style.charts.max_height. |
color |
ColorStyle | Chart color: static mark paint, categorical palette, and/or gradient scale. |
axis |
BaseAxisStyle | Override applied to both x and y axes; None inherits the global axis at render. |
axis_x |
AxisXStyle | The category or time axis, in either orientation (a horizontal bar's category axis is still axis_x). Inherits the global axis_x. |
axis_y |
AxisYStyle | The measure axis, in either orientation: its number format goes here, a horizontal bar's too. Inherits the global axis_y. |
axis_band |
BandAxisStyle | Per-chart-type categorical (band) axis overrides; None inherits the global band axis at render. |
support_table |
SupportTableStyle | Per-chart-type support_table style override. Unset fields fall back to style.charts.support_table. |
orientation |
enum: "horizontal", "vertical", "auto" | Preferred bar orientation; None behaves like 'auto', which picks horizontal for a categorical x and vertical for a continuous one (temporal, quantitative, or date-like). Never remaps x/y. |
stack |
enum: "none", "zero", "normalize", "center" | Default stack mode for bar charts; none renders side-by-side columns. |
overlap |
float | enum: "auto", "none", "flush", "partial", "full" | Within-group spacing for grouped bars. Keywords: 'auto' (2 series → partial, 3+ → none), 'none' (small gap), 'flush' (bars touch), 'partial' (25% overlap), 'full' (bars coincide; an error unless each category holds one color). Or a number as a fraction of bar width: >0 overlaps, 0 touches, <0 gaps; 1 or more is 'full'. None uses the renderer default ('auto'). Only applies to grouped bars; setting it together with an active stack mode is an error. |
stack_order |
enum: "value", "data", "alphabetical" | Z-order of stacked segments. None/'value' puts the largest aggregate at baseline. 'data' stacks series in first-appearance order: SQL row order for color:, the listed order for y: [a, b, ...] (a measure null in the first rows appears later). 'alphabetical' sorts by series name. Ignored when stacking is off or there is only one series. |
endpoint_labels |
EndpointLabelsConfig | Series names printed on stacked bars instead of in a legend. |
grouped |
BarGroupedStyle | Band-scale padding for grouped bars. |
marks |
BarChartMarksStyle | Bar-family mark overrides. Unset fields fall back to style.charts.marks. |
BarLayer¶
A bar-type layer on a cartesian chart.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "bar" |
Optional
| Field | Type | Description |
|---|---|---|
query |
str | Query name for this layer's data (overrides chart-level query). |
x |
str | X-axis column name for this layer. |
y |
str | Y-axis column name for this layer. |
label |
str | Name for this layer's measure wherever the layer is identified. Defaults to its y column name. |
color |
str | Column whose values split this layer into colored series; bare column name only. Paint belongs under the layer's style.marks. |
axis_y |
LayerAxisYStyle | This layer's own y axis: which side it sits on, its title, scale, ticks, grid. |
style |
BarLayerStyle | Only marks: a line layer's color is marks: {line: {stroke: {color: '#hex'}}}, a scatter's marks: {point: {color: '#hex'}}. |
y_start |
str | Column each bar starts from instead of zero (waterfall, range, Gantt, lollipop). Same kind as y: both numeric, or both dates. |
LineLayer¶
A line-type layer on a cartesian chart.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "line" |
Optional
| Field | Type | Description |
|---|---|---|
query |
str | Query name for this layer's data (overrides chart-level query). |
x |
str | X-axis column name for this layer. |
y |
str | Y-axis column name for this layer. |
label |
str | Name for this layer's measure wherever the layer is identified. Defaults to its y column name. |
color |
str | Column whose values split this layer into colored series; bare column name only. Paint belongs under the layer's style.marks. |
axis_y |
LayerAxisYStyle | This layer's own y axis: which side it sits on, its title, scale, ticks, grid. |
style |
LineLayerStyle | Only marks: a line layer's color is marks: {line: {stroke: {color: '#hex'}}}, a scatter's marks: {point: {color: '#hex'}}. |
AreaLayer¶
An area-type layer on a cartesian chart.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "area" |
Optional
| Field | Type | Description |
|---|---|---|
query |
str | Query name for this layer's data (overrides chart-level query). |
x |
str | X-axis column name for this layer. |
y |
str | Y-axis column name for this layer. |
label |
str | Name for this layer's measure wherever the layer is identified. Defaults to its y column name. |
color |
str | Column whose values split this layer into colored series; bare column name only. Paint belongs under the layer's style.marks. |
axis_y |
LayerAxisYStyle | This layer's own y axis: which side it sits on, its title, scale, ticks, grid. |
style |
AreaLayerStyle | Only marks: a line layer's color is marks: {line: {stroke: {color: '#hex'}}}, a scatter's marks: {point: {color: '#hex'}}. |
ScatterLayer¶
A scatter-type layer on a cartesian chart.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "scatter" |
Optional
| Field | Type | Description |
|---|---|---|
query |
str | Query name for this layer's data (overrides chart-level query). |
x |
str | X-axis column name for this layer. |
y |
str | Y-axis column name for this layer. |
label |
str | Name for this layer's measure wherever the layer is identified. Defaults to its y column name. |
color |
str | Column whose values split this layer into colored series; bare column name only. Paint belongs under the layer's style.marks. |
axis_y |
LayerAxisYStyle | This layer's own y axis: which side it sits on, its title, scale, ticks, grid. |
style |
ScatterLayerStyle | Only marks: a line layer's color is marks: {line: {stroke: {color: '#hex'}}}, a scatter's marks: {point: {color: '#hex'}}. |
LineChartStyle¶
Authored overlay for LineChartStyle. Line chart style: chart-level fields + marks sub-block.
| Field | Type | Description |
|---|---|---|
axis_quantitative |
QuantitativeAxisStyle | Per-chart-type quantitative-axis overrides; None inherits the global axis_quantitative at render. |
title |
ChartTitleStyle | Chart-level title style override; None inherits the theme title style. |
legend |
LegendStyle | Chart legend style. |
preferred_width |
float | Preferred chart width in pixels. Falls back to style.charts.preferred_width. |
padding |
PaddingStyle | Padding as {top, right, bottom, left} in pixels, never one number. Unset fields fall back to style.charts.padding. |
background |
str | Chart-local background color override; None inherits from theme. |
aspect_ratio |
float | Chart aspect ratio (width/height). Falls back to style.charts.aspect_ratio. |
min_height |
float | Minimum chart height in pixels. Falls back to style.charts.min_height. |
max_height |
float | Maximum chart height in pixels. Falls back to style.charts.max_height. |
color |
ColorStyle | Chart color: static mark paint, categorical palette, and/or gradient scale. |
axis |
BaseAxisStyle | Override applied to both x and y axes; None inherits the global axis at render. |
axis_x |
AxisXStyle | The category or time axis, in either orientation (a horizontal bar's category axis is still axis_x). Inherits the global axis_x. |
axis_y |
AxisYStyle | The measure axis, in either orientation: its number format goes here, a horizontal bar's too. Inherits the global axis_y. |
axis_band |
BandAxisStyle | Per-chart-type categorical (band) axis overrides; None inherits the global band axis at render. |
support_table |
SupportTableStyle | Per-chart-type support_table style override. Unset fields fall back to style.charts.support_table. |
endpoint_labels |
EndpointLabelsConfig | Series names printed at the end of each line instead of in a legend. |
marks |
LineChartMarksStyle | Line-family mark overrides. Unset fields fall back to style.charts.marks. |
AreaChartStyle¶
Authored overlay for AreaChartStyle. Area chart style: chart-level fields + marks sub-block.
| Field | Type | Description |
|---|---|---|
axis_quantitative |
QuantitativeAxisStyle | Per-chart-type quantitative-axis overrides; None inherits the global axis_quantitative at render. |
title |
ChartTitleStyle | Chart-level title style override; None inherits the theme title style. |
legend |
LegendStyle | Chart legend style. |
preferred_width |
float | Preferred chart width in pixels. Falls back to style.charts.preferred_width. |
padding |
PaddingStyle | Padding as {top, right, bottom, left} in pixels, never one number. Unset fields fall back to style.charts.padding. |
background |
str | Chart-local background color override; None inherits from theme. |
aspect_ratio |
float | Chart aspect ratio (width/height). Falls back to style.charts.aspect_ratio. |
min_height |
float | Minimum chart height in pixels. Falls back to style.charts.min_height. |
max_height |
float | Maximum chart height in pixels. Falls back to style.charts.max_height. |
color |
ColorStyle | Chart color: static mark paint, categorical palette, and/or gradient scale. |
axis |
BaseAxisStyle | Override applied to both x and y axes; None inherits the global axis at render. |
axis_x |
AxisXStyle | The category or time axis, in either orientation (a horizontal bar's category axis is still axis_x). Inherits the global axis_x. |
axis_y |
AxisYStyle | The measure axis, in either orientation: its number format goes here, a horizontal bar's too. Inherits the global axis_y. |
axis_band |
BandAxisStyle | Per-chart-type categorical (band) axis overrides; None inherits the global band axis at render. |
support_table |
SupportTableStyle | Per-chart-type support_table style override. Unset fields fall back to style.charts.support_table. |
stack |
enum: "none", "zero", "normalize", "center" | Default stack mode for area charts: 'none', 'zero', 'normalize', or 'center'. |
stack_order |
enum: "value", "data", "alphabetical" | Z-order of stacked segments. None/'value' puts the largest aggregate at baseline. 'data' stacks series in first-appearance order: SQL row order for color:, the listed order for y: [a, b, ...] (a measure null in the first rows appears later). 'alphabetical' sorts by series name. Ignored when stacking is off or there is only one series. |
endpoint_labels |
EndpointLabelsConfig | Series names printed on the bands instead of in a legend. |
marks |
AreaChartMarksStyle | Area-family mark overrides. Unset fields fall back to style.charts.marks. |
ScatterChartStyle¶
Authored overlay for ScatterChartStyle. Scatter chart style: chart-level fields + marks sub-block.
| Field | Type | Description |
|---|---|---|
axis_quantitative |
QuantitativeAxisStyle | Per-chart-type quantitative-axis overrides; None inherits the global axis_quantitative at render. |
title |
ChartTitleStyle | Chart-level title style override; None inherits the theme title style. |
legend |
LegendStyle | Chart legend style. |
preferred_width |
float | Preferred chart width in pixels. Falls back to style.charts.preferred_width. |
padding |
PaddingStyle | Padding as {top, right, bottom, left} in pixels, never one number. Unset fields fall back to style.charts.padding. |
background |
str | Chart-local background color override; None inherits from theme. |
aspect_ratio |
float | Chart aspect ratio (width/height). Falls back to style.charts.aspect_ratio. |
min_height |
float | Minimum chart height in pixels. Falls back to style.charts.min_height. |
max_height |
float | Maximum chart height in pixels. Falls back to style.charts.max_height. |
color |
ColorStyle | Chart color: static mark paint, categorical palette, and/or gradient scale. |
axis |
BaseAxisStyle | Override applied to both x and y axes; None inherits the global axis at render. |
axis_x |
AxisXStyle | The category or time axis, in either orientation (a horizontal bar's category axis is still axis_x). Inherits the global axis_x. |
axis_y |
AxisYStyle | The measure axis, in either orientation: its number format goes here, a horizontal bar's too. Inherits the global axis_y. |
axis_band |
BandAxisStyle | Per-chart-type categorical (band) axis overrides; None inherits the global band axis at render. |
support_table |
SupportTableStyle | Per-chart-type support_table style override. Unset fields fall back to style.charts.support_table. |
marks |
ScatterChartMarksStyle | Scatter-family mark overrides. Unset fields fall back to style.charts.marks. |
HeatmapChartStyle¶
Authored overlay for HeatmapChartStyle. Heatmap chart style.
| Field | Type | Description |
|---|---|---|
title |
ChartTitleStyle | Chart-level title style override; None inherits the theme title style. |
legend |
LegendStyle | Chart legend style. |
preferred_width |
float | Preferred chart width in pixels. Falls back to style.charts.preferred_width. |
padding |
PaddingStyle | Padding as {top, right, bottom, left} in pixels, never one number. Unset fields fall back to style.charts.padding. |
background |
str | Chart-local background color override; None inherits from theme. |
aspect_ratio |
float | Chart aspect ratio (width/height). Falls back to style.charts.aspect_ratio. |
min_height |
float | Minimum chart height in pixels. Falls back to style.charts.min_height. |
max_height |
float | Maximum chart height in pixels. Falls back to style.charts.max_height. |
color |
ColorStyle | Chart color: static mark paint, categorical palette, and/or gradient scale. |
axis |
BaseAxisStyle | Override applied to both x and y axes; None inherits the global axis at render. |
axis_x |
AxisXStyle | The category or time axis, in either orientation (a horizontal bar's category axis is still axis_x). Inherits the global axis_x. |
axis_y |
AxisYStyle | The measure axis, in either orientation: its number format goes here, a horizontal bar's too. Inherits the global axis_y. |
axis_band |
BandAxisStyle | Per-chart-type categorical (band) axis overrides; None inherits the global band axis at render. |
support_table |
SupportTableStyle | Per-chart-type support_table style override. Unset fields fall back to style.charts.support_table. |
cell_padding |
float | Padding between heatmap cells in pixels. |
marks |
HeatmapChartMarksStyle | Heatmap-family mark overrides. Unset fields fall back to style.charts.marks. |
ChartTotal¶
Donut center total: auto-rendered sum at the center of a donut, with author override.
| Field | Type | Description |
|---|---|---|
visible |
bool | Whether to render the donut center total. Defaults True; set False to suppress the auto-rendered center on donuts whose theta values aren't a meaningful sum (e.g. pre-aggregated percentage shares). |
label |
str | Caption text displayed below the center total value. |
PieChartStyle¶
Authored overlay for PieChartStyle. Pie/donut chart style: geometry + total (flat) + marks sub-block.
| Field | Type | Description |
|---|---|---|
title |
ChartTitleStyle | Chart-level title style override; None inherits the theme title style. |
legend |
PieLegendStyle | Pie key style. |
preferred_width |
float | Preferred chart width in pixels. Falls back to style.charts.preferred_width. |
padding |
PaddingStyle | Padding as {top, right, bottom, left} in pixels, never one number. Unset fields fall back to style.charts.padding. |
background |
str | Chart-local background color override; None inherits from theme. |
aspect_ratio |
float | Aspect ratio (width/height) of the pie chart viewport. |
min_height |
float | Minimum chart height in pixels. Falls back to style.charts.min_height. |
max_height |
float | Maximum chart height in pixels. Falls back to style.charts.max_height. |
color |
ColorStyle | Chart color: static mark paint, categorical palette, and/or gradient scale. |
inner_radius |
float | Hole-to-disk ratio 0–1 (inner radius / outer radius). 0 is a solid pie. A type: donut chart reads charts.donut over this. |
total |
TotalStyle | Donut center total paint (value and label). |
marks |
PieChartMarksStyle | Pie-family mark overrides. Unset fields fall back to style.charts.marks. |
FieldConditionalFormatting¶
Conditional formatting rules scoped to a single column.
Required
| Field | Type | Description |
|---|---|---|
when |
list[ConditionalRule] | Ordered list of conditional rules. The first matching rule applies; a 'default: true' rule must be last. |
KpiSupportConfig¶
Support-line block authored alongside a KPI's main value.
| Field | Type | Description |
|---|---|---|
value |
str | Column reference (string column name) for the support number/text. |
label |
str | Trailing explainer text rendered beside the support value. |
glyph |
str | Text shown before the value (e.g. '▲', '▼', '●'). |
KpiChartStyle¶
Authored overlay for KpiChartStyle. Produced by cascade from theme YAML.
| Field | Type | Description |
|---|---|---|
preferred_width |
float | Preferred chart width in pixels. Falls back to style.charts.preferred_width. |
padding |
PaddingStyle | Padding as {top, right, bottom, left} in pixels, never one number. Unset fields fall back to style.charts.padding. |
background |
str | Chart-local background color override; None inherits from theme. |
font |
SingleLineFontStyle | Font every KPI text slot starts from. Unset fields fall back to style.charts.font. |
variant |
enum: "stacked", "inline", "compact" | Card layout. 'stacked' puts value, label, and support on three lines; 'inline' sets them on one baseline; 'compact' puts the value left and up to two lines right. |
value |
KpiValueStyle | KPI headline value slot. |
label |
KpiLabelStyle | KPI card label slot. |
support |
KpiSupportStyle | KPI support row slot. |
min_card_width |
float | Minimum KPI card width in pixels. |
default_height |
float | Default KPI card height in pixels. |
border |
str | BorderStyle | KPI card border style. Unset fields fall back to style.charts.border. |
content_padding |
str | float | SpacingValues | Inner inset (top/right/bottom/left) for KPI card content in pixels. |
align |
enum: "left", "center", "right" | Horizontal alignment of the value, label, and support text within the card. |
TableChartStyle¶
Authored overlay for TableChartStyle. Table chart style overrides layered on top of shared chart defaults.
| Field | Type | Description |
|---|---|---|
title |
ChartTitleStyle | Chart-level title style override; None inherits the theme title style. |
preferred_width |
float | Width the board asks for when sizing to a table before its data is known. With data, a board with no width measures the table's columns instead. Only a value set on the chart itself pins the width; a board- or theme-level value is just the estimate used before data is known. Falls back to style.charts.preferred_width. |
padding |
PaddingStyle | Padding as {top, right, bottom, left} in pixels, never one number. Unset fields fall back to style.charts.padding. |
background |
str | Table background color; None inherits from theme. |
font |
FontStyle | Table chart-level font overrides. Unset fields fall back to style.charts.font. |
border |
str | BorderStyle | Chart card border style. Unset fields fall back to style.charts.border. |
color |
StaticGradientColorStyle | Table color: static text paint or gradient scale only (no categorical arm). |
outer_padding |
float | Outer table padding in pixels. |
bottom_padding |
float | Extra bottom padding below the last row in pixels. |
column_layout |
TableColumnsStyle | Default column width and cell padding settings. |
header |
TableHeaderStyle | Table header row style. |
row |
TableRowStyle | Table body row style. |
row_numbers |
TableRowNumbersStyle | Leading row-number column configuration. |
title_row |
TableTitleStyle | Title block rendered above the header row. |
wrap |
bool | Allow cell text wrapping; false clips to single line. |
pagination |
PaginationConfig | Client-side pagination defaults for table charts. |
column_defaults |
TableColumnDefaultsConfig | Table-level column defaults applied to every column; None means no defaults authored. |
columns |
dict[str, TableColumnConfig] | Per-column display configuration keyed by column name (label, format, width, etc.). |
header_overflow |
enum: "clip", "truncate", "wrap-two", "wrap" | Table column header text overflow mode; None inherits from theme. |
paginator |
PaginatorStyle | Visual style for the paginator control (chevrons + page numbers). |
symbol_mode |
enum: "all", "anchors" | Where to show currency-prefix and magnitude/unit suffix symbols in a numeric column. 'all' shows the full formatted value on every row; 'anchors' shows it only on the first data row and summary/total rows, stripping prefix and suffix from plain middle rows so the anchors guide the reader at the top and bottom of the value field. |
more_rows |
TableEdgeStyle | Style for the 'more rows' edge-case indicator. |
empty_state |
TableEdgeStyle | Style for the empty-state (no data) indicator. |
spark |
SparkStyle | Inline sparkline defaults for table cells. |
transpose |
bool | When True, render a single wide data row as N (label, value) rows, one per column. Raises ChartDataError when data has more than one row. Used for Looker single-value summary tiles with multiple measures. |
text_baseline_offset |
float | Vertical offset to align SVG text baseline with cell grid in pixels. |
title_subtitle_gap |
float | Pure whitespace between the title's descent and the subtitle's ascent, in pixels, not a baseline-to-baseline distance. Combined with the title and subtitle font sizes to reproduce Vega-Lite's title->subtitle spacing at any font size, not one calibrated pair. Font size and color for the subtitle itself come from style.title.subtitle (the same source chart-family titles use), not a table-local constant. |
TableSpanner¶
One authored spanner: a label drawn over a run of adjacent columns.
Required
| Field | Type | Description |
|---|---|---|
label |
str | Group label for the listed columns. |
columns |
list[str] | Query columns the spanner covers. Must be adjacent in the query's column order and unique; a column may sit in at most one spanner. |
Projection¶
A Vega-Lite projection; any other Vega-Lite projection property is accepted.
| Field | Type | Description |
|---|---|---|
type |
str | Projection name, such as mercator. |
BasemapConfig¶
Styled geographic background layer for point_map and bubble_map charts.
| Field | Type | Description |
|---|---|---|
source |
str | Named geographic boundary source (e.g. 'us-states') for overlay rendering. |
fill |
str | Fill color for geographic boundary overlay. |
stroke |
str | Stroke color for geographic boundary overlay. |
PointMapChartStyle¶
Authored overlay for PointMapChartStyle. Point map chart style.
| Field | Type | Description |
|---|---|---|
title |
ChartTitleStyle | Chart-level title style override; None inherits the theme title style. |
legend |
LegendStyle | Chart legend style. |
preferred_width |
float | Preferred chart width in pixels. Falls back to style.charts.preferred_width. |
padding |
PaddingStyle | Padding as {top, right, bottom, left} in pixels, never one number. Unset fields fall back to style.charts.padding. |
background |
str | Chart-local background color override; None inherits from theme. |
aspect_ratio |
float | Chart aspect ratio (width/height). Falls back to style.charts.aspect_ratio. |
min_height |
float | Minimum chart height in pixels. Falls back to style.charts.min_height. |
max_height |
float | Maximum chart height in pixels. Falls back to style.charts.max_height. |
color |
StaticGradientColorStyle | Geo color: static paint or gradient scale only (no categorical arm). |
font |
FontStyle | Chart-level font overrides. |
border |
str | BorderStyle | Chart card border style. Unset fields fall back to style.charts.border. |
projection |
ProjectionStyle | Vega-Lite projection configuration for this geo family. |
basemap |
BasemapStyle | Background map layer; None source = no topo layer. |
marks |
PointMapChartMarksStyle | Point-map-family mark overrides. Unset fields fall back to style.charts.marks. |
GeoshapeChartStyle¶
Authored overlay for GeoshapeChartStyle. Geoshape (choropleth) chart style.
| Field | Type | Description |
|---|---|---|
title |
ChartTitleStyle | Chart-level title style override; None inherits the theme title style. |
legend |
LegendStyle | Chart legend style. |
preferred_width |
float | Preferred chart width in pixels. Falls back to style.charts.preferred_width. |
padding |
PaddingStyle | Padding as {top, right, bottom, left} in pixels, never one number. Unset fields fall back to style.charts.padding. |
background |
str | Chart-local background color override; None inherits from theme. |
aspect_ratio |
float | Chart aspect ratio (width/height). Falls back to style.charts.aspect_ratio. |
min_height |
float | Minimum chart height in pixels. Falls back to style.charts.min_height. |
max_height |
float | Maximum chart height in pixels. Falls back to style.charts.max_height. |
color |
StaticGradientColorStyle | Geo color: static paint or gradient scale only (no categorical arm). |
font |
FontStyle | Chart-level font overrides. |
border |
str | BorderStyle | Chart card border style. Unset fields fall back to style.charts.border. |
projection |
ProjectionStyle | Vega-Lite projection configuration for this geo family. |
basemap |
BasemapStyle | Background map layer; None source = no topo layer. |
marks |
GeoshapeChartMarksStyle | Geoshape-family mark overrides. Unset fields fall back to style.charts.marks. |
CalloutChartStyle¶
Authored overlay for CalloutChartStyle. Chart-family style for type: callout charts and runtime chart-error fallback cards.
| Field | Type | Description |
|---|---|---|
preferred_width |
float | Preferred callout width in pixels. |
tone |
enum: "positive", "negative", "warning", "info" | Semantic tone for palette-role lookup (info | positive | negative | warning). |
background |
str | Callout card background color. by_tone is the tone's color. |
border |
str | BorderStyle | Callout card border style. A color of by_tone is the tone's color. |
padding |
PaddingStyle | Padding as {top, right, bottom, left} in pixels, never one number. Unset fields fall back to style.charts.padding. |
section_gap |
float | Vertical gap between callout title and message in pixels. |
title |
CalloutElementStyle | Callout title element style. |
message |
CalloutElementStyle | Callout message element style. |
SparkBarChartStyle¶
Authored overlay for SparkBarChartStyle. Produced by cascade from theme YAML.
| Field | Type | Description |
|---|---|---|
preferred_width |
float | Preferred spark_bar chart width in pixels. |
min_width |
float | Minimum spark_bar chart width in pixels. |
padding |
PaddingStyle | Padding as {top, right, bottom, left} in pixels, never one number. Unset fields fall back to style.charts.padding. |
bar |
SparkBarBarStyle | Bar geometry (height, padding, color). |
label |
SparkBarChartLabelStyle | Category-label column (visibility, reserved width). |
count |
SparkBarCountStyle | Count-value column (visibility, reserved width). |
max_bars |
int | Maximum number of bars to render. |
font |
FontStyle | Spark_bar font style overrides. Unset fields fall back to style.charts.font. |
border |
CornerStyle | Spark_bar outer corner rounding. |
subtitle |
SubtitleStyle | Spark_bar subtitle font-sizing constants. |
CustomChartStyle¶
Sizing for a custom chart; its look comes from the board's style:.
| Field | Type | Description |
|---|---|---|
aspect_ratio |
float | Chart aspect ratio (width/height). |
min_height |
float | Minimum chart height in pixels. |
max_height |
float | Maximum chart height in pixels. |
GridItem¶
Grid layout item with position and span.
Required
| Field | Type | Description |
|---|---|---|
item |
str | Board | BarChart | LineChart | AreaChart | ScatterChart | HeatmapChart | PieChart | KpiChart | TableChart | PointMapChart | GeoshapeChart | CalloutChart | SparkBarChart | CustomChart | dict[str, BarChart | LineChart | AreaChart | ScatterChart | HeatmapChart | PieChart | KpiChart | TableChart | PointMapChart | GeoshapeChart | CalloutChart | SparkBarChart | CustomChart] | Chart name or inline chart/board definition to place in this grid cell. |
Optional
| Field | Type | Description |
|---|---|---|
col |
int | Column position (0-indexed). Auto-placed if omitted. |
row |
int | Row position (0-indexed). Auto-placed if omitted. |
col_span |
int | Number of columns to span (width in grid units). Zero or a positive number; 0 is treated as unset and falls back to width, then to 1. |
row_span |
int | Number of rows to span (height in grid units). Zero or a positive number; 0 is treated as unset and falls back to height, then to 1. |
width |
int | Alias for col_span (more intuitive name). Zero or a positive number; used only when col_span is unset or 0, and 0 here also falls back to 1. |
height |
int | Alias for row_span (more intuitive name). Zero or a positive number; used only when row_span is unset or 0, and 0 here also falls back to 1. |
notes |
str | Optional metadata for AI search. Emitted into the SVG DOM as a data-layout-notes attribute; never painted as visible pixels. |
TabItem¶
Tab layout item.
Required
| Field | Type | Description |
|---|---|---|
title |
str | Tab label displayed in the tab bar. |
Optional
| Field | Type | Description |
|---|---|---|
icon |
str | Optional icon shown in the tab (e.g., emoji or icon name). |
notes |
str | Optional metadata for AI search. Emitted into the SVG DOM as a data-layout-notes attribute; never painted as visible pixels. |
text |
str | Markdown text content shown in this tab. |
style |
Style | Appearance overrides for this tab's content area. |
rows |
list[str | Board | BarChart | LineChart | AreaChart | ScatterChart | HeatmapChart | PieChart | KpiChart | TableChart | PointMapChart | GeoshapeChart | CalloutChart | SparkBarChart | CustomChart | dict[str, BarChart | LineChart | AreaChart | ScatterChart | HeatmapChart | PieChart | KpiChart | TableChart | PointMapChart | GeoshapeChart | CalloutChart | SparkBarChart | CustomChart]] | Vertical stack layout for this tab's content. |
cols |
list[str | Board | BarChart | LineChart | AreaChart | ScatterChart | HeatmapChart | PieChart | KpiChart | TableChart | PointMapChart | GeoshapeChart | CalloutChart | SparkBarChart | CustomChart | dict[str, BarChart | LineChart | AreaChart | ScatterChart | HeatmapChart | PieChart | KpiChart | TableChart | PointMapChart | GeoshapeChart | CalloutChart | SparkBarChart | CustomChart]] | Horizontal layout for this tab's content. |
grid |
GridLayout | CSS-grid layout for this tab's content. |
tabs |
TabLayout | A further set of tabs opening inside this one. |
FrameStyle¶
Authored overlay for FrameStyle. Board-level structural dimensions; cascades to child boards.
| Field | Type | Description |
|---|---|---|
width |
float | Exact board width in pixels. Set it, on a board, a template it extends, or a project's meta.yml, and the board is exactly this wide; the layout distributes it. Leave it unset and the board sizes itself to its content, bounded by max_width. Rendered as an on-screen pixel size everywhere except the dct HTML page (dct serve, dct render --format html), which scales the board to its container. |
max_width |
float | Widest a board without an exact width may grow, in pixels. A board with no width of its own measures its charts' preferred widths and hugs them up to this bound: a single small chart stays a small card. Ignored when width is set. Themes supply the default; a project's meta.yml can lower or raise it. |
min_height |
float | Minimum board height in pixels. |
margin |
float | Board outer margin in pixels. |
card_padding |
float | Padding added to each card side in pixels. |
card_gap |
float | Gap between cards in pixels. |
RootFontStyle¶
Authored overlay for RootFontStyle. Root-level font configuration: FontStyle fields plus a required emoji mode.
| Field | Type | Description |
|---|---|---|
family |
str | Font family or CSS stack; single-quote multiword names: "'Source Serif 4', serif". |
color |
str | Text color as a CSS color string. |
size |
float | Font size in pixels. |
weight |
str | float | How heavy the type is drawn (e.g., 'bold', 400, 700). |
style |
enum: "normal", "italic" | Upright or slanted type (normal or italic). |
decoration |
enum: "none", "line-through", "underline" | Line drawn on the text (underline, line-through, or none). |
case |
enum: "none", "sentence", "title", "upper", "lower", "slug", "camel" | Letter-case transform applied at render time. 'title' uses Chicago/Gruber rules and preserves tokens with internal capitals (ARR, iPhone). 'sentence' uppercases only the first character. 'none' (default) emits the string without any letter-case change. |
line_height |
float | Line height as a unitless multiple of font size. Cascades through Style.font to all text roles that carry a FontStyle slot. Body prose defaults to 1.25; titles override tighter via their font patch in theme YAML. |
emoji |
enum: "monochrome", "system-default", "disabled" | Emoji rendering mode for the dashboard font stack. |
BorderStyle¶
Box border. Does NOT cascade: box properties reset per level.
| Field | Type | Description |
|---|---|---|
radius |
float | Border corner radius in pixels. |
color |
str | Border color (CSS color string). |
width |
float | Border width in pixels. |
dash_array |
list[float] | SVG stroke-dasharray pattern in pixels (e.g. [4, 4]). None means a solid border. |
line_cap |
enum: "butt", "round", "square" | How each dash's ends are finished on a dashed border. None uses the renderer default (butt). |
dash_offset |
float | How far into the dash pattern the line starts, in pixels. None means 0. |
TitleStyle¶
Authored overlay for TitleStyle. Typography shared by every heading: board, prose, chart, table, and spark titles.
| Field | Type | Description |
|---|---|---|
compact_weight |
str | float | Object-title font weight on tiny cards. |
width_offsets |
TitleWidthOffsetsStyle | Additive level offsets by card width (tiny/narrow/medium/wide). Object titles add the tier offset to a fixed anchor to pick an H slot from style.fonts.heading.sizes. Board/prose titles are level-only and do not consult these. |
min_height |
float | Minimum title row height in pixels. |
overflow |
enum: "clip", "truncate", "wrap-two", "wrap" | Text overflow mode (clip, truncate, wrap-two, wrap). |
position |
TitlePositionStyle | Vega-Lite title positioning: anchor, angle, offset, baseline. |
level |
int | const: "auto" | Heading level override for board titles. 'auto' (default) computes the level semantically as the count of titled ancestors. An integer value locks all titles in this board and its descendants to that H-level. |
subtitle |
TitleSubtitleStyle | Subtitle font styles. |
font |
FontStyle | Title font style overrides. Unset fields fall back to style.font. |
TextStyle¶
Authored overlay for TextStyle. Markdown / plain text content.
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Text font style overrides. Unset fields fall back to style.font. |
align |
enum: "left", "center", "right" | Text alignment for the board body-text block. |
paragraph |
BlockMarginStyle | Spacing above/below each paragraph block (in line-height units). |
heading |
BlockMarginStyle | Spacing above/below heading blocks (H1–H6) in line-height units. |
column |
TextColumnStyle | Multi-column layout for the board body-text block. |
code |
TextCodeStyle | Inline + fenced code box styling (font, background, border). |
blockquote |
TextBlockquoteStyle | Blockquote box styling (font, background, border/left bar). |
bold |
TextBoldStyle | Inline bold-run styling (weight), distinct from heading weight. |
divider |
DividerStyle | Markdown horizontal rules (---) and markdown-table gridlines. |
PlaceholderStyle¶
Authored overlay for PlaceholderStyle.
| Field | Type | Description |
|---|---|---|
opacity |
float | Opacity of the placeholder overlay (0–1). |
overlay |
PlaceholderOverlay | Overlay text and background style. |
ChartsStyle¶
Authored overlay for ChartsStyle. Registry of all chart-type styles plus shared chart configuration.
| Field | Type | Description |
|---|---|---|
legend |
LegendStyle | Chart legend style. |
preferred_width |
float | Preferred chart width in pixels. |
padding |
PaddingStyle | Padding as {top, right, bottom, left} in pixels, never one number. |
background |
str | Chart canvas background; None inherits from the board background via apply_inherit. Falls back to style.background. |
aspect_ratio |
float | Chart aspect ratio (width/height). |
min_height |
float | Minimum chart height in pixels. |
max_height |
float | Maximum chart height in pixels. |
color |
ColorStyle | Chart color: static mark paint, categorical palette, and/or gradient scale. |
font |
FontStyle | Chart-level font overrides. Unset fields fall back to style.font. |
border |
str | BorderStyle | Border around every chart card: {width, color, radius} or '1px solid #ccc'. Omit the key for no border; callout cards keep their own. |
title |
ChartTitleStyle | Title style for every chart's title. Unset fields fall back to style.title. |
category_colors |
dict[str, CategoryColorBinding] | Board-wide category colors as <column>: {values: {<value>: color}}. Pins a category to one swatch across every chart on the board. |
tooltip |
TooltipStyle | Board-wide chart tooltip style. |
hover_emphasis |
HoverEmphasisStyle | Board-wide switch for hover emphasis on charts. |
dashes |
list[list[int]] | Ordered list of Vega-Lite strokeDash arrays for line-family categorical encoding; None disables dash emission. |
default_chart_height |
float | Fallback chart height in pixels when aspect-ratio sizing is unavailable. |
default_table_height |
float | Placeholder table height in pixels; replaced by data-aware row-count sizing at render time. |
label_usable_ratio |
float | Fraction of chart width usable for axis labels (0–1); labels are tilted when full labels exceed this width. |
axis |
BaseAxisStyle | Shared axis style applied to all axes before per-axis overrides. |
axis_x |
AxisXStyle | X-axis style overrides applied after the shared axis. Unset fields fall back to style.charts.axis. |
axis_y |
AxisYStyle | Y-axis style overrides applied after the shared axis. Unset fields fall back to style.charts.axis. |
axis_quantitative |
QuantitativeAxisStyle | Quantitative axis style overrides applied after axis_x/axis_y. Unset fields fall back to style.charts.axis. |
view |
ViewStyle | Vega-Lite view dimensions and border. |
marks |
GlobalMarksStyle | Global mark defaults (tier-1 of the marks cascade). |
bar |
BarChartStyle | Bar chart style; histogram has its own block. |
line |
LineChartStyle | Line chart style. |
area |
AreaChartStyle | Area chart style. |
scatter |
ScatterChartStyle | Scatter chart style. |
histogram |
HistogramChartStyle | Histogram chart style. |
heatmap |
HeatmapChartStyle | Heatmap chart style. |
geoshape |
GeoshapeChartStyle | Geoshape (choropleth) chart style. |
point_map |
PointMapChartStyle | Point map chart style. |
pie |
PieChartStyle | Pie/donut chart style. |
donut |
PieChartStyle | Donut overrides, applied over pie: a board's pie or donut style reaches every donut, and donut styles donuts only. |
series_label |
SeriesLabelStyle | Shared series-label typography for endpoint and stack labels. |
kpi |
KpiChartStyle | KPI card chart style. |
table |
TableChartStyle | Table chart style. |
spark_bar |
SparkBarChartStyle | Spark_bar (full-chart horizontal bar) style. |
support_table |
SupportTableStyle | Attached support_table strip style. |
callout |
CalloutChartStyle | Callout chart-family style for type:callout and runtime fallback cards. |
LayoutStyle¶
Authored overlay for LayoutStyle.
| Field | Type | Description |
|---|---|---|
rows |
LayoutGapStyle | Gap sizing between rows. |
cols |
LayoutGapStyle | Gap sizing between columns. |
grid |
GridLayoutStyle | Grid layout configuration. |
tabs |
TabsStyle | Tabs layout style. |
details |
DetailsStyle | Details (accordion) layout style. |
VariablesStyle¶
Authored overlay for VariablesStyle. Variable controls chrome styling.
| Field | Type | Description |
|---|---|---|
visible |
bool | Show the variables control panel. |
position |
enum: "top", "bottom", "title-inline" | Variables strip placement: stacked under the title (top/bottom) or on one horizontal band with the board title (title-inline). |
title_inline_band_bottom_pad |
float | Bottom padding in pixels added below the title-inline band. |
gap |
float | Gap between variable controls in pixels. |
label_position |
str | Position of labels relative to their input controls (e.g. 'left', 'top'). |
title_inline_title_max_width |
float | When position is title-inline: max title column width in px. 0 means no cap (title uses remaining width after reserving space for variables). |
font |
FontStyle | Variables panel base font style overrides. Unset fields fall back to style.font. |
label |
VariablesLabelStyle | Variable label typography. |
value |
VariablesValueStyle | Variable value typography. |
placeholder |
VariablesPlaceholderStyle | Style for unselected/hint text in variable inputs. |
container_height |
float | Height of the variables panel container in pixels. |
border |
str | BorderStyle | Variables panel border style. |
control_gap |
float | Gap between label and input within a single control in pixels. |
input |
InputStyle | Input control style. |
FooterStyle¶
Authored overlay for FooterStyle. Page footer chrome: visibility, attribution text, font, and divider.
| Field | Type | Description |
|---|---|---|
visible |
bool | Show the footer attribution line. |
text |
str | Attribution text shown in the footer; auto takes the board language's wording around the dbt Charts brand. |
link |
str | URL the footer brand phrase 'dbt charts' links to; null renders plain text. |
font |
FontStyle | Footer text font style (size and color required). Unset fields fall back to style.font. |
y_offset |
float | Vertical offset from bottom edge in pixels. |
brand_weight |
enum: 500, 600 | Font weight of the footer brand phrase. |
divider |
FooterDividerStyle | Hairline above the footer text. |
TimestampStyle¶
Authored overlay for TimestampStyle. Authored data-freshness chrome: visibility, placement, strftime format, font, and y-offset.
| Field | Type | Description |
|---|---|---|
visible |
bool | Show the data-freshness line. |
position |
enum: "top", "footer" | Timestamp row: top page chrome or footer baseline. |
align |
enum: "left", "right" | Timestamp horizontal alignment within its row. |
format |
str | auto takes the board language's wording around the time and date; else a strftime format for the data-freshness line, including any literal label text (e.g. '%H:%M %Z on %-d %b %Y'). The value is always UTC; a format that prints a clock must disclose the zone (%Z or a literal 'UTC'), else compile rejects it: an unlabeled clock reads as local. |
y |
float | Y-coordinate for top-positioned timestamp in pixels. |
gap |
float | Horizontal gap between the footer timestamp and the attribution. |
font |
FontStyle | Timestamp font style overrides (size, color, weight, ...). Unset fields fall back to style.font. |
FormatConfig¶
Format configuration for value display.
| Field | Type | Description |
|---|---|---|
spec |
str | D3 format string (,.0f; .2s writes 1.2M), preset name (e.g., 'currency'), or Excel pattern. A format is this string alone, or a mapping with spec. A date also takes strftime (%b '%y). |
prefix |
str | Text placed before the formatted value (e.g., '$'). |
suffix |
str | Text placed after the formatted value (e.g., ' USD', '%'). |
notation |
enum: "analytic", "narrative" | Notation style: 'analytic' for SI-prefix (1B, 1M) or 'narrative' for prose-style (1bn, 1mn). |
sign_placement |
enum: "before_prefix", "after_prefix" | Where a negative sign sits against the prefix: 'before_prefix' (−€500) or 'after_prefix' (EUR −500). Unset: after_prefix when the prefix ends in a space or paints on one value only, else before_prefix. Table columns keep the sign with the digits and reject it. |
repeat |
enum: "every", "anchor" | Whether the prefix/suffix paints on 'every' value of an axis, table column or support_table row, or on one 'anchor' value. Unset keeps each surface's default. Single-value slots ignore it. |
NamedFont¶
A style.fonts registry entry: a font other slots reference by name.
| Field | Type | Description |
|---|---|---|
extends |
str | Name of a style.fonts entry this slot starts from; the fields set beside it override that entry. |
family |
str | Font family or CSS stack; single-quote multiword names: "'Source Serif 4', serif". |
color |
str | Text color as a CSS color string. |
size |
float | Font size in pixels. |
weight |
str | float | How heavy the type is drawn (e.g., 'bold', 400, 700). |
style |
enum: "normal", "italic" | Upright or slanted type (normal or italic). |
decoration |
enum: "none", "line-through", "underline" | Line drawn on the text (underline, line-through, or none). |
case |
enum: "none", "sentence", "title", "upper", "lower", "slug", "camel" | Letter-case transform applied at render time. 'title' uses Chicago/Gruber rules and preserves tokens with internal capitals (ARR, iPhone). 'sentence' uppercases only the first character. 'none' (default) emits the string without any letter-case change. |
line_height |
float | Line height as a unitless multiple of font size. Cascades through Style.font to all text roles that carry a FontStyle slot. Body prose defaults to 1.25; titles override tighter via their font patch in theme YAML. |
sizes |
list[float] | The H1–H6 heading ramp (six sizes, indexed by heading level - 1). Valid only on the heading font. |
KpiTonesStyle¶
Authored overlay for KpiTonesStyle. Semantic tone palette shared by the KPI support row and table conditional glyphs.
| Field | Type | Description |
|---|---|---|
positive |
str | Color for positive/good tone indicators. |
negative |
str | Color for negative/bad tone indicators. |
warning |
str | Color for warning/caution tone indicators. |
info |
str | Color for neutral/informational tone indicators. |
SpacingValues¶
Pre-parsed CSS spacing (margin/padding).
| Field | Type | Description |
|---|---|---|
top |
float | Top spacing in pixels. |
right |
float | Right spacing in pixels. |
bottom |
float | Bottom spacing in pixels. |
left |
float | Left spacing in pixels. |
RegionalLocale¶
The d3 locales a board writes numbers and dates in.
| Field | Type | Description |
|---|---|---|
number |
NumberLocale | enum: "ar-AE", "ar-BH", "ar-DJ", "ar-DZ", "ar-EG", "ar-EH", "ar-ER", "ar-IL", "ar-IQ", "ar-JO", "ar-KM", "ar-KW", "ar-LB", "ar-LY", "ar-MA", "ar-MR", "ar-OM", "ar-PS", "ar-QA", "ar-SA", … (38 more; see the JSON Schema) | A d3-format locale name or definition. |
time |
TimeLocale | enum: "ar-EG", "ar-SY", "ca-ES", "cs-CZ", "da-DK", "de-CH", "de-DE", "en-CA", "en-GB", "en-US", "es-ES", "es-MX", "fa-IR", "fi-FI", "fr-CA", "fr-FR", "he-IL", "hr-HR", "hu-HU", "it-IT", … (15 more; see the JSON Schema) | A d3-time-format locale name or definition. |
ChartSupportTableSource¶
A support_table row that reads a column's raw per-x value.
Required
| Field | Type | Description |
|---|---|---|
source |
str | Query column the row reads from (per-x raw value). |
Optional
| Field | Type | Description |
|---|---|---|
format |
str | FormatConfig | enum: "compact", "currency", "currency_compact", "currency_full", "currency_whole", "date_short", "delta", "email", "id", "integer", "latitude", "longitude", "number", "number_full", "percent", "percent_delta", "percent_whole", "rating", "time_short", "url", … (1 more; see the JSON Schema) | D3 format string or format config object. Optional; inherits the chart measure format when omitted and source matches chart.y. |
label |
str | Left-stub row label. Optional. |
ChartSupportTableAggregate¶
A support_table row that reads an aggregate of a column grouped by x.
Required
| Field | Type | Description |
|---|---|---|
aggregate |
enum: "sum", "avg", "min", "max", "median", "count", "count_distinct" | Aggregate operation applied per x-group. One of: sum, avg, min, max, median, count, count_distinct. Exact names only: no aliases (spec G4). |
source |
str | Query column being aggregated. Always required alongside aggregate: (spec G2). |
Optional
| Field | Type | Description |
|---|---|---|
format |
str | FormatConfig | enum: "compact", "currency", "currency_compact", "currency_full", "currency_whole", "date_short", "delta", "email", "id", "integer", "latitude", "longitude", "number", "number_full", "percent", "percent_delta", "percent_whole", "rating", "time_short", "url", … (1 more; see the JSON Schema) | D3 format string or format config object for the aggregated value. Optional. |
label |
str | Column header label override for this row. |
ChartSupportTablePerSeries¶
A support_table entry that expands into one row per color: series.
Required
| Field | Type | Description |
|---|---|---|
per_series |
str | Query column the row reads from (per-x, per-series value). |
Optional
| Field | Type | Description |
|---|---|---|
by_measure |
bool | When True, expand one row reading the named measure field directly (no color: groupby). Required for multi-y charts where each measure is its own y-field rather than a color-encoded series. |
label |
str | Row label for a by_measure=True row; when None and by_measure=True, the per_series column name is used. Also the header of a horizontal grouped bar's single per_series column. Not allowed on a non-by_measure strip row or stacked-bar column. |
format |
str | FormatConfig | enum: "compact", "currency", "currency_compact", "currency_full", "currency_whole", "date_short", "delta", "email", "id", "integer", "latitude", "longitude", "number", "number_full", "percent", "percent_delta", "percent_whole", "rating", "time_short", "url", … (1 more; see the JSON Schema) | D3 format string or format config object. Optional. |
QuantitativeAxisStyle¶
Authored overlay for QuantitativeAxisStyle. Scale-type overlay for quantitative axes. Theme slot: axis_quantitative.
| Field | Type | Description |
|---|---|---|
grid |
BaseAxisGridStyle | Grid line style for this axis. |
line |
AxisLineStyle | Domain line style for this axis. |
ticks |
AxisTicksStyle | Tick mark style for this axis. |
labels |
AxisLabelStyle | Axis label style. |
title |
AxisTitleStyle | Axis title style. |
scale |
BaseScaleStyle | Per-axis scale overrides; None means no override. |
ChartTitleStyle¶
Authored overlay for ChartTitleStyle. A chart's title style, whose font also takes auto.
| Field | Type | Description |
|---|---|---|
compact_weight |
str | float | Object-title font weight on tiny cards. |
width_offsets |
TitleWidthOffsetsStyle | Additive level offsets by card width (tiny/narrow/medium/wide). Object titles add the tier offset to a fixed anchor to pick an H slot from style.fonts.heading.sizes. Board/prose titles are level-only and do not consult these. |
min_height |
float | Minimum title row height in pixels. |
overflow |
enum: "clip", "truncate", "wrap-two", "wrap" | Text overflow mode (clip, truncate, wrap-two, wrap). |
position |
TitlePositionStyle | Vega-Lite title positioning: anchor, angle, offset, baseline. |
level |
int | const: "auto" | Heading level override for board titles. 'auto' (default) computes the level semantically as the count of titled ancestors. An integer value locks all titles in this board and its descendants to that H-level. |
subtitle |
TitleSubtitleStyle | Subtitle font styles. |
font |
ChartTitleFontStyle | Title font style overrides. Unset fields fall back to style.font. |
LegendStyle¶
Authored overlay for LegendStyle.
| Field | Type | Description |
|---|---|---|
direction |
enum: "horizontal", "vertical" | Legend layout direction. 'auto' infers it from the edge: horizontal on top/bottom, vertical on left/right. |
columns |
int | Legend entry columns. Zero keeps the renderer default; positive values set Vega-Lite legend columns. |
compact_columns |
int | Entry columns when a horizontal legend wraps: the automatic compact top legend, or an inferred-horizontal legend too wide for one row. |
row |
LegendRowStyle | Chrome around each entry of a single-row top legend. |
label |
LegendLabelStyle | Legend label style. |
title |
LegendTitleStyle | Legend title style. |
visible |
bool | const: "auto" | Show the legend. 'auto' shows it unless direct labeling (endpoint labels, or a pie's slice labels) names the series instead; true keeps it beside direct labels and false hides it. |
symbol_limit |
int | Maximum number of legend entries to display; maps to VL symbolLimit. None uses Vega-Lite's default (no cap). Set to a positive integer to prevent legend overflow on high-cardinality series. |
values |
list[str] | Explicit legend entry order/filter; each entry resolves against the real legend domain by its rendered text or its column/measure name (case/separator-insensitive). None lets the renderer infer order from the data. |
symbol_shape |
enum: "circle", "square", "cross", "diamond", "triangle-up", "triangle-down", "triangle-right", "triangle-left", "stroke", "arrow", "wedge", "triangle" | Override the legend glyph shape; maps to VL legend.symbolType. 'auto' uses the mark-aware glyph derived from the chart's mark type. |
symbol_fill |
bool | const: "auto" | When False, emits symbolFillColor='transparent' to produce a hollow legend glyph. 'auto' uses Vega-Lite's default (filled symbol). |
position |
LegendPositionStyle | Legend placement: edge, align along the edge, overlay or reserve. |
PaddingStyle¶
Authored overlay for PaddingStyle. Per-chart padding inset (px). All 4 sides required; theme YAML supplies defaults.
| Field | Type | Description |
|---|---|---|
left |
float | Left padding in pixels. |
right |
float | Right padding in pixels. |
top |
float | Top padding in pixels. |
bottom |
float | Bottom padding in pixels. |
ColorStyle¶
Authored overlay for ColorStyle. Unified chart color config: static paint, categorical palette, gradient scale.
| Field | Type | Description |
|---|---|---|
static |
str | One color for all marks: a hex, CSS name, rgb()/oklch() or theme token (category[1], positive.solid, dbt-grays.8). A token follows the theme, a hex stays put. |
gradient |
ScaleTargetConfig | Continuous gradient scale for the color encoding. |
categorical |
CategoricalColorStyle | Palettes used when color encodes distinct categories, or a lone series. |
BaseAxisStyle¶
Authored overlay for BaseAxisStyle. Universal axis surface: grid/line/ticks/labels/title/scale.
| Field | Type | Description |
|---|---|---|
grid |
BaseAxisGridStyle | Grid line style for this axis. |
line |
AxisLineStyle | Domain line style for this axis. |
ticks |
AxisTicksStyle | Tick mark style for this axis. |
labels |
AxisLabelStyle | Axis label style. |
title |
AxisTitleStyle | Axis title style. |
scale |
BaseScaleStyle | Per-axis scale overrides; None means no override. |
AxisXStyle¶
Authored overlay for AxisXStyle. Dimension/category-time axis style. Theme slot: axis_x.
| Field | Type | Description |
|---|---|---|
grid |
BaseAxisGridStyle | Grid line style for this axis. |
line |
AxisLineStyle | Domain line style for this axis. |
ticks |
DimensionTicksStyle | Dimension axis tick style. |
labels |
DimensionLabelStyle | Dimension axis label style. |
title |
AxisTitleStyle | Axis title style. |
scale |
XScaleStyle | X-axis scale overrides including x_reverse; None means no override. |
position |
enum: "top", "bottom" | X-axis position; None uses Vega-Lite's default (bottom). |
time_unit |
enum: "auto", "year", "yearquarter", "yearmonth", "yearweek", "yearmonthdate", "monthofyear", "dayofweek", "dayofmonth", "dayofyear", "hourofday", "none" | Time-unit bucketing for temporal x-axes; None or 'auto' auto-detects from data. |
type |
enum: "auto", "ordinal", "temporal" | Scale type for bucketed-time x-axes; None/'auto' infers from time_unit grain. |
fill |
enum: "null", "zero", "linear", "step-after", "step-before", "step-center", "curve" | Fill for synthesized missing-bucket rows: null, zero, linear, step-after / step-before / step-center (Looker step), or curve (smoothstep). |
fiscal_year_start_month |
int | Calendar month (1=Jan..12=Dec) that opens a fiscal year/quarter for year/yearquarter bucketing; theme default 1 is the calendar convention (Q1=Jan-Mar). A non-default value always wins over axis_x.type: temporal for year/yearquarter grains - Vega-Lite's native timeUnit transform has no fiscal-offset concept and would otherwise silently discard the offset. |
AxisYStyle¶
Authored overlay for AxisYStyle. Measure axis style. Theme slot: axis_y.
| Field | Type | Description |
|---|---|---|
grid |
BaseAxisGridStyle | Grid line style for this axis. |
line |
AxisLineStyle | Domain line style for this axis. |
ticks |
AxisTicksStyle | Tick mark style for this axis. |
labels |
AxisLabelStyle | Axis label style. |
title |
AxisTitleStyle | Axis title style. |
scale |
BaseScaleStyle | Per-axis scale overrides; None means no override. |
position |
enum: "left", "right", "auto" | Y-axis position; auto flips when endpoint labels are on the right. |
mirror |
bool | AxisMirrorStyle | Draw the y-scale on both left and right edges (wide charts). true mirrors the primary axis's label verbatim; an object (format/expr) relabels only the mirrored edge (e.g. a percent-of-total right axis next to an absolute-value left axis) while ticks stay aligned to the single shared scale. Only meaningful on axis_y. |
BandAxisStyle¶
Authored overlay for BandAxisStyle. Scale-type overlay for band (categorical) axes. Theme slot: axis_band.
| Field | Type | Description |
|---|---|---|
grid |
BaseAxisGridStyle | Grid line style for this axis. |
line |
AxisLineStyle | Domain line style for this axis. |
ticks |
AxisTicksStyle | Tick mark style for this axis. |
labels |
AxisLabelStyle | Axis label style. |
title |
AxisTitleStyle | Axis title style. |
scale |
BaseScaleStyle | Per-axis scale overrides; None means no override. |
band_position |
float | Band position within the step (0–1); None uses Vega-Lite's default. |
SupportTableStyle¶
Authored overlay for SupportTableStyle. Attached support_table style. Lives at style.charts.support_table.*.
| Field | Type | Description |
|---|---|---|
font |
SupportTableFontStyle | Support_table font style overrides. Unset fields fall back to style.charts.font. |
neutral_color |
str | Ink for cells that belong to no series (totals, source columns, labels) when font.color is 'auto'. Falls back to style.charts.font.color. |
divider |
SupportTableDividerStyle | Line at the boundary between the chart plot and the data strip. For position='bottom': the line sits above the strip (below the axis). For position='top': the line sits below the strip rows (above the plot top). |
row |
SupportTableRowStyle | Support_table row padding and divider style. |
label |
SupportTableLabelStyle | Row label (series name) style. |
padding_top |
float | Padding above the topmost strip row in pixels. For position='bottom': gap between axis labels and the first row. For position='top': space above the topmost row (outer edge of strip). |
padding_bottom |
float | Padding below the last strip row in pixels. For position='bottom': space below the last row. For position='top': gap between the last row and the plot top edge. |
label_max_lines |
int | Number of x-axis label lines to reserve in the axis gap (only used for position='bottom'; ignored for position='top'). Typically 1 or 2. |
position |
enum: "top", "bottom", "left", "right" | Strip placement relative to the chart plot. 'top'/'bottom' apply when the chart's category axis is horizontal (vertical bar, line, area): 'top' places the strip above the plot, 'bottom' places it below with the x-axis between plot and strip. 'left'/'right' apply when the category axis is vertical (a horizontal bar): the strip renders as value columns beside the plot instead of rows above or below it. 'auto' uses 'top' on a horizontal category axis and the side the category labels are on is used on a vertical one. |
EndpointLabelsConfig¶
Authored overlay for EndpointLabelsConfig. Series names printed on the chart itself instead of in a legend.
| Field | Type | Description |
|---|---|---|
visible |
bool | const: "auto" | Print series names on the chart instead of in a legend. 'auto' on every built-in theme: used wherever the shape can name every series (line and area charts, and stacked bars), with a legend on grouped bars, layered charts, small multiples, and very narrow cards. Set true to print them on every shape that can, or false to move the names back into a legend everywhere. Where the labels do appear they replace the color legend, so this setting and not legend is what removes them. |
label_offset |
float | Gap in pixels between the plot and the series labels. |
height |
float | Height in pixels of the label strip above a horizontal stacked bar. |
BarGroupedStyle¶
Authored overlay for BarGroupedStyle. Band-scale padding for grouped (side-by-side) bars.
| Field | Type | Description |
|---|---|---|
padding_inner |
float | Gap between groups, as a share of the band step. |
padding_outer |
float | Margin at both plot edges, as a share of the band step. |
BarChartMarksStyle¶
Authored overlay for BarChartMarksStyle. Bar-family mark overrides. Only bar and text (endpoint labels) are valid.
| Field | Type | Description |
|---|---|---|
bar |
BarMarkStyle | Bar mark overrides for bar charts; inherits from global. |
text |
TextMarkStyle | Text mark overrides for bar endpoint labels; inherits from global. |
LayerAxisYStyle¶
Per-layer y-axis settings on a layered chart.
| Field | Type | Description |
|---|---|---|
position |
enum: "left", "right" | Y-axis side for this layer (left or right). |
title |
str | Title on this layer's own y axis; defaults to the layer's label. |
scale |
LayerAxisYScale | Scale options for this layer's y axis, holding the [min, max] domain. |
ticks |
LayerAxisYTicks | Tick options for this layer's y axis, holding the target count. |
grid |
LayerAxisYGrid | Grid options for this layer's y axis, holding its visibility. |
labels |
LayerAxisYLabels | Tick-label options for this layer's y axis, holding the number format. |
BarLayerStyle¶
Authored overlay for BarLayerStyle. Required wrapper for bar-layer mark overrides (built into a Patch by build_patch_model).
| Field | Type | Description |
|---|---|---|
marks |
BarChartMarksStyle | Mark overrides for this bar layer. |
LineLayerStyle¶
Authored overlay for LineLayerStyle. Required wrapper for line-layer mark overrides (built into a Patch by build_patch_model).
| Field | Type | Description |
|---|---|---|
marks |
LineChartMarksStyle | Mark overrides for this line layer. |
AreaLayerStyle¶
Authored overlay for AreaLayerStyle. Required wrapper for area-layer mark overrides (built into a Patch by build_patch_model).
| Field | Type | Description |
|---|---|---|
marks |
AreaChartMarksStyle | Mark overrides for this area layer. |
ScatterLayerStyle¶
Authored overlay for ScatterLayerStyle. Required wrapper for scatter-layer mark overrides (built into a Patch by build_patch_model).
| Field | Type | Description |
|---|---|---|
marks |
ScatterChartMarksStyle | Mark overrides for this scatter layer. |
LineChartMarksStyle¶
Authored overlay for LineChartMarksStyle. Line-family mark overrides.
| Field | Type | Description |
|---|---|---|
line |
LineMarkStyle | Line mark overrides; inherits from global. |
point |
PointMarkStyle | Point mark overrides; inherits from global. |
text |
TextMarkStyle | Text mark overrides; inherits from global. |
rule |
RuleMarkStyle | Rule mark overrides; None inherits global. |
AreaChartMarksStyle¶
Authored overlay for AreaChartMarksStyle. Area-family mark overrides.
| Field | Type | Description |
|---|---|---|
area |
AreaMarkStyle | Area fill mark overrides; inherits from global. |
line |
AreaLineStyle | Top-edge line stroke/halo/label overrides; inherits from global. |
point |
PointMarkStyle | Point-overlay mark overrides; inherits from global. |
ScatterChartMarksStyle¶
Authored overlay for ScatterChartMarksStyle. Scatter-family mark overrides.
| Field | Type | Description |
|---|---|---|
point |
PointMarkStyle | Point mark overrides; inherits from global. |
text |
TextMarkStyle | Text mark overrides; inherits from global. |
HeatmapChartMarksStyle¶
Authored overlay for HeatmapChartMarksStyle. Heatmap-family mark overrides.
| Field | Type | Description |
|---|---|---|
rect |
RectMarkStyle | Rect mark overrides; inherits from global. |
text |
TextMarkStyle | Text mark overrides; None inherits global. |
PieLegendStyle¶
Authored overlay for PieLegendStyle.
| Field | Type | Description |
|---|---|---|
direction |
enum: "horizontal", "vertical" | Legend layout direction. 'auto' infers it from the edge: horizontal on top/bottom, vertical on left/right. |
columns |
int | Legend entry columns. Zero keeps the renderer default; positive values set Vega-Lite legend columns. |
compact_columns |
int | Entry columns when a horizontal legend wraps: the automatic compact top legend, or an inferred-horizontal legend too wide for one row. |
row |
LegendRowStyle | Chrome around each entry of a single-row top legend. |
label |
LegendLabelStyle | Legend label style. |
title |
LegendTitleStyle | Legend title style. |
visible |
bool | const: "auto" | Show the legend. 'auto' shows it unless direct labeling (endpoint labels, or a pie's slice labels) names the series instead; true keeps it beside direct labels and false hides it. |
symbol_limit |
int | Maximum number of legend entries to display; maps to VL symbolLimit. None uses Vega-Lite's default (no cap). Set to a positive integer to prevent legend overflow on high-cardinality series. |
values |
list[str] | Explicit legend entry order/filter; each entry resolves against the real legend domain by its rendered text or its column/measure name (case/separator-insensitive). None lets the renderer infer order from the data. |
symbol_shape |
enum: "circle", "square", "cross", "diamond", "triangle-up", "triangle-down", "triangle-right", "triangle-left", "stroke", "arrow", "wedge", "triangle" | Override the legend glyph shape; maps to VL legend.symbolType. 'auto' uses the mark-aware glyph derived from the chart's mark type. |
symbol_fill |
bool | const: "auto" | When False, emits symbolFillColor='transparent' to produce a hollow legend glyph. 'auto' uses Vega-Lite's default (filled symbol). |
position |
PiePositionStyle | Pie key placement: edge and align along it. |
TotalStyle¶
Authored overlay for TotalStyle. Donut center total paint: value (the number) and label (the caption).
| Field | Type | Description |
|---|---|---|
value |
TotalValueSlotStyle | Style for the donut center value (the number), including its format. |
label |
TotalSlotStyle | Style for the donut center label (the caption). |
PieChartMarksStyle¶
Authored overlay for PieChartMarksStyle. Pie/donut-family mark overrides.
| Field | Type | Description |
|---|---|---|
slice |
SliceMarkStyle | Slice mark overrides; inherits from global. |
text |
TextMarkStyle | Text mark overrides; None inherits global. |
ConditionalRule¶
A single conditional formatting rule.
| Field | Type | Description |
|---|---|---|
eq |
Any | Match rows where the column value equals this value. |
ne |
Any | Match rows where the column value does not equal this value. |
lt |
int | float | Match rows where the column value is less than this number. |
lte |
int | float | Match rows where the column value is less than or equal to this number. |
gt |
int | float | Match rows where the column value is greater than this number. |
gte |
int | float | Match rows where the column value is greater than or equal to this number. |
between |
list[int | float] | Match rows where the column value falls in [low, high] (inclusive). |
in |
list[Any] | Match rows where the column value is in this list. |
is_null |
bool | Match null rows (true) or non-null rows (false). |
default |
const: true | Catch-all rule that matches any row not matched by earlier rules. Must be the last entry. |
background |
str | Cell background color applied when the rule matches. |
font |
FontStyle | Font style overrides (color, weight, style, decoration) applied when the rule matches. |
glyph |
str | Text shown before the cell value when the rule matches. |
glyph_color |
str | Color for the glyph when the rule matches. Requires glyph to be set. |
tone |
enum: "positive", "negative", "warning", "info" | Semantic tone (positive|negative|warning|info) that colors the glyph via the theme's tone palette; the preferred, theme-adaptive alternative to a raw glyph_color. Requires glyph. Explicit glyph_color wins. |
SingleLineFontStyle¶
Text appearance for a slot that always paints one line.
| Field | Type | Description |
|---|---|---|
extends |
str | Name of a style.fonts entry this slot starts from; the fields set beside it override that entry. |
family |
str | Font family or CSS stack; single-quote multiword names: "'Source Serif 4', serif". |
color |
str | Text color as a CSS color string. |
size |
float | Font size in pixels. |
weight |
str | float | How heavy the type is drawn (e.g., 'bold', 400, 700). |
style |
enum: "normal", "italic" | Upright or slanted type (normal or italic). |
decoration |
enum: "none", "line-through", "underline" | Line drawn on the text (underline, line-through, or none). |
case |
enum: "none", "sentence", "title", "upper", "lower", "slug", "camel" | Letter-case transform applied at render time. 'title' uses Chicago/Gruber rules and preserves tokens with internal capitals (ARR, iPhone). 'sentence' uppercases only the first character. 'none' (default) emits the string without any letter-case change. |
KpiValueStyle¶
Authored overlay for KpiValueStyle. KPI headline value slot: font, format, and the affix and glyph beside it.
| Field | Type | Description |
|---|---|---|
font |
SingleLineFontStyle | Headline value font. Unset fields fall back to style.charts.kpi.font. |
format |
str | FormatConfig | enum: "compact", "currency", "currency_compact", "currency_full", "currency_whole", "date_short", "delta", "email", "id", "integer", "latitude", "longitude", "number", "number_full", "percent", "percent_delta", "percent_whole", "rating", "time_short", "url", … (1 more; see the JSON Schema) | Format for the KPI headline value: D3 format string, preset name, or FormatConfig object. A date value defaults to date_short when unformatted. |
compact |
KpiCompactStyle | Compaction applied to an unformatted headline number. |
affix |
KpiTextSlotStyle | Currency or percent sign written around the headline number. |
glyph |
KpiTextSlotStyle | Indicator glyph drawn before the headline value. |
KpiLabelStyle¶
Authored overlay for KpiLabelStyle. KPI label slot: font and how a long label fits the card.
| Field | Type | Description |
|---|---|---|
font |
SingleLineFontStyle | Label font. Unset fields fall back to style.charts.kpi.font. |
overflow |
enum: "clip", "truncate", "wrap-two", "wrap" | How a label too wide for the card is fit. Falls back to style.charts.title.overflow. |
KpiSupportStyle¶
Authored overlay for KpiSupportStyle. KPI support row: font, format, tone, and its glyph.
| Field | Type | Description |
|---|---|---|
font |
KpiSupportFontStyle | Support row font; its color paints the support value. Unset fields fall back to style.charts.kpi.font. |
format |
str | FormatConfig | enum: "compact", "currency", "currency_compact", "currency_full", "currency_whole", "date_short", "delta", "email", "id", "integer", "latitude", "longitude", "number", "number_full", "percent", "percent_delta", "percent_whole", "rating", "time_short", "url", … (1 more; see the JSON Schema) | How the support value is written: a D3 spec, a preset name, or a format block. |
tone |
enum: "positive", "negative", "warning", "info" | Semantic color for the support value and glyph. On a delta format (delta, percent_delta, percent_number_delta, percentage_points_delta) the color follows the sign and tone is the direction: positive (the default) means up is good, negative means up is bad; zero is muted. warning and info are fixed colors, as is any tone on a non-delta format. |
glyph |
KpiSupportGlyphStyle | Glyph drawn before the support value. |
FontStyle¶
Text appearance, including leading for text that wraps. Merged as a unit.
| Field | Type | Description |
|---|---|---|
extends |
str | Name of a style.fonts entry this slot starts from; the fields set beside it override that entry. |
family |
str | Font family or CSS stack; single-quote multiword names: "'Source Serif 4', serif". |
color |
str | Text color as a CSS color string. |
size |
float | Font size in pixels. |
weight |
str | float | How heavy the type is drawn (e.g., 'bold', 400, 700). |
style |
enum: "normal", "italic" | Upright or slanted type (normal or italic). |
decoration |
enum: "none", "line-through", "underline" | Line drawn on the text (underline, line-through, or none). |
case |
enum: "none", "sentence", "title", "upper", "lower", "slug", "camel" | Letter-case transform applied at render time. 'title' uses Chicago/Gruber rules and preserves tokens with internal capitals (ARR, iPhone). 'sentence' uppercases only the first character. 'none' (default) emits the string without any letter-case change. |
line_height |
float | Line height as a unitless multiple of font size. Cascades through Style.font to all text roles that carry a FontStyle slot. Body prose defaults to 1.25; titles override tighter via their font patch in theme YAML. |
StaticGradientColorStyle¶
Authored overlay for StaticGradientColorStyle. Color config for geo/point_map/table families, no categorical arm.
| Field | Type | Description |
|---|---|---|
static |
str | One color for all marks: a hex, CSS name, rgb()/oklch() or theme token (category[1], positive.solid, dbt-grays.8). A token follows the theme, a hex stays put. |
gradient |
ScaleTargetConfig | Continuous gradient scale for the color encoding. |
TableColumnsStyle¶
Authored overlay for TableColumnsStyle.
| Field | Type | Description |
|---|---|---|
default_width |
float | Default column width in pixels. |
cell_padding |
float | Horizontal padding inside table cells in pixels. |
width_similarity_threshold |
float | Auto-width columns whose min/max ratio >= this threshold are snapped to a shared width before budget allocation. 1.0 disables clustering; 0.0 forces all auto-columns to equal width. |
content_headroom |
float | Fractional breathing room added above the raw p95 column demand when pinning compact columns in mixed (compact + text) tables. 0.10 means each compact column is pinned at 10 % above its measured demand; the extra width is funded by the text-column budget. Has no effect on all-compact tables (proportional scaling already fills the budget). 0.0 disables headroom. |
TableHeaderStyle¶
Authored overlay for TableHeaderStyle.
| Field | Type | Description |
|---|---|---|
visible |
bool | Show the header row (column labels + divider). Set to False on series-keyed tables where column meanings are obvious from context (e.g. donut-attached tables: swatch / share / name / value). Theme YAML supplies the UX default (true) via _base.yaml. |
height |
float | Header row height in pixels. |
font |
FontStyle | Header font style overrides. Unset fields fall back to style.charts.table.font. |
font_compact |
FontStyle | Compact-tier font overrides applied when body size ≤11px; None means no compact override. |
background |
str | Header background color; None means no fill (the divider alone separates header from body). |
overflow |
enum: "clip", "truncate", "wrap-two", "wrap" | What happens to header text too wide for its column (clip, truncate, wrap-two, wrap). |
divider |
TableDividerStyle | Line between the header row and the body. |
TableRowStyle¶
Authored overlay for TableRowStyle.
| Field | Type | Description |
|---|---|---|
height |
float | Body row height in pixels. |
stripe |
TableRowStripeStyle | Alternating row stripe style; None means no stripe. |
divider |
TableDividerStyle | Line under each body row. |
role |
str | Default row role assignment; None means plain body row. |
roles |
TableRowRolesStyle | Per-role style overrides for summary and total rows. |
TableRowNumbersStyle¶
Authored overlay for TableRowNumbersStyle. Leading row-number column (style.table.row_numbers).
| Field | Type | Description |
|---|---|---|
visible |
bool | Show a leading row-number column; false by default. |
header |
str | Header label for the row-number column. |
align |
enum: "left", "right" | Text alignment for the row-number column. |
TableTitleStyle¶
Authored overlay for TableTitleStyle.
| Field | Type | Description |
|---|---|---|
height |
float | Minimum title-block height in pixels. Applies as a floor only when a subtitle is present; a title-only block sizes to its natural content height instead. |
font |
FontStyle | Table title font style overrides. Unset fields fall back to style.charts.table.font. |
PaginationConfig¶
Table pagination configuration.
| Field | Type | Description |
|---|---|---|
enabled |
bool | Enable client-side pagination for table charts. |
page_rows |
int | Rows per page, a ceiling bounded by the tile height. The theme defaults it to 20; null means unlimited (the tile height alone sizes the page). |
TableColumnDefaultsConfig¶
Table-level defaults applied to every column unless overridden per-column.
| Field | Type | Description |
|---|---|---|
width |
int | str | Override column width in pixels (integer) or a CSS width string. |
align |
enum: "left", "center", "right" | Override cell text alignment (left, center, or right). |
format |
str | FormatConfig | enum: "compact", "currency", "currency_compact", "currency_full", "currency_whole", "date_short", "delta", "email", "id", "integer", "latitude", "longitude", "number", "number_full", "percent", "percent_delta", "percent_whole", "rating", "time_short", "url", … (1 more; see the JSON Schema) | How values are written in every column, unless a column sets its own. |
background |
str | Override cell background color (CSS color string), or a column ID: a value matching a query column name uses that row's value. |
font |
ColumnFontStyle | Override cell font style (size, weight, color, family). |
TableColumnConfig¶
Configuration for a single table column.
| Field | Type | Description |
|---|---|---|
visible |
bool | Whether this column renders. Defaults to true: style.columns is styling only, so naming a column here never hides it or any other column. Set false to hide it while keeping its values available to link: templates and style-input references. A column consumed as a style input (another column's background / font.color / font.weight names it) is hidden automatically unless it has its own style.columns entry; an explicit entry is a display signal and the column renders. |
label |
str | Header, default the prettified column name (first_year reads "First year"). Alias in SQL instead. |
format |
str | FormatConfig | enum: "compact", "currency", "currency_compact", "currency_full", "currency_whole", "date_short", "delta", "email", "id", "integer", "latitude", "longitude", "number", "number_full", "percent", "percent_delta", "percent_whole", "rating", "time_short", "url", … (1 more; see the JSON Schema) | How the number is written: a D3 spec, a preset name, or a format block. |
spark |
SparkConfig | enum: "line", "area", "bar", "bar-normalize", "column", "columns" | Miniature chart drawn inside each cell: a type name, or a full block. |
swatch |
bool | When True, render this column's cells as small rounded color squares instead of text. Cell value must be a CSS color string (e.g. '#3164a3'). Useful for series-keyed tables, e.g. a 'Series' column where each row is identified by its color in the parent chart's palette. |
width |
int | str | Column width (integer pixels or CSS string like '10%'). |
max_width |
int | str | Maximum column width for auto-sized text columns (integer pixels or CSS string like '30%'). Cannot be set together with width:. |
align |
enum: "left", "center", "right" | Text alignment in cells (left, center, right). |
header_overflow |
enum: "clip", "truncate", "wrap-two", "wrap" | What happens to header text too wide for its column (clip, truncate, wrap-two, wrap). |
header_link |
str | Link | URL template that makes the column header clickable, or {url, open} to choose how a click opens the target. |
link |
str | Link | URL template for cell values, with the row's fields available. Write {url, open} to choose how a click opens the target. |
background |
str | Cell background color (hex string, or 'transparent'/'none'), or a column ID: a value matching a query column name uses that row's value in the named column instead of the literal string. |
font |
ColumnFontStyle | Cell font style overrides. color and weight resolve column-ID-first, the same as background: a value matching a query column name uses that row's value in the named column. |
scale |
ColumnScaleConfig | Continuous color mapping configuration for this column. |
glyph |
str | Text shown before every cell value; fills the same slot as format.prefix and wins over it. |
glyph_color |
str | Color for the glyph. Requires glyph to be set. |
PaginatorStyle¶
Authored overlay for PaginatorStyle. Visual style for the paginator control (chevrons + page numbers).
| Field | Type | Description |
|---|---|---|
color_active |
str | Current page and live chevron color (theme body ink). |
color_inactive |
str | Other pages and ellipsis color (theme secondary text). |
color_disabled |
str | Chevron color when at first/last page (signals disabled by tone). |
font |
FontStyle | Paginator font overrides (size, family). |
weight_active |
int | Font weight for the current (selected) page number. |
weight_inactive |
int | Font weight for other pages and ellipsis. |
weight_chevron |
int | Font weight for the prev/next chevrons (live and disabled). Usually heavier than weight_active so the chevrons read as interactive affordances against the lighter page numbers. |
item_width |
float | Per-item slot width in pixels (drives layout step). |
TableEdgeStyle¶
Authored overlay for TableEdgeStyle. more_rows or empty_state edge-case UI.
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Edge-case UI (more_rows / empty_state) font style overrides. Unset fields fall back to style.charts.table.font. |
SparkStyle¶
Authored overlay for SparkStyle. Inline sparkline defaults (inside table cells).
| Field | Type | Description |
|---|---|---|
color |
str | Sparkline line/point color; None seeds from style.charts.color.categorical.single_series_palette[0]. |
padding |
str | float | SpacingValues | Cell padding around the sparkline in pixels. |
empty |
SparkEmptyStyle | Style for empty/no-data sparklines. |
single_value |
SparkSingleValueStyle | Style for single-data-point sparklines. |
columns |
SparkColumnsStyle | Style for column-type sparklines. |
column |
SparkColumnStyle | Style for the single vertical column spark mark. |
bar |
SparkBarCellStyle | Style for bar/bar-normalize sparklines. |
area |
SparkAreaStyle | Style for area sparklines. |
ProjectionStyle¶
Authored overlay for ProjectionStyle. Vega-Lite map projection configuration for geo chart families.
| Field | Type | Description |
|---|---|---|
type |
str | Vega-Lite projection type (e.g. 'mercator', 'albersUsa', 'equalEarth'). |
BasemapStyle¶
Authored overlay for BasemapStyle. Background map layer for geo charts (especially point maps).
| Field | Type | Description |
|---|---|---|
source |
str | Background topo source identifier; None means no base layer. |
PointMapChartMarksStyle¶
Authored overlay for PointMapChartMarksStyle. Point map-family mark overrides.
| Field | Type | Description |
|---|---|---|
point |
PointMarkStyle | Point mark overrides; inherits from global. |
GeoshapeChartMarksStyle¶
Authored overlay for GeoshapeChartMarksStyle. Geoshape-family mark overrides.
| Field | Type | Description |
|---|---|---|
geoshape |
GeoshapeMarkStyle | Geoshape mark overrides; inherits from global. |
CalloutElementStyle¶
Authored overlay for CalloutElementStyle. Font + y_offset for a callout title or message.
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Element font style overrides. A color of by_tone is the tone's color. Unset fields fall back to style.charts.font. |
y_offset |
float | Vertical offset from the element's anchor in pixels. |
SparkBarBarStyle¶
Authored overlay for SparkBarBarStyle. Bar geometry sub-block for SparkBarChartStyle.
| Field | Type | Description |
|---|---|---|
height |
float | Height of each bar in pixels. |
padding |
float | Vertical padding between bars in pixels. |
color |
str | Bar fill color; None seeds from style.charts.color.categorical.single_series_palette[0]. |
background |
str | Bar track background color - fill-grade, pinned per theme. |
SparkBarChartLabelStyle¶
Authored overlay for SparkBarChartLabelStyle. Category-label sub-block for SparkBarChartStyle.
| Field | Type | Description |
|---|---|---|
visible |
bool | Show series label text next to bars. |
width |
float | Reserved width for bar label text in pixels. |
SparkBarCountStyle¶
Authored overlay for SparkBarCountStyle. Count-value sub-block for SparkBarChartStyle.
| Field | Type | Description |
|---|---|---|
visible |
bool | Show count/value text next to bars. |
width |
float | Reserved width for bar count text in pixels. |
CornerStyle¶
Authored overlay for CornerStyle. Corner rounding only, for a slot whose renderer never draws a stroke.
| Field | Type | Description |
|---|---|---|
radius |
float | Corner radius in pixels. |
SubtitleStyle¶
Authored overlay for SubtitleStyle. Subtitle font style for chart subtitles (Table, SparkBar).
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Subtitle font style; theme populates font.size directly. |
TitleWidthOffsetsStyle¶
Authored overlay for TitleWidthOffsetsStyle. Additive level offsets applied to a board/chart title's heading level, by card pixel width.
| Field | Type | Description |
|---|---|---|
tiny |
int | Level offset for the tiny tier (cards narrower than ~360px). |
narrow |
int | Level offset for the narrow tier (cards ~360–559px). |
medium |
int | Level offset for the medium tier (cards ~560–1099px). |
wide |
int | Level offset for the wide tier (cards ~1100px and up). |
TitlePositionStyle¶
Authored overlay for TitlePositionStyle. Vega-Lite title positioning pass-throughs grouped as a sub-object.
| Field | Type | Description |
|---|---|---|
anchor |
str | Title anchor position; theme always sets this. |
angle |
float | const: "auto" | Title rotation angle in degrees; 'auto' lets Vega-Lite choose. |
offset |
float | Title offset from its anchor in pixels; None uses Vega-Lite's default. |
baseline |
enum: "top", "middle", "bottom", "alphabetic", "line-top", "line-bottom" | Title text baseline alignment; 'auto' uses Vega-Lite's default. |
TitleSubtitleStyle¶
Authored overlay for TitleSubtitleStyle. VL subtitle font pass-through, grouped for consistency with TitleStyle.font.
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Subtitle font style overrides (color, family, size, weight). Unset fields fall back to style.font. |
overflow |
enum: "clip", "truncate", "wrap-two", "wrap" | Text overflow mode for the subtitle (clip, truncate, wrap-two, wrap). None means not set at this cascade level (theme floor is wrap-two). |
BlockMarginStyle¶
Authored overlay for BlockMarginStyle. Top and bottom margin for a prose block role, in line-height units.
| Field | Type | Description |
|---|---|---|
margin_top |
float | Space above the block, in line-height units (lh × font_size × value). |
margin_bottom |
float | Space below the block, in line-height units (lh × font_size × value). |
TextColumnStyle¶
Authored overlay for TextColumnStyle. Author overrides for the column layout of board body text.
| Field | Type | Description |
|---|---|---|
max_number |
int | Ceiling on the column count. The renderer may choose fewer when there is not enough text to fill them. None = no ceiling. |
divider |
DividerStyle | Vertical line drawn between columns. |
max_chars |
int | Column text width as a character count, overriding the shipped measure. It caps the text inside a column, and is the width prose and board titles ask a content-sized board for; a column narrower than this limits the text first. |
TextCodeStyle¶
Authored overlay for TextCodeStyle. Inline and fenced code spans in markdown prose. Box group; mono font by default.
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Box text font overrides: full FontStyle (family, color, size, weight, style, decoration, case). |
background |
str | Box background fill. |
border |
str | BorderStyle | Box border (width, color, radius). |
highlight |
bool | Syntax-highlight fenced markdown code blocks. |
theme |
enum: "abap", "algol", "algol_nu", "arduino", "autumn", "borland", "bw", "coffee", "colorful", "default", "dracula", "emacs", "friendly", "friendly_grayscale", "fruity", "github-dark", "gruvbox-dark", "gruvbox-light", "igor", "inkpot", … (30 more; see the JSON Schema) | Pygments style name for fenced markdown code tokens. |
TextBlockquoteStyle¶
Authored overlay for TextBlockquoteStyle. Blockquote prose. Box group; border is the left bar.
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Box text font overrides: full FontStyle (family, color, size, weight, style, decoration, case). |
background |
str | Box background fill. |
border |
str | BorderStyle | Box border (width, color, radius). |
TextBoldStyle¶
Authored overlay for TextBoldStyle. Inline bold text runs in markdown prose, distinct from heading weight.
| Field | Type | Description |
|---|---|---|
weight |
enum: "normal", "bold", "100", "200", "300", "400", "500", "600", "700", "800", "900", 100, 200, 300, 400, 500, 600, 700, 800, 900 | CSS font-weight for bold text runs and bold table cells. |
DividerStyle¶
Authored overlay for DividerStyle. A separator line: whether it draws, and its color, width and line style.
| Field | Type | Description |
|---|---|---|
visible |
bool | Draw the divider. |
color |
str | Divider color. |
width |
float | Divider line width in pixels. |
dasharray |
str | Dash pattern in pixels, such as "6 3" (6 drawn, 3 gap); unset draws a solid line. |
PlaceholderOverlay¶
Authored overlay for PlaceholderOverlay.
| Field | Type | Description |
|---|---|---|
text |
str | Placeholder overlay text shown on empty charts; auto takes the board language's wording. |
background |
str | Overlay background color. |
font |
FontStyle | Overlay font style overrides. Unset fields fall back to style.font. |
CategoryColorBinding¶
Value→color assignments for one data field, shared by every chart.
Required
| Field | Type | Description |
|---|---|---|
values |
dict[str, one of: 'category[1]', 'category[2]', 'category[3]', 'category[4]', 'category[5]', 'category[6]', 'category[7]', 'category[8]', 'category[9]', 'category[10]' | str] | Data value → palette token (category[1], dbt-grays.8) or literal hex. Tokens resolve against the board's theme. |
TooltipStyle¶
Authored overlay for TooltipStyle. Tooltip box style: all cascade keys for the hover bubble.
| Field | Type | Description |
|---|---|---|
format |
str | enum: "compact", "currency", "currency_compact", "currency_full", "currency_whole", "date_short", "delta", "email", "id", "integer", "latitude", "longitude", "number", "number_full", "percent", "percent_delta", "percent_whole", "rating", "time_short", "url", … (1 more; see the JSON Schema) | Default tooltip value format string; theme always provides this. |
background |
str | Tooltip background color (CSS color string); theme always provides this. |
line_height |
float | Tooltip line-height multiplier; theme always provides this. |
max_width |
float | Maximum tooltip width in pixels; theme always provides this. |
gap |
float | Gap in pixels between label and value columns; theme always provides this. |
font |
FontStyle | Tooltip font overrides (size etc.); cascade fills missing fields. Unset fields fall back to style.charts.font. |
padding |
PaddingStyle | Tooltip inner padding (4 sides in pixels); theme always provides this. |
label |
TooltipSlotStyle | Label-column font overrides (color, weight). |
value |
TooltipSlotStyle | Value-column font overrides (color, weight). |
border |
TooltipBorderStyle | Tooltip border style; theme always provides this. |
shadow |
TooltipShadowStyle | Tooltip drop-shadow config; theme always provides this. |
swatch |
TooltipSwatchStyle | Series color swatch size/shape; theme always provides this. |
active_marker |
enum: "fill", "triangle" | How the hovered row is marked in a multi-row (x-unified) tooltip: 'fill' tints the row background (default); 'triangle' draws an edge-flush wedge in the box's left padding instead. Theme always provides this. |
HoverEmphasisStyle¶
Authored overlay for HoverEmphasisStyle. Whether a chart visually answers "what am I pointing at", beyond the tooltip.
| Field | Type | Description |
|---|---|---|
visible |
bool | Whether hovering a mark visually emphasizes it; theme always provides this. |
dimmed_opacity |
float | Share of its own color a receded bar/arc keeps while another mark is hovered. |
drop_line_color |
str | Color of the vertical drop line from a hovered line/area datum down to its axis. |
drop_line_width |
float | Width, in pixels, of the vertical drop line from a hovered line/area datum down to its axis. |
ViewStyle¶
Authored overlay for ViewStyle.
| Field | Type | Description |
|---|---|---|
stroke |
str | Plot area border stroke color; None means no border. |
continuous_width |
float | Default plot width for continuous (quantitative) scales in pixels. |
continuous_height |
float | Default plot height for continuous (quantitative) scales in pixels. |
discrete_width |
float | Default plot width for discrete (ordinal/nominal) scales in pixels; None means auto. |
discrete_height |
float | Default plot height for discrete (ordinal/nominal) scales in pixels; None means auto. |
GlobalMarksStyle¶
Authored overlay for GlobalMarksStyle. Global mark defaults: one MarkStyle per VL mark type.
| Field | Type | Description |
|---|---|---|
bar |
BarMarkStyle | Global bar mark defaults. |
line |
LineMarkStyle | Global line mark defaults. |
area |
AreaMarkStyle | Global area mark defaults. |
point |
PointMarkStyle | Global point mark defaults. |
slice |
SliceMarkStyle | Global slice (arc/pie) mark defaults. |
text |
TextMarkStyle | Global text mark defaults. |
rule |
RuleMarkStyle | Global rule mark defaults. |
rect |
RectMarkStyle | Global rect mark defaults. |
circle |
CircleMarkStyle | Global circle mark defaults. |
geoshape |
GeoshapeMarkStyle | Global geoshape mark defaults. |
HistogramChartStyle¶
Authored overlay for HistogramChartStyle. Histogram chart style.
| Field | Type | Description |
|---|---|---|
axis_quantitative |
QuantitativeAxisStyle | Per-chart-type quantitative-axis overrides; None inherits the global axis_quantitative at render. |
title |
ChartTitleStyle | Chart-level title style override; None inherits the theme title style. |
legend |
LegendStyle | Chart legend style. |
preferred_width |
float | Preferred chart width in pixels. Falls back to style.charts.preferred_width. |
padding |
PaddingStyle | Padding as {top, right, bottom, left} in pixels, never one number. Unset fields fall back to style.charts.padding. |
background |
str | Chart-local background color override; None inherits from theme. |
aspect_ratio |
float | Chart aspect ratio (width/height). Falls back to style.charts.aspect_ratio. |
min_height |
float | Minimum chart height in pixels. Falls back to style.charts.min_height. |
max_height |
float | Maximum chart height in pixels. Falls back to style.charts.max_height. |
color |
ColorStyle | Chart color: static mark paint, categorical palette, and/or gradient scale. |
axis |
BaseAxisStyle | Override applied to both x and y axes; None inherits the global axis at render. |
axis_x |
AxisXStyle | The category or time axis, in either orientation (a horizontal bar's category axis is still axis_x). Inherits the global axis_x. |
axis_y |
AxisYStyle | The measure axis, in either orientation: its number format goes here, a horizontal bar's too. Inherits the global axis_y. |
axis_band |
BandAxisStyle | Per-chart-type categorical (band) axis overrides; None inherits the global band axis at render. |
support_table |
SupportTableStyle | Per-chart-type support_table style override. Unset fields fall back to style.charts.support_table. |
bin_maxbins |
int | Maximum number of bins for auto-binning. |
marks |
HistogramChartMarksStyle | Histogram-family mark overrides. Unset fields fall back to style.charts.marks. |
SeriesLabelStyle¶
Authored overlay for SeriesLabelStyle. Series-label primitive: typography for any text mark that names a
| Field | Type | Description |
|---|---|---|
font |
SeriesLabelFontStyle | Series label font style overrides; cascade fills missing fields from charts.font. Unset fields fall back to style.charts.font. |
LayoutGapStyle¶
Authored overlay for LayoutGapStyle.
| Field | Type | Description |
|---|---|---|
gap |
float | Gap between layout items in pixels. |
GridLayoutStyle¶
Authored overlay for GridLayoutStyle.
| Field | Type | Description |
|---|---|---|
columns |
int | Number of columns in the grid layout. |
gap |
float | Gap between grid cells in pixels. |
TabsStyle¶
Authored overlay for TabsStyle.
| Field | Type | Description |
|---|---|---|
bar_height |
float | Tab bar height in pixels. |
border |
str | BorderStyle | Tab bar border style. |
font |
FontStyle | Tab label font style overrides. Unset fields fall back to style.font. |
active_weight |
str | Font weight for the active tab label. |
inactive_weight |
str | Font weight for inactive tab labels. |
title_baseline_offset |
float | Vertical offset to align SVG tab label baseline in pixels. |
DetailsStyle¶
Authored overlay for DetailsStyle.
| Field | Type | Description |
|---|---|---|
summary_height |
float | Height of the details summary (collapsed) row in pixels. |
border |
str | BorderStyle | Details element border style. |
font |
FontStyle | Details summary font style overrides. Unset fields fall back to style.font. |
arrow |
DetailsArrowStyle | Expand/collapse arrow glyph layout and font style. |
label_x |
float | X position of the details summary label text in pixels. |
text_baseline_offset |
float | Vertical offset to align SVG details text baseline in pixels. |
content_y_offset |
float | Y offset of the expanded details content area in pixels. |
VariablesLabelStyle¶
Authored overlay for VariablesLabelStyle. Per-label font substyle for variable controls. Cascades from variables.font.
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Variable label font style overrides. Unset fields fall back to style.variables.font. |
VariablesValueStyle¶
Authored overlay for VariablesValueStyle. Per-value font substyle for variable controls. Cascades from variables.font.
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Variable value font style overrides. Unset fields fall back to style.variables.font. |
VariablesPlaceholderStyle¶
Authored overlay for VariablesPlaceholderStyle. Per-placeholder font substyle for variable controls.
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Variable placeholder-text font style overrides. Unset fields fall back to style.variables.font. |
InputStyle¶
Authored overlay for InputStyle.
| Field | Type | Description |
|---|---|---|
height |
float | Input control height in pixels. |
border |
CornerStyle | Corner rounding for input controls. |
focus_color |
str | Input focus ring color. Falls back to style.accent. |
background |
str | Input background color. |
padding |
str | float | SpacingValues | Input inner padding in pixels. |
widths |
InputWidths | Per-input-type default widths. |
range |
RangeDefaults | Range input default min/max/step values. |
FooterDividerStyle¶
Authored overlay for FooterDividerStyle. The footer hairline, plus the gap it reserves above the footer text.
| Field | Type | Description |
|---|---|---|
visible |
bool | Draw the divider. |
color |
str | Divider color. |
width |
float | Divider line width in pixels. |
dasharray |
str | Dash pattern in pixels, such as "6 3" (6 drawn, 3 gap); unset draws a solid line. |
gap |
float | Vertical gap between the footer text and its divider. |
NumberLocale¶
A d3 formatLocale definition.
Required
| Field | Type | Description |
|---|---|---|
decimal |
str | The decimal mark (e.g. "."). |
thousands |
str | The group separator (e.g. ","). |
grouping |
tuple[int, ...] | The group sizes (e.g. [3]), cycled as needed. |
currency |
tuple[str, str] | The currency prefix and suffix (e.g. ["$", ""]) a $ in a d3 spec prints. |
Optional
| Field | Type | Description |
|---|---|---|
percent |
str | The percent sign. |
minus |
str | The minus sign. |
analytic |
tuple[str, str, str, str] | The extra-short thousand, million, billion and trillion suffixes, where a magnitude is declared once (en-US: K, M, B, T). A leading space, where a locale wants one, is part of the suffix. |
narrative |
tuple[str, str, str, str] | The abbreviated thousand, million, billion and trillion suffixes on every value (en-US: ["k", "mn", "bn", "trn"]). |
TimeLocale¶
A d3 timeFormatLocale definition.
Required
| Field | Type | Description |
|---|---|---|
date_time |
str | The %c pattern. |
date |
str | The %x pattern. |
time |
str | The %X pattern. |
periods |
tuple[str, str] | The AM and PM names. |
days |
tuple[str, str, str, str, str, str, str] | The weekday names, Sunday first. |
short_days |
tuple[str, str, str, str, str, str, str] | The abbreviated weekday names. |
months |
tuple[str, str, str, str, str, str, str, str, str, str, str, str] | The month names, January first. |
short_months |
tuple[str, str, str, str, str, str, str, str, str, str, str, str] | The abbreviated month names. |
week_start |
enum: "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" | The first day of the calendar week. |
BaseAxisGridStyle¶
Authored overlay for BaseAxisGridStyle. Grid line style for all axis variants.
| Field | Type | Description |
|---|---|---|
visible |
bool | Show grid lines; None inherits from parent axis. |
opacity |
float | Grid line opacity; None uses Vega-Lite's default. |
width |
float | Grid line width in pixels; None uses Vega-Lite's default. |
color |
str | Grid line color; None uses Vega-Lite's default. |
dash |
list[float] | Dash pattern for grid lines; None renders a solid line. |
threshold |
AxisGridThresholdStyle | Threshold-rule gridline style; None inherits from parent axis. |
AxisLineStyle¶
Authored overlay for AxisLineStyle. Axis domain/baseline line style. Renamed from AxisDomainStyle:
| Field | Type | Description |
|---|---|---|
visible |
bool | Show the axis domain line; None inherits from parent axis. |
width |
float | Domain line width in pixels; None uses Vega-Lite's default. |
color |
str | Domain line color; None uses Vega-Lite's default. |
AxisTicksStyle¶
Authored overlay for AxisTicksStyle. Tick marks on an axis: visibility, color, size, and cadence.
| Field | Type | Description |
|---|---|---|
visible |
bool | Show axis ticks; None inherits from parent axis. |
color |
str | Tick color; None uses Vega-Lite's default. |
length |
float | Tick length in pixels; None uses Vega-Lite's default. |
width |
float | Tick stroke width in pixels; None uses Vega-Lite's default. |
offset |
float | const: "auto" | Pixel offset of ticks from their default position; 'auto' means no offset. |
count |
int | const: "auto" | Target number of axis ticks, or 'auto' for the engine's own sparse ladder: a target everywhere, never an exact count. On the measure axis (axis_y) the renderer computes an explicit round-numbered ladder of at most this many ticks. On axis_x it passes through as VL's axis.tickCount: a temporal scale honors it closely, a quantitative one rounds to a nearby round-numbered ladder. To name the interval instead of the count, author ticks.step on a quantitative axis_x. An ordinal axis_x has no tick-count concept and ignores this. |
step |
int | Tick interval on axis_x. Alongside ticks.time_unit it is a multiple of that calendar grain (time_unit: year, step: 5 -> a tick every 5 years). On its own it is a numeric interval for a quantitative axis (step: 1000 -> a tick every 1000), and acts as a floor rather than a fixed ladder, so the axis keeps covering the data as its range grows. A bare step on an axis that is not quantitative is an error, not a no-op; axis_y rejects step entirely (set ticks.count there instead). |
AxisLabelStyle¶
Authored overlay for AxisLabelStyle. Axis label: font + padding + VL-passthrough.
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Axis element font style overrides. Unset fields fall back to style.charts.font. |
padding |
float | Padding between axis labels and ticks in pixels; None inherits from parent axis. |
max_width |
float | const: "auto" | Maximum label width in pixels; 'auto' uses Vega-Lite's default (180px). |
angle |
float | const: "auto" | Label rotation angle in degrees; 'auto' uses Vega-Lite's default. |
align |
enum: "left", "right", "center", "inward", "outward" | Horizontal text alignment of labels. 'left'/'right'/'center' are absolute. 'inward' hugs the plot (own-side: left on a left axis, right on a right axis); 'outward' hugs away from the plot (Vega-Lite's default growth direction). inward/outward are a no-op on an axis with no left/right edge. 'auto' uses Vega-Lite's default, except that a right-edge quantitative axis with a number format and a tabular label font decimal-aligns its labels; a house format alias does so even over an align set here. |
overlap |
AxisLabelOverlapConfig | Label overlap strategy enablement. None inherits from the theme cascade. Set individual bools to enable/disable; they are applied in fixed order skip→tilt. On bucketed temporal axes, skip thins label visibility to a coarser calendar period without changing the axis or label time unit. |
min_gap |
float | Minimum pixel gap between labels; None uses Vega-Lite's default (0px). |
visible |
bool | const: "auto" | Show axis labels; 'auto' uses Vega-Lite's default (labels shown). |
expr |
str | Custom Vega expression for label text; None uses smart temporal defaults when applicable. |
bound |
bool | float | const: "auto" | Hide labels that overflow the axis range; 'auto' uses Vega-Lite's default. |
flush |
bool | float | const: "auto" | Align first/last label flush with the scale range; 'auto' uses Vega-Lite's default. |
offset |
float | const: "auto" | Pixel offset of the label from its tick anchor; 'auto' uses Vega-Lite's default. |
format |
str | FormatConfig | enum: "compact", "currency", "currency_compact", "currency_full", "currency_whole", "date_short", "delta", "email", "id", "integer", "latitude", "longitude", "number", "number_full", "percent", "percent_delta", "percent_whole", "rating", "time_short", "url", … (1 more; see the JSON Schema) | Tick value format string; None uses auto-format. |
AxisTitleStyle¶
Authored overlay for AxisTitleStyle. Axis title typography, deliberately thin. A title is one short static
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Axis title font style overrides. Unset fields fall back to style.charts.font. |
padding |
float | Padding between axis title and labels in pixels; None uses Vega-Lite's default. |
angle |
float | const: "auto" | Title rotation angle in degrees; 'auto' uses Vega-Lite's default. |
align |
enum: "left", "right", "center", "inward", "outward" | Horizontal text alignment of the title. 'left'/'right'/'center' are absolute. 'inward'/'outward' resolve against the axis's own left/right edge, same as label.align; a no-op on an axis with no left/right edge. 'auto' uses Vega-Lite's default. |
visible |
bool | const: "auto" | Show the axis title; None uses Vega-Lite's default (title shown). 'auto' shows it only when the chart authors an x_label/y_label. An explicit true/false from any tier wins. |
BaseScaleStyle¶
Authored overlay for BaseScaleStyle. Universal + continuous-only scale config.
| Field | Type | Description |
|---|---|---|
round |
bool | Round scale outputs to nearest integer; None uses Vega-Lite's default (no rounding). |
clamp |
bool | Clamp values to scale domain; None uses Vega-Lite's default (no clamping). |
nice |
bool | Round the axis domain to nice values; None uses Vega-Lite's default. Forwards natively to Vega-Lite's scale.nice. |
padding |
float | Unified scale padding shortcut; dispatches to band, point, or continuous padding per scale type. |
headroom |
float | Fractional breathing room at measure-axis edges, exact (never nice-rounded). Zero-anchored axes (bar; line/area/scatter near zero): domain_max = data_max * (1 + headroom). Zoomed axes (line/area/scatter far from zero): both edges expand: domain_max = data_max + headroom * span; domain_min = data_min - headroom * span. None inherits the theme default; 0 disables headroom. Ignored with an explicit domain or stack: normalize. |
values |
list[Any] | Explicit tick values; None uses Vega-Lite's auto tick values. |
continuous |
ScaleContinuousStyle | Continuous-scale overrides (type, domain, zero, log/pow/symlog params); None means no override. |
ChartTitleFontStyle¶
A chart title's font: a font whose size, weight and family also
| Field | Type | Description |
|---|---|---|
extends |
str | Name of a style.fonts entry this slot starts from; the fields set beside it override that entry. |
family |
str | const: "auto" | Font family name, or 'auto' to follow the card width. |
color |
str | Text color as a CSS color string. |
size |
float | const: "auto" | Font size in pixels, or 'auto' to follow the card width. |
weight |
str | float | const: "auto" | How heavy the type is drawn (e.g., 'bold', 400, 700), or 'auto' to follow the card width. |
style |
enum: "normal", "italic" | Upright or slanted type (normal or italic). |
decoration |
enum: "none", "line-through", "underline" | Line drawn on the text (underline, line-through, or none). |
case |
enum: "none", "sentence", "title", "upper", "lower", "slug", "camel" | Letter-case transform applied at render time. |
line_height |
float | Line height as a unitless multiple of font size. |
LegendRowStyle¶
Authored overlay for LegendRowStyle. Fixed chrome around each entry of a single-row top legend.
| Field | Type | Description |
|---|---|---|
swatch_width |
float | Swatch box width in pixels. |
entry_gap |
float | Gap in pixels between one entry and the next. |
LegendLabelStyle¶
Authored overlay for LegendLabelStyle.
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Legend element font style overrides. Unset fields fall back to style.charts.font. |
padding |
float | Padding between legend symbol and element text in pixels. |
max_width |
float | Maximum label width in pixels; maps to VL labelLimit. None uses Vega-Lite's default. |
LegendTitleStyle¶
Authored overlay for LegendTitleStyle.
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Legend element font style overrides. Unset fields fall back to style.charts.font. |
padding |
float | Padding between legend symbol and element text in pixels. |
visible |
bool | const: "auto" | Show the legend title. 'auto' shows it except on a top legend that runs horizontally; false suppresses it (VL legend.title: null). |
LegendPositionStyle¶
Authored overlay for LegendPositionStyle. Cartesian and geo legend placement: edge, align along it, overlay or reserve.
| Field | Type | Description |
|---|---|---|
edge |
enum: "left", "right", "top", "bottom" | Side of the plot the legend sits on. 'auto' = the engine decides. |
align |
enum: "start", "center", "end" | Position along the edge. 'auto' = the engine decides. |
overlay |
bool | const: "auto" | True floats the legend over the plot, reserving no space; False reserves a strip for it. 'auto' = the engine decides. |
ScaleTargetConfig¶
Authored overlay for ScaleTargetConfig. Scale configuration for a single style target (background or color).
| Field | Type | Description |
|---|---|---|
palette |
str | list[str] | list[float] | enum: "accent", "bluegreen", "blueorange", "bluepurple", "blues", "brownbluegreen", "browns", "category-6-tonal-blue", "category-6-tonal-blue.dark", "category-6-tonal-blue.deep", "category-6-tonal-blue.light", "category-6-tonal-blue.pale", "category-6-tonal-brown", "category-6-tonal-brown.dark", "category-6-tonal-brown.deep", "category-6-tonal-brown.light", "category-6-tonal-brown.pale", "category-6-tonal-green", "category-6-tonal-green.dark", "category-6-tonal-green.deep", … (120 more; see the JSON Schema) | Which colors the scale draws from: a built-in palette name or Vega scheme, a CSS color list for categorical, or a float list for relative stops. |
domain |
const: "data" | Scale domain source ('data' uses the data extent, widened to nice round bounds when nice is true; None uses explicit min/max). |
min |
float | int | Minimum scale domain value (overrides data minimum). |
max |
float | int | Maximum scale domain value (overrides data maximum). |
nice |
bool | Widen a data-derived domain to round ('nice') bounds and label every nice tick on the legend, mirroring Vega-Lite's own scale.nice. Applies to the color scale a gradient legend labels, not the x/y position scale. Ignored once min or max is set; a single-sided bound already fixes that edge exactly. Widening is currently honored on heatmap's themed color gradient only; geoshape's choropleth honors nice: false (exact endpoint labels) but not nice: true's widening. |
null_color |
str | Color assigned to null values. |
hinge |
float | const: "auto" | Diverging scale midpoint value, or 'auto' to use the data midpoint. |
arm_mode |
enum: "asymmetric", "symmetric" | How diverging scale arms are stretched: 'asymmetric' (proportional) or 'symmetric' (equal arms). |
CategoricalColorStyle¶
Authored overlay for CategoricalColorStyle. Categorical palette config: per-series colors and single-series ink list.
| Field | Type | Description |
|---|---|---|
palette |
str | list[str] | enum: "category-6-tonal-blue", "category-6-tonal-blue.dark", "category-6-tonal-blue.deep", "category-6-tonal-blue.light", "category-6-tonal-blue.pale", "category-6-tonal-brown", "category-6-tonal-brown.dark", "category-6-tonal-brown.deep", "category-6-tonal-brown.light", "category-6-tonal-brown.pale", "category-6-tonal-green", "category-6-tonal-green.dark", "category-6-tonal-green.deep", "category-6-tonal-green.light", "category-6-tonal-green.pale", "category-6-tonal-orange", "category-6-tonal-orange.dark", "category-6-tonal-orange.deep", "category-6-tonal-orange.light", "category-6-tonal-orange.pale", … (53 more; see the JSON Schema) | Palette name, or a list of colors, even one: ['#2E6B4F']. |
single_series_palette |
str | list[str] | enum: "category-6-tonal-blue", "category-6-tonal-blue.dark", "category-6-tonal-blue.deep", "category-6-tonal-blue.light", "category-6-tonal-blue.pale", "category-6-tonal-brown", "category-6-tonal-brown.dark", "category-6-tonal-brown.deep", "category-6-tonal-brown.light", "category-6-tonal-brown.pale", "category-6-tonal-green", "category-6-tonal-green.dark", "category-6-tonal-green.deep", "category-6-tonal-green.light", "category-6-tonal-green.pale", "category-6-tonal-orange", "category-6-tonal-orange.dark", "category-6-tonal-orange.deep", "category-6-tonal-orange.light", "category-6-tonal-orange.pale", … (53 more; see the JSON Schema) | Ink without a color column: palette name, or colors list, even one: ['#2E6B4F']. |
DimensionTicksStyle¶
Authored overlay for DimensionTicksStyle. axis_x-only: adds the calendar unit that anchors a step cadence.
| Field | Type | Description |
|---|---|---|
visible |
bool | const: "auto" | Show axis ticks. "auto" shows the tick only where the gridlines can't reach all the way to the labels on their own; None inherits from parent axis. |
color |
str | Tick color; None uses Vega-Lite's default. |
length |
float | Tick length in pixels; None uses Vega-Lite's default. |
width |
float | Tick stroke width in pixels; None uses Vega-Lite's default. |
offset |
float | const: "auto" | Pixel offset of ticks from their default position; 'auto' means no offset. |
count |
int | const: "auto" | Target number of axis ticks, or 'auto' for the engine's own sparse ladder: a target everywhere, never an exact count. On the measure axis (axis_y) the renderer computes an explicit round-numbered ladder of at most this many ticks. On axis_x it passes through as VL's axis.tickCount: a temporal scale honors it closely, a quantitative one rounds to a nearby round-numbered ladder. To name the interval instead of the count, author ticks.step on a quantitative axis_x. An ordinal axis_x has no tick-count concept and ignores this. |
step |
int | Tick interval on axis_x. Alongside ticks.time_unit it is a multiple of that calendar grain (time_unit: year, step: 5 -> a tick every 5 years). On its own it is a numeric interval for a quantitative axis (step: 1000 -> a tick every 1000), and acts as a floor rather than a fixed ladder, so the axis keeps covering the data as its range grows. A bare step on an axis that is not quantitative is an error, not a no-op; axis_y rejects step entirely (set ticks.count there instead). |
time_unit |
enum: "auto", "year", "yearquarter", "yearmonth", "yearweek", "yearmonthdate", "monthofyear", "dayofweek", "dayofmonth", "dayofyear", "hourofday", "none" | Step-anchored tick cadence unit; None disables step-anchored ticks. |
DimensionLabelStyle¶
Authored overlay for DimensionLabelStyle. AxisLabelStyle + dimension-axis-only label fields.
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Axis element font style overrides. Unset fields fall back to style.charts.font. |
padding |
float | Padding between axis labels and ticks in pixels; None inherits from parent axis. |
max_width |
float | const: "auto" | Maximum label width in pixels; 'auto' uses Vega-Lite's default (180px). |
angle |
float | const: "auto" | Label rotation angle in degrees; 'auto' uses Vega-Lite's default. |
align |
enum: "left", "right", "center", "inward", "outward" | Horizontal text alignment of labels. 'left'/'right'/'center' are absolute. 'inward' hugs the plot (own-side: left on a left axis, right on a right axis); 'outward' hugs away from the plot (Vega-Lite's default growth direction). inward/outward are a no-op on an axis with no left/right edge. 'auto' uses Vega-Lite's default, except that a right-edge quantitative axis with a number format and a tabular label font decimal-aligns its labels; a house format alias does so even over an align set here. |
overlap |
AxisLabelOverlapConfig | Label overlap strategy enablement. None inherits from the theme cascade. Set individual bools to enable/disable; they are applied in fixed order skip→tilt. On bucketed temporal axes, skip thins label visibility to a coarser calendar period without changing the axis or label time unit. |
min_gap |
float | Minimum pixel gap between labels; None uses Vega-Lite's default (0px). |
visible |
bool | const: "auto" | Show axis labels; 'auto' uses Vega-Lite's default (labels shown). |
expr |
str | Custom Vega expression for label text; None uses smart temporal defaults when applicable. |
bound |
bool | float | const: "auto" | Hide labels that overflow the axis range; 'auto' uses Vega-Lite's default. |
flush |
bool | float | const: "auto" | Align first/last label flush with the scale range; 'auto' uses Vega-Lite's default. |
offset |
float | const: "auto" | Pixel offset of the label from its tick anchor; 'auto' uses Vega-Lite's default. |
format |
str | FormatConfig | enum: "compact", "currency", "currency_compact", "currency_full", "currency_whole", "date_short", "delta", "email", "id", "integer", "latitude", "longitude", "number", "number_full", "percent", "percent_delta", "percent_whole", "rating", "time_short", "url", … (1 more; see the JSON Schema) | Tick value format string; None uses auto-format. |
time_unit |
enum: "auto", "year", "yearquarter", "yearmonth", "yearweek", "yearmonthdate", "monthofyear", "dayofweek", "dayofmonth", "dayofyear", "hourofday", "none" | Label cadence for temporal axes; None inherits from the parent axis time_unit. |
clock |
enum: 24, 12 | Sub-day clock register for a continuous temporal x-axis: 24 for the unambiguous, meridiem-free 24-hour clock, or 12 for the 12-hour clock with the Noon/Midnight word vocabulary. None leaves the value to the theme cascade. |
tilt_increments |
list[float] | Descending tilt angles for label overlap resolution on discrete x-axes; None disables tilt. |
values |
list[Any] | Dates to keep label text on, chosen from among the axis's ticks (whatever axis_x.scale.values or the auto-fill cadence already produced): this filters which ticks show text, it does not add or remove ticks. Every tick not in this list keeps its position and gridline but has its label blanked. Set axis_x.scale.values separately to change tick/grid density itself. Temporal x-axes only; not supported on a horizontal bar's categorical axis. None labels every tick as usual. |
XScaleStyle¶
Authored overlay for XScaleStyle. Scale config for axis_x.scale only.
| Field | Type | Description |
|---|---|---|
round |
bool | Round scale outputs to nearest integer; None uses Vega-Lite's default (no rounding). |
clamp |
bool | Clamp values to scale domain; None uses Vega-Lite's default (no clamping). |
nice |
bool | Round the axis domain to nice values; None uses Vega-Lite's default. Forwards natively to Vega-Lite's scale.nice. |
padding |
float | Unified scale padding shortcut; dispatches to band, point, or continuous padding per scale type. |
headroom |
float | Fractional breathing room at measure-axis edges, exact (never nice-rounded). Zero-anchored axes (bar; line/area/scatter near zero): domain_max = data_max * (1 + headroom). Zoomed axes (line/area/scatter far from zero): both edges expand: domain_max = data_max + headroom * span; domain_min = data_min - headroom * span. None inherits the theme default; 0 disables headroom. Ignored with an explicit domain or stack: normalize. |
values |
list[Any] | Explicit tick values; None uses Vega-Lite's auto tick values. |
continuous |
ScaleContinuousStyle | Continuous-scale overrides (type, domain, zero, log/pow/symlog params); None means no override. |
x_reverse |
bool | Reverse the x-axis scale direction; None means no reversal. |
AxisMirrorStyle¶
Per-edge label override for the mirrored axis_y.mirror ghost axis.
| Field | Type | Description |
|---|---|---|
format |
str | FormatConfig | enum: "compact", "currency", "currency_compact", "currency_full", "currency_whole", "date_short", "delta", "email", "id", "integer", "latitude", "longitude", "number", "number_full", "percent", "percent_delta", "percent_whole", "rating", "time_short", "url", … (1 more; see the JSON Schema) | Tick value format string for the mirrored edge; None reuses the primary axis's format. |
expr |
str | Custom Vega expression for the mirrored edge's label text; None reuses the primary axis's label expression. |
SupportTableFontStyle¶
The support_table font. color also takes auto.
| Field | Type | Description |
|---|---|---|
extends |
str | Name of a style.fonts entry this slot starts from; the fields set beside it override that entry. |
family |
str | Font family or CSS stack; single-quote multiword names: "'Source Serif 4', serif". |
color |
str | Text color. 'auto' paints a per-series cell in its series' dark ink and every other cell in neutral_color. A color paints every cell. |
size |
float | Font size in pixels. |
weight |
str | float | How heavy the type is drawn (e.g., 'bold', 400, 700). |
style |
enum: "normal", "italic" | Upright or slanted type (normal or italic). |
decoration |
enum: "none", "line-through", "underline" | Line drawn on the text (underline, line-through, or none). |
case |
enum: "none", "sentence", "title", "upper", "lower", "slug", "camel" | Letter-case transform applied at render time. 'title' uses Chicago/Gruber rules and preserves tokens with internal capitals (ARR, iPhone). 'sentence' uppercases only the first character. 'none' (default) emits the string without any letter-case change. |
line_height |
float | Line height as a unitless multiple of font size. Cascades through Style.font to all text roles that carry a FontStyle slot. Body prose defaults to 1.25; titles override tighter via their font patch in theme YAML. |
SupportTableDividerStyle¶
Authored overlay for SupportTableDividerStyle. The rule between plot and strip, plus the gap it reserves before the first row.
| Field | Type | Description |
|---|---|---|
visible |
bool | Draw the divider. |
color |
str | Divider color. |
width |
float | Divider line width in pixels. |
dasharray |
str | Dash pattern in pixels, such as "6 3" (6 drawn, 3 gap); unset draws a solid line. |
gap |
float | Vertical gap between the divider and the first strip row. |
SupportTableRowStyle¶
Authored overlay for SupportTableRowStyle.
| Field | Type | Description |
|---|---|---|
padding |
SupportTableRowPaddingStyle | Row padding style. |
divider |
DividerStyle | Line under each strip row. |
SupportTableLabelStyle¶
Authored overlay for SupportTableLabelStyle. Row label styling.
| Field | Type | Description |
|---|---|---|
font |
SupportTableFontStyle | Row label font style overrides. An 'auto' color follows the table's own font color, or neutral_color when that is also 'auto'. Unset fields fall back to style.charts.support_table.font. |
BarMarkStyle¶
Authored overlay for BarMarkStyle. Bar mark geometry and stroke. Chart-level bar fields live on BarChartStyle.
| Field | Type | Description |
|---|---|---|
border |
str | BorderStyle | Bar border style (color/width also serve as the bar stroke). |
padding |
float | Padding around bar marks in pixels. |
size |
float | Bar width in pixels; overrides all other sizing. |
band_width |
float | Bar width as a fraction of the band step (0–1). |
gap |
float | Target pixel gap between adjacent bars on a continuous scale. |
min_size |
float | Narrowest a computed bar width may shrink to on a continuous scale. |
max_size |
float | Thickest a bar may be, in pixels: caps a band-scale bar's band fraction and a continuous scale's computed width. Unset, band bars are uncapped and a continuous scale applies a built-in ceiling. Also stands in for an unauthored size when reserving axis padding and when budgeting a horizontal bar chart's minimum height. |
opacity |
float | const: "auto" | Bar fill opacity (0 to 1); 'auto' uses VL default. |
labels |
BarLabelsStyle | Value label style for bar marks. |
total_label |
BarTotalLabelStyle | Stack total label style. Only takes effect on stacked bar charts; ignored otherwise. |
TextMarkStyle¶
Authored overlay for TextMarkStyle.
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Text mark font style overrides. Unset fields fall back to style.charts.font. |
align |
str | Horizontal text alignment for text marks. |
LayerAxisYScale¶
Per-layer y-axis scale patch.
| Field | Type | Description |
|---|---|---|
domain |
list[float] | Explicit [min, max] domain for this layer's y scale. |
clip |
bool | Whether marks outside the domain are cut off at the plot edge. False lets them run past the plot. |
LayerAxisYTicks¶
Per-layer y-axis tick patch.
| Field | Type | Description |
|---|---|---|
count |
int | Target number of ticks on this layer's y axis; a target, never an exact count. |
LayerAxisYGrid¶
Per-layer y-axis grid patch.
| Field | Type | Description |
|---|---|---|
visible |
bool | Whether to show grid lines on this layer's y axis. |
LayerAxisYLabels¶
Per-layer y-axis tick-label format patch.
| Field | Type | Description |
|---|---|---|
format |
str | FormatConfig | enum: "compact", "currency", "currency_compact", "currency_full", "currency_whole", "date_short", "delta", "email", "id", "integer", "latitude", "longitude", "number", "number_full", "percent", "percent_delta", "percent_whole", "rating", "time_short", "url", … (1 more; see the JSON Schema) | d3 format string for this layer's y-axis tick labels. |
LineMarkStyle¶
Authored overlay for LineMarkStyle. Line mark stroke, interpolation, and halo. Point mark lives on PointMarkStyle.
| Field | Type | Description |
|---|---|---|
stroke |
StrokeStyle | Line stroke style. |
curve |
enum: "linear", "monotone", "natural", "basis", "cardinal", "step", "step-before", "step-after" | Line interpolation curve, one of a fixed set: 'linear', 'monotone', 'natural', 'basis', 'cardinal', 'step', 'step-before', 'step-after'. On a categorical (nominal/ordinal) x-axis, 'step' draws a full-band-width plateau per x-value instead of VL's centered step; on a continuous (temporal/quantitative) x-axis it passes straight through to VL's native step. |
connect |
bool | const: "auto" | For curve='step' on a categorical (band) x-axis, whether adjacent band plateaus are joined by vertical jumps (True/None) or left as disconnected segments (False). No-op for other curves or a continuous x-axis. |
disconnected_cap |
enum: "butt", "round", "square" | Stroke line cap for the sub-paths of a disconnected band-step (curve='step' + connect=False on a categorical x-axis). Each band is its own flat path there, so the cap lands on every band edge rather than only the two ends of one continuous line; 'butt' keeps plateaus flush with the band. Overrides stroke.cap in that geometry only; every other line keeps stroke.cap. |
disconnected_width |
float | Share of the band width a disconnected band-step plateau spans (curve='step' + connect=False on a categorical x-axis). Below 1 leaves a gap between neighboring plateaus so they don't weld into one bar. Connected lines keep the full band. |
halo_multiplier |
float | Halo stroke width multiplier relative to stroke.width; 0 disables the halo. |
labels |
PointLabelsStyle | Value label style for line marks. |
PointMarkStyle¶
Authored overlay for PointMarkStyle. Point mark style (data-point markers on scatter/point/line/area charts).
| Field | Type | Description |
|---|---|---|
size |
float | const: "auto" | Point size in square pixels; 0 disables points on line charts; 'auto' sizes by data density. |
color |
str | const: "auto" | Point color. On a single-series scatter it recolors the dots, over color.static and the palette; 'auto' inherits the series color. |
shape |
enum: "circle", "square", "cross", "diamond", "triangle-up", "triangle-down", "triangle-right", "triangle-left", "stroke", "arrow", "wedge", "triangle" | Point shape (e.g. 'circle', 'square'); 'auto' uses VL default. |
opacity |
float | Point opacity, 0 to 1. |
filled |
bool | Whether points are filled. |
fill |
str | Point interior fill color; only applied when filled=false. |
stroke_width |
float | const: "auto" | Stroke width in pixels for hollow point rings; 'auto' uses VL default. |
labels |
PointLabelsStyle | Value label style for point marks. On line charts, setting marks.point.labels is an alias for marks.line.labels. |
RuleMarkStyle¶
Authored overlay for RuleMarkStyle. Rule (reference line) mark opacity and stroke.
| Field | Type | Description |
|---|---|---|
opacity |
float | const: "auto" | Mark opacity (0 to 1); 'auto' uses the board opacity. |
stroke |
FontColorStrokeStyle | Mark stroke style. |
AreaMarkStyle¶
Authored overlay for AreaMarkStyle. Area mark fill opacity and shape.
| Field | Type | Description |
|---|---|---|
opacity |
float | Area fill opacity (0–1). |
curve |
enum: "linear", "monotone", "natural", "basis", "cardinal", "step", "step-before", "step-after" | Area interpolation curve, one of a fixed set: 'linear', 'monotone', 'natural', 'basis', 'cardinal', 'step', 'step-before', 'step-after'. On a categorical (nominal/ordinal) x-axis, 'step' draws a full-band-width plateau per x-value instead of VL's centered step; on a continuous (temporal/quantitative) x-axis it passes straight through to VL's native step. Applied to both the fill and its edge line (marks.line) so they trace the same path. |
backdrop |
bool | Whether to paint an opaque fill backdrop behind the area. |
stacked |
AreaStackedMarkStyle | Recipe override applied when the chart is stacked or has a single series: solid fill + background-color separator stroke. |
AreaLineStyle¶
Authored overlay for AreaLineStyle. Stroke/halo/labels for an area chart's top-edge line and value labels.
| Field | Type | Description |
|---|---|---|
stroke |
StrokeStyle | Area top-edge line stroke style. |
halo_multiplier |
float | Halo stroke width multiplier relative to stroke.width; 0 disables the halo. |
labels |
PointLabelsStyle | Value label style for the area's plotted points; inherits from global. |
RectMarkStyle¶
Authored overlay for RectMarkStyle. Rect mark opacity and stroke.
| Field | Type | Description |
|---|---|---|
opacity |
float | const: "auto" | Mark opacity (0 to 1); 'auto' uses the board opacity. |
stroke |
StrokeStyle | Mark stroke style; None means not overridden at this level. |
PiePositionStyle¶
Authored overlay for PiePositionStyle. Pie key placement: edge and align, never overlay.
| Field | Type | Description |
|---|---|---|
edge |
enum: "left", "right", "top", "bottom" | Side of the wheel the key (legend or attached table) sits on. 'auto' = the engine decides. |
align |
enum: "start", "center", "end" | Position of the key along that edge. 'auto' = the engine decides. |
TotalValueSlotStyle¶
Authored overlay for TotalValueSlotStyle. Theme slot for the donut center value (the number): paint plus its format.
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Donut center total element font style overrides. Unset fields fall back to style.charts.font. |
format |
str | FormatConfig | enum: "compact", "currency", "currency_compact", "currency_full", "currency_whole", "date_short", "delta", "email", "id", "integer", "latitude", "longitude", "number", "number_full", "percent", "percent_delta", "percent_whole", "rating", "time_short", "url", … (1 more; see the JSON Schema) | How the donut center value is written: a D3 spec, a preset name, or a format block. |
TotalSlotStyle¶
Authored overlay for TotalSlotStyle. Theme slot for one text element of the donut center total.
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Donut center total element font style overrides. Unset fields fall back to style.charts.font. |
SliceMarkStyle¶
Authored overlay for SliceMarkStyle. Pie/donut slice mark: mark-level paint and layout only.
| Field | Type | Description |
|---|---|---|
opacity |
float | const: "auto" | Arc slice opacity (0 to 1); 'auto' uses the board opacity. |
gap |
float | Angular gap between slices in radians. |
corner_radius |
float | Corner radius of arc slices in pixels. |
stroke |
StrokeStyle | Arc slice stroke style. |
labels |
SliceLabelsStyle | Per-slice label style. |
KpiCompactStyle¶
Authored overlay for KpiCompactStyle. When an unformatted KPI headline compacts, and to what.
| Field | Type | Description |
|---|---|---|
spec |
str | D3 format spec the headline compacts to. |
threshold |
float | Smallest absolute value that compacts; below it, exact digits. |
KpiTextSlotStyle¶
Authored overlay for KpiTextSlotStyle. A KPI text slot styled by its font alone (affix, headline glyph).
| Field | Type | Description |
|---|---|---|
font |
SingleLineFontStyle | Slot font. Unset fields fall back to style.charts.kpi.font. |
KpiSupportFontStyle¶
The support row and glyph font. color also takes auto.
| Field | Type | Description |
|---|---|---|
extends |
str | Name of a style.fonts entry this slot starts from; the fields set beside it override that entry. |
family |
str | Font family or CSS stack; single-quote multiword names: "'Source Serif 4', serif". |
color |
str | Text color. 'auto' is the support tone's color, or the muted ink when the row has no tone. |
size |
float | Font size in pixels. |
weight |
str | float | How heavy the type is drawn (e.g., 'bold', 400, 700). |
style |
enum: "normal", "italic" | Upright or slanted type (normal or italic). |
decoration |
enum: "none", "line-through", "underline" | Line drawn on the text (underline, line-through, or none). |
case |
enum: "none", "sentence", "title", "upper", "lower", "slug", "camel" | Letter-case transform applied at render time. 'title' uses Chicago/Gruber rules and preserves tokens with internal capitals (ARR, iPhone). 'sentence' uppercases only the first character. 'none' (default) emits the string without any letter-case change. |
KpiSupportGlyphStyle¶
Authored overlay for KpiSupportGlyphStyle. KPI support-row glyph slot.
| Field | Type | Description |
|---|---|---|
font |
KpiSupportFontStyle | Glyph font. Unset fields fall back to style.charts.kpi.support.font. |
TableDividerStyle¶
Authored overlay for TableDividerStyle. A table divider that also chooses how far the line runs.
| Field | Type | Description |
|---|---|---|
visible |
bool | Draw the divider. |
color |
str | Divider color. |
width |
float | Divider line width in pixels. |
dasharray |
str | Dash pattern in pixels, such as "6 3" (6 drawn, 3 gap); unset draws a solid line. |
continuous |
bool | Draw one unbroken line across the full table width (true) or only under each column (false). |
TableRowStripeStyle¶
Authored overlay for TableRowStripeStyle. Alternating row stripe style.
| Field | Type | Description |
|---|---|---|
color |
str | Alternating stripe background color; None means no alternating row fill. |
TableRowRolesStyle¶
Authored overlay for TableRowRolesStyle.
| Field | Type | Description |
|---|---|---|
summary |
TableRowRoleStyle | Style for summary role rows. |
total |
TableRowRoleStyle | Style for total role rows. |
ColumnFontStyle¶
A table column's font. color may name a query column, so it is not a color field.
| Field | Type | Description |
|---|---|---|
extends |
str | Name of a style.fonts entry this slot starts from; the fields set beside it override that entry. |
family |
str | Font family or CSS stack; single-quote multiword names: "'Source Serif 4', serif". |
color |
str | Text color (CSS color string), or a column ID: a value matching a query column name uses that row's value in the named column. |
size |
float | Font size in pixels. |
weight |
str | float | How heavy the type is drawn (e.g., 'bold', 400, 700). |
style |
enum: "normal", "italic" | Upright or slanted type (normal or italic). |
decoration |
enum: "none", "line-through", "underline" | Line drawn on the text (underline, line-through, or none). |
case |
enum: "none", "sentence", "title", "upper", "lower", "slug", "camel" | Letter-case transform applied at render time. 'title' uses Chicago/Gruber rules and preserves tokens with internal capitals (ARR, iPhone). 'sentence' uppercases only the first character. 'none' (default) emits the string without any letter-case change. |
line_height |
float | Line height as a unitless multiple of font size. Cascades through Style.font to all text roles that carry a FontStyle slot. Body prose defaults to 1.25; titles override tighter via their font patch in theme YAML. |
SparkConfig¶
Configuration for spark charts (inline sparklines) in table columns.
| Field | Type | Description |
|---|---|---|
type |
enum: "line", "area", "bar", "bar-normalize", "column", "columns" | Spark chart type (line, area, bar, bar-normalize, column, columns). |
color |
str | Color for the spark mark. |
height |
int | Spark chart height in pixels. |
width |
int | Spark chart width in pixels. |
last_visible |
bool | Highlight the last data point (line/area spark charts). |
min_max_visible |
bool | Annotate the min and max data points (line spark charts only). |
fill_opacity |
float | Fill opacity for area spark charts (0–1). |
max |
float | Scaling ceiling: bar-normalize and column clamp the value to it; bar uses it in place of the column's data max. |
thresholds |
dict[int | float, str] | Color thresholds for bar / bar-normalize / column: {value: CSS color string}. |
background |
str | Background track color for bar-normalize chart. |
border_radius |
float | Corner radius in pixels for bar, bar-normalize, and column bars, and for the bar-normalize track. |
value_visible |
bool | Show numeric value label alongside the bar. |
value_suffix |
str | Text placed after the displayed value (e.g., '%'). |
negative_color |
bool | Paint negative values (bar / column / columns) with the theme's tones.negative color instead of the shared spark color. Has no effect on columns with no negative values. |
ColumnScaleConfig¶
Scale-based continuous color mapping for a table column.
| Field | Type | Description |
|---|---|---|
background |
ColumnScaleTargetConfig | Continuous background color mapping for this column. |
color |
ColumnScaleTargetConfig | Continuous text color mapping for this column. |
SparkEmptyStyle¶
Authored overlay for SparkEmptyStyle.
| Field | Type | Description |
|---|---|---|
inset_x |
float | Horizontal inset for the empty sparkline placeholder in pixels. |
stroke |
StrokeStyle | Empty-state placeholder stroke style. |
SparkSingleValueStyle¶
Authored overlay for SparkSingleValueStyle.
| Field | Type | Description |
|---|---|---|
inset_x |
float | Horizontal inset for the single-value sparkline in pixels. |
marker_radius |
float | Radius of the single-value marker circle in pixels. |
SparkColumnsStyle¶
Authored overlay for SparkColumnsStyle. Inline spark.type: columns (multi-value vertical bars) defaults.
| Field | Type | Description |
|---|---|---|
gap |
float | Gap between column bars in pixels. |
padding |
float | Horizontal outer padding of the columns sparkline in pixels. |
min_bar_height |
float | Minimum rendered bar height in pixels. |
border |
CornerStyle | Column bar corner rounding. |
SparkColumnStyle¶
Authored overlay for SparkColumnStyle. Inline spark.type: column (single vertical bar) defaults.
| Field | Type | Description |
|---|---|---|
width |
float | Spark column default width in pixels. |
height |
float | Spark column default height in pixels. |
SparkBarCellStyle¶
Authored overlay for SparkBarCellStyle. Inline spark.type: bar and bar-normalize (single horizontal bar) defaults.
| Field | Type | Description |
|---|---|---|
background |
str | Track background color - fill-grade, pinned per theme. |
color |
str | Bar fill color; None seeds from style.charts.color.categorical.single_series_palette[0]. |
default_max |
float | Default maximum value for bar scale when no explicit max is authored. |
border |
CornerStyle | Corner rounding for spark bar cells. |
font |
FontStyle | Spark bar cell font style overrides. Unset fields fall back to style.charts.font. |
label |
SparkBarLabelStyle | Spark bar inline label style. |
SparkAreaStyle¶
Authored overlay for SparkAreaStyle.
| Field | Type | Description |
|---|---|---|
fill_opacity |
float | Spark area fill opacity (0–1). |
GeoshapeMarkStyle¶
Authored overlay for GeoshapeMarkStyle. Geoshape (choropleth) mark fill and boundary stroke.
| Field | Type | Description |
|---|---|---|
fill |
str | Neutral geoshape fill color. |
stroke |
StrokeStyle | Geoshape boundary stroke style. |
TooltipSlotStyle¶
Authored overlay for TooltipSlotStyle. Typography for a single tooltip slot (label or value).
| Field | Type | Description |
|---|---|---|
font |
FontStyle | Font overrides for this tooltip slot (color, weight). Unset fields fall back to style.charts.font. |
TooltipBorderStyle¶
Authored overlay for TooltipBorderStyle. Tooltip box border: all fields required; theme YAML supplies defaults.
| Field | Type | Description |
|---|---|---|
color |
str | Border color as a CSS color string. |
width |
float | Border width in pixels. |
radius |
float | Border corner radius in pixels. |
TooltipShadowStyle¶
Authored overlay for TooltipShadowStyle. Tooltip drop-shadow toggle. JS applies the shadow expression when visible=true.
| Field | Type | Description |
|---|---|---|
visible |
bool | Show a drop-shadow on the tooltip box; theme always provides this. |
TooltipSwatchStyle¶
Authored overlay for TooltipSwatchStyle. Series color swatch in the tooltip: the mark-colored chip next to each
| Field | Type | Description |
|---|---|---|
size |
float | Swatch edge length in pixels (square). |
radius |
float | Swatch corner radius in pixels (0 = square, ~half of size = circle). |
CircleMarkStyle¶
Authored overlay for CircleMarkStyle. Circle mark opacity and stroke.
| Field | Type | Description |
|---|---|---|
opacity |
float | const: "auto" | Mark opacity (0 to 1); 'auto' uses the board opacity. |
stroke |
StrokeStyle | Unset emits no stroke; Vega-Lite's default applies. |
HistogramChartMarksStyle¶
Authored overlay for HistogramChartMarksStyle. Histogram-family mark overrides.
| Field | Type | Description |
|---|---|---|
bar |
BarMarkStyle | Bar mark overrides; inherits from global. |
rule |
RuleMarkStyle | Rule mark overrides; None inherits global. |
SeriesLabelFontStyle¶
Authored overlay for SeriesLabelFontStyle. Series-label typography with a compact width-tier size.
| Field | Type | Description |
|---|---|---|
extends |
str | Name of a style.fonts entry this slot starts from; the fields set beside it override that entry. |
family |
str | Font family or CSS stack; single-quote multiword names: "'Source Serif 4', serif". |
color |
str | Text color as a CSS color string. |
size |
float | Font size in pixels. |
weight |
str | float | How heavy the type is drawn (e.g., 'bold', 400, 700). |
style |
enum: "normal", "italic" | Upright or slanted type (normal or italic). |
decoration |
enum: "none", "line-through", "underline" | Line drawn on the text (underline, line-through, or none). |
case |
enum: "none", "sentence", "title", "upper", "lower", "slug", "camel" | Letter-case transform applied at render time. 'title' uses Chicago/Gruber rules and preserves tokens with internal capitals (ARR, iPhone). 'sentence' uppercases only the first character. 'none' (default) emits the string without any letter-case change. |
line_height |
float | Line height as a unitless multiple of font size. Cascades through Style.font to all text roles that carry a FontStyle slot. Body prose defaults to 1.25; titles override tighter via their font patch in theme YAML. |
compact_size |
float | Series-label font size in pixels on tiny and narrow cards. |
compact_weight |
str | float | Series-label font weight on tiny and narrow cards. |
DetailsArrowStyle¶
Authored overlay for DetailsArrowStyle. Layout and font style for the expand/collapse arrow chevron.
| Field | Type | Description |
|---|---|---|
x |
float | X position of the arrow in pixels. |
font |
DetailsArrowFontStyle | Arrow glyph font style. |
InputWidths¶
Authored overlay for InputWidths.
| Field | Type | Description |
|---|---|---|
text |
float | Default width for text inputs in pixels. |
number |
float | Default width for number inputs in pixels. |
range |
float | Default width for range inputs in pixels. |
slider_value_min |
float | Minimum width for slider value display in pixels. |
checkbox |
float | Default width for checkbox inputs in pixels. |
daterange |
float | Default width for daterange chip triggers in pixels. |
RangeDefaults¶
Authored overlay for RangeDefaults.
| Field | Type | Description |
|---|---|---|
default_min |
float | Default minimum value for range inputs. |
default_max |
float | Default maximum value for range inputs. |
default_step |
float | Default step size for range inputs. |
AxisGridThresholdStyle¶
Authored overlay for AxisGridThresholdStyle. Threshold-rule color, width, and visibility overrides.
| Field | Type | Description |
|---|---|---|
visible |
bool | Show the threshold rule; None inherits from parent axis. |
color |
str | Color of the threshold rule; None inherits from parent axis. |
width |
float | Width of the threshold rule in pixels; None inherits from parent axis. |
AxisLabelOverlapConfig¶
Authored overlay for AxisLabelOverlapConfig. Two-bool overlap strategy enablement for x-axis labels.
| Field | Type | Description |
|---|---|---|
tilt |
bool | Enable label tilt strategy; None inherits from parent axis. |
skip |
bool | Enable temporal label thinning; ignored on categorical axes; None inherits from parent axis. |
ScaleContinuousStyle¶
Authored overlay for ScaleContinuousStyle. Continuous-scale-only config: type, domain, zero-baseline, log/pow/symlog params.
| Field | Type | Description |
|---|---|---|
zero |
bool | const: "auto" | Force scale zero-baseline: True/False pins it; "auto" runs the dbt charts smart-zero heuristic; None passes through to Vega-Lite. |
type |
enum: "linear", "log", "pow", "sqrt", "symlog", "temporal" | Scale type override; a bar rejects 'log', so use 'symlog'. 'linear'/'log'/'pow'/'sqrt'/'symlog' pass straight through to Vega-Lite's quantitative scale.type. 'temporal' is a dbt charts escape hatch for a cartesian x-axis: it forces a continuous temporal scale instead of the auto-inferred ordinal/nominal bucketed type, which is required before an authored domain of ISO dates can extend the visible range past the data extent. None lets dbt charts/Vega-Lite infer from the field type. |
domain |
tuple[int | float | str, int | float | str] | Explicit [low, high] scale domain; None lets Vega-Lite auto-determine from data. Must have exactly 2 elements: dbt charts only wires a continuous range override through to Vega-Lite, not an explicit category enumeration. Neither element may be null; pin both bounds, or omit the key to fit the data. When type: temporal is set, both elements must be ISO-8601 date/datetime strings. |
log |
ScaleLogStyle | Log-scale param (base); only meaningful with type: log. |
pow |
ScalePowStyle | Power-scale param (exponent); only meaningful with type: pow. |
symlog |
ScaleSymlogStyle | Symlog-scale param (constant); only meaningful with type: symlog. |
SupportTableRowPaddingStyle¶
Authored overlay for SupportTableRowPaddingStyle.
| Field | Type | Description |
|---|---|---|
vertical |
float | Vertical (top/bottom) padding inside support_table rows in pixels. |
horizontal |
float | Horizontal (left/right) padding inside support_table rows in pixels. |
BarLabelsStyle¶
Authored overlay for BarLabelsStyle. Bar mark value-label config. Extends MarkLabelsStyle with bar-specific positions.
| Field | Type | Description |
|---|---|---|
visible |
bool | Show numeric value labels on each mark; False by default. |
field |
str | Column whose text labels each mark; '' where unlabeled, never NULL. Default: the y column. |
format |
str | FormatConfig | enum: "compact", "currency", "currency_compact", "currency_full", "currency_whole", "date_short", "delta", "email", "id", "integer", "latitude", "longitude", "number", "number_full", "percent", "percent_delta", "percent_whole", "rating", "time_short", "url", … (1 more; see the JSON Schema) | Value label format: a name or d3 spec. Without one it takes the axis format, also when field names another column. |
dx |
int | const: "auto" | Horizontal pixel offset for value labels; 'auto' uses the position default. |
dy |
int | const: "auto" | Vertical pixel offset for value labels; 'auto' uses the position default. |
font |
FontStyle | Value label font style (color, size, family, etc.). |
position |
enum: "above", "top", "middle", "middle_aligned", "bottom" | Label position: above (past the bar's end, outside), top (inside the end), middle, middle_aligned (all at one height), bottom (inside the start). |
stacked |
bool | const: "auto" | Label each segment of a stacked bar; 'auto' labels them. False leaves stacked segments unlabeled, so a stack shows a label only if total_label is visible; plain bars keep their labels either way. |
BarTotalLabelStyle¶
Authored overlay for BarTotalLabelStyle. Stack total label style for bar marks.
| Field | Type | Description |
|---|---|---|
visible |
bool | const: "auto" | Show stack total labels above each bar stack; 'auto' hides them. Only takes effect on stacked bar charts; ignored otherwise. |
format |
str | FormatConfig | enum: "compact", "currency", "currency_compact", "currency_full", "currency_whole", "date_short", "delta", "email", "id", "integer", "latitude", "longitude", "number", "number_full", "percent", "percent_delta", "percent_whole", "rating", "time_short", "url", … (1 more; see the JSON Schema) | Number format string for stack total labels. |
dx |
int | const: "auto" | Horizontal pixel offset for stack total labels; 'auto' uses the default offset for the orientation. |
dy |
int | const: "auto" | Vertical pixel offset for stack total labels; 'auto' uses the default offset for the orientation. |
font |
FontStyle | Stack total label font style overrides; cascade fills missing fields from charts.font. Unset fields fall back to style.charts.font. |
StrokeStyle¶
Authored overlay for StrokeStyle. Stroke appearance sub-block shared across mark families.
| Field | Type | Description |
|---|---|---|
color |
str | const: "auto" | Stroke color as a CSS color string. |
width |
float | const: "auto" | Stroke width in pixels. |
cap |
enum: "butt", "round", "square" | How the stroke's ends are finished (butt, round, or square). |
join |
enum: "miter", "round", "bevel" | How two stroke segments are joined (miter, round, or bevel). |
dasharray |
str | Lengths of the dashes and the blanks between them (e.g. '4 2'). |
PointLabelsStyle¶
Authored overlay for PointLabelsStyle. Point/line mark value-label config. Used by both LineMarkStyle and PointMarkStyle.
| Field | Type | Description |
|---|---|---|
visible |
bool | Show numeric value labels on each mark; False by default. |
field |
str | Column whose text labels each mark; '' where unlabeled, never NULL. Default: the y column. |
format |
str | FormatConfig | enum: "compact", "currency", "currency_compact", "currency_full", "currency_whole", "date_short", "delta", "email", "id", "integer", "latitude", "longitude", "number", "number_full", "percent", "percent_delta", "percent_whole", "rating", "time_short", "url", … (1 more; see the JSON Schema) | Value label format: a name or d3 spec. Without one it takes the axis format, also when field names another column. |
dx |
int | const: "auto" | Horizontal pixel offset for value labels; 'auto' uses the position default. |
dy |
int | const: "auto" | Vertical pixel offset for value labels; 'auto' uses the position default. |
font |
FontStyle | Value label font style (color, size, family, etc.). |
position |
enum: "top", "bottom", "left", "right", "middle" | Label position relative to the point. 'top' places labels above the point. 'bottom' places labels below. 'left' to the left. 'right' to the right. 'middle' centers on the point. |
FontColorStrokeStyle¶
Authored overlay for FontColorStrokeStyle. Stroke for rule marks whose color defaults to the root font color.
| Field | Type | Description |
|---|---|---|
color |
str | Stroke color for rule marks. Falls back to style.font.color. |
width |
float | const: "auto" | Stroke width in pixels. |
cap |
enum: "butt", "round", "square" | How the stroke's ends are finished (butt, round, or square). |
join |
enum: "miter", "round", "bevel" | How two stroke segments are joined (miter, round, or bevel). |
dasharray |
str | Lengths of the dashes and the blanks between them (e.g. '4 2'). |
AreaStackedMarkStyle¶
Authored overlay for AreaStackedMarkStyle. Stacked / streamgraph area recipe override: solid fill + perimeter stroke.
| Field | Type | Description |
|---|---|---|
opacity |
float | Area fill opacity (0–1) for the stacked recipe. |
stroke |
StrokeStyle | Perimeter stroke style for the stacked recipe. |
halo_multiplier |
float | Halo stroke width multiplier for the stacked recipe; 0 disables the halo. |
SliceLabelsStyle¶
Authored overlay for SliceLabelsStyle. Pie labels: typography + positioning offsets for per-slice text.
| Field | Type | Description |
|---|---|---|
offset |
float | Radial offset of slice labels from the arc in pixels. |
line_height |
float | Line height for slice labels in pixels. Reserved vertical space above the disk is line_height × <rendered lines> per row, so the same value handles 1-line, 2-line, and multi-line templates. |
font |
SliceLabelFontStyle | Slice label font style overrides. color only takes effect on single-series pies (no color: channel authored); multi-series pies always paint each label with ink derived from its own wedge color against the chart's canvas, and ignore an authored color here. Unset fields fall back to style.charts.font. |
default_template |
LabelsDefaultTemplate | Default Jinja templates for per-slice labels when template is not authored. |
template |
str | Jinja2 label template. Overrides default_template when authored. |
where |
str | Jinja2 boolean filter; labels only render on rows where this is truthy. |
TableRowRoleStyle¶
Authored overlay for TableRowRoleStyle.
| Field | Type | Description |
|---|---|---|
divider |
DividerStyle | Line above rows with this role. |
font |
FontStyle | Per-role font style override; None uses the default row font. |
background |
str | Per-role row background color; None means no override. |
ColumnScaleTargetConfig¶
A table column's scale target: CSS color strings only.
Required
| Field | Type | Description |
|---|---|---|
palette |
str | list[str] | enum: "accent", "bluegreen", "blueorange", "bluepurple", "blues", "brownbluegreen", "browns", "category-6-tonal-blue", "category-6-tonal-blue.dark", "category-6-tonal-blue.deep", "category-6-tonal-blue.light", "category-6-tonal-blue.pale", "category-6-tonal-brown", "category-6-tonal-brown.dark", "category-6-tonal-brown.deep", "category-6-tonal-brown.light", "category-6-tonal-brown.pale", "category-6-tonal-green", "category-6-tonal-green.dark", "category-6-tonal-green.deep", … (120 more; see the JSON Schema) | Which colors the scale draws from: a built-in palette name or Vega scheme, or a CSS color list. |
Optional
| Field | Type | Description |
|---|---|---|
domain |
const: "data" | Scale domain source ('data' uses the data extent, widened to nice round bounds when nice is true; None uses explicit min/max). |
min |
float | int | Minimum scale domain value (overrides data minimum). |
max |
float | int | Maximum scale domain value (overrides data maximum). |
nice |
bool | Widen a data-derived domain to round ('nice') bounds and label every nice tick on the legend, mirroring Vega-Lite's own scale.nice. Applies to the color scale a gradient legend labels, not the x/y position scale. Ignored once min or max is set; a single-sided bound already fixes that edge exactly. Widening is currently honored on heatmap's themed color gradient only; geoshape's choropleth honors nice: false (exact endpoint labels) but not nice: true's widening. |
null_color |
str | Color assigned to null values. |
hinge |
float | const: "auto" | Diverging scale midpoint value, or 'auto' to use the data midpoint. |
arm_mode |
enum: "asymmetric", "symmetric" | How diverging scale arms are stretched: 'asymmetric' (proportional) or 'symmetric' (equal arms). |
SparkBarLabelStyle¶
Authored overlay for SparkBarLabelStyle.
| Field | Type | Description |
|---|---|---|
inset_x |
float | Horizontal inset for the spark bar label in pixels. |
fill |
str | Label text fill color. |
fill_opacity |
float | Label text fill opacity (0–1). |
min_size |
float | Minimum bar fill width required to show the label in pixels. |
height_offset |
float | Vertical offset of the label from its bar top in pixels. |
DetailsArrowFontStyle¶
Authored overlay for DetailsArrowFontStyle. Font style for the expand/collapse arrow glyph.
| Field | Type | Description |
|---|---|---|
size |
float | Font size of the arrow glyph in pixels. |
ScaleLogStyle¶
Authored overlay for ScaleLogStyle. Log-scale-only param.
| Field | Type | Description |
|---|---|---|
base |
float | Log base; only meaningful with type: log. None lets Vega-Lite apply its own default (10). |
ScalePowStyle¶
Authored overlay for ScalePowStyle. Power-scale-only param.
| Field | Type | Description |
|---|---|---|
exponent |
float | Power exponent; only meaningful with type: pow. None uses Vega-Lite's default. |
ScaleSymlogStyle¶
Authored overlay for ScaleSymlogStyle. Symlog-scale-only param.
| Field | Type | Description |
|---|---|---|
constant |
float | Symlog constant; only meaningful with type: symlog. None uses Vega-Lite's default. |
SliceLabelFontStyle¶
The pie slice label font. color also takes auto.
| Field | Type | Description |
|---|---|---|
extends |
str | Name of a style.fonts entry this slot starts from; the fields set beside it override that entry. |
family |
str | Font family or CSS stack; single-quote multiword names: "'Source Serif 4', serif". |
color |
str | const: "auto" | Text color. 'auto' paints each label in the dark ink of its wedge's color. |
size |
float | Font size in pixels. |
weight |
str | float | How heavy the type is drawn (e.g., 'bold', 400, 700). |
style |
enum: "normal", "italic" | Upright or slanted type (normal or italic). |
decoration |
enum: "none", "line-through", "underline" | Line drawn on the text (underline, line-through, or none). |
case |
enum: "none", "sentence", "title", "upper", "lower", "slug", "camel" | Letter-case transform applied at render time. 'title' uses Chicago/Gruber rules and preserves tokens with internal capitals (ARR, iPhone). 'sentence' uppercases only the first character. 'none' (default) emits the string without any letter-case change. |
line_height |
float | Line height as a unitless multiple of font size. Cascades through Style.font to all text roles that carry a FontStyle slot. Body prose defaults to 1.25; titles override tighter via their font patch in theme YAML. |
LabelsDefaultTemplate¶
Authored overlay for LabelsDefaultTemplate. Default Jinja templates for per-slice pie/donut labels.
| Field | Type | Description |
|---|---|---|
with_color |
str | Default per-slice label template when the chart has a color binding. {value_line} stands for the slice value in the slice tooltip's format. |
no_color |
str | Default per-slice label template when the chart has no color binding. {value_line} stands for the slice value in the slice tooltip's format. |
PostgresSourceConfig¶
Postgres source configuration.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "postgres" | |
host |
str | Database host name or IP address. |
dbname |
str | Database name (dbt accepts database as an input alias). |
user |
str | Database user name. |
password |
str | Database password (dbt accepts pass as an input alias). |
Optional
| Field | Type | Description |
|---|---|---|
cache |
bool | str | Cache | const: "forever" | Cache policy default for every query against this source, e.g. cache: 1h: queries inherit it and may refine it; cache: false opts them out. |
max_query_duration_seconds |
int | Maximum execution time for one query in seconds. Overrides execution.max_query_duration_seconds for this source. |
attribution |
dict[str, str] | Cost-attribution pairs sent with every query against this source, e.g. attribution: {team: analytics}. Emitted as BigQuery job labels and as a query comment elsewhere. Keys and values must match BigQuery's label rules ([a-z][a-z0-9_-]{0,62} / [a-z0-9_-]{0,63}). The dbt_charts_ prefix and the app key are reserved for the engine's own identity. |
port |
int | Database port number. |
schema |
str | Default schema for queries. |
connect_timeout |
int | Connection timeout in seconds. |
role |
str | PostgreSQL role to assume after connecting. |
search_path |
str | PostgreSQL search_path for the connection. |
keepalives_idle |
int | Idle seconds before TCP keepalives begin. |
sslmode |
enum: "disable", "allow", "prefer", "require", "verify-ca", "verify-full" | libpq SSL mode forwarded to psycopg2. None lets libpq decide its default. |
sslcert |
str | Path to the client SSL certificate. |
sslkey |
str | Path to the client SSL private key. |
sslrootcert |
str | Path to the trusted SSL certificate authority file. |
application_name |
str | Application name reported to PostgreSQL. |
retries |
int | Number of connection retry attempts. |
SnowflakeSourceConfig¶
Snowflake source configuration.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "snowflake" | |
account |
str | Snowflake account identifier (e.g. xy12345.us-east-1). |
database |
str | Snowflake database name. |
Optional
| Field | Type | Description |
|---|---|---|
cache |
bool | str | Cache | const: "forever" | Cache policy default for every query against this source, e.g. cache: 1h: queries inherit it and may refine it; cache: false opts them out. |
max_query_duration_seconds |
int | Maximum execution time for one query in seconds. Overrides execution.max_query_duration_seconds for this source. |
attribution |
dict[str, str] | Cost-attribution pairs sent with every query against this source, e.g. attribution: {team: analytics}. Emitted as BigQuery job labels and as a query comment elsewhere. Keys and values must match BigQuery's label rules ([a-z][a-z0-9_-]{0,62} / [a-z0-9_-]{0,63}). The dbt_charts_ prefix and the app key are reserved for the engine's own identity. |
user |
str | Snowflake user name. Omit for token-based authentication when supported. |
password |
str | Snowflake password. Omit when using OAuth or key-pair auth. |
warehouse |
str | Snowflake virtual warehouse name. |
schema |
str | Default schema for queries. |
role |
str | Snowflake role to assume for the session. |
authenticator |
str | Snowflake authenticator name or external-browser mode. |
private_key |
str | PEM private key used for key-pair authentication. |
private_key_path |
str | Path to a PEM private key for key-pair authentication. |
private_key_passphrase |
str | Passphrase for the configured private key. |
token |
str | OAuth access token for token authentication. |
oauth_client_id |
str | OAuth client identifier. |
oauth_client_secret |
str | OAuth client secret. |
query_tag |
str | Snowflake query tag applied to statements. |
client_session_keep_alive |
bool | Whether Snowflake keeps the client session alive. |
host |
str | Snowflake host override. |
port |
int | Snowflake port override. |
proxy_host |
str | HTTP proxy host for Snowflake connections. |
proxy_port |
int | HTTP proxy port for Snowflake connections. |
protocol |
str | Network protocol for the Snowflake connection. |
connect_retries |
int | Number of retries while opening a connection. |
connect_timeout |
int | Connection timeout in seconds. |
retry_on_database_errors |
bool | Whether database errors are retried. |
retry_all |
bool | Whether all connection errors are retried. |
insecure_mode |
bool | Whether TLS certificate verification is disabled. |
reuse_connections |
bool | Whether dbt reuses Snowflake connections. |
s3_stage_vpce_dns_name |
str | Private VPC endpoint DNS name for S3 staging. |
platform_detection_timeout_seconds |
float | Timeout for Snowflake platform detection. |
BigQuerySourceConfig¶
BigQuery source configuration.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "bigquery" | |
project |
str | GCP project ID. |
dataset |
str | BigQuery dataset name (equivalent to schema). |
Optional
| Field | Type | Description |
|---|---|---|
cache |
bool | str | Cache | const: "forever" | Cache policy default for every query against this source, e.g. cache: 1h: queries inherit it and may refine it; cache: false opts them out. |
max_query_duration_seconds |
int | Maximum execution time for one query in seconds. Overrides execution.max_query_duration_seconds for this source. |
attribution |
dict[str, str] | Cost-attribution pairs sent with every query against this source, e.g. attribution: {team: analytics}. Emitted as BigQuery job labels and as a query comment elsewhere. Keys and values must match BigQuery's label rules ([a-z][a-z0-9_-]{0,62} / [a-z0-9_-]{0,63}). The dbt_charts_ prefix and the app key are reserved for the engine's own identity. |
keyfile |
str | Path to service account JSON key file. |
keyfile_json |
dict[str, str | int | float | bool] | Inline service account JSON dict. |
location |
str | Dataset location (e.g. US, EU). |
method |
enum: "oauth", "oauth-secrets", "service-account", "service-account-json", "external-oauth-wif" | dbt-bigquery authentication method. Inferred from keyfile/keyfile_json when omitted: 'service-account-json' if keyfile_json set, 'service-account' if keyfile set, 'oauth' (Application Default Credentials) otherwise. |
execution_project |
str | GCP project billed for BigQuery execution. |
quota_project |
str | GCP project used for quota attribution. |
api_endpoint |
str | BigQuery API endpoint override. |
priority |
enum: "interactive", "batch" | BigQuery job priority. |
maximum_bytes_billed |
int | Maximum bytes a BigQuery job may bill. |
impersonate_service_account |
str | Service account to impersonate for BigQuery jobs. |
job_retry_deadline_seconds |
int | Deadline in seconds for retrying a BigQuery job. |
job_retries |
int | Number of BigQuery job retry attempts (dbt accepts retries as an input alias). |
job_creation_timeout_seconds |
int | Timeout in seconds while creating a BigQuery job. |
job_execution_timeout_seconds |
int | Timeout in seconds while executing a BigQuery job. |
token |
str | OAuth access token. |
refresh_token |
str | OAuth refresh token. |
client_id |
str | OAuth client identifier. |
client_secret |
str | OAuth client secret. |
token_uri |
str | OAuth token endpoint URI. |
workload_pool_provider_path |
str | Workload identity pool provider resource path. |
service_account_impersonation_url |
str | Service-account impersonation endpoint URL. |
token_endpoint |
dict[str, str] | OAuth token endpoint configuration. |
compute_region |
str | Dataproc compute region. |
dataproc_cluster_name |
str | Dataproc cluster name. |
gcs_bucket |
str | Cloud Storage bucket for Dataproc submission. |
submission_method |
str | dbt-bigquery Dataproc submission method. |
dataproc_batch |
dict[str, str | int | float | bool] | Dataproc batch configuration. |
scopes |
list[str] | OAuth scopes requested for BigQuery credentials. |
RedshiftSourceConfig¶
Redshift source configuration.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "redshift" | |
host |
str | Redshift cluster host name. |
dbname |
str | Redshift database name (dbt accepts database as an input alias). |
Optional
| Field | Type | Description |
|---|---|---|
cache |
bool | str | Cache | const: "forever" | Cache policy default for every query against this source, e.g. cache: 1h: queries inherit it and may refine it; cache: false opts them out. |
max_query_duration_seconds |
int | Maximum execution time for one query in seconds. Overrides execution.max_query_duration_seconds for this source. |
attribution |
dict[str, str] | Cost-attribution pairs sent with every query against this source, e.g. attribution: {team: analytics}. Emitted as BigQuery job labels and as a query comment elsewhere. Keys and values must match BigQuery's label rules ([a-z][a-z0-9_-]{0,62} / [a-z0-9_-]{0,63}). The dbt_charts_ prefix and the app key are reserved for the engine's own identity. |
port |
int | Redshift port number. |
schema |
str | Default schema for queries. |
user |
str | Redshift user name. Omit for IAM-based authentication when supported. |
password |
str | Redshift password. Omit for IAM-based authentication when supported. |
method |
str | Redshift authentication method. |
cluster_id |
str | Redshift cluster identifier for IAM authentication. |
iam_profile |
str | IAM profile ARN used for Redshift authentication. |
autocreate |
bool | Whether dbt may create the database user. |
db_groups |
list[str] | Redshift database groups assigned to the user. |
ra3_node |
bool | Whether the target uses Redshift RA3 nodes. |
connect_timeout |
int | Socket timeout in seconds for the whole connection, including every read. Unset: dbt Charts uses max_query_duration_seconds plus headroom so the server's statement timeout fires first. A larger authored value wins. |
role |
str | IAM role ARN used for Redshift operations. |
sslmode |
str | SSL verification mode for the Redshift connection. |
retries |
int | Number of Redshift connection retry attempts. |
retry_all |
bool | Whether all connection errors are retried. |
region |
str | AWS region containing the Redshift target. |
access_key_id |
str | AWS access key identifier. |
secret_access_key |
str | AWS secret access key. |
idc_region |
str | AWS IAM Identity Center region. |
issuer_url |
str | Identity-provider issuer URL. |
idp_listen_port |
int | Local port used for identity-provider callbacks. |
idc_client_display_name |
str | IAM Identity Center client display name. |
idp_response_timeout |
int | Identity-provider response timeout in seconds. |
token_endpoint |
dict[str, str] | Identity-provider token endpoint configuration. |
is_serverless |
bool | Whether the target is Redshift Serverless. |
serverless_work_group |
str | Redshift Serverless workgroup name. |
serverless_acct_id |
str | AWS account identifier for Redshift Serverless. |
tcp_keepalive |
bool | Whether TCP keepalives are enabled. |
tcp_keepalive_idle |
int | Idle seconds before TCP keepalives begin. |
tcp_keepalive_interval |
int | Seconds between TCP keepalive probes. |
tcp_keepalive_count |
int | Number of TCP keepalive probes before failure. |
datasharing |
bool | Whether Redshift datashare metadata is queried. |
query_group |
str | Redshift query group applied to each session. |
allow_concurrent_drops |
bool | Whether dbt may run drops concurrently. |
drop_without_cascade |
bool | Whether dbt drops relations without CASCADE. |
DatabricksSourceConfig¶
Databricks source configuration.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "databricks" | |
host |
str | Databricks workspace host name. |
http_path |
str | HTTP path of the SQL warehouse. |
catalog |
str | Unity Catalog catalog name. |
Optional
| Field | Type | Description |
|---|---|---|
cache |
bool | str | Cache | const: "forever" | Cache policy default for every query against this source, e.g. cache: 1h: queries inherit it and may refine it; cache: false opts them out. |
max_query_duration_seconds |
int | Maximum execution time for one query in seconds. Overrides execution.max_query_duration_seconds for this source. |
attribution |
dict[str, str] | Cost-attribution pairs sent with every query against this source, e.g. attribution: {team: analytics}. Emitted as BigQuery job labels and as a query comment elsewhere. Keys and values must match BigQuery's label rules ([a-z][a-z0-9_-]{0,62} / [a-z0-9_-]{0,63}). The dbt_charts_ prefix and the app key are reserved for the engine's own identity. |
token |
str | Personal access token. Use this or client_id with client_secret. |
client_id |
str | Application ID of an OAuth service principal. Set with client_secret. |
client_secret |
str | OAuth secret of the service principal. Set with client_id. |
schema |
str | Default schema for queries. |
connect_retries |
int | Number of times to retry a failed connection. Has no effect unless retry_all is also set to true. |
connect_timeout |
int | Seconds a connection attempt may keep retrying while the SQL warehouse starts. Replaces the driver's own retry budget, which defaults to about 15 minutes. |
socket_timeout |
int | Socket read timeout in seconds for the SQL warehouse connection. |
retry_all |
bool | Whether dbt Charts itself retries a failed connection attempt, with connect_retries setting how many attempts. False (the default) means dbt Charts does not retry; the Databricks driver still retries certain connection failures on its own regardless of this setting. |
TrinoSourceConfig¶
Trino / Presto source configuration.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "trino" | |
host |
str | Trino coordinator host name. |
database |
str | Trino catalog name (catalog is accepted too). |
schema |
str | Default schema for queries. |
Optional
| Field | Type | Description |
|---|---|---|
cache |
bool | str | Cache | const: "forever" | Cache policy default for every query against this source, e.g. cache: 1h: queries inherit it and may refine it; cache: false opts them out. |
max_query_duration_seconds |
int | Maximum execution time for one query in seconds. Overrides execution.max_query_duration_seconds for this source. |
attribution |
dict[str, str] | Cost-attribution pairs sent with every query against this source, e.g. attribution: {team: analytics}. Emitted as BigQuery job labels and as a query comment elsewhere. Keys and values must match BigQuery's label rules ([a-z][a-z0-9_-]{0,62} / [a-z0-9_-]{0,63}). The dbt_charts_ prefix and the app key are reserved for the engine's own identity. |
port |
int | Trino coordinator port number. |
user |
str | Trino user name. Required by the none, LDAP, Kerberos, and GSSAPI methods. |
method |
enum: "ldap", "certificate", "kerberos", "gssapi", "jwt", "oauth", "oauth_console" | Trino authentication method. Omit for unauthenticated mode. |
password |
str | LDAP password. Required when method is ldap. |
impersonation_user |
str | User to impersonate with LDAP authentication. |
client_tags |
list[str] | Client tags sent with Trino queries. |
roles |
dict[str, str] | Catalog-to-role mapping for the Trino session. |
cert |
str | bool | CA certificate path or TLS verification flag. |
http_scheme |
enum: "http", "https" | HTTP scheme used to connect to Trino. |
http_headers |
dict[str, str] | Additional HTTP headers sent to Trino. |
session_properties |
dict[str, str | int | float | bool] | Trino session properties. |
prepared_statements_enabled |
bool | Accepted so a dbt profile target maps over; has no effect. |
retries |
int | Maximum request retry attempts. |
timezone |
str | Session time zone. |
suppress_cert_warning |
bool | Whether TLS certificate warnings are suppressed. |
client_certificate |
str | Client certificate path for certificate authentication. |
client_private_key |
str | Client private-key path for certificate authentication. |
keytab |
str | Unsupported; set KRB5_CLIENT_KTNAME in the environment instead. |
principal |
str | Kerberos or GSSAPI principal. |
krb5_config |
str | Kerberos configuration file path. |
service_name |
str | Kerberos or GSSAPI service name. |
mutual_authentication |
bool | enum: "REQUIRED", "OPTIONAL", "DISABLED" | Kerberos or GSSAPI mutual-authentication setting. |
force_preemptive |
bool | Whether Kerberos or GSSAPI auth is sent preemptively. |
hostname_override |
str | Kerberos or GSSAPI host name override. |
sanitize_mutual_error_response |
bool | Whether mutual-authentication errors are sanitized. |
delegate |
bool | Whether Kerberos or GSSAPI credentials are delegated. |
jwt_token |
str | JWT token. Required when method is jwt. |
DuckDBSourceConfig¶
DuckDB source configuration.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "duckdb" |
Optional
| Field | Type | Description |
|---|---|---|
cache |
bool | str | Cache | const: "forever" | Cache policy default for every query against this source, e.g. cache: 1h: queries inherit it and may refine it; cache: false opts them out. |
max_query_duration_seconds |
int | Maximum execution time for one query in seconds. Overrides execution.max_query_duration_seconds for this source. |
path |
str | DuckDB file path or ':memory:' for an in-memory database. |
schema |
str | Default schema for unqualified table names (sets search_path). |
duckdb_config |
dict[str, str | int | float | bool] | DuckDB connection configuration values, such as enable_external_access. |
extensions |
list[str | DuckDBExtensionConfig] | DuckDB extensions to install and load. |
settings |
dict[str, str | int | float | bool] | DuckDB settings and pragma values. |
secrets |
list[DuckDBSecretConfig] | DuckDB secret definitions for external services. |
external_root |
str | Root path for dbt-duckdb external materializations. |
attach |
list[DuckDBAttachmentConfig] | Databases to attach to the DuckDB connection. |
disable_transactions |
bool | Whether dbt-duckdb disables statement transactions. |
keep_open |
bool | Whether dbt-duckdb holds its connection open between queries. Off by default: a held handle pins the database file at one DuckDB config, and DuckDB refuses any other connection to a pinned file whose config differs. Ignored for ':memory:' and MotherDuck, which dbt-duckdb holds open either way; closing an in-memory database would destroy it. |
module_paths |
list[str] | Python module paths dbt-duckdb loads. |
retries |
DuckDBRetriesConfig | dbt-duckdb connection and query retry configuration. |
is_ducklake |
bool | Whether this source uses DuckLake. |
SQLiteSourceConfig¶
SQLite source configuration.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "sqlite" | |
path |
str | Path to the SQLite database file. |
Optional
| Field | Type | Description |
|---|---|---|
cache |
bool | str | Cache | const: "forever" | Cache policy default for every query against this source, e.g. cache: 1h: queries inherit it and may refine it; cache: false opts them out. |
CsvSourceConfig¶
CSV file source configuration.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "csv" | |
files |
dict[str, str] | Mapping of table_name → file path or glob (*/?), relative to the project root. A glob must match at least one file; matched files must share one column schema and concatenate into one table. Limits: max 1000 files per glob, max 500 tables, max 5 GB per table (execution.max_glob_file_count / file_source_max_tables / file_source_max_bytes). Required, non-empty. |
Optional
| Field | Type | Description |
|---|---|---|
cache |
bool | str | Cache | const: "forever" | Cache policy default for every query against this source, e.g. cache: 1h: queries inherit it and may refine it; cache: false opts them out. |
delimiter |
str | Field delimiter character. |
encoding |
str | File encoding. |
ParquetSourceConfig¶
Parquet file source configuration.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "parquet" | |
files |
dict[str, str] | Mapping of table_name → file path or glob (*/?), relative to the project root. A glob must match at least one file; matched files must share one column schema and concatenate into one table. Limits: max 1000 files per glob, max 500 tables, max 5 GB per table (execution.max_glob_file_count / file_source_max_tables / file_source_max_bytes). Required, non-empty. |
Optional
| Field | Type | Description |
|---|---|---|
cache |
bool | str | Cache | const: "forever" | Cache policy default for every query against this source, e.g. cache: 1h: queries inherit it and may refine it; cache: false opts them out. |
JsonSourceConfig¶
JSON file source configuration.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "json" | |
files |
dict[str, str] | Mapping of table_name → file path or glob (*/?), relative to the project root. A glob must match at least one file; matched files concatenate into one table. Limits: max 1000 files per glob, max 500 tables, max 5 GB per table (execution.max_glob_file_count / file_source_max_tables / file_source_max_bytes). Required, non-empty. |
Optional
| Field | Type | Description |
|---|---|---|
cache |
bool | str | Cache | const: "forever" | Cache policy default for every query against this source, e.g. cache: 1h: queries inherit it and may refine it; cache: false opts them out. |
union_by_name |
bool | When True, rows from different files in a glob set are unified by column name: columns absent in a particular file are filled with NULL. When False (default), all files in a glob set must share the same column schema; a mismatch raises an error. |
HttpSourceConfig¶
HTTP/REST API source configuration.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "http" | |
url |
str | Base URL for HTTP requests. |
Optional
| Field | Type | Description |
|---|---|---|
cache |
bool | str | Cache | const: "forever" | Cache policy default for every query against this source, e.g. cache: 1h: queries inherit it and may refine it; cache: false opts them out. |
headers |
dict[str, str] | Default HTTP headers (e.g. Authorization). |
DbtProfileSourceConfig¶
Reference to a dbt profile.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "dbt_profile" |
Optional
| Field | Type | Description |
|---|---|---|
cache |
bool | str | Cache | const: "forever" | Cache policy default for every query against this source, e.g. cache: 1h: queries inherit it and may refine it; cache: false opts them out. |
attribution |
dict[str, str] | Cost-attribution pairs sent with every query against this source, e.g. attribution: {team: analytics}. Emitted as BigQuery job labels and as a query comment elsewhere. Keys and values must match BigQuery's label rules ([a-z][a-z0-9_-]{0,62} / [a-z0-9_-]{0,63}). The dbt_charts_ prefix and the app key are reserved for the engine's own identity. |
profile |
str | dbt profile name from profiles.yml. Defaults to $DBT_PROFILE, then the profile: of the linked dbt project's dbt_project.yml. |
target |
str | dbt target to use; defaults to the profile's default target. |
profiles_dir |
str | Directory containing profiles.yml, relative to the linked dbt project directory (see --dbt-project-dir). Use when profiles.yml is in a subdirectory (e.g. services/dbt). Resolution order: profiles_dir → $DBT_PROFILES_DIR → linked dbt project → ~/.dbt. |
target_path |
str | Directory holding the manifest.json built for this target, relative to the linked dbt project directory; same meaning as dbt's --target-path. ref() and source() resolve against <target_path>/manifest.json. Build it with dbt parse --target <target> --target-path <target_path>. Defaults to dbt's own resolution: $DBT_TARGET_PATH → dbt_project.yml target-path → target. |
LakeComputeTokenSource¶
Lake compute authenticated with an access token (the default method).
Required
| Field | Type | Description |
|---|---|---|
type |
const: "lakecompute" | |
token |
str | Lake compute access token. |
Optional
| Field | Type | Description |
|---|---|---|
cache |
bool | str | Cache | const: "forever" | Cache policy default for every query against this source, e.g. cache: 1h: queries inherit it and may refine it; cache: false opts them out. |
max_query_duration_seconds |
int | Maximum execution time for one query in seconds. Overrides execution.max_query_duration_seconds for this source. |
base_url |
str | Lake compute API endpoint. |
catalog_bundle |
str | Catalog bundle the lake compute session reads. |
method |
const: "token" | Authentication method. |
LakeComputeApiKeySource¶
Lake compute authenticated with an API key.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "lakecompute" | |
method |
const: "api_key" | Authentication method. |
api_key |
str | Lake compute API key. |
Optional
| Field | Type | Description |
|---|---|---|
cache |
bool | str | Cache | const: "forever" | Cache policy default for every query against this source, e.g. cache: 1h: queries inherit it and may refine it; cache: false opts them out. |
max_query_duration_seconds |
int | Maximum execution time for one query in seconds. Overrides execution.max_query_duration_seconds for this source. |
base_url |
str | Lake compute API endpoint. |
catalog_bundle |
str | Catalog bundle the lake compute session reads. |
LakeComputeOktaSource¶
Lake compute authenticated through Okta in the browser.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "lakecompute" | |
method |
const: "okta_browser" | Authentication method. |
Optional
| Field | Type | Description |
|---|---|---|
cache |
bool | str | Cache | const: "forever" | Cache policy default for every query against this source, e.g. cache: 1h: queries inherit it and may refine it; cache: false opts them out. |
max_query_duration_seconds |
int | Maximum execution time for one query in seconds. Overrides execution.max_query_duration_seconds for this source. |
base_url |
str | Lake compute API endpoint. |
catalog_bundle |
str | Catalog bundle the lake compute session reads. |
okta_auth_url |
str | Okta authorization endpoint. |
okta_token_url |
str | Okta token endpoint. |
okta_client_id |
str | Okta application client ID. |
LakeComputeFivetranSource¶
Lake compute authenticated with a Fivetran credential.
Required
| Field | Type | Description |
|---|---|---|
type |
const: "lakecompute" | |
method |
const: "fivetran" | Authentication method. |
fivetran_credential |
str | Fivetran API credential. |
Optional
| Field | Type | Description |
|---|---|---|
cache |
bool | str | Cache | const: "forever" | Cache policy default for every query against this source, e.g. cache: 1h: queries inherit it and may refine it; cache: false opts them out. |
max_query_duration_seconds |
int | Maximum execution time for one query in seconds. Overrides execution.max_query_duration_seconds for this source. |
base_url |
str | Lake compute API endpoint. |
catalog_bundle |
str | Catalog bundle the lake compute session reads. |
fivetran_auth_url |
str | Fivetran API endpoint for exchanging the credential. |
DuckDBExtensionConfig¶
One DuckDB extension installed from a custom repository.
Required
| Field | Type | Description |
|---|---|---|
name |
str | Extension name to install and load. |
Optional
| Field | Type | Description |
|---|---|---|
repo |
str | Repository to install the extension from. Omit to use DuckDB's default repository. |
DuckDBSecretConfig¶
One DuckDB CREATE SECRET declaration.
Required
| Field | Type | Description |
|---|---|---|
type |
str | DuckDB secret type, e.g. s3, gcs, azure. |
Optional
| Field | Type | Description |
|---|---|---|
name |
str | Optional secret name. |
persistent |
bool | Whether the secret persists to disk (~/.duckdb/stored_secrets). |
scope |
str | list[str] | Optional URL scope(s) this secret applies to. |
DuckDBAttachmentConfig¶
One dbt-duckdb ATTACH declaration.
Required
| Field | Type | Description |
|---|---|---|
path |
str | DuckDB database path or URL to attach. |
Optional
| Field | Type | Description |
|---|---|---|
type |
str | Attached database type supplied by its extension. |
alias |
str | Optional name for the attached database. |
secret |
str | Name of the DuckDB secret used for this attachment. |
read_only |
bool | Whether the attached database is read-only. Honored as written when the adapter itself is read-write; when the adapter is read_only (the default), the in-process DuckDB adapter forces every attachment read-only regardless of this flag. |
options |
dict[str, str | int | float | bool] | Additional scalar DuckDB ATTACH options. |
is_ducklake |
bool | Whether the attachment is a DuckLake database. |
DuckDBRetriesConfig¶
dbt-duckdb retry settings.
| Field | Type | Description |
|---|---|---|
connect_attempts |
int | Number of connection attempts before failure. |
query_attempts |
int | Number of attempts for a retryable query failure. |
retryable_exceptions |
list[str] | Exception names that dbt-duckdb may retry. |
dbt charts Project Config Reference: execution settings¶
Settings authored under execution: in dbt_charts.yml at the project root, not in a board. The file's other sections (sources:, server:, cache:, ...) are not generated here yet.
ExecutionConfig¶
| Field | Type | Description |
|---|---|---|
max_workers |
int | Maximum parallel query workers for a render. DuckDB serializes access regardless, so this only moves external warehouses. |
max_query_duration_seconds |
int | Maximum seconds a single query may run (must be > 0). |
max_glob_file_count |
int | Maximum files a single glob may match (must be > 0). |
file_source_max_tables |
int | Max tables in a files: map (must be > 0). |
file_source_max_bytes |
int | Max uncompressed bytes per file-source table (must be > 0). |
max_rows |
int | Maximum rows a single query may return (must be > 0). |
max_result_bytes |
int | Maximum serialized byte size of a single query result (must be > 0). |
max_template_output_bytes |
int | Maximum cumulative bytes of Jinja-emitted template output for a single board render (must be > 0). |
dialect_aliases |
dict[str, str] | Maps a dbt charts dialect name to its sqlglot equivalent before parsing. |
lakecompute |
LakeComputeExecutionConfig | Lake compute connection defaults. |