Skip to content

Commit 4ad4ea4

Browse files
authored
feat(Card): add HeaderPaddingY parameter (#6106)
* feat: 增加 HeaderPaddingY 参数调整 header y 轴间隙 * refactor: 代码格式化 * doc: 增加文档 * test: 增加单元测试 * test: 更新单元测试
1 parent a7d575b commit 4ad4ea4

File tree

8 files changed

+33
-6
lines changed

8 files changed

+33
-6
lines changed

src/BootstrapBlazor.Server/Components/Samples/Cards.razor.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,14 @@ private AttributeItem[] GetAttributes() =>
4949
DefaultValue = " — "
5050
},
5151
new()
52+
{
53+
Name = nameof(Card.HeaderPaddingY),
54+
Description = Localizer["HeaderPaddingY"],
55+
Type = "string?",
56+
ValueList = " — ",
57+
DefaultValue = " — "
58+
},
59+
new()
5260
{
5361
Name = "Color",
5462
Description = Localizer["Color"],

src/BootstrapBlazor.Server/Locales/en-US.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3803,7 +3803,8 @@
38033803
"CollapsibleTitle": "Collapsible",
38043804
"CollapsibleHeaderTemplate": "Header Template",
38053805
"CollapsibleBody": "Click card hader for collapse/expand card body",
3806-
"ShadowBody": "Shadow effect sample"
3806+
"ShadowBody": "Shadow effect sample",
3807+
"HeaderPaddingY": "Header top and bottom padding"
38073808
},
38083809
"BootstrapBlazor.Server.Components.Samples.Calendars": {
38093810
"Title": "Calendar",

src/BootstrapBlazor.Server/Locales/zh-CN.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3803,7 +3803,8 @@
38033803
"CollapsibleTitle": "可以收缩展开的卡片",
38043804
"CollapsibleBody": "点击 Header 收缩/展开",
38053805
"CollapsibleHeaderTemplate": "这里是模板",
3806-
"ShadowBody": "阴影特效示例"
3806+
"ShadowBody": "阴影特效示例",
3807+
"HeaderPaddingY": "Header 上下内边距"
38073808
},
38083809
"BootstrapBlazor.Server.Components.Samples.Calendars": {
38093810
"Title": "Calendar 日历框",

src/BootstrapBlazor/Components/Card/Card.razor

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
@inherits BootstrapModuleComponentBase
33
@attribute [BootstrapModuleAutoLoader(JSObjectReference = true)]
44

5-
<div @attributes="@AdditionalAttributes" class="@ClassString" id="@Id">
5+
<div @attributes="@AdditionalAttributes" id="@Id" class="@ClassString" style="@HeaderStyleString">
66
@if (HeaderTemplate != null || !string.IsNullOrEmpty(HeaderText))
77
{
88
<div class="card-header">
@@ -33,7 +33,7 @@
3333
}
3434
</div>
3535
}
36-
<div class="@BodyClassName" id="@BodyId">
36+
<div id="@BodyId" class="@BodyClassName">
3737
@if (IsCollapsible)
3838
{
3939
<div class="card-body-wrapper">

src/BootstrapBlazor/Components/Card/Card.razor.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,13 @@ public partial class Card
4949
.AddClass("text-muted", IsCenter)
5050
.Build();
5151

52+
/// <summary>
53+
/// 获得/设置 Card Header 高度 padding Y轴值 默认 null
54+
/// <para>单位需自行给定 如 0.25rem</para>
55+
/// </summary>
56+
[Parameter]
57+
public string? HeaderPaddingY { get; set; }
58+
5259
/// <summary>
5360
/// 获得/设置 收缩展开箭头图标 默认 fa-solid fa-circle-chevron-right
5461
/// </summary>
@@ -119,6 +126,10 @@ public partial class Card
119126
[NotNull]
120127
private IIconTheme? IconTheme { get; set; }
121128

129+
private string? HeaderStyleString => CssBuilder.Default()
130+
.AddStyle("--bs-card-cap-padding-y", HeaderPaddingY)
131+
.Build();
132+
122133
/// <summary>
123134
/// <inheritdoc/>
124135
/// </summary>

test/UnitTest/Components/CardTest.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ public void Header_Ok()
1414
{
1515
var cut = Context.RenderComponent<Card>(builder => builder.Add(a => a.HeaderTemplate, CreateComponent()));
1616
Assert.Contains(Content, cut.Markup);
17+
18+
cut.SetParametersAndRender(pb =>
19+
{
20+
pb.Add(a => a.HeaderPaddingY, "0.25rem");
21+
});
22+
cut.Contains("--bs-card-cap-padding-y: 0.25rem;");
1723
}
1824

1925
[Fact]

test/UnitTest/Components/DisplayTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ public void Bind_Ok()
214214
});
215215
});
216216
});
217-
Assert.Contains("<div class=\"input-group\"><div class=\"form-control is-display\">test-name</div><div class=\"input-group-text\"><span>姓名</span></div><div class=\"input-group-text\"><span></span></div></div>", cut.Markup);
217+
Assert.Contains("<div class=\"input-group\"><div class=\"form-control is-display\">test-name</div><div class=\"input-group-text\">姓名</div><div class=\"input-group-text\"></div></div>", cut.Markup);
218218
}
219219

220220
[Fact]

test/UnitTest/Components/InputTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ public void InputGroup_Width()
321321
}));
322322
});
323323

324-
cut.MarkupMatches("<div class=\"input-group\"><div class=\"input-group-text\" required=\"true\" style=\"--bb-input-group-label-width: 120px;\"><span>BootstrapInputGroup</span></div></div>");
324+
cut.MarkupMatches("<div class=\"input-group\"><div class=\"input-group-text\" style=\"--bb-input-group-label-width: 120px;\" required=\"true\">BootstrapInputGroup</div></div>");
325325
}
326326

327327
[Fact]

0 commit comments

Comments
 (0)