protected override void OnInitialized() { IStyled styled = Id == null ? StyledService : Priority.HasValue ? StyledService.WithId(Id, Priority.Value) : StyledService.WithId(Id); List <GoogleFont> googleFonts = new List <GoogleFont> { new GoogleFont { Name = Name, Styles = Styles != null ? new List <string>(Styles.Split(new char[] { ',' })) : new List <string> { "400" } } }; styled.AddGoogleFonts(googleFonts); }
protected override async Task OnInitializedAsync() { _styled = Styled.WithId("pretty-code"); _unsubscriber = DefaultSettings.Subscribe(this); bool debug = Debug ?? DefaultSettings.IsDevelopmentMode; bool showException = ShowException ?? DefaultSettings.ShowException; InitSettings(); await InitSourceFile(showException); if (debug) { PrintToConsole(); } InitCSS(); await InitThemeCss(); _shouldRender = true; }
protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { _currentTheme = SlidesAPI.State.Theme; } if (_currentTheme != SlidesAPI.State.Theme) { IStyled themeStyled = Styled.WithId("BlazorSlidesTheme", 200_000); await themeStyled.ClearStylesAsync(); _currentTheme = SlidesAPI.State.Theme; _rendered = false; } if (_classname != null && _previousClassname != _classname && !_rendered) { _previousClassname = _classname; _rendered = true; Classname = _classname; await ClassnameChanged.InvokeAsync(Classname); } }
private async Task ProcessParameters() { IStyled styled = Id == null ? StyledService : Priority.HasValue ? StyledService.WithId(Id, Priority.Value) : StyledService.WithId(Id); if (Classname == "blazor-styled-hide") { Classname = null; } string classname = null; string content = ChildContent.RenderAsSimpleString(); uint _currentHash = CalculateHash(content); if (content != null && content.Length > 0 && (_currentHash != _previousHash || _currentHash == _previousHash && ComposeAttributes != null)) { if (IsKeyframes) { classname = await styled.KeyframesAsync(content); } else if (Classname != null && MediaQuery == MediaQueries.None && _previousClassname == null) { //html elements await styled.CssAsync(ApplyPseudoClass(Classname), content); } else if (MediaQuery != MediaQueries.None && ClassnameChanged.HasDelegate) { //If ClassnameChanged has a delegate then @bind-Classname was used and this is a "new" style //Otherwise Classname was used and this an existing style which will be handled below content = WrapWithMediaQuery("&{" + content + "}"); classname = await styled.CssAsync(content); } else if (Classname != null && MediaQuery != MediaQueries.None && !ClassnameChanged.HasDelegate && _previousClassname == null) { //Media query support for classes where an existing Classname already exists content = WrapClass(ApplyPseudoClass(Classname), content); await styled.CssAsync(WrapWithMediaQuery(content)); } else if (Classname == null && PseudoClass == PseudoClasses.None && MediaQuery != MediaQueries.None && _previousClassname == null) { //Media queries for html elements await styled.CssAsync(GetMediaQuery(), content); } else if (Classname != null && PseudoClass != PseudoClasses.None && MediaQuery == MediaQueries.None && _previousClassname == null) { content = WrapClass(ApplyPseudoClass(Classname), content); await styled.CssAsync(content); } else { if (PseudoClass == PseudoClasses.None && MediaQuery == MediaQueries.None) { classname = await styled.CssAsync(content); } } if (ComposeAttributes == null || !ClassnameChanged.HasDelegate) { await NotifyChanged(classname); } } if (ComposeAttributes != null && ClassnameChanged.HasDelegate) { StringBuilder sb = new StringBuilder(); if (classname != null) { sb.Append(classname).Append(' '); } sb.Append(GetComposeClasses()); if (sb.Length != 0) { classname = sb.ToString().Trim(); await NotifyChanged(classname); } } if (GlobalStyle != null & classname != null && _currentHash != _previousHash) { _previousHash = _currentHash; // This needs to be done here even though it is also two lines down. Do not remove! StyledService.SetGlobalStyle(GlobalStyle, classname); } _previousHash = _currentHash; }
public TypographyImpl(IStyled styled, IMixins mixins) { _styled = styled.WithId("BlazorTypography", 10); //Low priority because BlazorTypograhy may contain normalize which should come before any other styles _mixins = mixins; }
private async Task ProcessParameters() { IStyled styled = Id == null ? StyledService : StyledService.WithId(Id); string classname = null; if (ComposeAttributes == null) { string content = RenderAsString(); content = ApplyTheme(content); if (IsKeyframes) { classname = styled.Keyframes(content); } else if (Classname != null && MediaQuery == MediaQueries.None && _previousClassname == null) { //html elements styled.Css(ApplyPseudoClass(Classname), content); } else if (MediaQuery != MediaQueries.None && ClassnameChanged.HasDelegate) { //If ClassnameChanged has a delegate then @bind-Classname was used and this is a "new" style //Otherwise Classname was used and this an existing style which will be handled in OnParametersSet content = WrapWithMediaQuery(content); classname = styled.Css(content); } else if (Classname != null && MediaQuery != MediaQueries.None && !ClassnameChanged.HasDelegate && _previousClassname == null) { //Media query support for classes where an existing Classname already exists content = WrapWithMediaQuery(ApplyPseudoClass(Classname), content); styled.Css(GetMediaQuery(), content); } else if (Classname == null && PseudoClass == PseudoClasses.None && MediaQuery != MediaQueries.None && _previousClassname == null) { //Media queries for html elements styled.Css(GetMediaQuery(), content); } else if (Classname != null && PseudoClass != PseudoClasses.None && MediaQuery == MediaQueries.None && _previousClassname == null) { content = WrapWithMediaQuery(ApplyPseudoClass(Classname), content); styled.Css(content); } else { classname = styled.Css(content); /*if (_previousClassname == null) * { * classname = styled.Css(content); * }*/ } await NotifyChanged(classname); } else { if (ClassnameChanged.HasDelegate) { StringBuilder sb = new StringBuilder(); IList <string> labels = new List <string>(); IList <string> composeClasses = GetComposeClasses(); foreach (string cls in composeClasses) { string selector = ComposeAttributes[cls].ToString(); IList <IRule> rules = StyleSheet.GetRules(Id, selector); if (rules != null) { foreach (IRule rule in rules) { if (rule.Selector != selector) { string pseudo = rule.Selector.Replace("." + selector, ""); sb.Append('&').Append(pseudo).Append('{'); } foreach (Declaration decleration in rule.Declarations) { sb.Append(decleration.ToString()); } if (rule.Label != null) { labels.Add(rule.Label); } if (rule.Selector != selector) { sb.Append('}'); } } } } if (sb.Length != 0) { string css = sb.ToString(); if (labels.Count != 0) { string labelStr = string.Join("-", labels); css = $"label:{labelStr};{css}"; } classname = styled.Css(css); await NotifyChanged(classname); } } } }
public virtual void Visit(IStyled styled) { }
public TypographyImpl(IStyled styled, IMixins mixins) { _styled = styled.WithId("BlazorTypography"); _mixins = mixins; }