diff --git a/src/BootstrapBlazor.Server/Components/Samples/ListViews.razor b/src/BootstrapBlazor.Server/Components/Samples/ListViews.razor index 8c26331dbc0..7d9ce17613e 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/ListViews.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/ListViews.razor @@ -17,7 +17,7 @@ - +
@context.Description
@@ -42,7 +42,7 @@ - +
@context.Description
@@ -60,7 +60,7 @@ - +
@context.Description
@@ -78,7 +78,7 @@ - +
@context.Description
@@ -96,7 +96,7 @@ - +
@context.Description
diff --git a/src/BootstrapBlazor.Server/Components/Samples/ListViews.razor.css b/src/BootstrapBlazor.Server/Components/Samples/ListViews.razor.css index bdac4ae871d..10afd97d492 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/ListViews.razor.css +++ b/src/BootstrapBlazor.Server/Components/Samples/ListViews.razor.css @@ -1,5 +1,5 @@ -.lv-demo-img { - width: 100%; +img { + margin-bottom: 1rem; border-radius: var(--bs-border-radius); } diff --git a/src/BootstrapBlazor/Components/ListView/ListView.razor b/src/BootstrapBlazor/Components/ListView/ListView.razor index 10087a7185a..add35bd6505 100644 --- a/src/BootstrapBlazor/Components/ListView/ListView.razor +++ b/src/BootstrapBlazor/Components/ListView/ListView.razor @@ -16,7 +16,10 @@ { if (GroupName == null) { - @RenderGroup(Rows) + foreach (var item in Rows) + { + @RenderItem(item) + } } else if (Collapsible) { @@ -32,8 +35,11 @@ {
@key.GroupName
-
- @RenderGroup(key.Items) +
+ @foreach (var item in key.Items) + { + @RenderItem(item) + }
} @@ -65,21 +71,20 @@
@code { - RenderFragment RenderItem((object? GroupName, IOrderedEnumerable Items) key, int index) => - @ - @RenderGroup(key.Items) - ; - RenderFragment> RenderGroup => items => - @
- @foreach (var item in items) - { -
- @if(BodyTemplate != null) - { - @BodyTemplate(item) - } -
- } -
; + RenderFragment RenderGroupItem((object? GroupName, IOrderedEnumerable Items) key, int index) => + @ + @foreach (var item in key.Items) + { + @RenderItem(item) + } + ; + + RenderFragment RenderItem => item => + @
+ @if(BodyTemplate != null) + { + @BodyTemplate(item) + } +
; } diff --git a/src/BootstrapBlazor/Components/ListView/ListView.razor.cs b/src/BootstrapBlazor/Components/ListView/ListView.razor.cs index 7225e001676..d8e2441486a 100644 --- a/src/BootstrapBlazor/Components/ListView/ListView.razor.cs +++ b/src/BootstrapBlazor/Components/ListView/ListView.razor.cs @@ -232,7 +232,7 @@ private RenderFragment RenderCollapsibleItems(Func groupFunc) => foreach (var key in GetGroupItems(groupFunc)) { var i = index++; - builder.AddContent(i, RenderItem(key, i)); + builder.AddContent(i, RenderGroupItem(key, i)); } }; diff --git a/src/BootstrapBlazor/Components/ListView/ListView.razor.scss b/src/BootstrapBlazor/Components/ListView/ListView.razor.scss index f5a4be567be..7d89e69b2d4 100644 --- a/src/BootstrapBlazor/Components/ListView/ListView.razor.scss +++ b/src/BootstrapBlazor/Components/ListView/ListView.razor.scss @@ -6,7 +6,7 @@ --bb-lv-item-border-hover-color: #{$bb-lv-item-border-hover-color}; --bb-lv-item-shadow: #{$bb-lv-item-shadow}; --bb-lv-body-padding: #{$bb-lv-body-padding}; - --bb-lv-body-item-gap: #{$bb-lv-body-item-gap}; + --bb-lv-body-item-margin: #{$bb-lv-body-item-margin}; --bb-lv-footer-padding: #{$bb-lv-footer-padding}; border: 1px solid var(--bb-lv-border-color); border-radius: var(--bs-border-radius); @@ -29,17 +29,24 @@ .listview .listview-body { padding: var(--bb-lv-body-padding); position: relative; + overflow: auto; + display: flex; + flex-flow: row wrap; flex: 1; - min-height: 0; + align-content: flex-start; height: 1%; + min-height: 0; } .listview .listview-body.is-group { padding: 0; } +.listview .listview-body .listview-item { + margin: var(--bb-lv-body-item-margin); +} + .listview .listview-body .listview-item .card { - box-shadow: var(--bb-lv-item-shadow); transition: var(--bb-lv-item-trans); } @@ -48,11 +55,15 @@ border: 1px solid var(--bb-lv-item-border-hover-color); } -.listview .listview-item-group { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); - gap: var(--bb-lv-body-item-gap); - align-items: start; +.listview .listview-body .listview-item .card { + box-shadow: var(--bb-lv-item-shadow); +} + +.listview .listview-body .listview-item-group { + flex-basis: 100%; + margin: 1rem 0; + font-weight: bold; + position: relative; } .listview .listview-body .accordion { @@ -71,9 +82,15 @@ } .listview .listview-body .accordion-body { + display: flex; + flex-wrap: wrap; padding: var(--bb-lv-body-padding); } +.listview .listview-body .accordion-item { + width: 100%; +} + .listview .listview-body .accordion-item:last-child .accordion-header { border-bottom: 1px solid var(--bb-lv-border-color); } diff --git a/src/BootstrapBlazor/wwwroot/scss/theme/bootstrapblazor.scss b/src/BootstrapBlazor/wwwroot/scss/theme/bootstrapblazor.scss index 1f442bd661b..fbfb33dbe0b 100644 --- a/src/BootstrapBlazor/wwwroot/scss/theme/bootstrapblazor.scss +++ b/src/BootstrapBlazor/wwwroot/scss/theme/bootstrapblazor.scss @@ -381,9 +381,9 @@ $bb-lv-border-color: var(--bs-border-color); $bb-lv-item-trans: border .3s linear; $bb-lv-item-border-hover-color: #409eff; $bb-lv-item-shadow: 0 2px 12px 0 rgba(0,0,0,.1); -$bb-lv-body-padding: 0.5rem; -$bb-lv-body-item-gap: 0.5rem; -$bb-lv-footer-padding: 0.5rem; +$bb-lv-body-padding: 1rem 0 0 1rem; +$bb-lv-body-item-margin: 0 1rem 1rem 0; +$bb-lv-footer-padding: 1rem; // Logout $bb-logout-avatar-width: 42px;