diff --git a/uTPro/Common/uTPro.Common/Models/CMS/GlobalOneColumnSection.generated.cs b/uTPro/Common/uTPro.Common/Models/CMS/GlobalOneColumnSection.generated.cs index 19b0b0b..857efdf 100644 --- a/uTPro/Common/uTPro.Common/Models/CMS/GlobalOneColumnSection.generated.cs +++ b/uTPro/Common/uTPro.Common/Models/CMS/GlobalOneColumnSection.generated.cs @@ -79,5 +79,13 @@ public GlobalOneColumnSection(IPublishedElement content, IPublishedValueFallback [global::System.Diagnostics.CodeAnalysis.MaybeNull] [ImplementPropertyType("textColor")] public virtual string TextColor => this.Value(_publishedValueFallback, "textColor"); + + /// + /// Title + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Umbraco.ModelsBuilder.Embedded", "16.5.0+8b2c22a")] + [global::System.Diagnostics.CodeAnalysis.MaybeNull] + [ImplementPropertyType("title")] + public virtual string Title => this.Value(_publishedValueFallback, "title"); } } diff --git a/uTPro/Common/uTPro.Common/Models/CMS/UTpro__Article.generated.cs b/uTPro/Common/uTPro.Common/Models/CMS/UTpro__Article.generated.cs index f5b18b2..6606f12 100644 --- a/uTPro/Common/uTPro.Common/Models/CMS/UTpro__Article.generated.cs +++ b/uTPro/Common/uTPro.Common/Models/CMS/UTpro__Article.generated.cs @@ -65,14 +65,6 @@ public UTpro__Article(IPublishedElement content, IPublishedValueFallback publish [ImplementPropertyType("description")] public virtual string Description => this.Value(_publishedValueFallback, "description"); - /// - /// Header - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Umbraco.ModelsBuilder.Embedded", "16.5.0+8b2c22a")] - [global::System.Diagnostics.CodeAnalysis.MaybeNull] - [ImplementPropertyType("header")] - public virtual string Header => this.Value(_publishedValueFallback, "header"); - /// /// Thumbnail /// diff --git a/uTPro/Common/uTPro.Common/Models/CMS/UTpro__Introduction.generated.cs b/uTPro/Common/uTPro.Common/Models/CMS/UTpro__Introduction.generated.cs index 1391fac..c93083a 100644 --- a/uTPro/Common/uTPro.Common/Models/CMS/UTpro__Introduction.generated.cs +++ b/uTPro/Common/uTPro.Common/Models/CMS/UTpro__Introduction.generated.cs @@ -80,13 +80,5 @@ public UTpro__Introduction(IPublishedElement content, IPublishedValueFallback pu [global::System.Diagnostics.CodeAnalysis.MaybeNull] [ImplementPropertyType("special")] public virtual global::Umbraco.Cms.Core.Strings.IHtmlEncodedString Special => this.Value(_publishedValueFallback, "special"); - - /// - /// Title - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Umbraco.ModelsBuilder.Embedded", "16.5.0+8b2c22a")] - [global::System.Diagnostics.CodeAnalysis.MaybeNull] - [ImplementPropertyType("title")] - public virtual string Title => this.Value(_publishedValueFallback, "title"); } } diff --git a/uTPro/Common/uTPro.Common/Models/CMS/UTpro__IntroductionDetail.generated.cs b/uTPro/Common/uTPro.Common/Models/CMS/UTpro__IntroductionDetail.generated.cs index 6ea23ff..9814b57 100644 --- a/uTPro/Common/uTPro.Common/Models/CMS/UTpro__IntroductionDetail.generated.cs +++ b/uTPro/Common/uTPro.Common/Models/CMS/UTpro__IntroductionDetail.generated.cs @@ -73,14 +73,6 @@ public UTpro__IntroductionDetail(IPublishedElement content, IPublishedValueFallb [ImplementPropertyType("description")] public virtual string Description => this.Value(_publishedValueFallback, "description"); - /// - /// Header - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Umbraco.ModelsBuilder.Embedded", "16.5.0+8b2c22a")] - [global::System.Diagnostics.CodeAnalysis.MaybeNull] - [ImplementPropertyType("header")] - public virtual string Header => this.Value(_publishedValueFallback, "header"); - /// /// Image /// diff --git a/uTPro/Extension/uTPro.Extension/ContentExtensions.cs b/uTPro/Extension/uTPro.Extension/ContentExtensions.cs index db76439..b0cdac5 100644 --- a/uTPro/Extension/uTPro.Extension/ContentExtensions.cs +++ b/uTPro/Extension/uTPro.Extension/ContentExtensions.cs @@ -1,21 +1,34 @@ -using System.Net.NetworkInformation; -using Umbraco.Cms.Core.Models.PublishedContent; -using System.Linq; - +using Umbraco.Cms.Core.Models.PublishedContent; namespace uTPro.Extension { public static class ContentExtensions { - public static T? GetInherited(this IPublishedContent content, string alias) + public static T? ValueInherited(this IPublishedContent content, string alias) { - var node = content.AncestorsOrSelf() - .FirstOrDefault(x => x.HasValue(alias)); - + var node = content.Inherited(alias); if (node == null) return default; return node.Value(alias); } - } + public static IPublishedContent? Inherited(this IPublishedContent content, string alias) + { + return content.AncestorsOrSelf().FirstOrDefault(x => x.HasValue(alias)); + } + + public static (string? alias, IPublishedContent? value) Inherited(this IPublishedContent content, params string[] alias) + { + foreach (var node in content.AncestorsOrSelf()) + { + foreach (var a in alias) + { + if (node.HasValue(a)) + return (a, node.Value(a)); + } + } + + return (null, null); + } + } } diff --git a/uTPro/Project/uTPro.Project.Web/Views/Partials/blockgrid/Components/globalOneColumnSection.cshtml b/uTPro/Project/uTPro.Project.Web/Views/Partials/blockgrid/Components/globalOneColumnSection.cshtml index 046c14e..658fa9a 100644 --- a/uTPro/Project/uTPro.Project.Web/Views/Partials/blockgrid/Components/globalOneColumnSection.cshtml +++ b/uTPro/Project/uTPro.Project.Web/Views/Partials/blockgrid/Components/globalOneColumnSection.cshtml @@ -50,6 +50,24 @@ background-color:var(--section-bg-color);"; var textColor = $@"--section-text-color:{(!string.IsNullOrEmpty(Model.Content.TextColor) ? Model.Content.TextColor : "#000")};"; } -
- @await Html.GetPreviewBlockGridItemAreasHtmlAsync(Model, $"{CurrentSite.GetItem().Root.Name}{Prefix.PrefixData}areas") +@if (Context.Request.IsBlockPreviewRequest()) +{ + +} +else +{ + @using (Html.SetSection(Model.GetType().ToString() + "", HtmlSectionBlockExtensions.Position.BodyBottom)) + { + + } +} +
+
+ @if (!string.IsNullOrEmpty(Model.Content.Title)) + { +
@Model.Content.Title
+ } + @await Html.GetPreviewBlockGridItemAreasHtmlAsync(Model, $"{CurrentSite.GetItem().Root.Name}{Prefix.PrefixData}areas") +
diff --git a/uTPro/Project/uTPro.Project.Web/Views/Partials/blockgrid/uTPro.cshtml b/uTPro/Project/uTPro.Project.Web/Views/Partials/blockgrid/uTPro.cshtml index 14c77ad..0ddf5be 100644 --- a/uTPro/Project/uTPro.Project.Web/Views/Partials/blockgrid/uTPro.cshtml +++ b/uTPro/Project/uTPro.Project.Web/Views/Partials/blockgrid/uTPro.cshtml @@ -2,18 +2,6 @@ @inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage @{ if (Model?.Any() != true) { return; } - var currentPage = Umbraco.AssignedContentItem; - var top = currentPage?.GetInherited("topComponent"); - var bottom = currentPage?.GetInherited("bottomComponent"); -} - -@if (top != null) -{ -
- @await Html.GetPreviewBlockGridItemsHtmlAsync(top, $"{CurrentSite.GetItem().Root.Name}{Prefix.PrefixData}items") -
} @if (Model != null) { @@ -24,12 +12,4 @@ @await Html.GetPreviewBlockGridItemsHtmlAsync(Model, $"{CurrentSite.GetItem().Root.Name}{Prefix.PrefixData}items") -} -@if (bottom != null) -{ -
- @await Html.GetPreviewBlockGridItemsHtmlAsync(bottom, $"{CurrentSite.GetItem().Root.Name}{Prefix.PrefixData}items") -
} \ No newline at end of file diff --git a/uTPro/Project/uTPro.Project.Web/Views/uTPro/PageHome.cshtml b/uTPro/Project/uTPro.Project.Web/Views/uTPro/PageHome.cshtml index 56bc7e0..09f14ae 100644 --- a/uTPro/Project/uTPro.Project.Web/Views/uTPro/PageHome.cshtml +++ b/uTPro/Project/uTPro.Project.Web/Views/uTPro/PageHome.cshtml @@ -1,5 +1,11 @@ @using Umbraco.Cms.Web.Common.PublishedModels; @inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage @{ + var currentPage = Umbraco.AssignedContentItem; + var top = currentPage?.ValueInherited("topComponent"); + var bottom = currentPage?.ValueInherited("bottomComponent"); + var content = Model.Value("content"); } -@await Html.GetBlockGridHtmlAsync(Model.Value("content"), CurrentSite.GetItem().Root.Name) \ No newline at end of file +@await Html.GetBlockGridHtmlAsync(top, CurrentSite.GetItem().Root.Name) +@await Html.GetBlockGridHtmlAsync(content, CurrentSite.GetItem().Root.Name) +@await Html.GetBlockGridHtmlAsync(bottom, CurrentSite.GetItem().Root.Name) \ No newline at end of file diff --git a/uTPro/Project/uTPro.Project.Web/Views/uTPro/PageStandard.cshtml b/uTPro/Project/uTPro.Project.Web/Views/uTPro/PageStandard.cshtml index 56bc7e0..09f14ae 100644 --- a/uTPro/Project/uTPro.Project.Web/Views/uTPro/PageStandard.cshtml +++ b/uTPro/Project/uTPro.Project.Web/Views/uTPro/PageStandard.cshtml @@ -1,5 +1,11 @@ @using Umbraco.Cms.Web.Common.PublishedModels; @inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage @{ + var currentPage = Umbraco.AssignedContentItem; + var top = currentPage?.ValueInherited("topComponent"); + var bottom = currentPage?.ValueInherited("bottomComponent"); + var content = Model.Value("content"); } -@await Html.GetBlockGridHtmlAsync(Model.Value("content"), CurrentSite.GetItem().Root.Name) \ No newline at end of file +@await Html.GetBlockGridHtmlAsync(top, CurrentSite.GetItem().Root.Name) +@await Html.GetBlockGridHtmlAsync(content, CurrentSite.GetItem().Root.Name) +@await Html.GetBlockGridHtmlAsync(bottom, CurrentSite.GetItem().Root.Name) \ No newline at end of file diff --git a/uTPro/Project/uTPro.Project.Web/Views/uTPro/_Layout.cshtml b/uTPro/Project/uTPro.Project.Web/Views/uTPro/_Layout.cshtml index e700b27..9a7cf2f 100644 --- a/uTPro/Project/uTPro.Project.Web/Views/uTPro/_Layout.cshtml +++ b/uTPro/Project/uTPro.Project.Web/Views/uTPro/_Layout.cshtml @@ -10,20 +10,21 @@ @{ await Html.RenderPartialAsync(PathFileViews.Partials_MetaData); await Html.RenderPartialAsync(PathFileViews.Partials_HtmlManage, nameof(GlobalPageScriptSetting.HeaderOpeningScripts)); - @Html.RenderSections(HtmlSectionBlockExtensions.Position.Head) - await Html.RenderPartialAsync(PathFileViews.Partials_HtmlManage, nameof(GlobalPageScriptSetting.HeaderClosingScripts)); } - + @RenderSection("Styles", false) - + @Html.RenderSections(HtmlSectionBlockExtensions.Position.Head) + @{ + await Html.RenderPartialAsync(PathFileViews.Partials_HtmlManage, nameof(GlobalPageScriptSetting.HeaderClosingScripts)); + } + @Html.RenderSections(HtmlSectionBlockExtensions.Position.BodyTop) @{ await Html.RenderPartialAsync(PathFileViews.Partials_HtmlManage, nameof(GlobalPageScriptSetting.BodyOpeningScripts)); - Html.RenderSections(HtmlSectionBlockExtensions.Position.BodyTop); await Html.RenderPartialAsync("_Nav.cshtml", homePage); }
@@ -36,10 +37,10 @@ + @RenderSection("Scripts", false) @{ - RenderSection("Scripts", false); await Html.RenderPartialAsync(PathFileViews.Partials_HtmlManage, nameof(GlobalPageScriptSetting.BodyClosingScripts)); - Html.RenderSections(HtmlSectionBlockExtensions.Position.BodyBottom); } + @Html.RenderSections(HtmlSectionBlockExtensions.Position.BodyBottom) \ No newline at end of file diff --git a/uTPro/Project/uTPro.Project.Web/Views/uTPro/_Nav.cshtml b/uTPro/Project/uTPro.Project.Web/Views/uTPro/_Nav.cshtml index 67c3095..8633b84 100644 --- a/uTPro/Project/uTPro.Project.Web/Views/uTPro/_Nav.cshtml +++ b/uTPro/Project/uTPro.Project.Web/Views/uTPro/_Nav.cshtml @@ -65,6 +65,10 @@ return (Html.Raw(string.Empty), Html.Raw(string.Empty)); } } +@using (Html.SetSection(Model.GetType().ToString(), HtmlSectionBlockExtensions.Position.BodyBottom)) +{ + +}
+ \ No newline at end of file diff --git a/uTPro/Project/uTPro.Project.Web/Views/uTPro/blockgrid/Templates/items.cshtml b/uTPro/Project/uTPro.Project.Web/Views/uTPro/blockgrid/Templates/items.cshtml index 5206e00..257042f 100644 --- a/uTPro/Project/uTPro.Project.Web/Views/uTPro/blockgrid/Templates/items.cshtml +++ b/uTPro/Project/uTPro.Project.Web/Views/uTPro/blockgrid/Templates/items.cshtml @@ -6,7 +6,6 @@
@foreach (var item in Model) { -
+ + + Trang chủ + /uTPro/Sites/TrangChu/BaoMat + false + uTPro__PageStandard + 2026-02-06T12:55:30 + + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/uTPro/Project/uTPro.Project.Web/uSync/v16/Content/gi\341\273\233i-thi\341\273\207u.config" "b/uTPro/Project/uTPro.Project.Web/uSync/v16/Content/gi\341\273\233i-thi\341\273\207u.config" index 5060723..361bafd 100644 --- "a/uTPro/Project/uTPro.Project.Web/uSync/v16/Content/gi\341\273\233i-thi\341\273\207u.config" +++ "b/uTPro/Project/uTPro.Project.Web/uSync/v16/Content/gi\341\273\233i-thi\341\273\207u.config" @@ -46,6 +46,13 @@ "editorAlias": null, "segment": null, "value": "1" + }, + { + "alias": "title", + "culture": null, + "editorAlias": null, + "segment": null, + "value": "Gi\u1EDBi Thi\u1EC7u" } ] }, @@ -88,7 +95,7 @@ "culture": null, "editorAlias": null, "segment": null, - "value": "Gi\u1EDBi Thi\u1EC7u" + "value": "uTPro \u2013 Umbraco Turbo Pro" }, { "alias": "content", diff --git a/uTPro/Project/uTPro.Project.Web/uSync/v16/Content/navigation-link.config b/uTPro/Project/uTPro.Project.Web/uSync/v16/Content/navigation-link.config index 825e188..ba81653 100644 --- a/uTPro/Project/uTPro.Project.Web/uSync/v16/Content/navigation-link.config +++ b/uTPro/Project/uTPro.Project.Web/uSync/v16/Content/navigation-link.config @@ -91,9 +91,9 @@ "target": null, "unique": null, "type": null, - "udi": null, - "url": "#", - "queryString": "" + "udi": "umb://document/5fb13b790d8c46168e6f88e6063bcb94", + "url": null, + "queryString": null } ] } diff --git "a/uTPro/Project/uTPro.Project.Web/uSync/v16/Content/trang-ch\341\273\247.config" "b/uTPro/Project/uTPro.Project.Web/uSync/v16/Content/trang-ch\341\273\247.config" index f992c13..7d01b5a 100644 --- "a/uTPro/Project/uTPro.Project.Web/uSync/v16/Content/trang-ch\341\273\247.config" +++ "b/uTPro/Project/uTPro.Project.Web/uSync/v16/Content/trang-ch\341\273\247.config" @@ -64,6 +64,13 @@ "label": "", "value": "#fff" } + }, + { + "alias": "title", + "culture": null, + "editorAlias": null, + "segment": null, + "value": "The Introduction" } ] }, @@ -87,13 +94,6 @@ "markup": "\u003Cp\u003EuTPro is a powerful Starter Kit Template built to accelerate website development on the Umbraco platform.\u003C/p\u003E\u003Cp\u003EIt enables developers to create enterprise\u2011grade websites faster, more reliably, and with a professional structure from day one.\u003C/p\u003E" } }, - { - "alias": "title", - "culture": null, - "editorAlias": null, - "segment": null, - "value": "The Introduction" - }, { "alias": "callToAction", "culture": null, @@ -164,8 +164,15 @@ "segment": null, "value": { "label": "", - "value": "#fff" + "value": "#282b34" } + }, + { + "alias": "title", + "culture": null, + "editorAlias": null, + "segment": null, + "value": "The Details" } ] }, @@ -179,7 +186,7 @@ "culture": null, "editorAlias": null, "segment": null, - "value": "The Details" + "value": "Umbraco Turbo Pro - uTPro" }, { "alias": "description", @@ -188,13 +195,6 @@ "segment": null, "value": "Is a powerful Starter Kit" }, - { - "alias": "header", - "culture": null, - "editorAlias": null, - "segment": null, - "value": "Umbraco Turbo Pro - uTPro" - }, { "alias": "image", "culture": null, @@ -419,30 +419,6 @@ } ] }, - { - "contentTypeKey": "d8c525b6-c39b-47f9-9e7e-6cc60eae7a17", - "key": "98a78320-6493-4106-9561-58a8989a7fa5", - "udi": null, - "values": [ - { - "alias": "backgroundColor", - "culture": null, - "editorAlias": null, - "segment": null, - "value": { - "label": "", - "value": "#f3f3f3" - } - }, - { - "alias": "backgroundOpacity", - "culture": null, - "editorAlias": null, - "segment": null, - "value": "1" - } - ] - }, { "contentTypeKey": "bc7570de-0e33-4487-ab69-c08fce56c89a", "key": "e18d604a-f4c6-4960-bdab-ddf5642dfd0d", @@ -453,7 +429,7 @@ "culture": null, "editorAlias": null, "segment": null, - "value": "The Endorsements" + "value": "Umbraco Turbo Pro - uTPro" }, { "alias": "highlight", @@ -665,6 +641,37 @@ } } ] + }, + { + "contentTypeKey": "d8c525b6-c39b-47f9-9e7e-6cc60eae7a17", + "key": "a7228385-3a75-42c8-b925-2f06e6eb3efe", + "udi": null, + "values": [ + { + "alias": "backgroundColor", + "culture": null, + "editorAlias": null, + "segment": null, + "value": { + "label": "", + "value": "#f3f3f3" + } + }, + { + "alias": "backgroundOpacity", + "culture": null, + "editorAlias": null, + "segment": null, + "value": "1" + }, + { + "alias": "title", + "culture": null, + "editorAlias": null, + "segment": null, + "value": "The Endorsements" + } + ] } ], "settingsData": [], @@ -695,12 +702,12 @@ "segment": null }, { - "contentKey": "98a78320-6493-4106-9561-58a8989a7fa5", + "contentKey": "e18d604a-f4c6-4960-bdab-ddf5642dfd0d", "culture": null, "segment": null }, { - "contentKey": "e18d604a-f4c6-4960-bdab-ddf5642dfd0d", + "contentKey": "a7228385-3a75-42c8-b925-2f06e6eb3efe", "culture": null, "segment": null } @@ -773,7 +780,7 @@ } ], "columnSpan": 12, - "contentKey": "98a78320-6493-4106-9561-58a8989a7fa5", + "contentKey": "a7228385-3a75-42c8-b925-2f06e6eb3efe", "contentUdi": null, "rowSpan": 1, "settingsKey": null, diff --git a/uTPro/Project/uTPro.Project.Web/uSync/v16/ContentTypes/globalonecolumnsection.config b/uTPro/Project/uTPro.Project.Web/uSync/v16/ContentTypes/globalonecolumnsection.config index ae7c258..1497b82 100644 --- a/uTPro/Project/uTPro.Project.Web/uSync/v16/ContentTypes/globalonecolumnsection.config +++ b/uTPro/Project/uTPro.Project.Web/uSync/v16/ContentTypes/globalonecolumnsection.config @@ -78,8 +78,24 @@ false + 1 + Content + Nothing + + + false + + + 5dbd04ee-db54-4731-81ec-9a5aea7dcb3c + Title + title + 0cc0eba1-9960-42c9-bf9b-60e150b429ae + Umbraco.TextBox + false + + 0 - Text + Content Nothing @@ -89,17 +105,17 @@ 755935e0-03ac-43ba-89f4-4b0e92db89be - Text - text + Content + content Group - 1 + 0 b7e68e4d-eff4-4313-b62e-0a0a8ee579e3 Background background Group - 0 + 1 \ No newline at end of file diff --git a/uTPro/Project/uTPro.Project.Web/uSync/v16/ContentTypes/utpro__article.config b/uTPro/Project/uTPro.Project.Web/uSync/v16/ContentTypes/utpro__article.config index 5762c00..88c17b5 100644 --- a/uTPro/Project/uTPro.Project.Web/uSync/v16/ContentTypes/utpro__article.config +++ b/uTPro/Project/uTPro.Project.Web/uSync/v16/ContentTypes/utpro__article.config @@ -53,22 +53,6 @@ false - - cf3a1be7-59ee-44ca-b7e2-053ff9718da6 - Header - header - 0cc0eba1-9960-42c9-bf9b-60e150b429ae - Umbraco.TextBox - false - - - 2 - Content - Nothing - - - false - 245d6b89-524a-4f89-8342-35c647f3989a Thumbnail diff --git a/uTPro/Project/uTPro.Project.Web/uSync/v16/ContentTypes/utpro__introduction.config b/uTPro/Project/uTPro.Project.Web/uSync/v16/ContentTypes/utpro__introduction.config index 56f21dc..bb8744e 100644 --- a/uTPro/Project/uTPro.Project.Web/uSync/v16/ContentTypes/utpro__introduction.config +++ b/uTPro/Project/uTPro.Project.Web/uSync/v16/ContentTypes/utpro__introduction.config @@ -85,22 +85,6 @@ false - - 40fdd6bd-1de7-45f8-a065-f513a1f091e5 - Title - title - 0cc0eba1-9960-42c9-bf9b-60e150b429ae - Umbraco.TextBox - false - - - 0 - Content - Nothing - - - false - diff --git a/uTPro/Project/uTPro.Project.Web/uSync/v16/ContentTypes/utpro__introductiondetail.config b/uTPro/Project/uTPro.Project.Web/uSync/v16/ContentTypes/utpro__introductiondetail.config index 4fc9d85..474e2c9 100644 --- a/uTPro/Project/uTPro.Project.Web/uSync/v16/ContentTypes/utpro__introductiondetail.config +++ b/uTPro/Project/uTPro.Project.Web/uSync/v16/ContentTypes/utpro__introductiondetail.config @@ -69,22 +69,6 @@ false - - e77184cf-e922-491f-b884-68a84759c7ef - Header - header - 0cc0eba1-9960-42c9-bf9b-60e150b429ae - Umbraco.TextBox - false - - - 2 - Content - Nothing - - - false - 745b496d-34f6-41ab-8c5f-6a68e0ee79b9 Image diff --git a/uTPro/Project/uTPro.Project.Web/wwwroot/assets/css/blockgridlayout-backoffice.css b/uTPro/Project/uTPro.Project.Web/wwwroot/assets/css/blockgridlayout-backoffice.css index 20d3b89..908141c 100644 --- a/uTPro/Project/uTPro.Project.Web/wwwroot/assets/css/blockgridlayout-backoffice.css +++ b/uTPro/Project/uTPro.Project.Web/wwwroot/assets/css/blockgridlayout-backoffice.css @@ -1,6 +1,7 @@ .richtext p { margin: 0; } + .umb-block-grid__layout-container { position: relative; display: grid; diff --git a/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/Components/Article.css b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/Components/Article.css new file mode 100644 index 0000000..d2ea55f --- /dev/null +++ b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/Components/Article.css @@ -0,0 +1,48 @@ + +.box header { + margin: 0 0 1.5em 0; +} + + .box header.style1 { + position: relative; + margin: -0.5em 0 0 0; + padding-top: 0; + } + +.box h2 { + margin: 0 0 0.75em 0; + font-size: 1.15em; + letter-spacing: 0.05em; +} + +.box h3 { + margin: 0 0 0.5em 0; + font-size: 1em; + font-weight: 600; + letter-spacing: 0.05em; +} + +.box.post-excerpt .image.left { + position: relative; + top: 0.5em; + width: 5em; +} + +.box.post-excerpt h3, +.box.post-excerpt p { + margin-left: 7em; +} + +@media screen and (max-width: 736px) { + .box.post-excerpt .image.left { + position: relative; + top: 0.25em; + width: 25%; + margin: 0; + } + + .box.post-excerpt h3, + .box.post-excerpt p { + margin-left: 32.5%; + } +} diff --git a/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/Components/BannerHeader.css b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/Components/BannerHeader.css new file mode 100644 index 0000000..7da3f79 --- /dev/null +++ b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/Components/BannerHeader.css @@ -0,0 +1,95 @@ +.banner-header { + display: -moz-flex; + display: -webkit-flex; + display: -ms-flex; + display: flex; + -moz-align-items: center; + -webkit-align-items: center; + -ms-align-items: center; + align-items: center; + -moz-justify-content: center; + -webkit-justify-content: center; + -ms-justify-content: center; + justify-content: center; + position: relative; + height: 24em; + /*background: url("/assets/img/bkg-login.jpg") bottom center;*/ + background-size: cover; + padding: 0; + height: 35em; +} + + .banner-header:before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + /*background: rgba(36, 38, 40, .5);*/ + } + + .banner-header .text { + width: 100%; + text-align: center; + position: relative; + top: 1.5em; + } + + .banner-header .text h1 { + font-weight: 900; + text-transform: uppercase; + color: #ff9e40; + font-size: 2em; + letter-spacing: 0.25em; + } + + .banner-header .text p { + color: #eee; + color: rgba(255, 255, 255, 0.75); + text-transform: uppercase; + margin: 1.25em 0 0 0; + display: block; + letter-spacing: 0.2em; + font-size: 0.9em; + } + +@media screen and (max-width: 1280px) { + .banner-header .text { + margin-top: -0.5em !important; + } + + .banner-header .text h1 { + font-size: 1.75em; + } +} + +@media screen and (max-width: 980px) { + .banner-header .text { + top: 0; + } +} + +@media screen and (max-width: 736px) { + .banner-header { + height: 20em; + } + + .banner-header .text { + text-align: center; + padding-left: 2em; + padding-right: 2em; + } + + .banner-header .text h1 { + font-size: 1.5em; + letter-spacing: 0.2em; + } + + .banner-header .text p { + margin: 1.25em 0 0 0; + display: block; + letter-spacing: 0.2em; + font-size: 0.9em; + } +} diff --git a/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/Components/Endorsements.css b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/Components/Endorsements.css new file mode 100644 index 0000000..66a8312 --- /dev/null +++ b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/Components/Endorsements.css @@ -0,0 +1,19 @@ + +.highlights .highlight { + text-align: center; +} + + .highlights .highlight h3 a { + color: #f6821f; + margin: 0 0 0.75em 0; + font-size: 1.15em; + letter-spacing: 0.05em; + } + +@media screen and (max-width: 980px) { + .highlights .highlight { + max-width: 40em; + margin-left: auto; + margin-right: auto; + } +} diff --git a/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/Components/Introduction.css b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/Components/Introduction.css new file mode 100644 index 0000000..55653bc --- /dev/null +++ b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/Components/Introduction.css @@ -0,0 +1,64 @@ +.intro { + padding-bottom: 8em; + text-align: center; + color: var(--section-text-color); +} + + .intro a { + color: inherit; + text-decoration: none; + } + + .intro .style-content2 { + font-weight: 700; + border-radius: 0.35em; + box-shadow: inset 0px 0px 1px 1px rgba(255, 255, 255, 0.25); + font-size: 2.75em; + letter-spacing: 0.075em; + line-height: 1.35em; + padding: 1em 0 1em 0; + margin-bottom: 1em; + } + + .intro .style-content3 { + font-size: 1.1em; + width: 48em; + margin: 0 auto; + } + +@media screen and (max-width: 1280px) { + .intro { + padding-bottom: 7em; + } + + .intro .style-content2 { + font-size: 2.25em; + } +} + +@media screen and (max-width: 980px) { + .intro .style-content3 { + width: auto; + } +} + +@media screen and (max-width: 736px) { + .intro { + text-align: center; + padding-right: 2em; + padding-left: 2em; + padding-bottom: 5em; + margin: 0 auto; + } + + .intro .style-content { + margin-bottom: 1.5em; + } + + .intro .style-content2 { + font-size: 1.5em; + letter-spacing: 0.05em; + line-height: 1.25em; + padding: 1.25em; + } +} diff --git a/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/Components/IntroductionDetail.css b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/Components/IntroductionDetail.css new file mode 100644 index 0000000..b9c99c2 --- /dev/null +++ b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/Components/IntroductionDetail.css @@ -0,0 +1,19 @@ +.features header.style1 { + padding-bottom: 5em; +} + +.features ul.actions { + margin-top: 5em; +} + +@@media screen and (max-width: 736px) { + /* Features */ + + .features header.style1 { + padding-bottom: 4em; + } + + .features ul.actions { + margin-top: 4em; + } +} diff --git a/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/Components/IntroductionDetail_List.css b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/Components/IntroductionDetail_List.css new file mode 100644 index 0000000..e965a6a --- /dev/null +++ b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/Components/IntroductionDetail_List.css @@ -0,0 +1,90 @@ +.feature-list { + max-width: 58em; + margin-left: auto; + margin-right: auto; + position: relative; + top: 0.75em; +} + + .feature-list section { + border-top: solid 1px #eee; + padding-top: 3em; + padding-left: 5em; + position: relative; + } + +.feature-list h3 { + color: #f6821f !important; + margin: -0.35em 0 0.75em 0; + font-size: 1.15em; + letter-spacing: 0.05em; + background: #282b34; + border-radius: 0.35em; + padding: .25em; +} + + .feature-list h3:before { + display: block; + color: #fff; + background: #2f333b url("/assets/img/overlay.png"); + border-radius: 2.5em; + text-align: center; + width: 2.5em; + height: 2.5em; + line-height: 2.5em; + margin-right: 0.75em; + position: absolute; + left: 0; + margin-top: -0.5em; + } + +.feature-list.small section { + padding-left: 3.5em; +} + +.feature-list.small h3:before { + font-size: 0.8em; +} + + +.feature-list .icon > .label { + display: none; +} + +.feature-list .icon.solid:before { + font-weight: 900; +} + +@media screen and (min-width: 981px) { + .feature-list > .row > :nth-child(-n + 2) > section { + border-top: 0; + padding-top: 0; + } +} + +@media screen and (max-width: 980px) { + .feature-list { + max-width: 40em; + } + + .feature-list section { + padding-top: 4em; + } + + .feature-list > .row > :first-child > section { + border-top: 0; + padding-top: 0; + } +} + + +@media screen and (max-width: 736px) { + .feature-list section { + padding-top: 2em; + padding-left: 4em; + } + + .feature-list h3:before { + font-size: 0.9em; + } +} diff --git a/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/icon.css b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/icon.css new file mode 100644 index 0000000..993007e --- /dev/null +++ b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/icon.css @@ -0,0 +1,26 @@ +.icon { + text-decoration: none; + text-decoration: none; +} + + .icon:before { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + text-transform: none !important; + font-family: 'Font Awesome 5 Free'; + font-weight: 400; + } + + .icon:before { + line-height: inherit; + font-size: 1.25em; + } + + .icon.brands:before { + font-family: 'Font Awesome 5 Brands'; + } diff --git a/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/layout.css b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/layout.css index 074a53b..d76bec4 100644 --- a/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/layout.css +++ b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/layout.css @@ -237,7 +237,7 @@ a:hover { strong, b { font-weight: 700; - color: #484d55; + color: inherit; } blockquote { diff --git a/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/main.css b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/main.css index 7bc8609..e8f142e 100644 --- a/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/main.css +++ b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/main.css @@ -383,233 +383,6 @@ ul.actions { text-align: center; } -/* Feature List */ - -.feature-list { - max-width: 58em; - margin-left: auto; - margin-right: auto; - position: relative; - top: 0.75em; -} - - .feature-list section { - border-top: solid 1px #eee; - padding-top: 3em; - padding-left: 5em; - position: relative; - } - -@media screen and (min-width: 981px) { - - .feature-list > .row > :nth-child(-n + 2) > section { - border-top: 0; - padding-top: 0; - } -} - -.feature-list h3 { - color: #f6821f !important; - margin: -0.35em 0 0.75em 0; - font-size: 1.15em; - letter-spacing: 0.05em; - background: #282b34; - border-radius: 0.35em; - padding: .25em; -} - - .feature-list h3:before { - display: block; - color: #fff; - background: #2f333b url("/assets/img/overlay.png"); - border-radius: 2.5em; - text-align: center; - width: 2.5em; - height: 2.5em; - line-height: 2.5em; - margin-right: 0.75em; - position: absolute; - left: 0; - margin-top: -0.5em; - } - -.feature-list.small section { - padding-left: 3.5em; -} - -.feature-list.small h3:before { - font-size: 0.8em; -} - -/* Icons */ - -.icon { - text-decoration: none; - text-decoration: none; -} - - .icon:before { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - line-height: 1; - text-transform: none !important; - font-family: 'Font Awesome 5 Free'; - font-weight: 400; - } - - .icon:before { - line-height: inherit; - font-size: 1.25em; - } - - .icon > .label { - display: none; - } - - .icon.solid:before { - font-weight: 900; - } - - .icon.brands:before { - font-family: 'Font Awesome 5 Brands'; - } - -/* Box */ - -.box header { - margin: 0 0 1.5em 0; -} - - .box header.style1 { - position: relative; - margin: -0.5em 0 0 0; - padding-top: 0; - } - -.box h2 { - margin: 0 0 0.75em 0; - font-size: 1.15em; - letter-spacing: 0.05em; -} - -.box h3 { - margin: 0 0 0.5em 0; - font-size: 1em; - font-weight: 600; - letter-spacing: 0.05em; -} - -.box.post-excerpt .image.left { - position: relative; - top: 0.5em; - width: 5em; -} - -.box.post-excerpt h3, -.box.post-excerpt p { - margin-left: 7em; -} - -/* Wrapper */ - -.wrapper { - position: relative; - padding: 6em 0 9em 0; -} - - .wrapper .title { - position: absolute; - top: 0; - left: 50%; - text-align: center; - text-transform: uppercase; - display: block; - font-weight: 700; - letter-spacing: 0.25em; - font-size: 0.9em; - width: 25em; - height: 3.25em; - top: -3.25em; - line-height: 3.25em; - margin-bottom: -3.25em; - margin-left: -12.5em; - padding-top: 0.5em; - } - - .wrapper .title:before { - content: ''; - position: absolute; - bottom: -38px; - left: -35px; - width: 35px; - height: 38px; - background: url("/assets/img/shadow.png"); - } - - .wrapper .title:after { - -moz-transform: scaleX(-1); - -webkit-transform: scaleX(-1); - -ms-transform: scaleX(-1); - transform: scaleX(-1); - content: ''; - position: absolute; - bottom: -38px; - right: -35px; - width: 35px; - height: 38px; - background: url("/assets/img/shadow.png"); - } - - .wrapper.style1 { - background-color: var(--section-bg-color); - color: #eee; - color: rgba(255, 255, 255, 0.75); - } - - .wrapper.style1 .title { - background-color: var(--section-bg-color); - color: #fff; - } - - .wrapper.style1 h1, - .wrapper.style1 h2, - .wrapper.style1 h3, - .wrapper.style1 h4, - .wrapper.style1 h5, - .wrapper.style1 h6, - .wrapper.style1 strong, - .wrapper.style1 b, - .wrapper.style1 a { - color: #fff; - } - - .wrapper.style2 { - background-color: var(--section-bg-color); - } - - .wrapper.style2 .title { - background-color: var(--section-bg-color); - color: #484d55; - } - - .wrapper.style3 { - /*background: #f3f3f3 url("/assets/img/overlay.png");*/ - background-color: var(--section-bg-color); - } - - .wrapper.style3 .title { - background-color: var(--section-bg-color); - /*background: #f3f3f3 url("/assets/img/overlay.png");*/ - color: #484d55; - } - - .wrapper.style3 .image { - border: solid 10px #fff; - } /* Page Wrapper */ @@ -617,248 +390,6 @@ ul.actions { margin-bottom: 0; } -/* Header */ - -.header { - display: -moz-flex; - display: -webkit-flex; - display: -ms-flex; - display: flex; - -moz-align-items: center; - -webkit-align-items: center; - -ms-align-items: center; - align-items: center; - -moz-justify-content: center; - -webkit-justify-content: center; - -ms-justify-content: center; - justify-content: center; - position: relative; - height: 24em; - /*background: url("/assets/img/bkg-login.jpg") bottom center;*/ - background-size: cover; - padding: 0; -} - - .header:before { - content: ''; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - /*background: rgba(36, 38, 40, .5);*/ - } - -.bodypage .header { - height: 35em; -} - -/* Logo */ - -.logo { - width: 100%; - text-align: center; - position: relative; - top: 1.5em; -} - - .logo h1 { - font-weight: 900; - text-transform: uppercase; - color: #ff9e40; - font-size: 2em; - letter-spacing: 0.25em; - } - - .logo p { - color: #eee; - color: rgba(255, 255, 255, 0.75); - text-transform: uppercase; - margin: 1.25em 0 0 0; - display: block; - letter-spacing: 0.2em; - font-size: 0.9em; - } - -/* Nav */ - -.navHeader { - position: absolute; - display: block; - top: 2.5em; - left: 0; - width: 100%; - text-align: center; - z-index: 9999; -} - - .navHeader > ul { - display: inline-block; - border-radius: 0.35em; - box-shadow: inset 0px 0px 1px 1px rgba(255, 255, 255, 0.25); - padding: 0 1em 0 0; - } - - .navHeader > ul > li { - display: inline-block; - text-align: center; - padding: 0 1.25em 0 1.25em; - white-space: nowrap; - } - - .navHeader > ul > li > ul { - display: none; - } - - .navHeader > ul > li > a, - .navHeader > ul > li > * { - display: block; - color: #eee; - color: rgba(255, 255, 255, 0.75); - text-transform: uppercase; - text-decoration: none; - font-size: 0.7em; - letter-spacing: 0.25em; - height: 4em; - line-height: 4em; - -moz-transition: all .25s ease-in-out; - -webkit-transition: all .25s ease-in-out; - -o-transition: all .25s ease-in-out; - -ms-transition: all .25s ease-in-out; - transition: all .25s ease-in-out; - outline: 0; - } - - .navHeader > ul > li > a:hover { - color: #fff; - } - - #navPanel > nav > li.active > a, - .navHeader > ul > li.active > a, - .navHeader > ul > li.active > span { - color: #ff9e40; - } - - .navHeader .nav-logo { - height: 15px; - width: 0; - position: relative; - } - - .navHeader .nav-logo img { - width: 70px; - height: 70px; - position: absolute; - background: rgba(255, 255, 255, 1); - padding: 15px; - border-radius: 50%; - left: -25px; - top: -25px; - } - -.dropotron { - background: #222835 url("/assets/img/overlay.png"); - background-color: rgba(44, 50, 63, 0.925); - padding: 1.25em 1em 1.25em 1em; - border-radius: 0.35em; - box-shadow: inset 0px 0px 1px 1px rgba(255, 255, 255, 0.25); - min-width: 12em; - text-align: left; - margin-top: -1.25em; - margin-left: -1px; - list-style: none; -} - - .dropotron.level-0 { - margin-top: -1px; - margin-left: 0; - border-top-left-radius: 0; - border-top-right-radius: 0; - } - - .dropotron a, - .dropotron span { - -moz-transition: all .25s ease-in-out; - -webkit-transition: all .25s ease-in-out; - -ms-transition: all .25s ease-in-out; - transition: all .25s ease-in-out; - display: block; - color: #eee; - color: rgba(255, 255, 255, 0.75); - text-transform: uppercase; - text-decoration: none; - font-size: 0.7em; - letter-spacing: 0.25em; - border-top: solid 1px rgba(255, 255, 255, 0.15); - line-height: 3em; - } - - .dropotron li { - padding-left: 0; - } - - .dropotron li:first-child a, - .dropotron li:first-child span { - border-top: 0; - } - - .dropotron li:hover > a, - .dropotron li:hover > span { - color: #fff; - } - -/* Intro */ - -.intro { - padding-bottom: 8em; - text-align: center; -} - - .intro .style2 { - font-weight: 700; - color: #fff; - border-radius: 0.35em; - box-shadow: inset 0px 0px 1px 1px rgba(255, 255, 255, 0.25); - font-size: 2.75em; - letter-spacing: 0.075em; - line-height: 1.35em; - padding: 1em 0 1em 0; - margin-bottom: 1em; - } - - .intro .style2 a { - color: inherit; - text-decoration: none; - } - - .intro .style3 { - font-size: 1.1em; - width: 48em; - margin: 0 auto; - } - -/* Features */ - -.features header.style1 { - padding-bottom: 5em; -} - -.features ul.actions { - margin-top: 5em; -} - -/* Highlights */ - -.highlights .highlight { - text-align: center; -} - - .highlights .highlight h3 { - color: #f6821f; - margin: 0 0 0.75em 0; - font-size: 1.15em; - letter-spacing: 0.05em; - } /* Main */ @@ -1040,31 +571,6 @@ ul.actions { letter-spacing: 0.015em; } - /* Wrapper */ - - .wrapper { - padding: 4em 0 7em 0; - } - - /* Logo */ - - .logo { - margin-top: -0.5em !important; - } - - .logo h1 { - font-size: 1.75em; - } - - /* Intro */ - - .intro { - padding-bottom: 7em; - } - - .intro .style2 { - font-size: 2.25em; - } /* Footer */ @@ -1114,47 +620,12 @@ ul.actions { text-align: center; } - /* Feature List */ - .feature-list { - max-width: 40em; - } - - .feature-list section { - padding-top: 4em; - } - - .feature-list > .row > :first-child > section { - border-top: 0; - padding-top: 0; - } /* Nav */ - .navHeader, - .nav-show-not-mobile { - display: none !important; - } - - /* Logo */ - - .logo { - top: 0; - } - - /* Intro */ - - .intro .style3 { - width: auto; - } - - /* Highlights */ + - .highlights .highlight { - max-width: 40em; - margin-left: auto; - margin-right: auto; - } /* Footer */ @@ -1446,121 +917,12 @@ ul.actions { margin-top: 0; } - /* Feature List */ - - .feature-list section { - padding-top: 2em; - padding-left: 4em; - } - - .feature-list h3:before { - font-size: 0.9em; - } - - /* Box */ - - .box.post-excerpt .image.left { - position: relative; - top: 0.25em; - width: 25%; - margin: 0; - } - - .box.post-excerpt h3, - .box.post-excerpt p { - margin-left: 32.5%; - } - - /* Wrapper */ - - .wrapper { - padding: 3em 0 6em 0; - } - - .wrapper .title { - font-size: 0.9em; - width: 18em; - height: 2.5em; - top: -2.5em; - line-height: 2.5em; - margin-bottom: -2.5em; - margin-left: -9em; - padding-top: 0.5em; - } - - .wrapper .title:before, - .wrapper .title:after { - height: 15px; - bottom: -15px; - background-size: 100% 100%; - } - - /* Header */ - - .header { - height: 17em; - } - - .bodypage .header { - height: 20em; - } .bodypage.navPanel-visible { position: fixed; width: 100%; } - /* Logo */ - - .logo { - text-align: center; - padding-left: 2em; - padding-right: 2em; - } - - .logo h1 { - font-size: 1.5em; - letter-spacing: 0.2em; - } - - .logo p { - margin: 1.25em 0 0 0; - display: block; - letter-spacing: 0.2em; - font-size: 0.9em; - } - - /* Intro */ - - .intro { - text-align: center; - padding-right: 2em; - padding-left: 2em; - padding-bottom: 5em; - margin: 0 auto; - } - - .intro .style1 { - margin-bottom: 1.5em; - } - - .intro .style2 { - font-size: 1.5em; - letter-spacing: 0.05em; - line-height: 1.25em; - padding: 1.25em; - } - - /* Features */ - - .features header.style1 { - padding-bottom: 4em; - } - - .features ul.actions { - margin-top: 4em; - } - /* Content */ .content { @@ -1680,4 +1042,4 @@ ul.actions { .custom-select .select-items div, .select-selected { padding: 5px 27px 5px 7px; } -} \ No newline at end of file +} diff --git a/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/navHeader.css b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/navHeader.css new file mode 100644 index 0000000..773746f --- /dev/null +++ b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/navHeader.css @@ -0,0 +1,130 @@ +.navHeader { + position: absolute; + display: block; + top: 2.5em; + left: 0; + width: 100%; + text-align: center; + z-index: 9999; +} + + .navHeader > ul { + display: inline-block; + border-radius: 0.35em; + box-shadow: inset 0px 0px 1px 1px rgba(255, 255, 255, 0.25); + padding: 0 1em 0 0; + } + + .navHeader > ul > li { + display: inline-block; + text-align: center; + padding: 0 1.25em 0 1.25em; + white-space: nowrap; + } + + .navHeader > ul > li > ul { + display: none; + } + + .navHeader > ul > li > a, + .navHeader > ul > li > * { + display: block; + color: #eee; + color: rgba(255, 255, 255, 0.75); + text-transform: uppercase; + text-decoration: none; + font-size: 0.7em; + letter-spacing: 0.25em; + height: 4em; + line-height: 4em; + -moz-transition: all .25s ease-in-out; + -webkit-transition: all .25s ease-in-out; + -o-transition: all .25s ease-in-out; + -ms-transition: all .25s ease-in-out; + transition: all .25s ease-in-out; + outline: 0; + } + + .navHeader > ul > li > a:hover { + color: #fff; + } + + #navPanel > nav > li.active > a, + .navHeader > ul > li.active > a, + .navHeader > ul > li.active > span { + color: #ff9e40; + } + + .navHeader .nav-logo { + height: 15px; + width: 0; + position: relative; + } + + .navHeader .nav-logo img { + width: 70px; + height: 70px; + position: absolute; + background: rgba(255, 255, 255, 1); + padding: 15px; + border-radius: 50%; + left: -25px; + top: -25px; + } + +.dropotron { + background: #222835 url("/assets/img/overlay.png"); + background-color: rgba(44, 50, 63, 0.925); + padding: 1.25em 1em 1.25em 1em; + border-radius: 0.35em; + box-shadow: inset 0px 0px 1px 1px rgba(255, 255, 255, 0.25); + min-width: 12em; + text-align: left; + margin-top: -1.25em; + margin-left: -1px; + list-style: none; +} + + .dropotron.level-0 { + margin-top: -1px; + margin-left: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; + } + + .dropotron a, + .dropotron span { + -moz-transition: all .25s ease-in-out; + -webkit-transition: all .25s ease-in-out; + -ms-transition: all .25s ease-in-out; + transition: all .25s ease-in-out; + display: block; + color: #eee; + color: rgba(255, 255, 255, 0.75); + text-transform: uppercase; + text-decoration: none; + font-size: 0.7em; + letter-spacing: 0.25em; + border-top: solid 1px rgba(255, 255, 255, 0.15); + line-height: 3em; + } + + .dropotron li { + padding-left: 0; + } + + .dropotron li:first-child a, + .dropotron li:first-child span { + border-top: 0; + } + + .dropotron li:hover > a, + .dropotron li:hover > span { + color: #fff; + } +@media screen and (max-width: 980px) { + .navHeader, + .nav-show-not-mobile { + display: none !important; + } +} \ No newline at end of file diff --git a/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/wrapper.css b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/wrapper.css new file mode 100644 index 0000000..549f5cc --- /dev/null +++ b/uTPro/Project/uTPro.Project.Web/wwwroot/css/uTPro/wrapper.css @@ -0,0 +1,93 @@ + +/* Wrapper */ + +.wrapper { + position: relative; + padding: 6em 0 9em 0; + background-color: var(--section-bg-color); + color: var(--section-text-color) +} + + .wrapper * { + color: var(--section-text-color) + } + + + .wrapper .image { + border: solid 10px #fff; + } + + .wrapper .title { + position: absolute; + top: 0; + left: 50%; + text-align: center; + text-transform: uppercase; + display: block; + font-weight: 700; + letter-spacing: 0.25em; + font-size: 0.9em; + width: 25em; + height: 3.25em; + top: -3.25em; + line-height: 3.25em; + margin-bottom: -3.25em; + margin-left: -12.5em; + padding-top: 0.5em; + background: var(--section-bg-color); + } + + .wrapper .title:before { + content: ''; + position: absolute; + bottom: -38px; + left: -35px; + width: 35px; + height: 38px; + background: url("/assets/img/shadow.png"); + } + + .wrapper .title:after { + -moz-transform: scaleX(-1); + -webkit-transform: scaleX(-1); + -ms-transform: scaleX(-1); + transform: scaleX(-1); + content: ''; + position: absolute; + bottom: -38px; + right: -35px; + width: 35px; + height: 38px; + background: url("/assets/img/shadow.png"); + } + +@media screen and (max-width: 1280px) { + .wrapper { + padding: 4em 0 7em 0; + } +} + +@media screen and (max-width: 736px) { + .wrapper { + padding: 3em 0 6em 0; + } + + .wrapper .title { + font-size: 0.9em; + width: 18em; + height: 2.5em; + top: -2.5em; + line-height: 2.5em; + margin-bottom: -2.5em; + margin-left: -9em; + padding-top: 0.5em; + } + + .wrapper .title:before, + .wrapper .title:after { + height: 15px; + bottom: -15px; + background-size: 100% 100%; + } + +} \ No newline at end of file diff --git a/uTPro/Project/uTPro.Project.Web/wwwroot/scripts/uTPro/select-language.js b/uTPro/Project/uTPro.Project.Web/wwwroot/scripts/uTPro/select-language.js index d1c28c1..9d705ae 100644 --- a/uTPro/Project/uTPro.Project.Web/wwwroot/scripts/uTPro/select-language.js +++ b/uTPro/Project/uTPro.Project.Web/wwwroot/scripts/uTPro/select-language.js @@ -1,42 +1,48 @@ var x, i, j, l, ll, selElmnt, a, b, c; -/*look for any elements with the class "language":*/ + +/* look for any elements with the class "language": */ x = document.getElementsByClassName("language"); l = x.length; + for (i = 0; i < l; i++) { selElmnt = x[i].getElementsByTagName("select")[0]; + if (!selElmnt) continue; + ll = selElmnt.length; - /*for each element, create a new DIV that will act as the selected item:*/ + + // Selected item a = document.createElement("DIV"); a.setAttribute("class", "select-selected"); - a.innerHTML = selElmnt.options[selElmnt.selectedIndex].innerHTML; + a.textContent = selElmnt.options[selElmnt.selectedIndex].textContent; x[i].appendChild(a); - /*for each element, create a new DIV that will contain the option list:*/ + + // Option list b = document.createElement("DIV"); b.setAttribute("class", "select-items select-hide"); + for (j = 0; j < ll; j++) { - /*for each option in the original select element, - create a new DIV that will act as an option item:*/ - if (selElmnt.options[j].selected) { - continue; - } + if (selElmnt.options[j].selected) continue; + c = document.createElement("DIV"); - c.innerHTML = selElmnt.options[j].innerHTML; - c.addEventListener("click", function (e) { - /*when an item is clicked, update the original select box, - and the selected item:*/ + c.textContent = selElmnt.options[j].textContent; + + c.addEventListener("click", function () { var y, i, k, s, h, sl, yl; s = this.parentNode.parentNode.getElementsByTagName("select")[0]; sl = s.length; h = this.parentNode.previousSibling; + for (i = 0; i < sl; i++) { - if (s.options[i].innerHTML == this.innerHTML) { + if (s.options[i].textContent === this.textContent) { s.selectedIndex = i; - h.innerHTML = this.innerHTML; + h.textContent = this.textContent; + y = this.parentNode.getElementsByClassName("same-as-selected"); yl = y.length; for (k = 0; k < yl; k++) { y[k].removeAttribute("class"); } + this.setAttribute("class", "same-as-selected"); s.options[i].selected = true; s.onchange(); @@ -45,39 +51,37 @@ for (i = 0; i < l; i++) { } h.click(); }); + b.appendChild(c); } + x[i].appendChild(b); + a.addEventListener("click", function (e) { - /*when the select box is clicked, close any other select boxes, - and open/close the current select box:*/ e.stopPropagation(); closeAllSelect(this); this.nextSibling.classList.toggle("select-hide"); this.classList.toggle("select-arrow-active"); }); } + function closeAllSelect(elmnt) { - /*a function that will close all select boxes in the document, - except the current select box:*/ var x, y, i, xl, yl, arrNo = []; x = document.getElementsByClassName("select-items"); y = document.getElementsByClassName("select-selected"); xl = x.length; yl = y.length; + for (i = 0; i < yl; i++) { - if (elmnt == y[i]) { - arrNo.push(i) - } else { - y[i].classList.remove("select-arrow-active"); - } + if (elmnt === y[i]) arrNo.push(i); + else y[i].classList.remove("select-arrow-active"); } + for (i = 0; i < xl; i++) { - if (arrNo.indexOf(i)) { + if (arrNo.indexOf(i) === -1) { x[i].classList.add("select-hide"); } } } -/*if the user clicks anywhere outside the select box, -then close all select boxes:*/ -document.addEventListener("click", closeAllSelect); \ No newline at end of file + +document.addEventListener("click", closeAllSelect);