private string CreateStyleFromColorPalette(StyleBase value) { value.ThrowIfNull(); var styleBuilder = new StylesheetBuilder(); var variableBuilder = CssBuilder.Create(); foreach (var curItem in value.ToDictionary()) { Type valueType; string?formattedValue; if (curItem.Value == null) { formattedValue = null; } else if (_formatters.TryGetValue(valueType = curItem.Value.GetType(), out var formatter)) { formattedValue = formatter.Format(valueType, curItem.Value); } else { formattedValue = curItem.Value.ToString(); } var variableName = "--" + curItem.Key; variableBuilder.AddProperty(variableName, formattedValue); } styleBuilder.AddDefinition( $"[data-lx-scope=\"{value.Identifier}\"]", variableBuilder.Build()); return(styleBuilder.Build() !); }
public void Is_Built_Correctly() { // Arrange var testPath = WebPath.PathSeparator + WebPath.Combine("css", "styles.css"); const string testContent = @"body { color:#000; } .bold {font-weight:bold;}"; var builder = new StylesheetBuilder(); // Act Stylesheet stylesheet = builder .WithPath(testPath) .WithContent(testContent) .Build(); // Assert Assert.AreEqual(Path.DirectorySeparatorChar + Path.Combine("css", "styles.css"), stylesheet.Path); Assert.AreEqual(testContent, stylesheet.Content); }
public void SetUp() => _builder = new StylesheetBuilder();