Dashboard Container Types

Deep dive into all 16+ container types available in Dashboard Maker AI.

Vega-Lite

Declarative grammar of interactive graphics. Perfect for standard charts: bar, line, area, scatter, heatmap, and more. Vega-Lite specifications are concise JSON objects that compile to full Vega specs.

{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "mark": "bar",
  "encoding": {
    "x": { "field": "category", "type": "nominal" },
    "y": { "field": "value", "type": "quantitative" }
  },
  "data": {
    "values": [
      { "category": "A", "value": 28 },
      { "category": "B", "value": 55 },
      { "category": "C", "value": 43 }
    ]
  }
}
Tip: Use "mark": "point" for scatter plots, "mark": "line" for line charts, or "mark": "area" for area charts. Layer marks for combo charts.
Common issue: Forgetting to set "type" in encoding fields. Always specify "nominal", "quantitative", "temporal", or "ordinal".

Vega

Full Vega specification for advanced custom visualizations. More verbose than Vega-Lite but offers complete control over scales, axes, marks, signals, and interactions.

{
  "$schema": "https://vega.github.io/schema/vega/v5.json",
  "width": 400, "height": 200,
  "data": [{ "name": "table", "values": [
    {"x": 1, "y": 28}, {"x": 2, "y": 55}
  ]}],
  "scales": [
    { "name": "x", "type": "band", "domain": {"data":"table","field":"x"}, "range": "width" },
    { "name": "y", "type": "linear", "domain": {"data":"table","field":"y"}, "range": "height" }
  ],
  "marks": [{
    "type": "rect",
    "from": {"data": "table"},
    "encode": {
      "enter": {
        "x": {"scale":"x","field":"x"}, "width": {"scale":"x","band":1},
        "y": {"scale":"y","field":"y"}, "y2": {"scale":"y","value":0}
      }
    }
  }]
}
Tip: Use Vega when you need custom interactions, signals, or event-driven behavior not available in Vega-Lite.

D3.js

Complete D3 support for fully custom, code-driven visualizations. Write JavaScript that uses D3 to manipulate SVG or Canvas. Best for unique or highly interactive charts.

// D3 container receives `svg` (selection) and `width`/`height`
const data = [28, 55, 43, 91, 81];
const x = d3.scaleBand()
  .domain(d3.range(data.length))
  .range([0, width]).padding(0.2);
const y = d3.scaleLinear()
  .domain([0, d3.max(data)]).range([height, 0]);

svg.selectAll("rect")
  .data(data).enter().append("rect")
  .attr("x", (d, i) => x(i))
  .attr("y", d => y(d))
  .attr("width", x.bandwidth())
  .attr("height", d => height - y(d))
  .attr("fill", "#00b8e6");
Tip: D3 containers have d3, svg, width, and height available in scope.
Common issue: Forgetting to clear previous elements. The container re-renders on updates, so use .join() or check for existing elements.

Plotly

Interactive charts with built-in zoom, pan, hover, and export. Supports 3D charts, statistical plots, maps, and scientific visualizations.

{
  "data": [{
    "x": ["Jan", "Feb", "Mar", "Apr"],
    "y": [10, 15, 13, 17],
    "type": "scatter",
    "mode": "lines+markers",
    "marker": { "color": "#00b8e6" }
  }],
  "layout": {
    "title": "Monthly Trend",
    "xaxis": { "title": "Month" },
    "yaxis": { "title": "Value" }
  }
}
Tip: Use "type": "bar", "scatter3d", "heatmap", "pie", or "surface" for different chart types.

Observable Plot

Concise, expressive charting library from Observable. Great for quick data exploration with sensible defaults and a functional API.

Plot.plot({
  marks: [
    Plot.barY([
      {x: "A", y: 28}, {x: "B", y: 55}, {x: "C", y: 43}
    ], {x: "x", y: "y", fill: "#00b8e6"})
  ]
})
Tip: Observable Plot auto-infers scales and axes. You can combine multiple marks (dot, line, bar, area) in the same plot.

Mermaid

Text-based diagramming: flowcharts, sequence diagrams, Gantt charts, ER diagrams, class diagrams, state diagrams, and more.

graph TD
    A[Start] --> B{Decision}
    B -->|Yes| C[Action 1]
    B -->|No| D[Action 2]
    C --> E[End]
    D --> E
Tip: Supports graph, sequenceDiagram, gantt, classDiagram, erDiagram, stateDiagram-v2, pie, and gitGraph.
Common issue: Indentation matters in some diagram types. Use consistent spacing.

Mindmap (Markmap)

Interactive mind maps generated from Markdown headings. Great for brainstorming, hierarchical outlines, and knowledge maps.

# Project Plan
## Phase 1
### Research
### Requirements
## Phase 2
### Design
### Prototyping
## Phase 3
### Development
### Testing
Tip: Use standard Markdown headings (#, ##, ###) to define the hierarchy. Links and basic formatting are supported.

Text/HTML (KaTeX)

Rich text and HTML content with math formula support via KaTeX. Use for annotations, explanations, or any HTML content alongside your visualizations.

<h3>Quadratic Formula</h3>
<p>The solutions of <em>ax<sup>2</sup> + bx + c = 0</em> are:</p>
$$x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$$

<p>Inline math: $E = mc^2$</p>
Tip: Use $$...$$ for display math and $...$ for inline math. Full KaTeX syntax is supported.

LaTeX (MathJax)

Full LaTeX document rendering powered by MathJax. Ideal for complex mathematical notation, academic content, and scientific papers.

\begin{align}
\nabla \cdot \mathbf{E} &= \frac{\rho}{\epsilon_0} \\
\nabla \cdot \mathbf{B} &= 0 \\
\nabla \times \mathbf{E} &= -\frac{\partial \mathbf{B}}{\partial t} \\
\nabla \times \mathbf{B} &= \mu_0 \mathbf{J} + \mu_0 \epsilon_0 \frac{\partial \mathbf{E}}{\partial t}
\end{align}
Tip: MathJax supports \begin{equation}, \begin{align}, matrices, and most LaTeX math packages.

Function Plot

Plot mathematical functions interactively. Supports implicit, parametric, and polar functions with zoom and pan.

{
  "data": [
    { "fn": "sin(x)", "color": "#00b8e6" },
    { "fn": "cos(x)", "color": "#5eaaa8" },
    { "fn": "x^2 / 10", "color": "#e06050" }
  ],
  "xAxis": { "domain": [-6.28, 6.28] },
  "yAxis": { "domain": [-2, 2] }
}
Tip: Use "fnType": "implicit" for equations like x^2 + y^2 - 1 (circles).

CSV

Import and display CSV data directly. Auto-detects columns and renders as a sortable table. Can also auto-generate visualizations from CSV data.

name,sales,region
Alice,45000,North
Bob,52000,South
Carol,38000,East
Dave,61000,West
Tip: Use the "Visualize" button to automatically generate charts from CSV data. Supports comma, semicolon, and tab delimiters.

Excel

Import .xlsx and .xls files. Renders as an interactive spreadsheet with multiple sheet support. Data can be extracted and used for visualizations.

Tip: Drag and drop Excel files onto the dashboard or use the file browser. Multiple sheets appear as tabs.
Common issue: Very large Excel files (>10MB) may be slow to render. Consider exporting specific sheets to CSV.

Image

Display images with optional captions, borders, and overlays. Supports PNG, JPG, SVG, GIF, and WebP formats.

{
  "src": "https://example.com/chart.png",
  "alt": "Sales Overview",
  "caption": "Figure 1: Q4 Sales Distribution"
}
Tip: Use base64-encoded images for offline dashboards, or URLs for live content.

PDF

Embed PDF documents directly in your dashboard. Includes page navigation, zoom, and scrolling.

{
  "src": "/path/to/document.pdf",
  "page": 1,
  "zoom": 1.0
}
Tip: PDF containers work with both URLs and uploaded files.

Iframe

Embed external web content, maps, videos, or web applications. Sandboxed for security.

{
  "src": "https://example.com/embed",
  "width": "100%",
  "height": "400px",
  "sandbox": "allow-scripts allow-same-origin"
}
Common issue: Some websites block iframe embedding via X-Frame-Options. This is a server-side restriction that cannot be bypassed.

Table

Sortable, filterable, paginated data tables. Provide data as JSON arrays or objects.

{
  "columns": ["Name", "Department", "Revenue"],
  "rows": [
    ["Alice", "Sales", "$45,000"],
    ["Bob", "Marketing", "$52,000"],
    ["Carol", "Engineering", "$38,000"]
  ],
  "sortable": true,
  "filterable": true,
  "pageSize": 25
}
Tip: Click column headers to sort. Use the filter input to search across all columns.