diff --git a/articles/components/dashboard/styling.adoc b/articles/components/dashboard/styling.adoc
index 9141899950..d4c8d26a91 100644
--- a/articles/components/dashboard/styling.adoc
+++ b/articles/components/dashboard/styling.adoc
@@ -5,6 +5,30 @@ order: 50
---
= Styling
+== Style Variants
+
+The following style variants can be applied to the Dashboard to change its appearance:
+
+[cols="2, 2, 3"]
+|===
+| Flow `DashboardVariant` | `theme` attribute | Description
+
+| `LUMO_SHADED_BACKGROUND` | `shaded-background` | Applies shading to the dashboard background.
+
+| `LUMO_ELEVATED_WIDGETS` | `elevated-widgets` | Makes the widgets appear elevated above the dashboard surface.
+
+| `LUMO_FLAT_WIDGETS` | `flat-widgets` | A flat, borderless widget style.
+
+|===
+
+[.example.render-only.embedded]
+--
+[source,html]
+----
+include::{root}/frontend/demo/component/dashboard/dashboard-variants.ts[render,persistent]
+----
+--
+
include::../_styling-section-theming-props.adoc[tag=style-properties]
@@ -56,13 +80,13 @@ include::../_styling-section-theming-props.adoc[tag=style-properties]
|`--vaadin-dashboard-widget-shadow`
|`0 0 0 0 transparent`
-|Editable widget shadow
-|`--vaadin-dashboard-widget-editable-shadow`
-|`--lumo-box-shadow-s`
+|Widget content padding
+|`vaadin-dashboard-widget-padding`
+|`0px`
-|Selected widget shadow
-|`--vaadin-dashboard-widget-selected-shadow`
-|`0 2px 4px -1px var(--lumo-primary-color-10pct), 0 3px 12px -1px var(--lumo-primary-color-50pct);`
+|Widget title wrapping
+|`--vaadin-dashboard-widget-title-wrap`
+|`wrap`
|Drop target / resize box background color
|`--vaadin-dashboard-drop-target-background-color`
diff --git a/frontend/demo/component/dashboard/dashboard-basic.ts b/frontend/demo/component/dashboard/dashboard-basic.ts
index e81f1596e7..4dd7e04daf 100644
--- a/frontend/demo/component/dashboard/dashboard-basic.ts
+++ b/frontend/demo/component/dashboard/dashboard-basic.ts
@@ -32,7 +32,7 @@ export class Example extends LitElement {
@@ -44,7 +44,7 @@ export class Example extends LitElement {
diff --git a/frontend/demo/component/dashboard/dashboard-dense-layout.ts b/frontend/demo/component/dashboard/dashboard-dense-layout.ts
index d47b0856ec..b867201de5 100644
--- a/frontend/demo/component/dashboard/dashboard-dense-layout.ts
+++ b/frontend/demo/component/dashboard/dashboard-dense-layout.ts
@@ -33,13 +33,13 @@ export class Example extends LitElement {
>
diff --git a/frontend/demo/component/dashboard/dashboard-sections.ts b/frontend/demo/component/dashboard/dashboard-sections.ts
index 7ea3e123f7..9dd9c0824a 100644
--- a/frontend/demo/component/dashboard/dashboard-sections.ts
+++ b/frontend/demo/component/dashboard/dashboard-sections.ts
@@ -38,7 +38,7 @@ export class Example extends LitElement {
@@ -50,7 +50,7 @@ export class Example extends LitElement {
diff --git a/frontend/demo/component/dashboard/dashboard-variants.ts b/frontend/demo/component/dashboard/dashboard-variants.ts
new file mode 100644
index 0000000000..e2cbef650d
--- /dev/null
+++ b/frontend/demo/component/dashboard/dashboard-variants.ts
@@ -0,0 +1,69 @@
+import 'Frontend/demo/init'; // hidden-source-line
+import '@vaadin/dashboard/vaadin-dashboard.js'; // hidden-source-line
+import '@vaadin/dashboard/vaadin-dashboard-layout.js';
+import '@vaadin/dashboard/vaadin-dashboard-widget.js';
+import '@vaadin/select';
+import '@vaadin/checkbox';
+import { html, LitElement } from 'lit';
+import { customElement, state } from 'lit/decorators.js';
+import { applyTheme } from 'Frontend/generated/theme';
+import { SelectChangeEvent } from '@vaadin/select';
+import { CheckboxChangeEvent } from '@vaadin/checkbox';
+
+@customElement('dashboard-variants')
+export class Example extends LitElement {
+ protected override createRenderRoot() {
+ const root = super.createRenderRoot();
+ // Apply custom theme (only supported if your app uses one)
+ applyTheme(root);
+ return root;
+ }
+
+ @state()
+ items = [
+ { label: 'Outlined (default)', value: ' ' },
+ { label: 'Flat', value: 'flat-widgets' },
+ { label: 'Elevated', value: 'elevated-widgets' },
+ ];
+
+ @state()
+ widgetVariant: string = ' ';
+
+ @state()
+ shadedBoard: string = '';
+
+ onWidgetVariantChange(event: SelectChangeEvent) {
+ this.widgetVariant = event.target.value;
+ }
+
+ onShadedBgChange(event: CheckboxChangeEvent) {
+ this.shadedBoard = event.target.checked ? 'shaded-background' : '';
+ }
+
+ render() {
+ return html`
+
+
+
+
+
+
+
+
+
+
+
+
+ `;
+ }
+}
diff --git a/frontend/demo/component/dashboard/react/dashboard-basic.tsx b/frontend/demo/component/dashboard/react/dashboard-basic.tsx
index 388449fbf2..347f624c1e 100644
--- a/frontend/demo/component/dashboard/react/dashboard-basic.tsx
+++ b/frontend/demo/component/dashboard/react/dashboard-basic.tsx
@@ -22,7 +22,7 @@ function Example() {
@@ -34,7 +34,7 @@ function Example() {
diff --git a/frontend/demo/component/dashboard/react/dashboard-sections.tsx b/frontend/demo/component/dashboard/react/dashboard-sections.tsx
index d4a8ac621f..d80d8661aa 100644
--- a/frontend/demo/component/dashboard/react/dashboard-sections.tsx
+++ b/frontend/demo/component/dashboard/react/dashboard-sections.tsx
@@ -27,7 +27,7 @@ function Example() {
@@ -39,7 +39,7 @@ function Example() {