Beispiel #1
0
        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);
        }
Beispiel #3
0
 public void SetUp() => _builder = new StylesheetBuilder();