diff --git a/src/BlazorApp/BlazorApp.csproj b/src/BlazorApp/BlazorApp.csproj index b5f6af0..c1fef06 100644 --- a/src/BlazorApp/BlazorApp.csproj +++ b/src/BlazorApp/BlazorApp.csproj @@ -1,10 +1,14 @@ - - net10.0 - enable - enable - true - + + net10.0 + enable + enable + true + + + + <_ContentIncludedByDefault Remove="Components\Shared\Icon.razor"/> + diff --git a/src/BlazorApp/Components/AnchorLink/AnchorLink.razor b/src/BlazorApp/Components/AnchorLink/AnchorLink.razor new file mode 100644 index 0000000..f048729 --- /dev/null +++ b/src/BlazorApp/Components/AnchorLink/AnchorLink.razor @@ -0,0 +1,25 @@ +@* External link component *@ + +@ChildContent + +@code { + + [Parameter] + public RenderFragment? ChildContent { get; set; } + + [Parameter] + public string? Href { get; set; } + + [Parameter] + public string Target { get; set; } = "_blank"; + + [Parameter] + public string? CssClass { get; set; } + + private string CombinedClasses => string.IsNullOrEmpty(CssClass) + ? "underline underline-offset-2" + : $"underline underline-offset-2 {CssClass}"; + +} diff --git a/src/BlazorApp/Components/App.razor b/src/BlazorApp/Components/App.razor index c5fff8c..a7b0caf 100644 --- a/src/BlazorApp/Components/App.razor +++ b/src/BlazorApp/Components/App.razor @@ -2,19 +2,66 @@ - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + diff --git a/src/BlazorApp/Components/Contact/Contact.razor b/src/BlazorApp/Components/Contact/Contact.razor new file mode 100644 index 0000000..de671a1 --- /dev/null +++ b/src/BlazorApp/Components/Contact/Contact.razor @@ -0,0 +1,10 @@ +@* Contact call-to-action *@ + +
+ If you think I can help with your project... + + Get in touch + + +
diff --git a/src/BlazorApp/Components/Icons/Icon.razor b/src/BlazorApp/Components/Icons/Icon.razor new file mode 100644 index 0000000..b08e58a --- /dev/null +++ b/src/BlazorApp/Components/Icons/Icon.razor @@ -0,0 +1,125 @@ +@switch (Type) +{ + case IconType.Github: + + + + break; + case IconType.LinkedIn: + + + + break; + case IconType.Email: + + + + break; + case IconType.Code: + + + + break; + case IconType.Hosting: + + + + break; + case IconType.Blazor: + + + + break; + case IconType.React: + + + + + + + break; + case IconType.Database: + + + + break; + case IconType.Docker: + + + + break; + case IconType.SendArrow: + + + + break; + case IconType.Menu: + + break; +} + +@code { + + [Parameter] + public IconType Type { get; set; } + +} \ No newline at end of file diff --git a/src/BlazorApp/Components/Icons/IconType.cs b/src/BlazorApp/Components/Icons/IconType.cs new file mode 100644 index 0000000..89d0f3d --- /dev/null +++ b/src/BlazorApp/Components/Icons/IconType.cs @@ -0,0 +1,16 @@ +namespace BlazorApp.Components.Icons; + +public enum IconType +{ + Github, + LinkedIn, + Email, + Code, + Hosting, + Blazor, + React, + Database, + Docker, + SendArrow, + Menu +} \ No newline at end of file diff --git a/src/BlazorApp/Components/Icons/SocialIcons.razor b/src/BlazorApp/Components/Icons/SocialIcons.razor new file mode 100644 index 0000000..701f4b5 --- /dev/null +++ b/src/BlazorApp/Components/Icons/SocialIcons.razor @@ -0,0 +1,19 @@ +@* Social media links *@ + + diff --git a/src/BlazorApp/Components/Layout/Footer.razor b/src/BlazorApp/Components/Layout/Footer.razor new file mode 100644 index 0000000..9459d1e --- /dev/null +++ b/src/BlazorApp/Components/Layout/Footer.razor @@ -0,0 +1,14 @@ +@* Footer component *@ + + diff --git a/src/BlazorApp/Components/Layout/MainLayout.razor b/src/BlazorApp/Components/Layout/MainLayout.razor index 7cd63fe..5aa2bbd 100644 --- a/src/BlazorApp/Components/Layout/MainLayout.razor +++ b/src/BlazorApp/Components/Layout/MainLayout.razor @@ -1,17 +1,11 @@ @inherits LayoutComponentBase -
- - -
-
- About -
- -
+
+
+ +
@Body -
-
+
+