diff --git a/Resume.Blazor/Components/ItemTemplate/ProjectItemTemplate.razor b/Resume.Blazor/Components/ItemTemplate/ProjectItemTemplate.razor index 0c5971a..131d574 100644 --- a/Resume.Blazor/Components/ItemTemplate/ProjectItemTemplate.razor +++ b/Resume.Blazor/Components/ItemTemplate/ProjectItemTemplate.razor @@ -1,39 +1,49 @@ - - +@using Blazorise.Video + + - - - @Name -

- @Detail -

-
+ + @* *@ - @foreach (var feild in Feilds) - { -
-

@feild

-
- } + + + + @* + @Name +

+ @Detail +

*@ +
+ + @foreach (var feild in Feilds) + { +
+

@feild

+
+ } -
+
- @if (ShowButton) - { - @ButtonText - } -
-
+ @if (ShowButton) + { + @* @ButtonText *@ + } + +
@code { - [Parameter] public string Name { get; set; } - [Parameter] public string Detail { get; set; } - [Parameter] public string Link { get; set; } - [Parameter] public string[] Feilds { get; set; } - [Parameter] public string ImageSrc { get; set; } - [Parameter] public bool ShowButton { get; set; } = true; - [Parameter] public string ButtonText { get; set; } + [Parameter] public string Name { get; set; } + [Parameter] public string Detail { get; set; } + [Parameter] public string Link { get; set; } + [Parameter] public string[] Feilds { get; set; } + [Parameter] public string ImageSrc { get; set; } + [Parameter] public string VideoSrc { get; set; } + [Parameter] public bool ShowButton { get; set; } = true; + [Parameter] public string ButtonText { get; set; } } diff --git a/Resume.Blazor/Components/ItemTemplate/SkillItemTemplate.razor b/Resume.Blazor/Components/ItemTemplate/SkillItemTemplate.razor index 95ba554..0deff64 100644 --- a/Resume.Blazor/Components/ItemTemplate/SkillItemTemplate.razor +++ b/Resume.Blazor/Components/ItemTemplate/SkillItemTemplate.razor @@ -1,4 +1,4 @@ - + diff --git a/Resume.Blazor/Components/ItemTemplate/ToolsItemTemplate.razor b/Resume.Blazor/Components/ItemTemplate/ToolsItemTemplate.razor index 5e16a92..3effd9b 100644 --- a/Resume.Blazor/Components/ItemTemplate/ToolsItemTemplate.razor +++ b/Resume.Blazor/Components/ItemTemplate/ToolsItemTemplate.razor @@ -1,4 +1,4 @@ -
+

@Name

diff --git a/Resume.Blazor/Helpers/ExperienceHelper.cs b/Resume.Blazor/Helpers/ExperienceHelper.cs index 15955ef..70f65b9 100644 --- a/Resume.Blazor/Helpers/ExperienceHelper.cs +++ b/Resume.Blazor/Helpers/ExperienceHelper.cs @@ -2,7 +2,502 @@ namespace Resume.Blazor; public static class ExperienceHelper -{ +{ + + public static List ProjectCategoryItemModels = new List + { + new ProjectCategoryItemModel + { + Name = "2D Motion Graghics", + Projects = new List + { + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/2D%20Motion%20Graghics/Saving%20415%20Million%20People.mp4", + Name="Saving 415 Million People" , + Feilds= new string[] {"Decoupage" , "Director" , "Designing" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/2D%20Motion%20Graghics/Saving%20415%20million%20people.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/2D%20Motion%20Graghics/Pride%20800%20Million.mp4", + Name="Pride 800 Million" , + Feilds= new string[] {"Decoupage" , "Director" , "Designing" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/2D%20Motion%20Graghics/Pride%20800%20million.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/2D%20Motion%20Graghics/Paylot%20Saat%20Sefr.mp4", + Name="Paylot Saat Sefr" , + Feilds= new string[] {"Designing" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/2D%20Motion%20Graghics/Paylot%20Saat%20Sefr.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/2D%20Motion%20Graghics/Hallway%20To%20Progress.mp4", + Name="Hallway To Progress" , + Feilds= new string[] {"Decoupage" , "Director" , "Composite" , "Editing"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/2D%20Motion%20Graghics/Hallway%20to%20Progress.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/2D%20Motion%20Graghics/Future%20Superpowers.mp4", + Name="Future Superpowers" , + Feilds= new string[] {"Decoupage" , "Director" , "Composite" , "Editing"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/2D%20Motion%20Graghics/Future%20Superpowers.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/2D%20Motion%20Graghics/Dollar%2C%20The%20Beginning%2C%20The%20Power%2C%20The%20End.mp4", + Name="Dollar, The Beginning, The Power, The End" , + Feilds= new string[] {"Decoupage" , "Director" , "Composite" , "Editing"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/2D%20Motion%20Graghics/Dollar%2C%20the%20beginning%2C%20the%20power%2C%20the%20end.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/2D%20Motion%20Graghics/Combined%20Cycle%20Power%20Plant.mp4", + Name="Development Of Oil Value" , + Feilds= new string[] {"Decoupage" , "Director" , "Designing" , "Composite" , "Editing"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/2D%20Motion%20Graghics/Development%20of%20oil%20value.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/2D%20Motion%20Graghics/Combined%20Cycle%20Power%20Plant.mp4", + Name="Combined Cycle Power Plant" , + Feilds= new string[] {"Composite" , "Editing"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/2D%20Motion%20Graghics/Combined%20Cycle%20Power%20Plant.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/2D%20Motion%20Graghics/Building%20The%20Future.mp4", + Name="Building The Future" , + Feilds= new string[] {"Decoupage" , "Director" , "Designing" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/2D%20Motion%20Graghics/Building%20the%20future.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/2D%20Motion%20Graghics/25-Year%20Contract.mp4", + Name="25-Year Contract" , + Feilds= new string[] {"Decoupage" , "Director" , "Designing" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/2D%20Motion%20Graghics/25-Year%20Contract.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/2D%20Motion%20Graghics/7-Headed%20Demon.mp4", + Name="7-Headed Demon" , + Feilds= new string[] {"Decoupage" , "Director" , "Designing" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/2D%20Motion%20Graghics/7-Headed%20Demon.jpg", + Detail=""}, + + } + }, + new ProjectCategoryItemModel + { + Name = "3D Motion Graghics", + Projects = new List + { + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/3D%20Motion%20Graghics/Dependence%20On%20Oil.mp4", + Name="Dependence On Oil" , + Feilds= new string[] {"Rendering" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/3D%20Motion%20Graghics/Dependence%20on%20oil.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/3D%20Motion%20Graghics/Drone%20Power.mp4", + Name="Drone Power" , + Feilds= new string[] {"Rendering" , "Composite" , "Editing"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/3D%20Motion%20Graghics/Drone%20power.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/3D%20Motion%20Graghics/Evanescent%20Opportunities.mp4", + Name="Evanescent Opportunities" , + Feilds= new string[] {"Desingin" , "Rendering" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/3D%20Motion%20Graghics/Evanescent%20opportunities.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/3D%20Motion%20Graghics/Having%20A%20House.mp4", + Name="Having A House" , + Feilds= new string[] {"Decoupage" , "Director" , "Designing" ,"Rendering" , "Composite" , "Editing"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/3D%20Motion%20Graghics/Having%20a%20house.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/3D%20Motion%20Graghics/Import%20Of%20Foreign%20Goods.mp4", + Name="Import Of Foreign Goods" , + Feilds= new string[] {"Rendering" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/3D%20Motion%20Graghics/Import%20of%20foreign%20goods.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/3D%20Motion%20Graghics/Iran%27s%20Space%20Movement.mp4", + Name="Iran's Space Movement" , + Feilds= new string[] {"Decoupage" , "Director" , "Designing" ,"Rendering" , "Composite" , "Editing"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/3D%20Motion%20Graghics/Iran%27s%20space%20movement.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/3D%20Motion%20Graghics/Knowledge%20Base%20In%20Agriculture.mp4", + Name="Knowledge Base In Agriculture" , + Feilds= new string[] {"Rendering" , "Composite"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/3D%20Motion%20Graghics/Knowledge%20base%20in%20agriculture.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/3D%20Motion%20Graghics/Shield%20Of%20Iran.mp4", + Name="Shield Of Iran" , + Feilds= new string[] {"Rendering" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/3D%20Motion%20Graghics/Shield%20of%20Iran.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/3D%20Motion%20Graghics/Waste%20Production%20Of%20The%20Automotive%20Industry.mp4", + Name="Waste Production Of The Automotive Industry" , + Feilds= new string[] {"Rendering" , "Composite" , "Editing"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/3D%20Motion%20Graghics/Waste%20production%20of%20the%20automotive%20industry.jpg", + Detail=""}, + } + + }, + new ProjectCategoryItemModel + { + Name = "Animation", + Projects = new List + { + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Animation/Agricultural%20Machinery.mp4", + Name="Agricultural Machinery" , + Feilds= new string[] {"Decoupage" , "Director" , "Composite" , "Editing"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Animation/Agricultural%20Machinery.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Animation/Girl%27s%20Day.mp4", + Name="Girl's Day" , + Feilds= new string[] {"Composite" , "Editing"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Animation/Girl%27s%20Day.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Animation/Military%20Power.mp4", + Name="Military Power" , + Feilds= new string[] {"Decoupage" , "Director" , "Composite" , "Editing"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Animation/military%20power.mp4_snapshot_00.34.633.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Animation/Sickle%20and%20Mass.mp4", + Name="Sickle and Mass" , + Feilds= new string[] {"Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Animation/Sickle%20and%20Mass.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Animation/The%20Braves%20of%20Tangestan.mp4", + Name="The Braves of Tangestan" , + Feilds= new string[] {"Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Animation/The%20Braves%20of%20Tangestan.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Animation/Satellite%20Launch.mp4", + Name="Satellite Launch" , + Feilds= new string[] {"Decoupage" , "Director" , "Composite" , "Editing"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Animation/Satellite%20launch.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Animation/Watering%20Systems.mp4", + Name="Watering Systems" , + Feilds= new string[] {"Decoupage" , "Director" , "Composite" , "Editing"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Animation/Watering%20Systems.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Animation/Rural%20Gas%20Supply.mp4", + Name="Rural Gas Supply" , + Feilds= new string[] {"Decoupage" , "Director" , "Composite" , "Editing"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Animation/Rural%20gas%20supply.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Animation/Rural%20Telephone.mp4", + Name="Rural Telephone" , + Feilds= new string[] {"Decoupage" , "Director" , "Composite" , "Editing"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Animation/Rural%20telephone.jpg", + Detail=""}, + + } + + }, + new ProjectCategoryItemModel + { + Name = "Motion Comic", + Projects = new List + { + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Motion%20Comic/Motion%20Comic%20Ebrahim%20Hadi.mp4", + Name="Motion Comic Ebrahim Hadi" , + Feilds= new string[] {"Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Motion%20Comic/Motion%20Comic%20Ebrahim%20Hadi.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Motion%20Comic/Motion%20Comic%20Tehrani%20Moghadam.mp4", + Name="Motion Comic Tehrani Moghadam" , + Feilds= new string[] {"Composite" , "Editing"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Motion%20Comic/Motion%20Comic%20Tehrani%20Moghadam.jpg", + Detail=""}, + + } + + }, + new ProjectCategoryItemModel + { + Name = "Teaser", + Projects = new List + { + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Teaser/Igarson%20Teaser.mp4", + Name="Igarson Teaser" , + Feilds= new string[] {"Designing" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Teaser/iGarson%20teaser.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Teaser/Mucut%20Teaser.mp4", + Name="Mucut Teaser" , + Feilds= new string[] {"Designing" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Teaser/Mucut%20Teaser.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Teaser/Corona%20Deaths.mp4", + Name="Corona Deaths" , + Feilds= new string[] {"Decoupage" , "Director" , "Designing" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Teaser/Corona%20Deaths.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Teaser/Do%20Smile.mp4", + Name="Do Smile" , + Feilds= new string[] {"Decoupage" , "Director" , "Designing" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Teaser/Do%20smile.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Teaser/Eid%20Al-Fitr.mp4", + Name="Eid Al-Fitr" , + Feilds= new string[] {"Decoupage" , "Director" , "Designing" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Teaser/Eid%20al-Fitr.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Teaser/Father%27s%20Day.mp4", + Name="Father's Day" , + Feilds= new string[] {"Decoupage" , "Director" , "Designing" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Teaser/father%27s%20Day.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Teaser/Fleeting%20Life.mp4", + Name="Fleeting Life" , + Feilds= new string[] {"Decoupage" , "Director" , "Designing" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Teaser/Fleeting%20life.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Teaser/Half%20Of%20Sha%27ban.mp4", + Name="Half Of Sha'ban" , + Feilds= new string[] {"Decoupage" , "Director" , "Designing" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Teaser/Half%20of%20Sha%27ban.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Teaser/Happy%20New%20Year.mp4", + Name="Happy New Year" , + Feilds= new string[] {"Decoupage" , "Director" , "Designing" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Teaser/Happy%20new%20year.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Teaser/Instagram%20Promo.mp4", + Name="Instagram Promo" , + Feilds= new string[] {"Decoupage" , "Director" , "Designing" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Teaser/Instagram%20Promo.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Teaser/Municipality%20Of%20Tehran.mp4", + Name="Municipality Of Tehran" , + Feilds= new string[] {"Decoupage" , "Director" , "Designing" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Teaser/Municipality%20of%20Tehran.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Teaser/Petroshimi%20Pars.mp4", + Name="Petroshimi Pars" , + Feilds= new string[] {"Decoupage" , "Director" , "Designing" , "Composite" , "Editing" , "SFX and Music"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Teaser/Petroshimi%20Pars.jpg", + Detail=""}, + + } + + }, + new ProjectCategoryItemModel + { + Name = "Video Editing", + Projects = new List + { + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Video%20Editing/Documentary%20Transit.mp4", + Name="Documentary Transit" , + Feilds= new string[] {"Title" , "Editing" , "SFX and Music" , "Color correction"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Video%20Editing/Documentary%20Transit.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Video%20Editing/Moharram%20Clip.mp4", + Name="Moharram Clip" , + Feilds= new string[] {"Title" , "Editing" , "SFX and Music" , "Color correction"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Video%20Editing/Moharram%20Clip.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Video%20Editing/Music%20Video%20Of%20Naim%20Sha%27ban.mp4", + Name="Music Video Of Naim Sha'ban" , + Feilds= new string[] {"Editing" , "Color correction"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Video%20Editing/Music%20video%20of%20Naim%20Sha%27ban.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Video%20Editing/Penguins%20Event.mp4", + Name="Penguins Event" , + Feilds= new string[] {"Editing" , "SFX and Music" , "Color correction"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Video%20Editing/Penguins%20event.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Video%20Editing/The%20Way%20Shud%20To%20Go.mp4", + Name="The Way should To Go" , + Feilds= new string[] {"Title" , "Editing" , "SFX and Music" , "Color correction"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Video%20Editing/The%20way%20shud%20to%20go.jpg", + Detail=""}, + + new ProjectItemModel{ + VideoSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Videos/Video%20Editing/Zam%20Zam%20Eshgh.mp4", + Name="Zam Zam Eshgh" , + Feilds= new string[] {"Director" , "Editing" , "Color correction"}, + ButtonText ="WebSite" , + Link="", + ImageSrc="https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Video%20Editing/Zam%20Zam%20Eshgh.jpg", + Detail=""}, + + + } + + }, + + + }; + public static List ProjectItemModels = new List { new ProjectItemModel{ @@ -92,65 +587,30 @@ public static class ExperienceHelper }; public static List ToolsItemModels = new List { - new SkillItemModel{ExperiencePeriod = 7 , Name = "Visual Studio" , ImageSrc = "../assets/images/vsLogo.png"}, - new SkillItemModel{ExperiencePeriod = 7 , Name = "Nuget" , ImageSrc = "../assets/images/nugetLogo.png"}, - new SkillItemModel{ExperiencePeriod = 7 , Name = "GitHub" , ImageSrc = "../assets/images/githubLogo.png"}, - new SkillItemModel{ExperiencePeriod = 7 , Name = "Microsoft Office" , ImageSrc = "../assets/images/officeLogo.png"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "Photoshop" , ImageSrc = "../assets/images/photoshopLogo.png"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "VSCode" , ImageSrc = "../assets/images/vscodeLogo.png"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "Postman" , ImageSrc = "../assets/images/postmanLogo.png"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "SQLServer Management" , ImageSrc = "../assets/images/sqlmLogo.png"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "ReSharper" , ImageSrc = "../assets/images/resharperLogo.png"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "Jira" , ImageSrc = "https://logowik.com/content/uploads/images/jira3124.jpg"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "BitBucket" , ImageSrc = "../assets/images/bitbucketLogo.png"}, - new SkillItemModel{ExperiencePeriod = 4 , Name = "WordPress" , ImageSrc = "../assets/images/wordpressLogo.png"}, - new SkillItemModel{ExperiencePeriod = 2 , Name = "Adobe Xd" , ImageSrc = "../assets/images/xdLogo.png"}, - new SkillItemModel{ExperiencePeriod = 2 , Name = "SonarQube" , ImageSrc = "../assets/images/sonarLogo.png"}, - new SkillItemModel{ExperiencePeriod = 2 , Name = "Figma" , ImageSrc = "../assets/images/figmaLogo.png"}, - new SkillItemModel{ExperiencePeriod = 1 , Name = "Rider" , ImageSrc = "../assets/images/riderLogo.png"}, - new SkillItemModel{ExperiencePeriod = 1 , Name = "NDepend" , ImageSrc = "../assets/images/ndependLogo.png"}, - new SkillItemModel{ExperiencePeriod = 1 , Name = "Studio 3T" , ImageSrc = "../assets/images/studio3tLogo.png"}, + new SkillItemModel{ExperiencePeriod = 7 , Name = "Adobe After Effects" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Tools/After%20Effects.png"}, + new SkillItemModel{ExperiencePeriod = 7 , Name = "Adobe Premiere" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Tools/Premiere.png"}, + new SkillItemModel{ExperiencePeriod = 5 , Name = "Adobe Illustrator" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Tools/Illustrator.png"}, + new SkillItemModel{ExperiencePeriod = 5 , Name = "Adobe Photoshop" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Tools/Photoshope.png"}, + new SkillItemModel{ExperiencePeriod = 3 , Name = "Adobe Audition" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Tools/Audition.png"}, + new SkillItemModel{ExperiencePeriod = 5 , Name = "Maxone Cinama 4D" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Tools/Cinama%204D.png"}, + new SkillItemModel{ExperiencePeriod = 3 , Name = "Unreal Engine" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Tools/Unreal%20Engine.png"}, + new SkillItemModel{ExperiencePeriod = 5 , Name = "Microsoft Office Word" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Tools/Word.png"}, + new SkillItemModel{ExperiencePeriod = 5 , Name = "Microsoft Office Execl" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Tools/Excel.png"}, + new SkillItemModel{ExperiencePeriod = 5 , Name = "Microsoft Office PowerPoint" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Tools/Power%20Point.png"}, }; + public static List SkillItemModels = new List { - new SkillItemModel{ExperiencePeriod = 7 , Name = "C# Programming" , ImageSrc = "https://static.javatpoint.com/csharp/images/c-sharp.png"}, - new SkillItemModel{ExperiencePeriod = 7 , Name = "C++ Programming" , ImageSrc = "../assets/images/cppLogo.png"}, - new SkillItemModel{ExperiencePeriod = 6 , Name = "Asp .Net Core" , ImageSrc = "../assets/images/netcorLogo.png"}, - new SkillItemModel{ExperiencePeriod = 6 , Name = "Xamarin" , ImageSrc = "../assets/images/xamarinLogo.png"}, - new SkillItemModel{ExperiencePeriod = 6 , Name = "Xamarin Forms" , ImageSrc = "../assets/images/xamarinLogo.png"}, - new SkillItemModel{ExperiencePeriod = 2 , Name = ".NET MAUI" , ImageSrc = "../assets/images/mauiLogo.png"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "Prism" , ImageSrc = "../assets/images/prismLogo.png"}, - new SkillItemModel{ExperiencePeriod = 6 , Name = "iOS Application" , ImageSrc = "../assets/images/iosLogo.png"}, - new SkillItemModel{ExperiencePeriod = 6 , Name = "Android Application" , ImageSrc = "../assets/images/androidLogo.png"}, - new SkillItemModel{ExperiencePeriod = 6 , Name = "Git" , ImageSrc = "https://git-scm.com/images/logos/downloads/Git-Icon-1788C.png"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "Microsoft SQL Server" , ImageSrc = "https://logowik.com/content/uploads/images/microsoft-sql-server4529.jpg"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "Windows Application" , ImageSrc = "https://www.sketchappsources.com/resources/source-image/windows-logo-alesiamjau.png"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "Wpf" , ImageSrc = "../assets/images/netcorLogo.png"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "SOLID" , ImageSrc = "../assets/images/solidLogo.png"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "DDD" , ImageSrc = "../assets/images/dddLogo.png"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "XAML" , ImageSrc = "../assets/images/xamlLogo.png"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "MVVM Design Pattern" , ImageSrc = "../assets/images/mvvmLogo.png"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "Entity Framework Core" , ImageSrc = "https://codeopinion.com/wp-content/uploads/2017/10/Bitmap-MEDIUM_Entity-Framework-Core-Logo_2colors_Square_Boxed_RGB.png"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "RESTful Api" , ImageSrc = "https://lh3.googleusercontent.com/-XvJzhz3pfH0/XjYG_xWkESI/AAAAAAAAJ9c/AYlgAtRknEU2W5fMcFhQoL6rmO8EBtIDQCK8BGAsYHg/s0/2020-02-01.png"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "Web API" , ImageSrc = "https://static.javatpoint.com/tutorial/webapi/images/web-api-tutorial.png"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "Postgress SQL" , ImageSrc = "https://www.influxdata.com/wp-content/uploads/PostgreSQL-logo.jpg"}, - new SkillItemModel{ExperiencePeriod = 5 , Name = "Scrum" , ImageSrc = "https://images.credly.com/images/db768524-81d9-435e-96fc-33b517e15616/blob.png"}, - new SkillItemModel{ExperiencePeriod = 4 , Name = "SignalR" , ImageSrc = "https://img.stackshare.io/service/4013/SignalR-logo.png"}, - new SkillItemModel{ExperiencePeriod = 3 , Name = "Docker" , ImageSrc = "../assets/images/dockerLogo.png"}, - new SkillItemModel{ExperiencePeriod = 4 , Name = "UI-UX" , ImageSrc = "https://artographic.ir/file/attach/202102/1330.png"}, - new SkillItemModel{ExperiencePeriod = 4 , Name = "Clean Architecture" , ImageSrc = "../assets/images/carchLogo.png"}, - new SkillItemModel{ExperiencePeriod = 4 , Name = "MicroServices" , ImageSrc = "../assets/images/microserviceLogo.png"}, - new SkillItemModel{ExperiencePeriod = 4 , Name = "Redis" , ImageSrc = "../assets/images/redisLogo.png"}, - new SkillItemModel{ExperiencePeriod = 3 , Name = "STOMP" , ImageSrc = "https://seeklogo.com/images/S/STOMP-logo-9B23B79AF7-seeklogo.com.gif"}, - new SkillItemModel{ExperiencePeriod = 3 , Name = "RabbitMQ" , ImageSrc = "../assets/images/rabbitLogo.png"}, - new SkillItemModel{ExperiencePeriod = 3 , Name = "DevOps" , ImageSrc = "https://cdn.dribbble.com/users/13574/screenshots/9711275/logo-devops.png"}, - new SkillItemModel{ExperiencePeriod = 3 , Name = "MongoDB" , ImageSrc = "https://res.cloudinary.com/hevo/image/upload/f_auto,q_auto/v1626694700/hevo-blog/MongoDB-sm-logo-500x400-1-1.gif"}, - new SkillItemModel{ExperiencePeriod = 3 , Name = "gRPC" , ImageSrc = "https://avatars.githubusercontent.com/u/7802525?s=280&v=4"}, - new SkillItemModel{ExperiencePeriod = 2 , Name = "CICD" , ImageSrc = "../assets/images/cicdLogo.png"}, - new SkillItemModel{ExperiencePeriod = 2 , Name = "ML.Net" , ImageSrc = "../assets/images/mlLogo.png"}, - new SkillItemModel{ExperiencePeriod = 2 , Name = "QraphQL" , ImageSrc = "../assets/images/graphLogo.png"}, - new SkillItemModel{ExperiencePeriod = 2 , Name = "Unity" , ImageSrc = "../assets/images/unityLogo.png"}, - new SkillItemModel{ExperiencePeriod = 10 , Name = "Googling" , ImageSrc = "../assets/images/googleLogo.png"}, + new SkillItemModel{ExperiencePeriod = 7 , Name = "Editing Video" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Skills/Editing%20Video.png"}, + new SkillItemModel{ExperiencePeriod = 7 , Name = "Motion Graphics" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Skills/Motion%20Graphics.png"}, + new SkillItemModel{ExperiencePeriod = 6 , Name = "Making Teaser" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Skills/Making%20Teaser.png"}, + new SkillItemModel{ExperiencePeriod = 5 , Name = "Director" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Skills/Director.png"}, + new SkillItemModel{ExperiencePeriod = 3 , Name = "Scenario Writer" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Skills/scenario%20writer.png"}, + new SkillItemModel{ExperiencePeriod = 3 , Name = "Model Maker" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Skills/model%20maker.png"}, + new SkillItemModel{ExperiencePeriod = 5 , Name = "Filming" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Skills/Filming.png"}, + new SkillItemModel{ExperiencePeriod = 4 , Name = "Aerial Photography" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Skills/Aerial%20Photography.png"}, + new SkillItemModel{ExperiencePeriod = 4 , Name = "Stage Design" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Skills/Stage%20Design.png"}, + new SkillItemModel{ExperiencePeriod = 5 , Name = "Sound Editing" , ImageSrc = "https://s3.ir-thr-at1.arvanstorage.ir/resume-contents/Images/Icones/Skills/Sound%20Editing.png"}, }; } diff --git a/Resume.Blazor/Models/ItemModels/ProjectCategoryItemModel.cs b/Resume.Blazor/Models/ItemModels/ProjectCategoryItemModel.cs new file mode 100644 index 0000000..e119a36 --- /dev/null +++ b/Resume.Blazor/Models/ItemModels/ProjectCategoryItemModel.cs @@ -0,0 +1,7 @@ +namespace Resume.Blazor.Models.ItemModels; + +public class ProjectCategoryItemModel +{ + public string Name { get; set; } + public List Projects { get; set; } = new(); +} \ No newline at end of file diff --git a/Resume.Blazor/Models/ItemModels/ProjectItemModel.cs b/Resume.Blazor/Models/ItemModels/ProjectItemModel.cs index 783b15a..0ad9f12 100644 --- a/Resume.Blazor/Models/ItemModels/ProjectItemModel.cs +++ b/Resume.Blazor/Models/ItemModels/ProjectItemModel.cs @@ -4,6 +4,7 @@ public class ProjectItemModel public bool ShowButton { get; set; } = true; public string Name { get; set; } public string ImageSrc { get; set; } + public string VideoSrc { get; set; } public string Link { get; set; } public string ButtonText { get; set; } public string Detail { get; set; } diff --git a/Resume.Blazor/Pages/Index.razor b/Resume.Blazor/Pages/Index.razor index 2f809e4..66e596c 100644 --- a/Resume.Blazor/Pages/Index.razor +++ b/Resume.Blazor/Pages/Index.razor @@ -3,28 +3,29 @@ - + - -
- - @* Amir Hossein Khademi

*@ - Amir Hossein Khademi - - +
+ + @* Amir Hossein Khademi

*@ + + Hesam Masoumi + + - Software Engineer - -
-

Contact Info

+ Software Engineer + +
+

Contact Info

- - 6.81674V7.91662C8.33341 8.14674 8.14641 8.33328 7.91629 8.33328L7.9157 8.33329Z" /> - -
-

Socials

+
+

Socials

- -
- -
-

Instagram

- mr.mohande3 + + + +
+
+
+

Experience

+
+
+ @*
*@ + + + + + + + + + + + + +
-
- - - - - - -
-
-
-

Experience

-
-
-
- - - - - - - - - - - - - -
- - -
-
-
- -

Latest Projects

-
-
- -
- - @foreach (var item in ProjectItemModels) - { - - - - } - - -
- -
-
-
-

Skills

-
- -
- - @foreach (var item in SkillItemModels) - { - - - - } + +
+
+
+

Skills

+
+ + @*
*@ + + @foreach (var item in SkillItemModels) + { + + + + } - -
+
+
- -
-
-
-

Tools

-
- -
- - @foreach (var item in ToolsItemModels) - { - - - - } - -
+ +
+
+
+

Tools

+
+ +
+ + @foreach (var item in ToolsItemModels) + { + + + + } + +
-
+ - + @code { - [Parameter] public List SkillItemModels { get; set; } = ExperienceHelper.SkillItemModels; - [Parameter] public List ToolsItemModels { get; set; } = ExperienceHelper.ToolsItemModels; - [Parameter] public List ProjectItemModels { get; set; } = ExperienceHelper.ProjectItemModels; + [Parameter] public List SkillItemModels { get; set; } = ExperienceHelper.SkillItemModels; + [Parameter] public List ToolsItemModels { get; set; } = ExperienceHelper.ToolsItemModels; + [Parameter] public List ProjectItemModels { get; set; } = new(); + [Parameter] public List ProjectCategoryItemModels { get; set; } = ExperienceHelper.ProjectCategoryItemModels; + + private int categoryChipCounter = 0; + + private void CategorySelectedChange(MudChip obj) + { + if (obj.Value is ProjectCategoryItemModel category) + { + ProjectItemModels = new List(); + ProjectItemModels.AddRange(category.Projects); + } + } } diff --git a/Resume.Blazor/Program.cs b/Resume.Blazor/Program.cs index 53b5fbc..bd8ca15 100644 --- a/Resume.Blazor/Program.cs +++ b/Resume.Blazor/Program.cs @@ -2,10 +2,15 @@ using Microsoft.AspNetCore.Components.Web; using Microsoft.AspNetCore.Components.WebAssembly.Hosting; using Resume.Blazor; using MudBlazor.Services; +using Blazorise; var builder = WebAssemblyHostBuilder.CreateDefault(args); builder.RootComponents.Add("#app"); builder.RootComponents.Add("head::after"); +builder.Services.AddBlazorise(options => + { + options.Immediate = true; + }); builder.Services.AddMudServices(); builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); diff --git a/Resume.Blazor/Properties/launchSettings.json b/Resume.Blazor/Properties/launchSettings.json index 02179f4..3fc9166 100644 --- a/Resume.Blazor/Properties/launchSettings.json +++ b/Resume.Blazor/Properties/launchSettings.json @@ -2,6 +2,8 @@ "profiles": { "http": { "commandName": "Project", + "launchBrowser": true, + "hotReloadProfile": "aspnetcore", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" }, diff --git a/Resume.Blazor/Resume.Blazor.csproj b/Resume.Blazor/Resume.Blazor.csproj index dbd5e14..25f4307 100644 --- a/Resume.Blazor/Resume.Blazor.csproj +++ b/Resume.Blazor/Resume.Blazor.csproj @@ -3,15 +3,16 @@ - net7.0 + net8.0 enable service-worker-assets.js - - - + + + + diff --git a/Resume.Blazor/package-lock.json b/Resume.Blazor/package-lock.json index fe7a975..dfb59c3 100644 --- a/Resume.Blazor/package-lock.json +++ b/Resume.Blazor/package-lock.json @@ -1,14 +1,18 @@ { - "name": "Resume.Blazor", + "name": "resume", + "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { + "name": "resume", + "version": "1.0.0", + "license": "ISC", "dependencies": { "autoprefixer": "^10.4.14", - "postcss": "^8.4.23", + "postcss": "^8.4.31", "postcss-cli": "^10.1.0", - "tailwindcss": "^3.3.2" + "tailwindcss": "^3.3.5" } }, "node_modules/@alloc/quick-lru": { @@ -392,9 +396,9 @@ } }, "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -647,9 +651,9 @@ } }, "node_modules/jiti": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", - "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", "bin": { "jiti": "bin/jiti.js" } @@ -835,9 +839,9 @@ } }, "node_modules/postcss": { - "version": "8.4.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", - "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { "type": "opencollective", @@ -1182,19 +1186,19 @@ } }, "node_modules/tailwindcss": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz", - "integrity": "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz", + "integrity": "sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", "chokidar": "^3.5.3", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.2.12", + "fast-glob": "^3.3.0", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.18.2", + "jiti": "^1.19.1", "lilconfig": "^2.1.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", @@ -1206,7 +1210,6 @@ "postcss-load-config": "^4.0.1", "postcss-nested": "^6.0.1", "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0", "resolve": "^1.22.2", "sucrase": "^3.32.0" }, diff --git a/Resume.Blazor/package.json b/Resume.Blazor/package.json index c71bfe8..d8a17b3 100644 --- a/Resume.Blazor/package.json +++ b/Resume.Blazor/package.json @@ -11,8 +11,8 @@ "license": "ISC", "dependencies": { "autoprefixer": "^10.4.14", - "postcss": "^8.4.23", + "postcss": "^8.4.31", "postcss-cli": "^10.1.0", - "tailwindcss": "^3.3.2" + "tailwindcss": "^3.3.5" } } diff --git a/Resume.Blazor/tailwind.extension.json b/Resume.Blazor/tailwind.extension.json new file mode 100644 index 0000000..e93022f --- /dev/null +++ b/Resume.Blazor/tailwind.extension.json @@ -0,0 +1 @@ +{"ConfigurationFile":"tailwind.config.js","InputCssFile":null,"OutputCssFile":null} \ No newline at end of file diff --git a/Resume.Blazor/wwwroot/css/app.output.css b/Resume.Blazor/wwwroot/css/app.output.css new file mode 100644 index 0000000..b47b09a --- /dev/null +++ b/Resume.Blazor/wwwroot/css/app.output.css @@ -0,0 +1,1159 @@ +/* +! tailwindcss v3.3.5 | MIT License | https://tailwindcss.com +*/ + +/* +1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) +2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) +*/ + +*, +::before, +::after { + box-sizing: border-box; + /* 1 */ + border-width: 0; + /* 2 */ + border-style: solid; + /* 2 */ + border-color: #e5e7eb; + /* 2 */ +} + +::before, +::after { + --tw-content: ''; +} + +/* +1. Use a consistent sensible line-height in all browsers. +2. Prevent adjustments of font size after orientation changes in iOS. +3. Use a more readable tab size. +4. Use the user's configured `sans` font-family by default. +5. Use the user's configured `sans` font-feature-settings by default. +6. Use the user's configured `sans` font-variation-settings by default. +*/ + +html { + line-height: 1.5; + /* 1 */ + -webkit-text-size-adjust: 100%; + /* 2 */ + -moz-tab-size: 4; + /* 3 */ + -o-tab-size: 4; + tab-size: 4; + /* 3 */ + font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + /* 4 */ + font-feature-settings: normal; + /* 5 */ + font-variation-settings: normal; + /* 6 */ +} + +/* +1. Remove the margin in all browsers. +2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. +*/ + +body { + margin: 0; + /* 1 */ + line-height: inherit; + /* 2 */ +} + +/* +1. Add the correct height in Firefox. +2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) +3. Ensure horizontal rules are visible by default. +*/ + +hr { + height: 0; + /* 1 */ + color: inherit; + /* 2 */ + border-top-width: 1px; + /* 3 */ +} + +/* +Add the correct text decoration in Chrome, Edge, and Safari. +*/ + +abbr:where([title]) { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +/* +Remove the default font size and weight for headings. +*/ + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: inherit; + font-weight: inherit; +} + +/* +Reset links to optimize for opt-in styling instead of opt-out. +*/ + +a { + color: inherit; + text-decoration: inherit; +} + +/* +Add the correct font weight in Edge and Safari. +*/ + +b, +strong { + font-weight: bolder; +} + +/* +1. Use the user's configured `mono` font family by default. +2. Correct the odd `em` font sizing in all browsers. +*/ + +code, +kbd, +samp, +pre { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} + +/* +Add the correct font size in all browsers. +*/ + +small { + font-size: 80%; +} + +/* +Prevent `sub` and `sup` elements from affecting the line height in all browsers. +*/ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* +1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) +2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) +3. Remove gaps between table borders by default. +*/ + +table { + text-indent: 0; + /* 1 */ + border-color: inherit; + /* 2 */ + border-collapse: collapse; + /* 3 */ +} + +/* +1. Change the font styles in all browsers. +2. Remove the margin in Firefox and Safari. +3. Remove default padding in all browsers. +*/ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + /* 1 */ + font-feature-settings: inherit; + /* 1 */ + font-variation-settings: inherit; + /* 1 */ + font-size: 100%; + /* 1 */ + font-weight: inherit; + /* 1 */ + line-height: inherit; + /* 1 */ + color: inherit; + /* 1 */ + margin: 0; + /* 2 */ + padding: 0; + /* 3 */ +} + +/* +Remove the inheritance of text transform in Edge and Firefox. +*/ + +button, +select { + text-transform: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Remove default button styles. +*/ + +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; + /* 1 */ + background-color: transparent; + /* 2 */ + background-image: none; + /* 2 */ +} + +/* +Use the modern Firefox focus style for all focusable elements. +*/ + +:-moz-focusring { + outline: auto; +} + +/* +Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) +*/ + +:-moz-ui-invalid { + box-shadow: none; +} + +/* +Add the correct vertical alignment in Chrome and Firefox. +*/ + +progress { + vertical-align: baseline; +} + +/* +Correct the cursor style of increment and decrement buttons in Safari. +*/ + +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height: auto; +} + +/* +1. Correct the odd appearance in Chrome and Safari. +2. Correct the outline style in Safari. +*/ + +[type='search'] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ +} + +/* +Remove the inner padding in Chrome and Safari on macOS. +*/ + +::-webkit-search-decoration { + -webkit-appearance: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Change font properties to `inherit` in Safari. +*/ + +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ +} + +/* +Add the correct display in Chrome and Safari. +*/ + +summary { + display: list-item; +} + +/* +Removes the default spacing and border for appropriate elements. +*/ + +blockquote, +dl, +dd, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +figure, +p, +pre { + margin: 0; +} + +fieldset { + margin: 0; + padding: 0; +} + +legend { + padding: 0; +} + +ol, +ul, +menu { + list-style: none; + margin: 0; + padding: 0; +} + +/* +Reset default styling for dialogs. +*/ + +dialog { + padding: 0; +} + +/* +Prevent resizing textareas horizontally by default. +*/ + +textarea { + resize: vertical; +} + +/* +1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) +2. Set the default placeholder color to the user's configured gray 400 color. +*/ + +input::-moz-placeholder, textarea::-moz-placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +input::placeholder, +textarea::placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +/* +Set the default cursor for buttons. +*/ + +button, +[role="button"] { + cursor: pointer; +} + +/* +Make sure disabled buttons don't get the pointer cursor. +*/ + +:disabled { + cursor: default; +} + +/* +1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) +2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) + This can trigger a poorly considered lint error in some tools but is included by design. +*/ + +img, +svg, +video, +canvas, +audio, +iframe, +embed, +object { + display: block; + /* 1 */ + vertical-align: middle; + /* 2 */ +} + +/* +Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) +*/ + +img, +video { + max-width: 100%; + height: auto; +} + +/* Make elements with the HTML hidden attribute stay hidden by default */ + +[hidden] { + display: none; +} + +*, ::before, ::after { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; +} + +::backdrop { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; +} + +.collapse { + visibility: collapse; +} + +.relative { + position: relative; +} + +.m-1 { + margin: 0.25rem; +} + +.m-3 { + margin: 0.75rem; +} + +.m-3\.5 { + margin: 0.875rem; +} + +.m-8 { + margin: 2rem; +} + +.-mx-1 { + margin-left: -0.25rem; + margin-right: -0.25rem; +} + +.mx-1 { + margin-left: 0.25rem; + margin-right: 0.25rem; +} + +.mx-3 { + margin-left: 0.75rem; + margin-right: 0.75rem; +} + +.mx-4 { + margin-left: 1rem; + margin-right: 1rem; +} + +.mx-5 { + margin-left: 1.25rem; + margin-right: 1.25rem; +} + +.mx-auto { + margin-left: auto; + margin-right: auto; +} + +.my-2 { + margin-top: 0.5rem; + margin-bottom: 0.5rem; +} + +.my-5 { + margin-top: 1.25rem; + margin-bottom: 1.25rem; +} + +.my-8 { + margin-top: 2rem; + margin-bottom: 2rem; +} + +.my-auto { + margin-top: auto; + margin-bottom: auto; +} + +.-mb-1 { + margin-bottom: -0.25rem; +} + +.-mt-1 { + margin-top: -0.25rem; +} + +.-mt-2 { + margin-top: -0.5rem; +} + +.mb-3 { + margin-bottom: 0.75rem; +} + +.mb-4 { + margin-bottom: 1rem; +} + +.mb-8 { + margin-bottom: 2rem; +} + +.me-2 { + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} + +.ml-2 { + margin-left: 0.5rem; +} + +.ml-5 { + margin-left: 1.25rem; +} + +.mr-5 { + margin-right: 1.25rem; +} + +.mt-0 { + margin-top: 0px; +} + +.mt-1 { + margin-top: 0.25rem; +} + +.mt-2 { + margin-top: 0.5rem; +} + +.mt-4 { + margin-top: 1rem; +} + +.mt-8 { + margin-top: 2rem; +} + +.flex { + display: flex; +} + +.h-10 { + height: 2.5rem; +} + +.h-12 { + height: 3rem; +} + +.h-16 { + height: 4rem; +} + +.h-20 { + height: 5rem; +} + +.h-3 { + height: 0.75rem; +} + +.h-7 { + height: 1.75rem; +} + +.h-\[0\.1rem\] { + height: 0.1rem; +} + +.h-\[3\.5rem\] { + height: 3.5rem; +} + +.h-auto { + height: auto; +} + +.h-fit { + height: -moz-fit-content; + height: fit-content; +} + +.h-full { + height: 100%; +} + +.w-0 { + width: 0px; +} + +.w-0\.5 { + width: 0.125rem; +} + +.w-10 { + width: 2.5rem; +} + +.w-12 { + width: 3rem; +} + +.w-16 { + width: 4rem; +} + +.w-20 { + width: 5rem; +} + +.w-3 { + width: 0.75rem; +} + +.w-7 { + width: 1.75rem; +} + +.w-\[19rem\] { + width: 19rem; +} + +.w-\[20rem\] { + width: 20rem; +} + +.w-\[3\.5rem\] { + width: 3.5rem; +} + +.w-full { + width: 100%; +} + +.flex-row { + flex-direction: row; +} + +.flex-wrap { + flex-wrap: wrap; +} + +.justify-center { + justify-content: center; +} + +.justify-items-end { + justify-items: end; +} + +.justify-items-stretch { + justify-items: stretch; +} + +.space-x-1 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(0.25rem * var(--tw-space-x-reverse)); + margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse))); +} + +.overflow-x-auto { + overflow-x: auto; +} + +.rounded-full { + border-radius: 9999px; +} + +.rounded-lg { + border-radius: 0.5rem; +} + +.rounded-md { + border-radius: 0.375rem; +} + +.bg-\[\#0077B5\] { + --tw-bg-opacity: 1; + background-color: rgb(0 119 181 / var(--tw-bg-opacity)); +} + +.bg-\[\#00ACEE\] { + --tw-bg-opacity: 1; + background-color: rgb(0 172 238 / var(--tw-bg-opacity)); +} + +.bg-\[\#232339\] { + --tw-bg-opacity: 1; + background-color: rgb(35 35 57 / var(--tw-bg-opacity)); +} + +.bg-\[\#2E2E48\] { + --tw-bg-opacity: 1; + background-color: rgb(46 46 72 / var(--tw-bg-opacity)); +} + +.bg-\[\#C696FC\] { + --tw-bg-opacity: 1; + background-color: rgb(198 150 252 / var(--tw-bg-opacity)); +} + +.bg-black\/60 { + background-color: rgb(0 0 0 / 0.6); +} + +.bg-transparent { + background-color: transparent; +} + +.bg-white { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} + +.bg-\[url\(\'https\:\/\/rwrg\.razi\.ac\.ir\/documents\/2384744\/2384950\/razi\+1\.png\.jpg\/ebadeea5-6be3-d2b5-31ee-070d1f5504b3\?t\=1652690416693\'\)\] { + background-image: url('https://rwrg.razi.ac.ir/documents/2384744/2384950/razi+1.png.jpg/ebadeea5-6be3-d2b5-31ee-070d1f5504b3?t=1652690416693'); +} + +.bg-gradient-to-r { + background-image: linear-gradient(to right, var(--tw-gradient-stops)); +} + +.from-pink-500 { + --tw-gradient-from: #ec4899 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(236 72 153 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.to-violet-500 { + --tw-gradient-to: #8b5cf6 var(--tw-gradient-to-position); +} + +.bg-clip-text { + -webkit-background-clip: text; + background-clip: text; +} + +.p-1 { + padding: 0.25rem; +} + +.p-5 { + padding: 1.25rem; +} + +.px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; +} + +.px-2\.5 { + padding-left: 0.625rem; + padding-right: 0.625rem; +} + +.px-3 { + padding-left: 0.75rem; + padding-right: 0.75rem; +} + +.px-5 { + padding-left: 1.25rem; + padding-right: 1.25rem; +} + +.py-1 { + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} + +.py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.py-3 { + padding-top: 0.75rem; + padding-bottom: 0.75rem; +} + +.py-7 { + padding-top: 1.75rem; + padding-bottom: 1.75rem; +} + +.ps-3 { + -webkit-padding-start: 0.75rem; + padding-inline-start: 0.75rem; +} + +.pt-5 { + padding-top: 1.25rem; +} + +.pt-3 { + padding-top: 0.75rem; +} + +.text-center { + text-align: center; +} + +.text-justify { + text-align: justify; +} + +.font-outfit { + font-family: Outfit, sans-serif; +} + +.font-outfit-black { + font-family: Outfit-Black, sans-serif; +} + +.text-2xl { + font-size: 1.5rem; + line-height: 2rem; +} + +.text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; +} + +.text-4xl { + font-size: 2.25rem; + line-height: 2.5rem; +} + +.text-\[0\.7rem\] { + font-size: 0.7rem; +} + +.text-\[0\.8rem\] { + font-size: 0.8rem; +} + +.text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} + +.font-bold { + font-weight: 700; +} + +.font-extrabold { + font-weight: 800; +} + +.text-gray-400 { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} + +.text-transparent { + color: transparent; +} + +.text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.opacity-10 { + opacity: 0.1; +} + +.backdrop-blur-sm { + --tw-backdrop-blur: blur(4px); + -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); + backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); +} + +@font-face { + font-family: Roboto; + + src: url("../assets/fonts/Roboto-Regular.ttf") format("truetype"); +} + +@font-face { + font-family: Outfit; + + src: url("../assets/fonts/Outfit-Regular.ttf") format("truetype"); +} + +@font-face { + font-family: Outfit-Black; + + src: url("../assets/fonts/Outfit-Black.ttf") format("truetype"); +} + +*{ + font-family: Outfit; +} + +html, body { + /* font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; */ +} + +h1:focus { + outline: none; +} + +a, .btn-link { + color: #0071c1; +} + +.btn-primary { + color: #fff; + background-color: #1b6ec2; + border-color: #1861ac; +} + +.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus { + box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb; +} + +.content { + padding-top: 1.1rem; +} + +.valid.modified:not([type=checkbox]) { + outline: 1px solid #26b050; +} + +.invalid { + outline: 1px solid red; +} + +.validation-message { + color: red; +} + +#blazor-error-ui { + background: lightyellow; + bottom: 0; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); + display: none; + left: 0; + padding: 0.6rem 1.25rem 0.7rem 1.25rem; + position: fixed; + width: 100%; + z-index: 1000; +} + +#blazor-error-ui .dismiss { + cursor: pointer; + position: absolute; + right: 0.75rem; + top: 0.5rem; +} + +.blazor-error-boundary { + background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121; + padding: 1rem 1rem 1rem 3.7rem; + color: white; +} + +.blazor-error-boundary::after { + content: "An error has occurred." +} + +.loading-progress { + position: relative; + display: block; + width: 8rem; + height: 8rem; + margin: 20vh auto 1rem auto; +} + +.loading-progress circle { + fill: none; + stroke: #e0e0e0; + stroke-width: 0.6rem; + transform-origin: 50% 50%; + transform: rotate(-90deg); +} + +.loading-progress circle:last-child { + stroke: #1b6ec2; + stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%) * 0.8), 500%; + transition: stroke-dasharray 0.05s ease-in-out; +} + +.loading-progress-text { + position: absolute; + text-align: center; + font-weight: bold; + inset: calc(20vh + 3.25rem) 0 auto 0.2rem; +} + +.loading-progress-text:after { + content: var(--blazor-load-percentage-text, "Loading"); +} + +@media (min-width: 640px) { + .sm\:w-\[18rem\] { + width: 18rem; + } +} + +@media (min-width: 768px) { + .md\:visible { + visibility: visible; + } + + .md\:ml-5 { + margin-left: 1.25rem; + } + + .md\:mr-10 { + margin-right: 2.5rem; + } + + .md\:w-\[25rem\] { + width: 25rem; + } +} + +@media (min-width: 1024px) { + .lg\:w-\[35rem\] { + width: 35rem; + } +} diff --git a/Resume.Blazor/wwwroot/index.html b/Resume.Blazor/wwwroot/index.html index 1e451f1..76c0626 100644 --- a/Resume.Blazor/wwwroot/index.html +++ b/Resume.Blazor/wwwroot/index.html @@ -4,17 +4,17 @@ - Amir Hossein Khademi | امیرحسین خادمی + Hesam Masoumi | حسام معصومی - - - + + + - - + +