Skip to content

docs: add Best practices for creating dashboards page (#5449, #5445)#6340

Draft
florent-leborgne wants to merge 5 commits into
mainfrom
docs-dashboards-best-practices
Draft

docs: add Best practices for creating dashboards page (#5449, #5445)#6340
florent-leborgne wants to merge 5 commits into
mainfrom
docs-dashboards-best-practices

Conversation

@florent-leborgne
Copy link
Copy Markdown
Member

Summary

Adds a single, opinionated guidance page for designing effective {{kib}} dashboards, and routes existing pages to it instead of fragmenting the same advice across many places.

This PR closes both #5449 (grid documentation) and #5445 (dashboard design best practices). It replaces the earlier #6329 and #6330, which split the guidance across multiple pages. Both have been closed in favor of this consolidated approach.

What's new

explore-analyze/dashboards/dashboards-best-practices.md (new). Sections:

  1. Plan before you place panels — audience, primary question, decisions to support; sketch first.
  2. Build a clear information hierarchy — KPIs at the top, charts in the middle, detail tables at the bottom; above-the-fold (~24 rows on 1080p, ~38–40 rows on 1440p); 8–12 panels above the fold for operational dashboards. Includes an ASCII layout sketch.
  3. Use the dashboard grid — 48-column grid, snap behavior, default new-panel width (24 columns / half).
    • Pack the grid cleanly — eliminate dead vertical space, align heights within a row.
  4. Size panels for what they show — per-chart sizing reference table with concrete row counts (KPI 4–6, compact bar 8–10, time series 12–15, table 15+, heat map 15–25, etc.) plus the principles behind the numbers.
  5. Title and label panels — descriptive titles, hide redundant axis titles, don't use text panels as section headers.
  6. Choose the right panel for the job — Lens charts, tables, filter controls, collapsible sections, text panels.
  7. Layout patterns to start from — Operational, Analytical, Executive templates with ASCII sketches and prose.
  8. Tune dashboard performance — time range, deferred views via collapsible sections, splitting large dashboards, summaries over raw scans.

Discoverability pointers added

  • explore-analyze/dashboards.md — adds the page to the Build and customize dashboards list.
  • explore-analyze/dashboards/building.md — closing pointer after the related-tasks list.
  • explore-analyze/dashboards/create-dashboard.md — pointer in the page intro.
  • explore-analyze/dashboards/arrange-panels.md — pointer in the intro and from the resize bullet, linking to #dashboard-grid.
  • explore-analyze/dashboards/create-dashboards-programmatically.md — pointer at the end of the Dashboards API section, framed for API authors who set panel coordinates by hand.
  • explore-analyze/visualize/lens.md — pointer near the intro for panel titles, axis labels, and dashboard sizing.
  • explore-analyze/visualize/text-panels.md — pointer near the intro, anchored to #choose-panel-type.
  • All 13 individual Lens chart pages (area, bar, gauge, heat-map, line, metric, mosaic, pie, region-map, tables, tag-cloud, treemap, waffle) — pointer added to the existing Customize the chart to follow best practices build step.
  • explore-analyze/visualize/charts/line-charts.md — replaces the existing external EUI Dashboard good practices link with the new internal page.
  • explore-analyze/toc.yml — adds the page under Building dashboards, after Organize dashboard panels and before Duplicate a dashboard.

Sourcing of opinionated guidance

The numbers and patterns come from the kibana-dashboards and kibana-vega agent skills in elastic/agent-skills-sandbox, reframed for a docs audience and verified against the {{kib}} source where applicable:

  • 48-column grid: DASHBOARD_GRID_COLUMN_COUNT = 48 in src/platform/plugins/shared/dashboard/common/page_bundle_constants.ts.
  • Default panel width 24 (half): DEFAULT_PANEL_WIDTH = DASHBOARD_GRID_COLUMN_COUNT / 2 in src/platform/plugins/shared/dashboard/common/constants.ts.
  • Per-chart row counts and layout patterns: authored opinion from the skills, kept opinionated per the page's framing.

Resolves

Replaces


AI-generated draft — created with Claude Sonnet 4.6.
Review all generated content for factual accuracy before merging.

Creates explore-analyze/dashboards/dashboards-best-practices.md as the
single, opinionated source of dashboard design guidance for {{kib}}.
Covers the 48-column grid, grid packing rules, information hierarchy,
per-chart sizing with concrete row counts, panel titling, panel-type
selection, three reusable layout patterns (Operational, Analytical,
Executive), and performance tuning.

Adds discoverability pointers from related pages so the page lives
naturally in the dashboards ecosystem:

- Dashboards overview and Building dashboards (parent hubs)
- Create a dashboard, Organize dashboard panels (UI-side how-tos),
  with the resize bullet linking to the grid section
- Create dashboards programmatically (API context for packing rules)
- Lens overview and Text panels (visualization authoring entry points)
- All 13 individual Lens chart pages, in the existing "Customize the
  chart to follow best practices" build step

Replaces the external EUI dashboard-good-practices link in
line-charts.md with the new internal page, since dashboard guidance
is now first-party.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 2026

Elastic Docs AI PR menu

Check the box to run an AI review for this pull request.

Powered by GitHub Agentic Workflows and docs-actions. For more information, reach out to the docs team.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 2026

Vale Linting Results

Summary: 2 warnings found

⚠️ Warnings (2)
File Line Rule Message
explore-analyze/dashboards/create-dashboard.md 19 Elastic.QuotesPunctuation Place punctuation inside closing quotation marks.
explore-analyze/dashboards/dashboards-best-practices.md 28 Elastic.Spelling 'wireframe' is a possible misspelling.

The Vale linter checks documentation changes against the Elastic Docs style guide.

To use Vale locally or report issues, refer to Elastic style guide for Vale.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
florent-leborgne and others added 2 commits May 7, 2026 20:09
- Information hierarchy: add focal point and proximity bullets
- Title and label panels: add number formatting and repeated-word bullets
- New section: Use color deliberately (palette choice, sequential vs
  divergent, color count, brand customization)
- New section: Apply consistent dashboard settings (margins, sync color
  palettes, sync cursor and tooltips), pointing to create-dashboard.md
  for the full list

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docs review summary

Focus areas

  • Style and clarity: One accessibility bug (empty link text, line 127). Vale found no findings. Writing is clear and well-structured overall.
  • Jargon: {{agent-builder}} is a substitution variable consistent with existing pages in this directory; no unexplained jargon found.
  • Frontmatter and applies_to: Description is present, plain text, no substitution variables, under 200 chars. products, navigation_title, and applies_to are all present and follow the pattern used in sibling files.
  • Content type fit: Declared as type: overview. The page is best-practices guidance rather than a conceptual "what is X" overview, but this is a reasonable fit given that best-practices pages in this section don't map cleanly to how-to or tutorial types. No change recommended.
  • Parent issue satisfaction: Closes #5449 (grid documentation) and #5445 (dashboard design best practices). Both are well-covered — the grid section documents the 48-column layout with a reference table, and the design guidance spans hierarchy, sizing, color, layout patterns, and performance. Satisfied.

Nits

  • Lines 106 and 108: Example panel titles ("Requests by response code", "count by status", "Usage") use double quotes. Per the style guide, double quotes are for quoted error messages or first-use unfamiliar terms. Since these are concrete UI text values being recommended, monospace backticks (e.g., `Requests by response code`) would be more consistent with Elastic formatting conventions.

Generated by Docs review agent for issue #6340 · ● 433.2K

A handful of dashboard-wide settings control how the whole dashboard reads. Set them deliberately when you create the dashboard so panels look like they belong together. Find them in the **Settings** menu in the application menu.

* **Use margins between panels.** Margins create visual breathing room and signal which panels belong to the same group. Keep them on for most dashboards.
* **Sync color palettes across panels.** Applies the same color to the same value across every panel. Refer to [](#use-color) for why this matters.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Empty link text ([](#use-color)) is inaccessible — screen readers will read it as a bare URL fragment with no label.

Suggested change
* **Sync color palettes across panels.** Applies the same color to the same value across every panel. Refer to [](#use-color) for why this matters.
* **Sync color palettes across panels.** Applies the same color to the same value across every panel. Refer to [Use color deliberately](#use-color) for why this matters.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document the dashboard grid system in the Organize panels page Add dashboard design best practices to existing dashboard pages

1 participant