diff --git a/EgwCoreLib.BlazorTest/Pages/Test.razor b/EgwCoreLib.BlazorTest/Pages/Test.razor
index e47fa53..b76bd80 100644
--- a/EgwCoreLib.BlazorTest/Pages/Test.razor
+++ b/EgwCoreLib.BlazorTest/Pages/Test.razor
@@ -8,6 +8,8 @@

+
+
@@ -55,9 +57,46 @@
+
+
+
@code {
private int currentCount = 0;
+ protected Random rnd = new Random();
+
private void IncrementCount()
{
currentCount++;
diff --git a/EgwCoreLib.Razor/ProgBar.razor b/EgwCoreLib.Razor/ProgBar.razor
new file mode 100644
index 0000000..866be05
--- /dev/null
+++ b/EgwCoreLib.Razor/ProgBar.razor
@@ -0,0 +1,51 @@
+@if (singleLine)
+{
+
+
+ @if (percWidthNum > redLimNum || percWidthNum <= 0)
+ {
+
+ @if (showPerc)
+ {
+ @($"{percWidthNum}%")
+ }
+ @if (showAct)
+ {
+ @($" ({currVal:N0}{baseUM})")
+ }
+
+ }
+
+ @if (percWidthNum <= redLimNum && percWidthNum > 0)
+ {
+
+ @if (showPerc)
+ {
+ @($"{percWidthNum}%")
+ }
+ @if (showAct)
+ {
+ @($" ({currVal:N0}{baseUM})")
+ }
+
+ }
+
+}
+else
+{
+
+ @currVal.ToString("N0") (@($"{maxVal:N0}"))
+
+
+
+ @if (percWidthNum > redLimNum || percWidthNum <= 0)
+ {
+
@(percWidthNum)%
+ }
+
+ @if (percWidthNum <= redLimNum && percWidthNum > 0)
+ {
+
@(percWidthNum)%
+ }
+
+}
\ No newline at end of file
diff --git a/EgwCoreLib.Razor/ProgBar.razor.cs b/EgwCoreLib.Razor/ProgBar.razor.cs
new file mode 100644
index 0000000..1199704
--- /dev/null
+++ b/EgwCoreLib.Razor/ProgBar.razor.cs
@@ -0,0 +1,94 @@
+using Microsoft.AspNetCore.Components;
+
+namespace EgwCoreLib.Razor
+{
+ public partial class ProgBar
+ {
+ #region Public Properties
+
+ [Parameter]
+ public string baseUM { get; set; } = "h";
+
+ [Parameter]
+ public double currVal { get; set; } = 50;
+
+ [Parameter]
+ public double maxVal { get; set; } = 100;
+
+ [Parameter]
+ public int redLim { get; set; } = 10;
+
+ [Parameter]
+ public bool showAct { get; set; } = true;
+
+ [Parameter]
+ public bool showPerc { get; set; } = true;
+
+ [Parameter]
+ public bool singleLine { get; set; } = false;
+
+ [Parameter]
+ public int yelLim { get; set; } = 20;
+
+ #endregion Public Properties
+
+ #region Private Properties
+
+ private string bgStyle
+ {
+ get => $"bg-{currStyle}";
+ }
+
+ private string currStyle
+ {
+ get
+ {
+ string answ = "dark";
+ if (currVal <= redLim)
+ {
+ answ = "danger";
+ }
+ else if (currVal <= yelLim)
+ {
+ answ = "warning";
+ }
+ else
+ {
+ answ = "success";
+ }
+
+ return answ;
+ }
+ }
+
+ private int percWidh
+ {
+ get
+ {
+ int answ = percWidthNum;
+ if (answ <= 0)
+ {
+ answ = 100;
+ }
+ return answ;
+ }
+ }
+
+ private int percWidthNum { get => (int)(100 * currVal / maxVal); }
+
+ private string textStyle
+ {
+ get => $"text-{currStyle}";
+ }
+
+ private string warnClass
+ {
+ get => currVal > 0 ? "d-none" : "text-danger";
+ }
+
+ private int yelLimNum { get => (int)(100 * yelLim / maxVal); }
+ private int redLimNum { get => (int)(100 * redLim / maxVal); }
+
+ #endregion Private Properties
+ }
+}
\ No newline at end of file