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() {