diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2d27f5b2..e37164c1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,7 +56,7 @@ jobs: 10.0.x - name: Build - run: ./build.sh -AngleSharpVersion 1.9.0 + run: ./build.sh -AngleSharpVersion 1.10.0 windows: runs-on: windows-latest @@ -87,9 +87,9 @@ jobs: NUGET_API_KEY: ${{ steps.nuget_login.outputs.NUGET_API_KEY }} run: | if ($env:GITHUB_REF -eq "refs/heads/main") { - .\build.ps1 -Target Publish -AngleSharpVersion 1.9.0 + .\build.ps1 -Target Publish -AngleSharpVersion 1.10.0 } elseif ($env:GITHUB_REF -eq "refs/heads/devel") { - .\build.ps1 -Target PrePublish -AngleSharpVersion 1.9.0 + .\build.ps1 -Target PrePublish -AngleSharpVersion 1.10.0 } else { - .\build.ps1 -AngleSharpVersion 1.9.0 + .\build.ps1 -AngleSharpVersion 1.10.0 } diff --git a/AGENTS.md b/AGENTS.md index 22bd99c3..2f06d9ee 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -35,7 +35,7 @@ dotnet run --project src/AngleSharp.Performance.Css/AngleSharp.Performance.Css.c Notes: -- CI invokes `./build.sh -AngleSharpVersion 1.9.0` on Linux and `./build.ps1` on Windows. +- CI invokes `./build.sh -AngleSharpVersion 1.10.0` on Linux and `./build.ps1` on Windows. - Treat warnings as errors is enabled in `src/Directory.Build.props`. ## 3) Build and target framework facts @@ -43,7 +43,7 @@ Notes: - Library project: `src/AngleSharp.Css/AngleSharp.Css.csproj` - Targets: `netstandard2.0;net8.0;net10.0` - Additional Windows-only targets: `net462;net472` - - The AngleSharp dependency defaults to version `1.9.0` and allows versions below `2.0.0`. + - The AngleSharp dependency defaults to version `1.10.0` and allows versions below `2.0.0`. - The `net8.0` and `net10.0` targets set `IsAotCompatible`, so trim and AOT analyzer warnings fail the build. - Test project: `src/AngleSharp.Css.Tests/AngleSharp.Css.Tests.csproj` - Targets: `net8.0` diff --git a/CHANGELOG.md b/CHANGELOG.md index 09068ec5..07627178 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,24 @@ +# 1.4.0 + +Released on Friday, November 6 2026. + +- Updated to use a minimum of AngleSharp 1.10 +- Improved rendering by building pseudo-elements and specified styles only when needed +- Improved presentational hints by reading the quirks mode without reflection (#268) @michaelthyregod +- Improved `GetInnerText` by using the render tree, skipping hidden content and reading shadow hosts through their slots (#267) @michaelthyregod +- Improved the memory use of render trees (#269) @michaelthyregod +- Fixed `maxWidth` of a style being a method for script +- Fixed the initial values of `position` and `background-origin` being named `inline` and `border-box` +- Fixed `getComputedStyle` giving script empty values for what was not declared instead of the initial values, e.g. `position` not being `static` +- Fixed `CSS.supports` throwing for a condition it can't parse, and not taking a declaration without parentheses +- Added support for `::selection` pseudo elements +- Added `addListener` and `removeListener` to `MediaQueryList` +- Added `selector()` to supports conditions +- Added the accessors of all style properties for script that can be applied (e.g. `gap`, `aspectRatio`, `gridTemplateColumns`, `inset`), with the names having hyphens (`style['max-width']`) and `float` +- Added `ICssUsedValueProvider`, for `getComputedStyle` to give script what layout found +- Added `CSSStyleSheet` and `adoptedStyleSheets` to the document +- Added support for the popover API using the `:popover-open` pseudo-class, the `::backdrop` pseudo-element + # 1.3.2 Released on Tuesday, November 3 2026. diff --git a/src/AngleSharp.Css.Docs/package.json b/src/AngleSharp.Css.Docs/package.json index 315c7d3d..c1920045 100644 --- a/src/AngleSharp.Css.Docs/package.json +++ b/src/AngleSharp.Css.Docs/package.json @@ -1,6 +1,6 @@ { "name": "@anglesharp/css", - "version": "1.3.2", + "version": "1.4.0", "preview": true, "description": "The doclet for the AngleSharp.Css documentation.", "keywords": [ diff --git a/src/AngleSharp.Css.Tests/Extensions/InnerText.cs b/src/AngleSharp.Css.Tests/Extensions/InnerText.cs index 91ee01e1..ac0513eb 100644 --- a/src/AngleSharp.Css.Tests/Extensions/InnerText.cs +++ b/src/AngleSharp.Css.Tests/Extensions/InnerText.cs @@ -1,6 +1,7 @@ #nullable disable namespace AngleSharp.Css.Tests.Extensions { + using AngleSharp.Css.RenderTree; using AngleSharp.Dom; using NUnit.Framework; using System; @@ -96,5 +97,53 @@ public void SpanShouldNotHaveRemovedSpaces_Issue32() Assert.AreEqual("Div with a span in it.", element.GetInnerText()); } + + // the rendered text walks the element's own children: a shadow tree is left out, and + // a light child only counts if it is rendered, i.e. assigned to a slot + [TestCase("

shadow

", "light", "light")] + [TestCase("

shadow

", "light", "")] + [TestCase("
", "b

a

", "b\n\na")] + [TestCase("", "bunassigned", "b")] + public void ShadowHostGivesTheTextOfItsRenderedChildren(String shadow, String light, String expected) + { + var document = "
".ToHtmlDocument(Configuration.Default.WithCss()); + var host = document.GetElementById("host"); + host.AttachShadow().InnerHtml = shadow; + host.InnerHtml = light; + + Assert.AreEqual(expected, host.GetInnerText()); + } + + [Test] + public void GeneratedContentIsNotPartOfTheText() + { + var document = "

x
y

".ToHtmlDocument(Configuration.Default.WithCss()); + + Assert.AreEqual("x\ny", document.GetElementById("target").GetInnerText()); + } + + [TestCase("

a

b
12
c")] + [TestCase("
 x\n  y 
")] + public void TextOfARenderedNodeIsTheTextOfItsElement(String html) + { + var document = $"
{html}
".ToHtmlDocument(Configuration.Default.WithCss()); + var target = document.GetElementById("target"); + var node = (ElementRenderNode)document.DefaultView.Render().Find(target); + + Assert.AreEqual(target.GetInnerText(), node.GetInnerText()); + } + + // the walk of an element releases what it has walked, the walk of a rendered node does not + [Test] + public void TextOfAShadowHostIsTheTextOfItsRenderedNode() + { + var document = "

a

b
12
3

c

".ToHtmlDocument(Configuration.Default.WithCss()); + var target = document.GetElementById("target"); + document.GetElementById("host").AttachShadow().InnerHtml = "
"; + var node = (ElementRenderNode)document.DefaultView.Render().Find(target); + + Assert.AreEqual("a\n\nb\n1\t2\n3\n\nc", target.GetInnerText()); + Assert.AreEqual(target.GetInnerText(), node.GetInnerText()); + } } } diff --git a/src/AngleSharp.Css.Tests/Extensions/MatchMedia.cs b/src/AngleSharp.Css.Tests/Extensions/MatchMedia.cs index 4e5b98e8..f500b7dc 100644 --- a/src/AngleSharp.Css.Tests/Extensions/MatchMedia.cs +++ b/src/AngleSharp.Css.Tests/Extensions/MatchMedia.cs @@ -10,6 +10,167 @@ namespace AngleSharp.Css.Tests.Extensions [TestFixture] public class MatchMediaTests { + [TestCase("selector(div)", true)] + [TestCase("selector(:hover)", true)] + [TestCase("selector(:not-a-real-pseudo-class)", false)] + [TestCase("not selector(:not-a-real-pseudo-class)", true)] + [TestCase("selector(div) and (color: red)", true)] + [TestCase("(color: red)", true)] + [TestCase("color: red", true)] + [TestCase("(color: notacolor)", false)] + [TestCase("this is ( not parseable", false)] + [TestCase("", false)] + public void SupportsAnswersWithoutThrowing(System.String condition, System.Boolean expected) + { + var window = CreateWindow(new DefaultRenderDevice { ViewPortWidth = 1000, ViewPortHeight = 800 }); + Assert.AreEqual(expected, window.Supports(condition)); + } + + private static (IWindow Window, IElement Element) CreateStyled(System.String style) + { + var document = new HtmlParser(new HtmlParserOptions(), BrowsingContext.New(Configuration.Default.WithCss())).ParseDocument($"
"); + return (document.DefaultView, document.GetElementById("d")); + } + + [TestCase("position", "static")] + [TestCase("visibility", "visible")] + [TestCase("overflow-x", "visible")] + [TestCase("overflow-y", "visible")] + [TestCase("overflow", "visible")] + [TestCase("opacity", "1")] + [TestCase("flex-direction", "row")] + public void ScriptSeesInitialValuesOfWhatWasNotDeclared(System.String property, System.String expected) + { + var (window, element) = CreateStyled(""); + Assert.AreEqual(expected, window.GetComputedStyleOfScript(element).GetPropertyValue(property)); + } + + [Test] + public void ScriptSeesWhatWasDeclared() + { + var (window, element) = CreateStyled("position: absolute; overflow: hidden"); + var style = window.GetComputedStyleOfScript(element); + + Assert.AreEqual("absolute", style.GetPropertyValue("position")); + Assert.AreEqual("hidden", style.GetPropertyValue("overflow")); + Assert.AreEqual("visible", style.GetPropertyValue("visibility")); + } + + [Test] + public void TheComputedStyleForDotNetStillTellsWhatWasNotDeclared() + { + var (window, element) = CreateStyled(""); + window.GetComputedStyleOfScript(element); + + Assert.AreEqual(System.String.Empty, window.GetComputedStyle(element).GetPropertyValue("position")); + } + + private static readonly System.Collections.Generic.HashSet NotForScript = new System.Collections.Generic.HashSet + { + // pages test for these to rely on them, but nothing applies them + "anchor-name", "anchor-scope", "position-anchor", "position-area", "position-try-fallbacks", "position-try-order", "position-visibility", + "animation-timeline", "animation-range", "animation-range-start", "animation-range-end", "view-transition-name", "view-transition-class", + // these are not properties of a style + "src", "unicode-range", "font-display", "size-adjust", "ascent-override", "descent-override", "line-gap-override", + "min-zoom", "max-zoom", "user-zoom", "orientation", "string-set", "running", "footnote-display", "footnote-policy", + "bookmark-level", "bookmark-label", "bookmark-state", "background-repeat-x", "background-repeat-y", "scrollbar-base-color", + }; + + private static System.Collections.Generic.IEnumerable AllProperties() => + typeof(ICssStyleDeclaration).Assembly.GetType("AngleSharp.Css.PropertyNames") + .GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static) + .Select(m => (System.String)m.GetValue(null)); + + private static ILookup ScriptMembers() => + typeof(StyleDeclarationExtensions).GetMethods() + .SelectMany(m => m.GetCustomAttributes(typeof(AngleSharp.Attributes.DomNameAttribute), false) + .Cast() + .Select(n => new { n.OfficialName, Method = m })) + .ToLookup(m => m.OfficialName, m => m.Method); + + private static System.String ToCamelCase(System.String name) + { + var parts = name.TrimStart('-').Split('-'); + return parts[0] + System.String.Concat(parts.Skip(1).Select(m => char.ToUpperInvariant(m[0]) + m.Substring(1))); + } + + [Test] + public void EveryPropertyThatCanBeAppliedHasAnAccessorAndAHyphenatedName() + { + var members = ScriptMembers(); + var missing = AllProperties() + .Where(m => !NotForScript.Contains(m) && m != "float") + .Where(m => members[ToCamelCase(m)].Count() != 2 || members[m].Count() != 2) + .ToArray(); + + Assert.IsEmpty(missing); + } + + [Test] + public void WhatCanNotBeAppliedHasNoAccessorSoThatPagesDoNotRelyOnIt() + { + var members = ScriptMembers(); + var exposed = NotForScript.Where(m => members[ToCamelCase(m)].Any() || members[m].Any()).ToArray(); + + Assert.IsEmpty(exposed); + } + + [Test] + public void EveryMemberIsAnAccessor() + { + var plain = typeof(StyleDeclarationExtensions).GetMethods() + .Where(m => m.IsDefined(typeof(AngleSharp.Attributes.DomNameAttribute), false) && !m.IsDefined(typeof(AngleSharp.Attributes.DomAccessorAttribute), false)) + .Select(m => m.Name) + .ToArray(); + + Assert.IsEmpty(plain); + } + + [Test] + public void FloatHasBothOfItsNames() + { + var members = ScriptMembers(); + + Assert.AreEqual(2, members["cssFloat"].Count()); + Assert.AreEqual(2, members["float"].Count()); + } + + private sealed class FixedUsedValues : ICssUsedValueProvider + { + public System.String GetUsedValue(IElement element, System.String propertyName) => propertyName == "width" ? "123px" : null; + } + + [Test] + public void ScriptSeesWhatLayoutFound() + { + var config = Configuration.Default.WithCss(); + var context = BrowsingContext.New(config); + context.SetUsedValueProvider(new FixedUsedValues()); + var document = new HtmlParser(new HtmlParserOptions(), context).ParseDocument("
"); + var element = document.GetElementById("d"); + var style = document.DefaultView.GetComputedStyleOfScript(element); + + Assert.AreEqual("123px", style.GetPropertyValue("width")); + Assert.AreEqual("5px", style.GetPropertyValue("height")); + Assert.AreEqual(System.String.Empty, document.DefaultView.GetComputedStyle(element).GetPropertyValue("width")); + } + + [Test] + public void AddListenerListensToChangesUntilRemoved() + { + var window = CreateWindow(new DefaultRenderDevice { ViewPortWidth = 1000, ViewPortHeight = 800 }); + var list = window.MatchMedia("all"); + var calls = 0; + DomEventHandler listener = (_, _) => calls++; + + list.AddListener(listener); + list.Dispatch(new AngleSharp.Dom.Events.Event("change")); + list.RemoveListener(listener); + list.Dispatch(new AngleSharp.Dom.Events.Event("change")); + + Assert.AreEqual(1, calls); + } + [Test] public void MatchMediaWithoutAnyQueryIsMatched() { diff --git a/src/AngleSharp.Css.Tests/Extensions/PseudoElementRenderTests.cs b/src/AngleSharp.Css.Tests/Extensions/PseudoElementRenderTests.cs index e213ec60..20b88cfe 100644 --- a/src/AngleSharp.Css.Tests/Extensions/PseudoElementRenderTests.cs +++ b/src/AngleSharp.Css.Tests/Extensions/PseudoElementRenderTests.cs @@ -66,6 +66,15 @@ public void ElementRenderedAgainBelowItsParentTakesItsNewStyleAndInherits() Assert.IsInstanceOf(node.Children.OfType().First().Ref); } + [Test] + public void SelectionPseudoElementCanBeCreated() + { + var document = BrowsingContext.New(Configuration.Default.WithCss()).OpenNewAsync().Result; + var element = document.CreateElement("p"); + + Assert.AreEqual("selection", element.Pseudo("selection")?.PseudoName); + } + [Test] public void BeforePseudoElementIsTheFirstChildWithItsGeneratedTextContent() { @@ -216,5 +225,35 @@ public void PseudoClassesBeforeAPseudoElementReferToTheOriginatingElement(string Assert.AreEqual(expected, target.Children.Any(m => m.Ref is IPseudoElement)); } + + // only a rule declaring the content gives a pseudo-element a box, wherever it comes from + [TestCase("*::before { color: red }", false, false)] + [TestCase("*::before { color: red } #target::before { content: 'X' }", true, false)] + [TestCase("*::before { content: 'X' }", true, true)] + [TestCase("#target::before { color: red } .other::before { content: 'X' }", false, true)] + [TestCase("#target { &::before { content: 'X' } }", true, false)] + [TestCase("@media screen { #target::before { content: 'X' } }", true, false)] + public void OnlyPseudoElementsWithDeclaredContentGenerateNodes(string css, bool target, bool other) + { + var root = Render($"" + + "
A
B
"); + + Assert.AreEqual(target, FindElement(root, "target").Children.Any(m => m.Ref is IPseudoElement), "target"); + Assert.AreEqual(other, FindElement(root, "other").Children.Any(m => m.Ref is IPseudoElement), "other"); + } + + [Test] + public void ContentAddedThroughTheObjectModelGeneratesANode() + { + var document = ParseDocument("" + + "
A
"); + var window = document.DefaultView; + var rule = (ICssStyleRule)((ICssStyleSheet)document.StyleSheets[0]).Rules[0]; + Assert.IsFalse(FindElement((ElementRenderNode)window.Render(new PlainRenderDevice()), "target").Children.Any(m => m.Ref is IPseudoElement)); + + rule.Style.SetProperty("content", "'X'"); + + Assert.IsTrue(FindElement((ElementRenderNode)window.Render(new PlainRenderDevice()), "target").Children.Any(m => m.Ref is IPseudoElement)); + } } } diff --git a/src/AngleSharp.Css.Tests/Extensions/ShadowTreeRenderTests.cs b/src/AngleSharp.Css.Tests/Extensions/ShadowTreeRenderTests.cs index 5658d5bf..fd62618c 100644 --- a/src/AngleSharp.Css.Tests/Extensions/ShadowTreeRenderTests.cs +++ b/src/AngleSharp.Css.Tests/Extensions/ShadowTreeRenderTests.cs @@ -149,5 +149,27 @@ public void ShadowTreesAreStyledByTheirOwnStyleSheets() Assert.AreEqual("rgba(0, 128, 0, 1)", shadow.ComputedStyle.GetColor()); Assert.AreEqual("rgba(255, 0, 0, 1)", light.ComputedStyle.GetColor()); } + + [Test] + public void AdoptedSheetsAreScopedToTheirShadowRootAndStyleItsHost() + { + AssumeHostIsSupported(); + + var document = CreateHost("Light", "Shadow"); + var host = document.GetElementById("host"); + var shadowRoot = host.ShadowRoot; + var sheet = new CssStyleSheet(document.DefaultView); + sheet.ReplaceSync(":host { display: inline-block } span { color: green }"); + shadowRoot.SetAdoptedStyleSheets(new[] { sheet }); + + var nodes = Flatten(Render(document)).ToList(); + var renderedHost = nodes.First(m => m.Ref.Id == "host"); + var shadow = nodes.First(m => m.Ref.Id == "shadow"); + var light = nodes.First(m => m.Ref.Id == "light"); + + Assert.AreEqual("inline-block", renderedHost.ComputedStyle.GetDisplay()); + Assert.AreEqual("rgba(0, 128, 0, 1)", shadow.ComputedStyle.GetColor()); + Assert.AreEqual("rgba(255, 0, 0, 1)", light.ComputedStyle.GetColor()); + } } } diff --git a/src/AngleSharp.Css.Tests/Styling/Configuration.cs b/src/AngleSharp.Css.Tests/Styling/Configuration.cs index 0891fc5c..a973cd49 100644 --- a/src/AngleSharp.Css.Tests/Styling/Configuration.cs +++ b/src/AngleSharp.Css.Tests/Styling/Configuration.cs @@ -50,7 +50,9 @@ public void ObtainDefaultSheet() // 80, not 73: the UA stylesheet now also has rules of its own for text areas, selects, // list boxes, file, search and date/time inputs, progress bars and meters. // 81, not 80: the UA stylesheet now also gives `iframe` its default border. - Assert.AreEqual(81, sheet.Rules.Length); + // 85, not 81: the UA stylesheet now also carries the popover rules (hidden unless + // shown, centered in the viewport, and the `::backdrop` of a shown popover). + Assert.AreEqual(85, sheet.Rules.Length); } } } diff --git a/src/AngleSharp.Css.Tests/Styling/ConstructedStyleSheets.cs b/src/AngleSharp.Css.Tests/Styling/ConstructedStyleSheets.cs new file mode 100644 index 00000000..f03e88e5 --- /dev/null +++ b/src/AngleSharp.Css.Tests/Styling/ConstructedStyleSheets.cs @@ -0,0 +1,112 @@ +#nullable disable +namespace AngleSharp.Css.Tests.Styling +{ + using AngleSharp; + using AngleSharp.Css.Dom; + using AngleSharp.Dom; + using NUnit.Framework; + using System; + using System.Threading.Tasks; + using static CssConstructionFunctions; + + [TestFixture] + public class ConstructedStyleSheetsTests + { + [Test] + public async Task ConstructedSheetSupportsOptionsAndReplacement() + { + var document = ParseDocument("

Text

"); + var sheet = new CssStyleSheet(document.DefaultView, "https://example.com/styles/", "screen", true); + + Assert.IsNull(sheet.OwnerNode); + Assert.IsNull(sheet.Href); + Assert.AreEqual("screen", sheet.Media.MediaText); + Assert.IsTrue(sheet.IsDisabled); + + sheet.ReplaceSync("p { background-image: url(image.png) } @import 'ignored.css';"); + + Assert.AreEqual(1, sheet.Rules.Length); + StringAssert.Contains("https://example.com/styles/image.png", sheet.ToCss()); + + var replaced = await sheet.Replace("p { color: blue }"); + + Assert.AreSame(sheet, replaced); + Assert.AreEqual(1, sheet.Rules.Length); + Assert.AreEqual("rgba(0, 0, 255, 1)", ((ICssStyleRule)sheet.Rules[0]).Style.GetPropertyValue("color")); + } + + [Test] + public async Task ReplaceMethodsRequireAConstructedSheet() + { + var sheet = ParseStyleSheet("p { color: red }"); + var syncError = Assert.Throws(() => sheet.ReplaceSync(String.Empty)); + Assert.AreEqual("NotAllowedError", syncError.Name); + + var asyncError = Assert.ThrowsAsync(async () => await sheet.Replace(String.Empty)); + Assert.AreEqual("NotAllowedError", asyncError.Name); + } + + [Test] + public void InsertRuleRejectsImportOnConstructedSheet() + { + var document = ParseDocument(String.Empty); + var sheet = new CssStyleSheet(document.DefaultView); + + var error = Assert.Throws(() => sheet.Insert("@import url(styles.css);", 0)); + + Assert.AreEqual("SyntaxError", error.Name); + Assert.AreEqual(0, sheet.Rules.Length); + } + + [Test] + public async Task ConstructedSheetUsesDocumentAddressAsItsDefaultBaseUrl() + { + var context = BrowsingContext.New(Configuration.Default.WithCss()); + var document = await context.OpenAsync(m => m.Content("

Text

").Address("https://example.com/page/")); + var sheet = new CssStyleSheet(document.DefaultView); + + sheet.ReplaceSync("p { background-image: url(image.png) }"); + + StringAssert.Contains("https://example.com/page/image.png", sheet.ToCss()); + } + + [Test] + public void AdoptedSheetsApplyAfterDocumentSheetsAndCanBeMutated() + { + var document = ParseDocument("

Text

"); + var sheet = new CssStyleSheet(document.DefaultView); + sheet.ReplaceSync("p { color: blue }"); + document.SetAdoptedStyleSheets(new[] { sheet }); + Assert.AreEqual(1, document.StyleSheets.Length); + + var paragraph = document.QuerySelector("p"); + Assert.AreEqual("rgba(0, 0, 255, 1)", document.DefaultView.GetComputedStyle(paragraph).GetColor()); + + sheet.ReplaceSync("p { color: green }"); + Assert.AreEqual("rgba(0, 128, 0, 1)", document.DefaultView.GetComputedStyle(paragraph).GetColor()); + + sheet.IsDisabled = true; + Assert.AreEqual("rgba(255, 0, 0, 1)", document.DefaultView.GetComputedStyle(paragraph).GetColor()); + + sheet.IsDisabled = false; + Assert.AreEqual("rgba(0, 128, 0, 1)", document.DefaultView.GetComputedStyle(paragraph).GetColor()); + + document.GetAdoptedStyleSheets().RemoveAt(0); + + Assert.AreEqual("rgba(255, 0, 0, 1)", document.DefaultView.GetComputedStyle(paragraph).GetColor()); + } + + [Test] + public void AdoptedSheetsMustBeConstructedForTheSameDocument() + { + var firstDocument = ParseDocument(String.Empty); + var secondDocument = ParseDocument(String.Empty); + var sheet = new CssStyleSheet(firstDocument.DefaultView); + + var error = Assert.Throws(() => secondDocument.SetAdoptedStyleSheets(new[] { sheet })); + + Assert.AreEqual("NotAllowedError", error.Name); + Assert.AreEqual(0, secondDocument.GetAdoptedStyleSheets().Count); + } + } +} diff --git a/src/AngleSharp.Css.Tests/Styling/InheritanceChainTests.cs b/src/AngleSharp.Css.Tests/Styling/InheritanceChainTests.cs index c9c148b8..21235472 100644 --- a/src/AngleSharp.Css.Tests/Styling/InheritanceChainTests.cs +++ b/src/AngleSharp.Css.Tests/Styling/InheritanceChainTests.cs @@ -184,6 +184,72 @@ public void DeepChainWithoutADeclarationKeepsTheInitialValue() Assert.AreEqual(String.Empty, levels[0].ComputedStyle.GetPropertyValue("--undeclared")); } + // The specified style is built when it is first read, from the one the parent had + // when it was built: the order of reading and later modifications must not matter. + [Test] + public void SpecifiedStylesAreTheSameInAnyReadingOrder() + { + var html = "

x

"; + var tree = Parse(html).DefaultView.Render(); + var childFirst = Find(tree, "child").SpecifiedStyle; + var parentAfter = Find(tree, "parent").SpecifiedStyle; + var other = Parse(html).DefaultView.Render(); + var parentFirst = Find(other, "parent").SpecifiedStyle; + parentFirst.SetProperty("color", "blue"); + var childAfter = Find(other, "child").SpecifiedStyle; + + Assert.AreEqual("rgba(255, 0, 0, 1)", childFirst.GetPropertyValue("color")); + Assert.AreEqual("1px", childFirst.GetPropertyValue("--a")); + Assert.AreEqual(childFirst.CssText, childAfter.CssText); + Assert.AreEqual("2px", parentAfter.GetPropertyValue("margin-left")); + Assert.AreEqual("rgba(0, 0, 255, 1)", parentFirst.GetPropertyValue("color")); + } + + [Test] + public void ElementRenderedAgainInheritsTheCurrentSpecifiedStyleOfItsParent() + { + var document = Parse("

x

"); + var window = document.DefaultView; + var parent = Find(window.Render(), "parent"); + parent.SpecifiedStyle.SetProperty("color", "blue"); + + var child = window.Render(document.GetElementById("child"), parent); + parent.SpecifiedStyle.SetProperty("color", "green"); + + Assert.AreEqual("rgba(0, 0, 255, 1)", child.SpecifiedStyle.GetPropertyValue("color")); + } + + [Test] + public void ConcurrentFirstReadsOfTheSpecifiedStyleGetTheSameOne() + { + var levels = BuildChain(50, level => level == 10 ? "color: red" : null); + var target = levels[levels.Count - 1]; + var results = new ICssStyleDeclaration[4]; + + using (var barrier = new System.Threading.Barrier(results.Length)) + { + var threads = Enumerable.Range(0, results.Length).Select(i => new System.Threading.Thread(() => + { + barrier.SignalAndWait(); + results[i] = target.SpecifiedStyle; + })).ToList(); + threads.ForEach(m => m.Start()); + threads.ForEach(m => m.Join()); + } + + Assert.IsTrue(results.All(m => ReferenceEquals(m, results[0]))); + Assert.AreEqual("rgba(255, 0, 0, 1)", results[0].GetPropertyValue("color")); + } + + [Test] + public void CascadedStyleOfARenderedPseudoElementIsItsSpecifiedStyle() + { + var tree = Parse("
y
").DefaultView.Render(); + var before = Find(tree, "target").Children.OfType().Single(); + + Assert.AreSame(before.SpecifiedStyle, ((IPseudoElement)before.Ref).GetCascadedStyle()); + } + // a chain of divs built with the DOM API, with the given inline style per level private static List BuildChain(int depth, Func style) { diff --git a/src/AngleSharp.Css.Tests/Styling/PartialRenderTreeTests.cs b/src/AngleSharp.Css.Tests/Styling/PartialRenderTreeTests.cs new file mode 100644 index 00000000..f80a86ca --- /dev/null +++ b/src/AngleSharp.Css.Tests/Styling/PartialRenderTreeTests.cs @@ -0,0 +1,106 @@ +#nullable disable +namespace AngleSharp.Css.Tests.Styling +{ + using AngleSharp.Css.RenderTree; + using AngleSharp.Dom; + using AngleSharp.Html.Parser; + using NUnit.Framework; + using System.Linq; + using System.Threading; + + [TestFixture] + public class PartialRenderTreeTests + { + private const string Html = "" + + "
slottedunassigned
" + + "

a
b quote

"; + + private static IDocument Parse() + { + var config = Configuration.Default.WithCss().WithRenderDevice(new DefaultRenderDevice { ViewPortWidth = 1000, ViewPortHeight = 800 }); + var document = BrowsingContext.New(config).GetService().ParseDocument(Html); + document.GetElementById("host").AttachShadow().InnerHtml = "shadow"; + return document; + } + + private static ElementRenderNode RenderPartial(IDocument document) + { + var builder = RenderTreeBuilder.GetInstance(document.DefaultView); + return builder.RenderPartial(document.DocumentElement, builder.DefaultDevice); + } + + [Test] + public void ACompletedPartialTreeIsTheRenderedTree() + { + var document = Parse(); + var expected = (ElementRenderNode)document.DefaultView.Render(); + var partial = RenderPartial(document); + + AssertSame(expected, partial); + } + + [Test] + public void ChildrenOfAPartialTreeReadBeforeTheRestAreTheSame() + { + var document = Parse(); + var expected = (ElementRenderNode)document.DefaultView.Render(); + var partial = RenderPartial(document); + var body = partial.Content.OfType().Single(m => m.Ref.LocalName == "body"); + + // the children without generated content first, then all of them + Assert.IsTrue(body.Content.All(m => m.Ref is not IPseudoElement)); + AssertSame(expected, partial); + } + + [Test] + public void ConcurrentFirstReadsOfTheChildrenGetTheSameOnes() + { + var partial = RenderPartial(Parse()); + var results = new object[4]; + + using (var barrier = new Barrier(results.Length)) + { + var threads = Enumerable.Range(0, results.Length).Select(i => new Thread(() => + { + barrier.SignalAndWait(); + results[i] = i % 2 == 0 ? partial.Children : partial.Content; + })).ToList(); + threads.ForEach(m => m.Start()); + threads.ForEach(m => m.Join()); + } + + Assert.AreSame(results[0], results[2]); + Assert.AreSame(results[1], results[3]); + CollectionAssert.AreEqual((System.Collections.IEnumerable)results[1], partial.Children.Where(m => m.Ref is not IPseudoElement)); + } + + private static bool IsGenerated(IRenderNode node) => node.Ref is IPseudoElement || node.Ref.Parent is null; + + private static void AssertSame(IRenderNode expected, IRenderNode actual) + { + // pseudo-elements and their generated text are created for every rendering + Assert.AreSame(IsGenerated(expected) ? null : expected.Ref, IsGenerated(actual) ? null : actual.Ref); + Assert.AreEqual(expected.GetType(), actual.GetType()); + + if (expected is ElementRenderNode element) + { + var other = (ElementRenderNode)actual; + Assert.AreEqual(element.ComputedStyle.CssText, other.ComputedStyle.CssText, element.Ref.LocalName); + Assert.AreEqual(element.SpecifiedStyle.CssText, other.SpecifiedStyle.CssText, element.Ref.LocalName); + } + else + { + Assert.AreEqual(((TextRenderNode)expected).Ref.Data, ((TextRenderNode)actual).Ref.Data); + } + + var expectedChildren = expected.Children.ToList(); + var actualChildren = actual.Children.ToList(); + Assert.AreEqual(expectedChildren.Count, actualChildren.Count, expected.Ref.NodeName); + + for (var i = 0; i < expectedChildren.Count; i++) + { + AssertSame(expectedChildren[i], actualChildren[i]); + } + } + } +} diff --git a/src/AngleSharp.Css.Tests/Styling/PopoverTests.cs b/src/AngleSharp.Css.Tests/Styling/PopoverTests.cs new file mode 100644 index 00000000..f7ce3528 --- /dev/null +++ b/src/AngleSharp.Css.Tests/Styling/PopoverTests.cs @@ -0,0 +1,158 @@ +#nullable disable +namespace AngleSharp.Css.Tests.Styling +{ + using AngleSharp.Dom; + using AngleSharp.Html.Dom; + using NUnit.Framework; + using static CssConstructionFunctions; + + /// + /// The CSS part of the popover API (HTML, "The popover attribute"): the `:popover-open` + /// pseudo-class, the `::backdrop` pseudo-element and the user-agent styles that hide a + /// popover until it is shown and then center it in the viewport. The DOM part (the + /// `popover` attribute, `ShowPopover` and friends) lives in AngleSharp itself. + /// + [TestFixture] + public class PopoverTests + { + private static IHtmlDocument ParsePopoverDocument() => + ParseDocument(""); + + [Test] + public void PopoverOpenDoesNotMatchAClosedPopover() + { + var document = ParsePopoverDocument(); + var menu = document.GetElementById("menu"); + + Assert.IsFalse(menu.Matches(":popover-open")); + Assert.IsTrue(menu.Matches(":not(:popover-open)")); + } + + [Test] + public void PopoverOpenMatchesAShownPopover() + { + var document = ParsePopoverDocument(); + var menu = document.GetElementById("menu") as IHtmlElement; + + menu.ShowPopover(); + + Assert.IsTrue(menu.Matches(":popover-open")); + Assert.IsFalse(menu.Matches(":not(:popover-open)")); + } + + [Test] + public void PopoverOpenStopsMatchingAHiddenPopover() + { + var document = ParsePopoverDocument(); + var menu = document.GetElementById("menu") as IHtmlElement; + + menu.ShowPopover(); + menu.HidePopover(); + + Assert.IsFalse(menu.Matches(":popover-open")); + } + + [Test] + public void PopoverOpenDoesNotMatchANonPopoverElement() + { + var document = ParseDocument("
x
"); + var target = document.GetElementById("target"); + + Assert.IsFalse(target.Matches(":popover-open")); + } + + [Test] + public void PopoverOpenCanBeForcedLikeOtherPseudoClasses() + { + var document = ParsePopoverDocument(); + var menu = document.GetElementById("menu"); + + menu.SetPseudoClass("popover-open"); + + Assert.IsTrue(menu.Matches(":popover-open")); + } + + [Test] + public void ClosedPopoverIsHiddenByDefault() + { + var document = ParsePopoverDocument(); + var menu = document.GetElementById("menu"); + + Assert.AreEqual("none", menu.ComputeCurrentStyle().GetPropertyValue("display")); + } + + [Test] + public void ShownPopoverIsDisplayedAndCenteredInTheViewport() + { + var document = ParsePopoverDocument(); + var menu = document.GetElementById("menu") as IHtmlElement; + + menu.ShowPopover(); + var style = menu.ComputeCurrentStyle(); + + Assert.AreEqual("block", style.GetPropertyValue("display")); + Assert.AreEqual("fixed", style.GetPropertyValue("position")); + Assert.AreEqual("0px", style.GetPropertyValue("top")); + Assert.AreEqual("0px", style.GetPropertyValue("right")); + Assert.AreEqual("0px", style.GetPropertyValue("bottom")); + Assert.AreEqual("0px", style.GetPropertyValue("left")); + Assert.AreEqual("auto", style.GetPropertyValue("margin-top")); + Assert.AreEqual("auto", style.GetPropertyValue("margin-left")); + Assert.AreEqual("fit-content", style.GetPropertyValue("width")); + Assert.AreEqual("fit-content", style.GetPropertyValue("height")); + Assert.AreEqual("auto", style.GetPropertyValue("overflow-x")); + Assert.AreEqual("solid", style.GetPropertyValue("border-top-style")); + } + + [Test] + public void HiddenAttributeStillHidesAShownPopover() + { + var document = ParseDocument(""); + var menu = document.GetElementById("menu"); + + Assert.AreEqual("none", menu.ComputeCurrentStyle().GetPropertyValue("display")); + } + + [Test] + public void AuthorStylesCanOverrideThePopoverDefaults() + { + var document = ParseDocument(@""); + var menu = document.GetElementById("menu") as IHtmlElement; + + menu.ShowPopover(); + + Assert.AreEqual("rgba(255, 0, 0, 1)", menu.ComputeCurrentStyle().GetPropertyValue("background-color")); + } + + [Test] + public void ShownPopoverHasATransparentBackdrop() + { + var document = ParsePopoverDocument(); + var menu = document.GetElementById("menu") as IHtmlElement; + + menu.ShowPopover(); + var style = document.DefaultView.GetComputedStyle(menu, "::backdrop"); + + Assert.AreEqual("fixed", style.GetPropertyValue("position")); + Assert.AreEqual("0px", style.GetPropertyValue("top")); + Assert.AreEqual("none", style.GetPropertyValue("pointer-events")); + Assert.AreEqual("rgba(0, 0, 0, 0)", style.GetPropertyValue("background-color")); + } + + [Test] + public void BackdropStylesOfAuthorsApply() + { + var document = ParseDocument(@""); + var menu = document.GetElementById("menu") as IHtmlElement; + + menu.ShowPopover(); + var style = document.DefaultView.GetComputedStyle(menu, "::backdrop"); + + Assert.AreEqual("rgba(0, 0, 255, 1)", style.GetPropertyValue("background-color")); + } + } +} diff --git a/src/AngleSharp.Css.Tests/Styling/PresentationalHintTests.cs b/src/AngleSharp.Css.Tests/Styling/PresentationalHintTests.cs index 0dbfb101..9c2a2ab3 100644 --- a/src/AngleSharp.Css.Tests/Styling/PresentationalHintTests.cs +++ b/src/AngleSharp.Css.Tests/Styling/PresentationalHintTests.cs @@ -91,6 +91,19 @@ public void StandardsModeHasNoneOfThem() Assert.AreNotEqual("16px", Style("
").GetPropertyValue("margin-bottom")); } + // a limited-quirks document (compatMode "CSS1Compat") has no quirks + [TestCase("
", "text-align", "right")] + [TestCase("
", "width", "")] + public void LimitedQuirksModeHasNoneOfThem(string html, string property, string expected) + { + const string doctype = ""; + var context = BrowsingContext.New(Configuration.Default.WithCss()); + var document = context.OpenAsync(request => request.Content($"{doctype}{html}")).Result; + + Assert.AreEqual("CSS1Compat", document.CompatMode); + Assert.AreEqual(expected, document.GetElementById("t").ComputeCurrentStyle().GetPropertyValue(property)); + } + [TestCase("
", "width", "100px")] [TestCase("
", "margin-left", "20px")] [TestCase("
", "color", "rgba(0, 255, 0, 1)")] diff --git a/src/AngleSharp.Css/AngleSharp.Css.csproj b/src/AngleSharp.Css/AngleSharp.Css.csproj index be708955..3a93345c 100644 --- a/src/AngleSharp.Css/AngleSharp.Css.csproj +++ b/src/AngleSharp.Css/AngleSharp.Css.csproj @@ -40,7 +40,7 @@ true true snupkg - 1.9.0 + 1.10.0 diff --git a/src/AngleSharp.Css/Constants/InitialValues.cs b/src/AngleSharp.Css/Constants/InitialValues.cs index eaafedbc..8d0a6403 100644 --- a/src/AngleSharp.Css/Constants/InitialValues.cs +++ b/src/AngleSharp.Css/Constants/InitialValues.cs @@ -21,7 +21,7 @@ static class InitialValues public static readonly ICssValue BackgroundPositionYDecl = new CssLengthValue(0, CssLengthValue.Unit.Percent); public static readonly ICssValue BackgroundPositionDecl = new CssTupleValue(new [] { BackgroundPositionXDecl, BackgroundPositionYDecl }); public static readonly ICssValue BackgroundSizeDecl = new CssBackgroundSizeValue(new CssConstantValue(CssKeywords.Auto, CssLengthValue.Auto), new CssConstantValue(CssKeywords.Auto, CssLengthValue.Auto)); - public static readonly ICssValue BackgroundOriginDecl = new CssConstantValue(CssKeywords.BorderBox, BoxModel.PaddingBox); + public static readonly ICssValue BackgroundOriginDecl = new CssConstantValue(CssKeywords.PaddingBox, BoxModel.PaddingBox); public static readonly ICssValue BackgroundClipDecl = new CssConstantValue(CssKeywords.BorderBox, BoxModel.BorderBox); public static readonly ICssValue BackgroundAttachmentDecl = new CssConstantValue(CssKeywords.Scroll, BackgroundAttachment.Scroll); public static readonly ICssValue BookmarkStateDecl = new CssConstantValue(CssKeywords.Open, BookmarkState.Open); @@ -217,7 +217,7 @@ static class InitialValues public static readonly ICssValue RowGapDecl = new CssConstantValue(CssKeywords.Normal, CssLengthValue.Normal); public static readonly ICssValue PerspectiveDecl = new CssConstantValue(CssKeywords.None, null); public static readonly ICssValue PerspectiveOriginDecl = CssPoint2D.Center; - public static readonly ICssValue PositionDecl = new CssConstantValue(CssKeywords.Inline, PositionMode.Static); + public static readonly ICssValue PositionDecl = new CssConstantValue(CssKeywords.Static, PositionMode.Static); public static readonly ICssValue TransformDecl = new CssConstantValue(CssKeywords.None, null); public static readonly ICssValue TransformStyleDecl = new CssConstantValue(CssKeywords.Flat, true); public static readonly ICssValue TransformBoxDecl = new CssConstantValue(CssKeywords.ViewBox, CssKeywords.ViewBox); diff --git a/src/AngleSharp.Css/CssConfigurationExtensions.cs b/src/AngleSharp.Css/CssConfigurationExtensions.cs index d6001743..89473d65 100644 --- a/src/AngleSharp.Css/CssConfigurationExtensions.cs +++ b/src/AngleSharp.Css/CssConfigurationExtensions.cs @@ -54,13 +54,15 @@ public static IConfiguration WithCss(this IConfiguration configuration, CssParse } // Wraps whatever pseudo-class selector factory is registered so that pseudo-classes + // only supported with CSS (e.g. :popover-open) are recognized, and so that pseudo-classes // it recognizes (e.g. :hover, :active) can be forced per element via // ElementExtensions.SetPseudoClass, regardless of which factory instance is in use. var pseudoClassFactory = configuration.Services.OfType().FirstOrDefault(); if (pseudoClassFactory is not null && pseudoClassFactory is not ForcingPseudoClassSelectorFactory) { - configuration = configuration.WithOnly(new ForcingPseudoClassSelectorFactory(pseudoClassFactory)); + configuration = configuration.WithOnly( + new ForcingPseudoClassSelectorFactory(new CssPseudoClassSelectorFactory(pseudoClassFactory))); } // Wraps whatever pseudo-element selector factory is registered so that pseudo-elements diff --git a/src/AngleSharp.Css/CssDefaultStyleSheetProvider.cs b/src/AngleSharp.Css/CssDefaultStyleSheetProvider.cs index 5ea4a117..fab842c7 100644 --- a/src/AngleSharp.Css/CssDefaultStyleSheetProvider.cs +++ b/src/AngleSharp.Css/CssDefaultStyleSheetProvider.cs @@ -83,6 +83,10 @@ private static ICssStyleSheet Parse(String source) style, template, title { display: none } [hidden] { display: none } +[popover]:not(:popover-open):not(dialog[open]) { display: none } +dialog:popover-open { display: block } +[popover] { position: fixed; inset: 0; width: fit-content; height: fit-content; margin: auto; border: solid; padding: 0.25em; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255) } +:popover-open::backdrop { position: fixed; inset: 0; pointer-events: none !important; background-color: transparent } table { display: table } tr { display: table-row } thead { display: table-header-group } diff --git a/src/AngleSharp.Css/Dom/AdoptedStyleSheetExtensions.cs b/src/AngleSharp.Css/Dom/AdoptedStyleSheetExtensions.cs new file mode 100644 index 00000000..5eecedcd --- /dev/null +++ b/src/AngleSharp.Css/Dom/AdoptedStyleSheetExtensions.cs @@ -0,0 +1,188 @@ +namespace AngleSharp.Dom +{ + using AngleSharp.Attributes; + using AngleSharp.Css.Dom; + using System; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + using System.Runtime.CompilerServices; + + /// + /// Provides adopted stylesheet access for documents. + /// + [DomExposed("Document")] + public static class DocumentAdoptedStyleSheetExtensions + { + /// + /// Gets the adopted stylesheets of the document. + /// + /// The document. + /// The live adopted stylesheet collection. + [DomName("adoptedStyleSheets")] + [DomAccessor(Accessors.Getter)] + public static IList GetAdoptedStyleSheets(this IDocument document) => + AdoptedStyleSheetStore.Get(document); + + /// + /// Sets the adopted stylesheets of the document. + /// + /// The document. + /// The stylesheets to adopt. + [DomName("adoptedStyleSheets")] + [DomAccessor(Accessors.Setter)] + public static void SetAdoptedStyleSheets(this IDocument document, IEnumerable sheets) => + AdoptedStyleSheetStore.Set(document, sheets); + } + + /// + /// Provides adopted stylesheet access for shadow roots. + /// + [DomExposed("ShadowRoot")] + public static class ShadowRootAdoptedStyleSheetExtensions + { + /// + /// Gets the adopted stylesheets of the shadow root. + /// + /// The shadow root. + /// The live adopted stylesheet collection. + [DomName("adoptedStyleSheets")] + [DomAccessor(Accessors.Getter)] + public static IList GetAdoptedStyleSheets(this IShadowRoot shadowRoot) => + AdoptedStyleSheetStore.Get(shadowRoot); + + /// + /// Sets the adopted stylesheets of the shadow root. + /// + /// The shadow root. + /// The stylesheets to adopt. + [DomName("adoptedStyleSheets")] + [DomAccessor(Accessors.Setter)] + public static void SetAdoptedStyleSheets(this IShadowRoot shadowRoot, IEnumerable sheets) => + AdoptedStyleSheetStore.Set(shadowRoot, sheets); + + internal static IDocument GetOwnerDocument(IShadowRoot shadowRoot) => + shadowRoot.Host.Owner ?? throw new InvalidOperationException("The shadow root's host must be associated with a document."); + } + + /// + /// Provides the effective stylesheet sequence for each style root. + /// + public static class EffectiveStyleSheetExtensions + { + /// + /// Gets a document's own stylesheets followed by its adopted stylesheets. + /// + /// The document. + /// The stylesheets in cascade order. + public static IEnumerable GetEffectiveStyleSheets(this IDocument document) => + document.GetStyleSheets().OfType().Concat(document.GetAdoptedStyleSheets()); + + /// + /// Gets a shadow root's own stylesheets followed by its adopted stylesheets. + /// + /// The shadow root. + /// The stylesheets in cascade order. + public static IEnumerable GetEffectiveStyleSheets(this IShadowRoot shadowRoot) => + shadowRoot.StyleSheets.OfType().Concat(shadowRoot.GetAdoptedStyleSheets()); + } + + static class AdoptedStyleSheetStore + { + private static readonly ConditionalWeakTable _collections = new(); + + public static IList Get(Object root) => + _collections.GetValue(root, key => new AdoptedStyleSheetList(key)); + + public static void Set(Object root, IEnumerable sheets) + { + ((AdoptedStyleSheetList)Get(root)).Replace(sheets); + } + } + + sealed class AdoptedStyleSheetList : IList + { + private readonly Object _root; + private readonly List _sheets = new(); + + public AdoptedStyleSheetList(Object root) + { + _root = root; + } + + public ICssStyleSheet this[Int32 index] + { + get => _sheets[index]; + set + { + Validate(value); + _sheets[index] = value; + } + } + + public Int32 Count => _sheets.Count; + + public Boolean IsReadOnly => false; + + public void Add(ICssStyleSheet item) + { + Validate(item); + _sheets.Add(item); + } + + public void Clear() => _sheets.Clear(); + + public Boolean Contains(ICssStyleSheet item) => _sheets.Contains(item); + + public void CopyTo(ICssStyleSheet[] array, Int32 arrayIndex) => _sheets.CopyTo(array, arrayIndex); + + public IEnumerator GetEnumerator() => _sheets.GetEnumerator(); + + public Int32 IndexOf(ICssStyleSheet item) => _sheets.IndexOf(item); + + public void Insert(Int32 index, ICssStyleSheet item) + { + Validate(item); + _sheets.Insert(index, item); + } + + public Boolean Remove(ICssStyleSheet item) => _sheets.Remove(item); + + public void RemoveAt(Int32 index) => _sheets.RemoveAt(index); + + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); + + public void Replace(IEnumerable sheets) + { + if (sheets is null) + { + throw new ArgumentNullException(nameof(sheets)); + } + + var replacement = sheets.ToList(); + + foreach (var sheet in replacement) + { + Validate(sheet); + } + + _sheets.Clear(); + _sheets.AddRange(replacement); + } + + private void Validate(ICssStyleSheet sheet) + { + if (sheet is not CssStyleSheet { IsConstructed: true } constructedSheet || + !ReferenceEquals(constructedSheet.OwnerDocument, GetOwnerDocument())) + { + throw new DomException("NotAllowedError"); + } + } + + private IDocument GetOwnerDocument() => _root is IDocument document + ? document + : _root is IShadowRoot shadowRoot + ? ShadowRootAdoptedStyleSheetExtensions.GetOwnerDocument(shadowRoot) + : throw new InvalidOperationException("The style root must be a document or shadow root."); + } +} diff --git a/src/AngleSharp.Css/Dom/CssHelpers.cs b/src/AngleSharp.Css/Dom/CssHelpers.cs index 927ca01b..ada96498 100644 --- a/src/AngleSharp.Css/Dom/CssHelpers.cs +++ b/src/AngleSharp.Css/Dom/CssHelpers.cs @@ -87,8 +87,9 @@ public static Boolean Supports(this IWindow window, String propertyName, String public static Boolean Supports(this IWindow window, String conditionText) { var context = window.Document?.Context; - var condition = ConditionParser.Parse(conditionText, context); - return condition.Check(null); + // a declaration without its parentheses is fine here (CSS Conditional Rules 3, 9.1) + var condition = String.IsNullOrWhiteSpace(conditionText) ? null : ConditionParser.Parse(conditionText, context) ?? ConditionParser.Parse($"({conditionText})", context); + return condition?.Check(null) ?? false; } } } diff --git a/src/AngleSharp.Css/Dom/CssStyleSheetExtensions.cs b/src/AngleSharp.Css/Dom/CssStyleSheetExtensions.cs new file mode 100644 index 00000000..dc384ec3 --- /dev/null +++ b/src/AngleSharp.Css/Dom/CssStyleSheetExtensions.cs @@ -0,0 +1,49 @@ +namespace AngleSharp.Dom +{ + using AngleSharp.Attributes; + using AngleSharp.Css.Dom; + using System; + using System.Threading.Tasks; + + /// + /// Adds constructed stylesheet operations to CSSStyleSheet without changing its interface. + /// + [DomExposed("CSSStyleSheet")] + public static class CssStyleSheetExtensions + { + /// + /// Replaces all rules in a constructed stylesheet. + /// + /// The stylesheet to update. + /// The stylesheet text to parse. + [DomName("replaceSync")] + public static void ReplaceSync(this ICssStyleSheet sheet, String text) + { + GetConstructedSheet(sheet).ReplaceSync(text); + } + + /// + /// Replaces all rules in a constructed stylesheet asynchronously. + /// + /// The stylesheet to update. + /// The stylesheet text to parse. + /// A task that resolves with the stylesheet. + [DomName("replace")] + public static Task Replace(this ICssStyleSheet sheet, String text) + { + return sheet is CssStyleSheet constructedSheet + ? constructedSheet.Replace(text) + : Task.FromException(new DomException("NotAllowedError")); + } + + private static CssStyleSheet GetConstructedSheet(ICssStyleSheet sheet) + { + if (sheet is CssStyleSheet constructedSheet && constructedSheet.IsConstructed) + { + return constructedSheet; + } + + throw new DomException("NotAllowedError"); + } + } +} diff --git a/src/AngleSharp.Css/Dom/ICssUsedValueProvider.cs b/src/AngleSharp.Css/Dom/ICssUsedValueProvider.cs new file mode 100644 index 00000000..ee0e4851 --- /dev/null +++ b/src/AngleSharp.Css/Dom/ICssUsedValueProvider.cs @@ -0,0 +1,44 @@ +#nullable enable +namespace AngleSharp.Css.Dom +{ + using AngleSharp.Dom; + using System; + + /// + /// Implemented by what lays out a document, as script expects some properties of a computed + /// style to be what was found by that (CSSOM 9), e.g. width in pixels instead of auto. + /// + public interface ICssUsedValueProvider + { + /// + /// Gets the used value of a property of an element. + /// + /// The element. + /// The name of the property, e.g. width. + /// The value, or null if the computed value is the right one. + String? GetUsedValue(IElement element, String propertyName); + } + + /// + /// Connects a browsing context with what lays out its documents, which comes into being + /// together with its first layout and hence is no service of the configuration. + /// + public static class CssUsedValueExtensions + { + private static readonly System.Runtime.CompilerServices.ConditionalWeakTable Providers = new System.Runtime.CompilerServices.ConditionalWeakTable(); + + /// + /// Sets what gives the used values of the documents of the context. + /// + /// The context. + /// The provider. + public static void SetUsedValueProvider(this IBrowsingContext context, ICssUsedValueProvider provider) + { + Providers.Remove(context); + Providers.Add(context, provider); + } + + internal static ICssUsedValueProvider? GetUsedValueProvider(this IBrowsingContext context) => + Providers.TryGetValue(context, out var provider) ? provider : null; + } +} diff --git a/src/AngleSharp.Css/Dom/Internal/ConditionFunctions/SelectorCondition.cs b/src/AngleSharp.Css/Dom/Internal/ConditionFunctions/SelectorCondition.cs new file mode 100644 index 00000000..7229f71f --- /dev/null +++ b/src/AngleSharp.Css/Dom/Internal/ConditionFunctions/SelectorCondition.cs @@ -0,0 +1,31 @@ +namespace AngleSharp.Css.Dom +{ + using AngleSharp.Css.Parser; + using System; + using System.IO; + + /// + /// The selector() function of a supports condition: true for a selector that is understood. + /// + sealed class SelectorCondition : IConditionFunction + { + private readonly IBrowsingContext _context; + private readonly String _selector; + + public SelectorCondition(IBrowsingContext context, String selector) + { + _context = context; + _selector = selector; + } + + public Boolean Check(IRenderDevice device) => + _context?.GetService()?.ParseSelector(_selector) != null; + + public void ToCss(TextWriter writer, IStyleFormatter formatter) + { + writer.Write("selector("); + writer.Write(_selector); + writer.Write(")"); + } + } +} diff --git a/src/AngleSharp.Css/Dom/Internal/CssStyleDeclaration.cs b/src/AngleSharp.Css/Dom/Internal/CssStyleDeclaration.cs index 49231163..0663fbcb 100644 --- a/src/AngleSharp.Css/Dom/Internal/CssStyleDeclaration.cs +++ b/src/AngleSharp.Css/Dom/Internal/CssStyleDeclaration.cs @@ -22,6 +22,8 @@ sealed class CssStyleDeclaration : ICssStyleDeclaration private List _declarations; private Dictionary _declarationIndex; private readonly IBrowsingContext _context; + private Boolean _reportsInitialValues; + private Func _usedValues; private ICssRule _parent; private Boolean _updating; @@ -68,6 +70,18 @@ public CssStyleDeclaration(ICssRule parent) _parent = parent; } + // shares the lists of the source until either of the two is modified + private CssStyleDeclaration(CssStyleDeclaration source) + { + _snapshot = source.GetSnapshot(); + _declarations = source._declarations; + _declarationIndex = source._declarationIndex; + _inherited = source._inherited; + _forced = source._forced; + _context = source._context; + RootFontSize = source.RootFontSize; + } + #endregion #region Index @@ -302,8 +316,65 @@ public String GetPropertyPriority(String propertyName) return CssKeywords.Important; } - public String GetPropertyValue(String propertyName) => - GetProperty(propertyName)?.Value ?? String.Empty; + public String GetPropertyValue(String propertyName) + { + var used = _usedValues?.Invoke(propertyName); + + if (used != null) + { + return used; + } + + var value = GetProperty(propertyName)?.Value; + + if (String.IsNullOrEmpty(value) && _reportsInitialValues) + { + return GetInitialValue(propertyName); + } + + return value ?? String.Empty; + } + + /// + /// Gets the copy script sees of a computed style, where nothing is left empty (CSSOM 9): + /// a script compares with the initial values, as with position !== 'static'. Layout on + /// the other hand has to know what was not declared at all. + /// + internal CssStyleDeclaration WithInitialValues(Func usedValues) => + new CssStyleDeclaration(this) { _reportsInitialValues = true, _usedValues = usedValues }; + + private String GetInitialValue(String propertyName) + { + var info = _context.GetDeclarationInfo(propertyName); + var initial = info?.InitialValue?.CssText; + + if (!String.IsNullOrEmpty(initial)) + { + return initial; + } + + // a shorthand tells it by its longhands, as with overflow + var longhands = info?.Longhands; + + if (longhands == null || longhands.Length == 0) + { + return String.Empty; + } + + var values = new System.Collections.Generic.List(); + + foreach (var longhand in longhands) + { + var value = GetPropertyValue(longhand); + + if (!values.Contains(value)) + { + values.Add(value); + } + } + + return String.Join(" ", values); + } public void SetPropertyValue(String propertyName, String propertyValue) => SetProperty(propertyName, propertyValue); @@ -486,6 +557,13 @@ internal IEnumerable GetLocalDeclarations() return local; } + /// + /// Creates a copy of the current declarations that later modifications of this + /// one do not change, e.g. for children inheriting from it later on. Nothing is + /// copied until either of the two is modified. + /// + internal CssStyleDeclaration Freeze() => new(this); + /// /// Same as UpdateDeclarations with the declarations of the parent, but without /// copying them: the inherited declarations are looked up in the parent instead, diff --git a/src/AngleSharp.Css/Dom/Internal/CssStyleSheet.cs b/src/AngleSharp.Css/Dom/Internal/CssStyleSheet.cs index 422949ff..63739d67 100644 --- a/src/AngleSharp.Css/Dom/Internal/CssStyleSheet.cs +++ b/src/AngleSharp.Css/Dom/Internal/CssStyleSheet.cs @@ -1,6 +1,7 @@ #nullable disable namespace AngleSharp.Css.Dom { + using AngleSharp.Attributes; using AngleSharp.Css.Parser; using AngleSharp.Dom; using AngleSharp.Io; @@ -8,18 +9,22 @@ namespace AngleSharp.Css.Dom using System; using System.IO; using System.Linq; + using System.Threading.Tasks; /// /// Represents a CSS Stylesheet. /// - sealed class CssStyleSheet : ICssStyleSheet + [DomName("CSSStyleSheet")] + public sealed class CssStyleSheet : ICssStyleSheet { #region Fields private readonly IBrowsingContext _context; - private readonly TextSource _source; + private TextSource _source; private readonly MediaList _media; private readonly CssRuleList _rules; + private readonly IDocument _ownerDocument; + private readonly Url _baseUrl; private ICssStyleSheet _parent; private ICssRule _owner; private IElement _element; @@ -36,34 +41,101 @@ internal CssStyleSheet(IBrowsingContext context, TextSource source) _rules = new CssRuleList(); } + /// + /// Creates a constructed stylesheet for the current window. + /// + /// The window that creates the stylesheet. + /// The base URL for relative URLs in the stylesheet. + /// The media queries for the stylesheet. + /// Whether the stylesheet is disabled. + [DomConstructor] + [DomInitDict(offset: 1, optional: true)] + public CssStyleSheet(IWindow window, String baseURL = null, String media = null, Boolean disabled = false) + : this(window.Document.Context, new TextSource(String.Empty), true, window.Document, ResolveBaseUrl(window.Document, baseURL)) + { + IsDisabled = disabled; + + if (!String.IsNullOrEmpty(media)) + { + _media.SetMediaText(media, throwOnError: true); + } + } + + internal CssStyleSheet(IBrowsingContext context, TextSource source, Boolean isConstructed, IDocument ownerDocument, Url baseUrl) + : this(context, source) + { + IsConstructed = isConstructed; + _ownerDocument = ownerDocument; + _baseUrl = baseUrl; + } + #endregion #region Properties + /// + /// Gets the MIME type of the stylesheet. + /// public String Type => MimeTypeNames.Css; + /// + /// Gets the title of the stylesheet, if it has an owner node. + /// public String Title => OwnerNode?.GetAttribute(AttributeNames.Title); + /// + /// Gets the media queries associated with the stylesheet. + /// public IMediaList Media => _media; + /// + /// Gets the rules in the stylesheet. + /// public ICssRuleList Rules => _rules; + /// + /// Gets the browsing context associated with the stylesheet. + /// public IBrowsingContext Context => _context; + /// + /// Gets the source that was used to parse the stylesheet. + /// public TextSource Source => _source; + /// + /// Gets or sets whether the stylesheet is disabled. + /// public Boolean IsDisabled { get; set; } + internal Boolean IsConstructed { get; } + + internal IDocument OwnerDocument => _ownerDocument; + + internal Url BaseUrl => _baseUrl; + + /// + /// Gets the element that owns the stylesheet, if any. + /// public IElement OwnerNode => _element; + /// + /// Gets the parent stylesheet, if any. + /// public ICssStyleSheet Parent => _parent; + /// + /// Gets the rule that imports the stylesheet, if any. + /// public ICssRule OwnerRule => _owner; + /// + /// Gets or sets the URL of the stylesheet. + /// public String Href { get; @@ -74,23 +146,32 @@ public String Href #region Methods + /// + /// Writes the stylesheet using the specified formatter. + /// + /// The destination writer. + /// The formatter to use. public void ToCss(TextWriter writer, IStyleFormatter formatter) { writer.Write(formatter.Sheet(_rules.GetFormattables())); } - public void Add(ICssRule rule) + internal void Add(ICssRule rule) { _rules.Add(rule); rule.SetOwner(this); } - public void Remove(ICssRule rule) + internal void Remove(ICssRule rule) { _rules.Remove(rule); rule.SetOwner(null); } + /// + /// Removes a rule at the specified index. + /// + /// The index of the rule to remove. public void RemoveAt(Int32 index) { if (index >= 0 && index < _rules.Length) @@ -100,15 +181,31 @@ public void RemoveAt(Int32 index) } } + /// + /// Inserts a rule at the specified index. + /// + /// The text of the rule to insert. + /// The index at which to insert the rule. + /// The index at which the rule was inserted. public Int32 Insert(String ruleText, Int32 index) { var parser = _context.GetService(); var rule = parser.ParseRule(this, ruleText); + + if (IsConstructed && rule is ICssImportRule) + { + throw new DomException("SyntaxError"); + } + _rules.Insert(index, rule); rule.SetOwner(this); return index; } + /// + /// Sets the importing rule that owns the stylesheet. + /// + /// The owner rule. public void SetOwner(ICssRule rule) { _owner = rule; @@ -116,6 +213,10 @@ public void SetOwner(ICssRule rule) _element = _parent?.OwnerNode; } + /// + /// Sets the parent stylesheet. + /// + /// The parent stylesheet. public void SetParent(ICssStyleSheet parent) { _owner = null; @@ -123,6 +224,10 @@ public void SetParent(ICssStyleSheet parent) _element = parent?.OwnerNode; } + /// + /// Sets the owner element of the stylesheet. + /// + /// The owner element. public void SetOwner(IElement element) { _owner = null; @@ -130,6 +235,11 @@ public void SetOwner(IElement element) _element = element; } + /// + /// Finds a namespace URI by its prefix. + /// + /// The prefix to find. + /// The namespace URI, if found. public String LocateNamespace(String prefix) { if (!IsDisabled) @@ -146,6 +256,63 @@ public String LocateNamespace(String prefix) return null; } + internal void ReplaceSync(String text) + { + if (!IsConstructed) + { + throw new DomException("NotAllowedError"); + } + + var parser = _context.GetService() as CssParser ?? + throw new InvalidOperationException("The browsing context does not provide a CSS parser."); + var source = new TextSource(text ?? String.Empty); + var parsed = new CssStyleSheet(_context, source, true, _ownerDocument, _baseUrl); + parser.ParseStylesheet(source, parsed); + ReplaceRulesFrom(parsed); + } + + internal Task Replace(String text) + { + if (!IsConstructed) + { + return Task.FromException(new DomException("NotAllowedError")); + } + + ReplaceSync(text); + return Task.FromResult(this); + } + + private void ReplaceRulesFrom(CssStyleSheet parsed) + { + foreach (var oldRule in _rules.GetFormattables().OfType()) + { + oldRule.SetOwner(null); + } + + _rules.Clear(); + _source = parsed.Source; + + foreach (var rule in parsed._rules.GetFormattables().OfType()) + { + if (rule is not ICssImportRule) + { + Add(rule); + } + } + } + + private static Url ResolveBaseUrl(IDocument document, String baseURL) + { + if (String.IsNullOrEmpty(baseURL)) + { + return document.BaseUrl; + } + + return document.BaseUrl is Url documentBase + ? new Url(documentBase, baseURL) + : new Url(baseURL); + } + #endregion } } diff --git a/src/AngleSharp.Css/Dom/Internal/PopoverOpenPseudoClassSelector.cs b/src/AngleSharp.Css/Dom/Internal/PopoverOpenPseudoClassSelector.cs new file mode 100644 index 00000000..d790889e --- /dev/null +++ b/src/AngleSharp.Css/Dom/Internal/PopoverOpenPseudoClassSelector.cs @@ -0,0 +1,22 @@ +#nullable enable +namespace AngleSharp.Css.Dom +{ + using AngleSharp.Dom; + using AngleSharp.Html.Dom; + using System; + + /// + /// Matches the `:popover-open` pseudo-class (HTML, "The popover attribute"), i.e., an element + /// whose popover is currently being shown. + /// + sealed class PopoverOpenPseudoClassSelector : ISelector + { + public Priority Specificity => Priority.OneClass; + + public String Text => PseudoClassNames.Separator + CssPseudoClassSelectorFactory.PopoverOpen; + + public void Accept(ISelectorVisitor visitor) => visitor.PseudoClass(CssPseudoClassSelectorFactory.PopoverOpen); + + public Boolean Match(IElement element, IElement? scope) => element is IHtmlElement html && html.IsPopoverOpen(); + } +} diff --git a/src/AngleSharp.Css/Dom/Internal/PresentationalHints.cs b/src/AngleSharp.Css/Dom/Internal/PresentationalHints.cs index d6607579..4412a468 100644 --- a/src/AngleSharp.Css/Dom/Internal/PresentationalHints.cs +++ b/src/AngleSharp.Css/Dom/Internal/PresentationalHints.cs @@ -1,6 +1,7 @@ namespace AngleSharp.Css.Dom { using AngleSharp.Dom; + using AngleSharp.Html.Construction; using AngleSharp.Html.Dom; using AngleSharp.Text; using System; @@ -14,6 +15,15 @@ namespace AngleSharp.Css.Dom /// static class PresentationalHints { + /// + /// Gets whether the document is in quirks mode, i.e. its compatMode is "BackCompat". + /// The mode is read directly: AngleSharp gets the compatMode string through reflection + /// on every read, which costs more than the rest of an element's cascade. + /// + public static Boolean IsQuirksMode(IDocument? document) => document is IConstructableDocument constructable + ? constructable.QuirksMode == QuirksMode.On + : document?.CompatMode == "BackCompat"; + /// /// Gets the declarations the attributes of the element map to, if any. /// @@ -26,7 +36,7 @@ static class PresentationalHints var hints = new StringBuilder(); - if (element.Owner?.CompatMode == "BackCompat") + if (IsQuirksMode(element.Owner)) { AddQuirks(hints, element); } diff --git a/src/AngleSharp.Css/Dom/Internal/StyleRuleIndex.cs b/src/AngleSharp.Css/Dom/Internal/StyleRuleIndex.cs index 6e860eb6..6134008e 100644 --- a/src/AngleSharp.Css/Dom/Internal/StyleRuleIndex.cs +++ b/src/AngleSharp.Css/Dom/Internal/StyleRuleIndex.cs @@ -22,6 +22,9 @@ sealed class StyleRuleIndex // the rules targeting pseudo-elements, again grouped by the element they belong to private readonly KeyedRules _pseudoKeys = new(); private readonly List _pseudo = new(); + // the rules targeting pseudo-elements that may declare their content + private readonly KeyedRules _contentKeys = new(); + private Int32 _contentCount; #endregion @@ -56,6 +59,21 @@ public Candidates GetCandidates(IElement element) return Collect(element, _keys); } + /// + /// Checks if a rule that may match the given pseudo-element declares its + /// content. Without content a ::before or ::after has no box, and rules + /// such as *::before only setting other properties do not change that. + /// + public Boolean MayDeclareContent(IElement pseudoElement) + { + if (_contentCount == 0) + { + return false; + } + + return pseudoElement is not PseudoElement { Host: { } host } || Collect(host, _contentKeys).Count > 0; + } + #endregion #region Helpers @@ -78,11 +96,22 @@ private void Add(ICssStyleRule rule, Int32 index) { _pseudo.Add(index); _pseudoKeys.Add(keys, index); + + // a nested rule is matched on its own, so it may declare the content + if (hasNested || DeclaresContent(rule.Style)) + { + _contentKeys.Add(keys, index); + _contentCount++; + } } _keys.Add(keys, index); } + private static Boolean DeclaresContent(ICssStyleDeclaration style) => style is CssStyleDeclaration declaration ? + declaration.GetDeclaration(PropertyNames.Content) is not null : + style.Any(m => PropertyNames.Content.Equals(m.Name, StringComparison.OrdinalIgnoreCase)); + private static Candidates Collect(IElement element, KeyedRules keyed) { // The ungrouped rules (e.g., [data-theme] or :root) are candidates for every diff --git a/src/AngleSharp.Css/Dom/StyleDeclarationExtensions.cs b/src/AngleSharp.Css/Dom/StyleDeclarationExtensions.cs index c058d7ba..e4755558 100644 --- a/src/AngleSharp.Css/Dom/StyleDeclarationExtensions.cs +++ b/src/AngleSharp.Css/Dom/StyleDeclarationExtensions.cs @@ -15,6 +15,7 @@ public static class StyleDeclarationExtensions /// perpendicular to the axis defined by the flex-direction property. /// [DomName("alignContent")] + [DomName("align-content")] [DomAccessor(Accessors.Getter)] public static String GetAlignContent(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.AlignContent); @@ -25,6 +26,7 @@ public static String GetAlignContent(this ICssStyleDeclaration style) => /// perpendicular to the axis defined by the flex-direction property. /// [DomName("alignContent")] + [DomName("align-content")] [DomAccessor(Accessors.Setter)] public static void SetAlignContent(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.AlignContent, value); @@ -35,6 +37,7 @@ public static void SetAlignContent(this ICssStyleDeclaration style, String value /// container. /// [DomName("alignItems")] + [DomName("align-items")] [DomAccessor(Accessors.Getter)] public static String GetAlignItems(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.AlignItems); @@ -45,6 +48,7 @@ public static String GetAlignItems(this ICssStyleDeclaration style) => /// container. /// [DomName("alignItems")] + [DomName("align-items")] [DomAccessor(Accessors.Setter)] public static void SetAlignItems(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.AlignItems, value); @@ -55,6 +59,7 @@ public static void SetAlignItems(this ICssStyleDeclaration style, String value) /// container. /// [DomName("alignSelf")] + [DomName("align-self")] [DomAccessor(Accessors.Getter)] public static String GetAlignSelf(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.AlignSelf); @@ -65,6 +70,7 @@ public static String GetAlignSelf(this ICssStyleDeclaration style) => /// container. /// [DomName("alignSelf")] + [DomName("align-self")] [DomAccessor(Accessors.Setter)] public static void SetAlignSelf(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.AlignSelf, value); @@ -92,6 +98,7 @@ public static void SetAccelerator(this ICssStyleDeclaration style, String value) /// the corresponding baseline of the parent. /// [DomName("alignmentBaseline")] + [DomName("alignment-baseline")] [DomAccessor(Accessors.Getter)] public static String GetAlignmentBaseline(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.AlignBaseline); @@ -101,6 +108,7 @@ public static String GetAlignmentBaseline(this ICssStyleDeclaration style) => /// the corresponding baseline of the parent. /// [DomName("alignmentBaseline")] + [DomName("alignment-baseline")] [DomAccessor(Accessors.Setter)] public static void SetAlignmentBaseline(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.AlignBaseline, value); @@ -134,6 +142,7 @@ public static void SetAnimation(this ICssStyleDeclaration style, String value) = /// @keyframes at-rule specified by the animation-name property. /// [DomName("animationDelay")] + [DomName("animation-delay")] [DomAccessor(Accessors.Getter)] public static String GetAnimationDelay(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.AnimationDelay); @@ -145,6 +154,7 @@ public static String GetAnimationDelay(this ICssStyleDeclaration style) => /// @keyframes at-rule specified by the animation-name property. /// [DomName("animationDelay")] + [DomName("animation-delay")] [DomAccessor(Accessors.Setter)] public static void SetAnimationDelay(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.AnimationDelay, value); @@ -153,6 +163,7 @@ public static void SetAnimationDelay(this ICssStyleDeclaration style, String val /// Gets the direction of play for an animation cycle. /// [DomName("animationDirection")] + [DomName("animation-direction")] [DomAccessor(Accessors.Getter)] public static String GetAnimationDirection(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.AnimationDirection); @@ -161,6 +172,7 @@ public static String GetAnimationDirection(this ICssStyleDeclaration style) => /// Sets the direction of play for an animation cycle. /// [DomName("animationDirection")] + [DomName("animation-direction")] [DomAccessor(Accessors.Setter)] public static void SetAnimationDirection(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.AnimationDirection, value); @@ -170,6 +182,7 @@ public static void SetAnimationDirection(this ICssStyleDeclaration style, String /// animation. /// [DomName("animationDuration")] + [DomName("animation-duration")] [DomAccessor(Accessors.Getter)] public static String GetAnimationDuration(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.AnimationDuration); @@ -179,6 +192,7 @@ public static String GetAnimationDuration(this ICssStyleDeclaration style) => /// animation. /// [DomName("animationDuration")] + [DomName("animation-duration")] [DomAccessor(Accessors.Setter)] public static void SetAnimationDuration(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.AnimationDuration, value); @@ -188,6 +202,7 @@ public static void SetAnimationDuration(this ICssStyleDeclaration style, String /// or after it plays. /// [DomName("animationFillMode")] + [DomName("animation-fill-mode")] [DomAccessor(Accessors.Getter)] public static String GetAnimationFillMode(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.AnimationFillMode); @@ -197,6 +212,7 @@ public static String GetAnimationFillMode(this ICssStyleDeclaration style) => /// or after it plays. /// [DomName("animationFillMode")] + [DomName("animation-fill-mode")] [DomAccessor(Accessors.Setter)] public static void SetAnimationFillMode(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.AnimationFillMode, value); @@ -205,6 +221,7 @@ public static void SetAnimationFillMode(this ICssStyleDeclaration style, String /// Gets the number of times an animation cycle is played. /// [DomName("animationIterationCount")] + [DomName("animation-iteration-count")] [DomAccessor(Accessors.Getter)] public static String GetAnimationIterationCount(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.AnimationIterationCount); @@ -213,6 +230,7 @@ public static String GetAnimationIterationCount(this ICssStyleDeclaration style) /// Sets the number of times an animation cycle is played. /// [DomName("animationIterationCount")] + [DomName("animation-iteration-count")] [DomAccessor(Accessors.Setter)] public static void SetAnimationIterationCount(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.AnimationIterationCount, value); @@ -222,6 +240,7 @@ public static void SetAnimationIterationCount(this ICssStyleDeclaration style, S /// a CSS @keyframes at-rule. /// [DomName("animationName")] + [DomName("animation-name")] [DomAccessor(Accessors.Getter)] public static String GetAnimationName(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.AnimationName); @@ -231,6 +250,7 @@ public static String GetAnimationName(this ICssStyleDeclaration style) => /// a CSS @keyframes at-rule. /// [DomName("animationName")] + [DomName("animation-name")] [DomAccessor(Accessors.Setter)] public static void SetAnimationName(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.AnimationName, value); @@ -239,6 +259,7 @@ public static void SetAnimationName(this ICssStyleDeclaration style, String valu /// Gets whether an animation is playing or paused. /// [DomName("animationPlayState")] + [DomName("animation-play-state")] [DomAccessor(Accessors.Getter)] public static String GetAnimationPlayState(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.AnimationPlayState); @@ -247,6 +268,7 @@ public static String GetAnimationPlayState(this ICssStyleDeclaration style) => /// Sets whether an animation is playing or paused. /// [DomName("animationPlayState")] + [DomName("animation-play-state")] [DomAccessor(Accessors.Setter)] public static void SetAnimationPlayState(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.AnimationPlayState, value); @@ -258,6 +280,7 @@ public static void SetAnimationPlayState(this ICssStyleDeclaration style, String /// the animation-name property. /// [DomName("animationTimingFunction")] + [DomName("animation-timing-function")] [DomAccessor(Accessors.Getter)] public static String GetAnimationTimingFunction(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.AnimationTimingFunction); @@ -269,6 +292,7 @@ public static String GetAnimationTimingFunction(this ICssStyleDeclaration style) /// the animation-name property. /// [DomName("animationTimingFunction")] + [DomName("animation-timing-function")] [DomAccessor(Accessors.Setter)] public static void SetAnimationTimingFunction(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.AnimationTimingFunction, value); @@ -278,6 +302,7 @@ public static void SetAnimationTimingFunction(this ICssStyleDeclaration style, S /// side) of an object is visible. /// [DomName("backfaceVisibility")] + [DomName("backface-visibility")] [DomAccessor(Accessors.Getter)] public static String GetBackfaceVisibility(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BackfaceVisibility); @@ -287,6 +312,7 @@ public static String GetBackfaceVisibility(this ICssStyleDeclaration style) => /// side) of an object is visible. /// [DomName("backfaceVisibility")] + [DomName("backface-visibility")] [DomAccessor(Accessors.Setter)] public static void SetBackfaceVisibility(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BackfaceVisibility, value); @@ -312,6 +338,7 @@ public static void SetBackground(this ICssStyleDeclaration style, String value) /// the object within the document. /// [DomName("backgroundAttachment")] + [DomName("background-attachment")] [DomAccessor(Accessors.Getter)] public static String GetBackgroundAttachment(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BackgroundAttachment); @@ -321,6 +348,7 @@ public static String GetBackgroundAttachment(this ICssStyleDeclaration style) => /// the object within the document. /// [DomName("backgroundAttachment")] + [DomName("background-attachment")] [DomAccessor(Accessors.Setter)] public static void SetBackgroundAttachment(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BackgroundAttachment, value); @@ -330,6 +358,7 @@ public static void SetBackgroundAttachment(this ICssStyleDeclaration style, Stri /// element's bounding boxes. /// [DomName("backgroundClip")] + [DomName("background-clip")] [DomAccessor(Accessors.Getter)] public static String GetBackgroundClip(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BackgroundClip); @@ -339,6 +368,7 @@ public static String GetBackgroundClip(this ICssStyleDeclaration style) => /// element's bounding boxes. /// [DomName("backgroundClip")] + [DomName("background-clip")] [DomAccessor(Accessors.Setter)] public static void SetBackgroundClip(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BackgroundClip, value); @@ -347,6 +377,7 @@ public static void SetBackgroundClip(this ICssStyleDeclaration style, String val /// Gets the color behind the content of the object. /// [DomName("backgroundColor")] + [DomName("background-color")] [DomAccessor(Accessors.Getter)] public static String GetBackgroundColor(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BackgroundColor); @@ -355,6 +386,7 @@ public static String GetBackgroundColor(this ICssStyleDeclaration style) => /// Sets the color behind the content of the object. /// [DomName("backgroundColor")] + [DomName("background-color")] [DomAccessor(Accessors.Setter)] public static void SetBackgroundColor(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BackgroundColor, value); @@ -363,6 +395,7 @@ public static void SetBackgroundColor(this ICssStyleDeclaration style, String va /// Gets the background image or images of the object. /// [DomName("backgroundImage")] + [DomName("background-image")] [DomAccessor(Accessors.Getter)] public static String GetBackgroundImage(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BackgroundImage); @@ -371,6 +404,7 @@ public static String GetBackgroundImage(this ICssStyleDeclaration style) => /// Sets the background image or images of the object. /// [DomName("backgroundImage")] + [DomName("background-image")] [DomAccessor(Accessors.Setter)] public static void SetBackgroundImage(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BackgroundImage, value); @@ -380,6 +414,7 @@ public static void SetBackgroundImage(this ICssStyleDeclaration style, String va /// elements. /// [DomName("backgroundOrigin")] + [DomName("background-origin")] [DomAccessor(Accessors.Getter)] public static String GetBackgroundOrigin(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BackgroundOrigin); @@ -389,6 +424,7 @@ public static String GetBackgroundOrigin(this ICssStyleDeclaration style) => /// elements. /// [DomName("backgroundOrigin")] + [DomName("background-origin")] [DomAccessor(Accessors.Setter)] public static void SetBackgroundOrigin(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BackgroundOrigin, value); @@ -397,6 +433,7 @@ public static void SetBackgroundOrigin(this ICssStyleDeclaration style, String v /// Gets the position of the background of the object. /// [DomName("backgroundPosition")] + [DomName("background-position")] [DomAccessor(Accessors.Getter)] public static String GetBackgroundPosition(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BackgroundPosition); @@ -405,6 +442,7 @@ public static String GetBackgroundPosition(this ICssStyleDeclaration style) => /// Sets the position of the background of the object. /// [DomName("backgroundPosition")] + [DomName("background-position")] [DomAccessor(Accessors.Setter)] public static void SetBackgroundPosition(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BackgroundPosition, value); @@ -413,6 +451,7 @@ public static void SetBackgroundPosition(this ICssStyleDeclaration style, String /// Gets the x-coordinate of the background-position property. /// [DomName("backgroundPositionX")] + [DomName("background-position-x")] [DomAccessor(Accessors.Getter)] public static String GetBackgroundPositionX(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BackgroundPositionX); @@ -421,6 +460,7 @@ public static String GetBackgroundPositionX(this ICssStyleDeclaration style) => /// Sets the x-coordinate of the background-position property. /// [DomName("backgroundPositionX")] + [DomName("background-position-x")] [DomAccessor(Accessors.Setter)] public static void SetBackgroundPositionX(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BackgroundPositionX, value); @@ -429,6 +469,7 @@ public static void SetBackgroundPositionX(this ICssStyleDeclaration style, Strin /// Gets the y-coordinate of the background-position property. /// [DomName("backgroundPositionY")] + [DomName("background-position-y")] [DomAccessor(Accessors.Getter)] public static String GetBackgroundPositionY(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BackgroundPositionY); @@ -437,6 +478,7 @@ public static String GetBackgroundPositionY(this ICssStyleDeclaration style) => /// Sets the y-coordinate of the background-position property. /// [DomName("backgroundPositionY")] + [DomName("background-position-y")] [DomAccessor(Accessors.Setter)] public static void SetBackgroundPositionY(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BackgroundPositionY, value); @@ -446,6 +488,7 @@ public static void SetBackgroundPositionY(this ICssStyleDeclaration style, Strin /// tiled. /// [DomName("backgroundRepeat")] + [DomName("background-repeat")] [DomAccessor(Accessors.Getter)] public static String GetBackgroundRepeat(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BackgroundRepeat); @@ -455,6 +498,7 @@ public static String GetBackgroundRepeat(this ICssStyleDeclaration style) => /// tiled. /// [DomName("backgroundRepeat")] + [DomName("background-repeat")] [DomAccessor(Accessors.Setter)] public static void SetBackgroundRepeat(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BackgroundRepeat, value); @@ -463,6 +507,7 @@ public static void SetBackgroundRepeat(this ICssStyleDeclaration style, String v /// Gets the size of the background images. /// [DomName("backgroundSize")] + [DomName("background-size")] [DomAccessor(Accessors.Getter)] public static String GetBackgroundSize(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BackgroundSize); @@ -471,6 +516,7 @@ public static String GetBackgroundSize(this ICssStyleDeclaration style) => /// Sets the size of the background images. /// [DomName("backgroundSize")] + [DomName("background-size")] [DomAccessor(Accessors.Setter)] public static void SetBackgroundSize(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BackgroundSize, value); @@ -481,6 +527,7 @@ public static void SetBackgroundSize(this ICssStyleDeclaration style, String val /// parent text content element. /// [DomName("baselineShift")] + [DomName("baseline-shift")] [DomAccessor(Accessors.Getter)] public static String GetBaselineShift(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BaselineShift); @@ -491,6 +538,7 @@ public static String GetBaselineShift(this ICssStyleDeclaration style) => /// parent text content element. /// [DomName("baselineShift")] + [DomName("baseline-shift")] [DomAccessor(Accessors.Setter)] public static void SetBaselineShift(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BaselineShift, value); @@ -551,6 +599,7 @@ public static void SetBorder(this ICssStyleDeclaration style, String value) => /// Gets the properties of the bottom border of the object. /// [DomName("borderBottom")] + [DomName("border-bottom")] [DomAccessor(Accessors.Getter)] public static String GetBorderBottom(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderBottom); @@ -559,6 +608,7 @@ public static String GetBorderBottom(this ICssStyleDeclaration style) => /// Sets the properties of the bottom border of the object. /// [DomName("borderBottom")] + [DomName("border-bottom")] [DomAccessor(Accessors.Setter)] public static void SetBorderBottom(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderBottom, value); @@ -568,6 +618,7 @@ public static void SetBorderBottom(this ICssStyleDeclaration style, String value /// object. /// [DomName("borderBottomColor")] + [DomName("border-bottom-color")] [DomAccessor(Accessors.Getter)] public static String GetBorderBottomColor(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderBottomColor); @@ -577,6 +628,7 @@ public static String GetBorderBottomColor(this ICssStyleDeclaration style) => /// object. /// [DomName("borderBottomColor")] + [DomName("border-bottom-color")] [DomAccessor(Accessors.Setter)] public static void SetBorderBottomColor(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderBottomColor, value); @@ -587,6 +639,7 @@ public static void SetBorderBottomColor(this ICssStyleDeclaration style, String /// current box. /// [DomName("borderBottomLeftRadius")] + [DomName("border-bottom-left-radius")] [DomAccessor(Accessors.Getter)] public static String GetBorderBottomLeftRadius(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderBottomLeftRadius); @@ -597,6 +650,7 @@ public static String GetBorderBottomLeftRadius(this ICssStyleDeclaration style) /// current box. /// [DomName("borderBottomLeftRadius")] + [DomName("border-bottom-left-radius")] [DomAccessor(Accessors.Setter)] public static void SetBorderBottomLeftRadius(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderBottomLeftRadius, value); @@ -607,6 +661,7 @@ public static void SetBorderBottomLeftRadius(this ICssStyleDeclaration style, St /// outer border edge of the current box. /// [DomName("borderBottomRightRadius")] + [DomName("border-bottom-right-radius")] [DomAccessor(Accessors.Getter)] public static String GetBorderBottomRightRadius(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderBottomRightRadius); @@ -617,6 +672,7 @@ public static String GetBorderBottomRightRadius(this ICssStyleDeclaration style) /// outer border edge of the current box. /// [DomName("borderBottomRightRadius")] + [DomName("border-bottom-right-radius")] [DomAccessor(Accessors.Setter)] public static void SetBorderBottomRightRadius(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderBottomRightRadius, value); @@ -625,6 +681,7 @@ public static void SetBorderBottomRightRadius(this ICssStyleDeclaration style, S /// Gets the style of the bottom border of the object. /// [DomName("borderBottomStyle")] + [DomName("border-bottom-style")] [DomAccessor(Accessors.Getter)] public static String GetBorderBottomStyle(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderBottomStyle); @@ -633,6 +690,7 @@ public static String GetBorderBottomStyle(this ICssStyleDeclaration style) => /// Sets the style of the bottom border of the object. /// [DomName("borderBottomStyle")] + [DomName("border-bottom-style")] [DomAccessor(Accessors.Setter)] public static void SetBorderBottomStyle(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderBottomStyle, value); @@ -641,6 +699,7 @@ public static void SetBorderBottomStyle(this ICssStyleDeclaration style, String /// Gets the thickness of the bottom border of the object. /// [DomName("borderBottomWidth")] + [DomName("border-bottom-width")] [DomAccessor(Accessors.Getter)] public static String GetBorderBottomWidth(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderBottomWidth); @@ -649,6 +708,7 @@ public static String GetBorderBottomWidth(this ICssStyleDeclaration style) => /// Sets the thickness of the bottom border of the object. /// [DomName("borderBottomWidth")] + [DomName("border-bottom-width")] [DomAccessor(Accessors.Setter)] public static void SetBorderBottomWidth(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderBottomWidth, value); @@ -658,6 +718,7 @@ public static void SetBorderBottomWidth(this ICssStyleDeclaration style, String /// in a single border or detached as in standard HTML. /// [DomName("borderCollapse")] + [DomName("border-collapse")] [DomAccessor(Accessors.Getter)] public static String GetBorderCollapse(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderCollapse); @@ -667,6 +728,7 @@ public static String GetBorderCollapse(this ICssStyleDeclaration style) => /// in a single border or detached as in standard HTML. /// [DomName("borderCollapse")] + [DomName("border-collapse")] [DomAccessor(Accessors.Setter)] public static void SetBorderCollapse(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderCollapse, value); @@ -675,6 +737,7 @@ public static void SetBorderCollapse(this ICssStyleDeclaration style, String val /// Gets the border color of the object. /// [DomName("borderColor")] + [DomName("border-color")] [DomAccessor(Accessors.Getter)] public static String GetBorderColor(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderColor); @@ -683,6 +746,7 @@ public static String GetBorderColor(this ICssStyleDeclaration style) => /// Sets the border color of the object. /// [DomName("borderColor")] + [DomName("border-color")] [DomAccessor(Accessors.Setter)] public static void SetBorderColor(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderColor, value); @@ -691,6 +755,7 @@ public static void SetBorderColor(this ICssStyleDeclaration style, String value) /// Gets an image to be used in place of the border styles. /// [DomName("borderImage")] + [DomName("border-image")] [DomAccessor(Accessors.Getter)] public static String GetBorderImage(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderImage); @@ -699,6 +764,7 @@ public static String GetBorderImage(this ICssStyleDeclaration style) => /// Sets an image to be used in place of the border styles. /// [DomName("borderImage")] + [DomName("border-image")] [DomAccessor(Accessors.Setter)] public static void SetBorderImage(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderImage, value); @@ -708,6 +774,7 @@ public static void SetBorderImage(this ICssStyleDeclaration style, String value) /// beyond the border box. /// [DomName("borderImageOutset")] + [DomName("border-image-outset")] [DomAccessor(Accessors.Getter)] public static String GetBorderImageOutset(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderImageOutset); @@ -717,6 +784,7 @@ public static String GetBorderImageOutset(this ICssStyleDeclaration style) => /// beyond the border box. /// [DomName("borderImageOutset")] + [DomName("border-image-outset")] [DomAccessor(Accessors.Setter)] public static void SetBorderImageOutset(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderImageOutset, value); @@ -725,6 +793,7 @@ public static void SetBorderImageOutset(this ICssStyleDeclaration style, String /// Gets how the image is scaled and tiled. /// [DomName("borderImageRepeat")] + [DomName("border-image-repeat")] [DomAccessor(Accessors.Getter)] public static String GetBorderImageRepeat(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderImageRepeat); @@ -733,6 +802,7 @@ public static String GetBorderImageRepeat(this ICssStyleDeclaration style) => /// Sets how the image is scaled and tiled. /// [DomName("borderImageRepeat")] + [DomName("border-image-repeat")] [DomAccessor(Accessors.Setter)] public static void SetBorderImageRepeat(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderImageRepeat, value); @@ -743,6 +813,7 @@ public static void SetBorderImageRepeat(this ICssStyleDeclaration style, String /// four edges, and a central region. /// [DomName("borderImageSlice")] + [DomName("border-image-slice")] [DomAccessor(Accessors.Getter)] public static String GetBorderImageSlice(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderImageSlice); @@ -753,6 +824,7 @@ public static String GetBorderImageSlice(this ICssStyleDeclaration style) => /// four edges, and a central region. /// [DomName("borderImageSlice")] + [DomName("border-image-slice")] [DomAccessor(Accessors.Setter)] public static void SetBorderImageSlice(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderImageSlice, value); @@ -761,6 +833,7 @@ public static void SetBorderImageSlice(this ICssStyleDeclaration style, String v /// Gets the path of the image to be used for the border. /// [DomName("borderImageSource")] + [DomName("border-image-source")] [DomAccessor(Accessors.Getter)] public static String GetBorderImageSource(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderImageSource); @@ -769,6 +842,7 @@ public static String GetBorderImageSource(this ICssStyleDeclaration style) => /// Sets the path of the image to be used for the border. /// [DomName("borderImageSource")] + [DomName("border-image-source")] [DomAccessor(Accessors.Setter)] public static void SetBorderImageSource(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderImageSource, value); @@ -777,6 +851,7 @@ public static void SetBorderImageSource(this ICssStyleDeclaration style, String /// Gets the inward offsets from the outer border edge. /// [DomName("borderImageWidth")] + [DomName("border-image-width")] [DomAccessor(Accessors.Getter)] public static String GetBorderImageWidth(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderImageWidth); @@ -785,6 +860,7 @@ public static String GetBorderImageWidth(this ICssStyleDeclaration style) => /// Sets the inward offsets from the outer border edge. /// [DomName("borderImageWidth")] + [DomName("border-image-width")] [DomAccessor(Accessors.Setter)] public static void SetBorderImageWidth(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderImageWidth, value); @@ -793,6 +869,7 @@ public static void SetBorderImageWidth(this ICssStyleDeclaration style, String v /// Gets the properties of the left border of the object. /// [DomName("borderLeft")] + [DomName("border-left")] [DomAccessor(Accessors.Getter)] public static String GetBorderLeft(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderLeft); @@ -801,6 +878,7 @@ public static String GetBorderLeft(this ICssStyleDeclaration style) => /// Sets the properties of the left border of the object. /// [DomName("borderLeft")] + [DomName("border-left")] [DomAccessor(Accessors.Setter)] public static void SetBorderLeft(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderLeft, value); @@ -809,6 +887,7 @@ public static void SetBorderLeft(this ICssStyleDeclaration style, String value) /// Gets the foreground color of the left border of an object. /// [DomName("borderLeftColor")] + [DomName("border-left-color")] [DomAccessor(Accessors.Getter)] public static String GetBorderLeftColor(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderLeftColor); @@ -817,6 +896,7 @@ public static String GetBorderLeftColor(this ICssStyleDeclaration style) => /// Sets the foreground color of the left border of an object. /// [DomName("borderLeftColor")] + [DomName("border-left-color")] [DomAccessor(Accessors.Setter)] public static void SetBorderLeftColor(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderLeftColor, value); @@ -825,6 +905,7 @@ public static void SetBorderLeftColor(this ICssStyleDeclaration style, String va /// Gets the style of the left border of the object. /// [DomName("borderLeftStyle")] + [DomName("border-left-style")] [DomAccessor(Accessors.Getter)] public static String GetBorderLeftStyle(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderLeftStyle); @@ -833,6 +914,7 @@ public static String GetBorderLeftStyle(this ICssStyleDeclaration style) => /// Sets the style of the left border of the object. /// [DomName("borderLeftStyle")] + [DomName("border-left-style")] [DomAccessor(Accessors.Setter)] public static void SetBorderLeftStyle(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderLeftStyle, value); @@ -841,6 +923,7 @@ public static void SetBorderLeftStyle(this ICssStyleDeclaration style, String va /// Gets the thickness of the left border of the object. /// [DomName("borderLeftWidth")] + [DomName("border-left-width")] [DomAccessor(Accessors.Getter)] public static String GetBorderLeftWidth(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderLeftWidth); @@ -849,6 +932,7 @@ public static String GetBorderLeftWidth(this ICssStyleDeclaration style) => /// Sets the thickness of the left border of the object. /// [DomName("borderLeftWidth")] + [DomName("border-left-width")] [DomAccessor(Accessors.Setter)] public static void SetBorderLeftWidth(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderLeftWidth, value); @@ -858,6 +942,7 @@ public static void SetBorderLeftWidth(this ICssStyleDeclaration style, String va /// of the corners for the outer border edge of the current box. /// [DomName("borderRadius")] + [DomName("border-radius")] [DomAccessor(Accessors.Getter)] public static String GetBorderRadius(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderRadius); @@ -867,6 +952,7 @@ public static String GetBorderRadius(this ICssStyleDeclaration style) => /// of the corners for the outer border edge of the current box. /// [DomName("borderRadius")] + [DomName("border-radius")] [DomAccessor(Accessors.Setter)] public static void SetBorderRadius(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderRadius, value); @@ -875,6 +961,7 @@ public static void SetBorderRadius(this ICssStyleDeclaration style, String value /// Gets the properties of the right border of the object. /// [DomName("borderRight")] + [DomName("border-right")] [DomAccessor(Accessors.Getter)] public static String GetBorderRight(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderRight); @@ -883,6 +970,7 @@ public static String GetBorderRight(this ICssStyleDeclaration style) => /// Sets the properties of the right border of the object. /// [DomName("borderRight")] + [DomName("border-right")] [DomAccessor(Accessors.Setter)] public static void SetBorderRight(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderRight, value); @@ -891,6 +979,7 @@ public static void SetBorderRight(this ICssStyleDeclaration style, String value) /// Gets the foreground color of the right border of an object. /// [DomName("borderRightColor")] + [DomName("border-right-color")] [DomAccessor(Accessors.Getter)] public static String GetBorderRightColor(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderRightColor); @@ -899,6 +988,7 @@ public static String GetBorderRightColor(this ICssStyleDeclaration style) => /// Sets the foreground color of the right border of an object. /// [DomName("borderRightColor")] + [DomName("border-right-color")] [DomAccessor(Accessors.Setter)] public static void SetBorderRightColor(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderRightColor, value); @@ -907,6 +997,7 @@ public static void SetBorderRightColor(this ICssStyleDeclaration style, String v /// Gets the style of the right border of the object. /// [DomName("borderRightStyle")] + [DomName("border-right-style")] [DomAccessor(Accessors.Getter)] public static String GetBorderRightStyle(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderRightStyle); @@ -915,6 +1006,7 @@ public static String GetBorderRightStyle(this ICssStyleDeclaration style) => /// Sets the style of the right border of the object. /// [DomName("borderRightStyle")] + [DomName("border-right-style")] [DomAccessor(Accessors.Setter)] public static void SetBorderRightStyle(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderRightStyle, value); @@ -923,6 +1015,7 @@ public static void SetBorderRightStyle(this ICssStyleDeclaration style, String v /// Gets the thickness of the right border of the object. /// [DomName("borderRightWidth")] + [DomName("border-right-width")] [DomAccessor(Accessors.Getter)] public static String GetBorderRightWidth(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderRightWidth); @@ -931,6 +1024,7 @@ public static String GetBorderRightWidth(this ICssStyleDeclaration style) => /// Sets the thickness of the right border of the object. /// [DomName("borderRightWidth")] + [DomName("border-right-width")] [DomAccessor(Accessors.Setter)] public static void SetBorderRightWidth(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderRightWidth, value); @@ -940,6 +1034,7 @@ public static void SetBorderRightWidth(this ICssStyleDeclaration style, String v /// a table. /// [DomName("borderSpacing")] + [DomName("border-spacing")] [DomAccessor(Accessors.Getter)] public static String GetBorderSpacing(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderSpacing); @@ -949,6 +1044,7 @@ public static String GetBorderSpacing(this ICssStyleDeclaration style) => /// a table. /// [DomName("borderSpacing")] + [DomName("border-spacing")] [DomAccessor(Accessors.Setter)] public static void SetBorderSpacing(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderSpacing, value); @@ -958,6 +1054,7 @@ public static void SetBorderSpacing(this ICssStyleDeclaration style, String valu /// of the object. /// [DomName("borderStyle")] + [DomName("border-style")] [DomAccessor(Accessors.Getter)] public static String GetBorderStyle(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderStyle); @@ -967,6 +1064,7 @@ public static String GetBorderStyle(this ICssStyleDeclaration style) => /// of the object. /// [DomName("borderStyle")] + [DomName("border-style")] [DomAccessor(Accessors.Setter)] public static void SetBorderStyle(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderStyle, value); @@ -975,6 +1073,7 @@ public static void SetBorderStyle(this ICssStyleDeclaration style, String value) /// Gets the properties of the top border of the object. /// [DomName("borderTop")] + [DomName("border-top")] [DomAccessor(Accessors.Getter)] public static String GetBorderTop(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderTop); @@ -983,6 +1082,7 @@ public static String GetBorderTop(this ICssStyleDeclaration style) => /// Sets the properties of the top border of the object. /// [DomName("borderTop")] + [DomName("border-top")] [DomAccessor(Accessors.Setter)] public static void SetBorderTop(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderTop, value); @@ -991,6 +1091,7 @@ public static void SetBorderTop(this ICssStyleDeclaration style, String value) = /// Gets the foreground color of the top border of an object. /// [DomName("borderTopColor")] + [DomName("border-top-color")] [DomAccessor(Accessors.Getter)] public static String GetBorderTopColor(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderTopColor); @@ -999,6 +1100,7 @@ public static String GetBorderTopColor(this ICssStyleDeclaration style) => /// Sets the foreground color of the top border of an object. /// [DomName("borderTopColor")] + [DomName("border-top-color")] [DomAccessor(Accessors.Setter)] public static void SetBorderTopColor(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderTopColor, value); @@ -1009,6 +1111,7 @@ public static void SetBorderTopColor(this ICssStyleDeclaration style, String val /// the outer border edge of the current box. /// [DomName("borderTopLeftRadius")] + [DomName("border-top-left-radius")] [DomAccessor(Accessors.Getter)] public static String GetBorderTopLeftRadius(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderTopLeftRadius); @@ -1019,6 +1122,7 @@ public static String GetBorderTopLeftRadius(this ICssStyleDeclaration style) => /// the outer border edge of the current box. /// [DomName("borderTopLeftRadius")] + [DomName("border-top-left-radius")] [DomAccessor(Accessors.Setter)] public static void SetBorderTopLeftRadius(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderTopLeftRadius, value); @@ -1029,6 +1133,7 @@ public static void SetBorderTopLeftRadius(this ICssStyleDeclaration style, Strin /// outer border edge of the current box. /// [DomName("borderTopRightRadius")] + [DomName("border-top-right-radius")] [DomAccessor(Accessors.Getter)] public static String GetBorderTopRightRadius(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderTopRightRadius); @@ -1039,6 +1144,7 @@ public static String GetBorderTopRightRadius(this ICssStyleDeclaration style) => /// outer border edge of the current box. /// [DomName("borderTopRightRadius")] + [DomName("border-top-right-radius")] [DomAccessor(Accessors.Setter)] public static void SetBorderTopRightRadius(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderTopRightRadius, value); @@ -1047,6 +1153,7 @@ public static void SetBorderTopRightRadius(this ICssStyleDeclaration style, Stri /// Gets the style of the top border of the object. /// [DomName("borderTopStyle")] + [DomName("border-top-style")] [DomAccessor(Accessors.Getter)] public static String GetBorderTopStyle(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderTopStyle); @@ -1055,6 +1162,7 @@ public static String GetBorderTopStyle(this ICssStyleDeclaration style) => /// Sets the style of the top border of the object. /// [DomName("borderTopStyle")] + [DomName("border-top-style")] [DomAccessor(Accessors.Setter)] public static void SetBorderTopStyle(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderTopStyle, value); @@ -1063,6 +1171,7 @@ public static void SetBorderTopStyle(this ICssStyleDeclaration style, String val /// Gets the thickness of the top border of the object. /// [DomName("borderTopWidth")] + [DomName("border-top-width")] [DomAccessor(Accessors.Getter)] public static String GetBorderTopWidth(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderTopWidth); @@ -1071,6 +1180,7 @@ public static String GetBorderTopWidth(this ICssStyleDeclaration style) => /// Sets the thickness of the top border of the object. /// [DomName("borderTopWidth")] + [DomName("border-top-width")] [DomAccessor(Accessors.Setter)] public static void SetBorderTopWidth(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderTopWidth, value); @@ -1080,6 +1190,7 @@ public static void SetBorderTopWidth(this ICssStyleDeclaration style, String val /// borders of an object. /// [DomName("borderWidth")] + [DomName("border-width")] [DomAccessor(Accessors.Getter)] public static String GetBorderWidth(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BorderWidth); @@ -1089,6 +1200,7 @@ public static String GetBorderWidth(this ICssStyleDeclaration style) => /// borders of an object. /// [DomName("borderWidth")] + [DomName("border-width")] [DomAccessor(Accessors.Setter)] public static void SetBorderWidth(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BorderWidth, value); @@ -1098,6 +1210,7 @@ public static void SetBorderWidth(this ICssStyleDeclaration style, String value) /// more drop shadows to the current box. /// [DomName("boxShadow")] + [DomName("box-shadow")] [DomAccessor(Accessors.Getter)] public static String GetBoxShadow(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BoxShadow); @@ -1107,6 +1220,7 @@ public static String GetBoxShadow(this ICssStyleDeclaration style) => /// more drop shadows to the current box. /// [DomName("boxShadow")] + [DomName("box-shadow")] [DomAccessor(Accessors.Setter)] public static void SetBoxShadow(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BoxShadow, value); @@ -1115,6 +1229,7 @@ public static void SetBoxShadow(this ICssStyleDeclaration style, String value) = /// Gets the box model to use for object sizing. /// [DomName("boxSizing")] + [DomName("box-sizing")] [DomAccessor(Accessors.Getter)] public static String GetBoxSizing(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BoxSizing); @@ -1123,6 +1238,7 @@ public static String GetBoxSizing(this ICssStyleDeclaration style) => /// Sets the box model to use for object sizing. /// [DomName("boxSizing")] + [DomName("box-sizing")] [DomAccessor(Accessors.Setter)] public static void SetBoxSizing(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BoxSizing, value); @@ -1132,6 +1248,7 @@ public static void SetBoxSizing(this ICssStyleDeclaration style, String value) = /// in a multi-column element. /// [DomName("breakAfter")] + [DomName("break-after")] [DomAccessor(Accessors.Getter)] public static String GetBreakAfter(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BreakAfter); @@ -1141,6 +1258,7 @@ public static String GetBreakAfter(this ICssStyleDeclaration style) => /// in a multi-column element. /// [DomName("breakAfter")] + [DomName("break-after")] [DomAccessor(Accessors.Setter)] public static void SetBreakAfter(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BreakAfter, value); @@ -1150,6 +1268,7 @@ public static void SetBreakAfter(this ICssStyleDeclaration style, String value) /// block in a multi-column element. /// [DomName("breakBefore")] + [DomName("break-before")] [DomAccessor(Accessors.Getter)] public static String GetBreakBefore(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BreakBefore); @@ -1159,6 +1278,7 @@ public static String GetBreakBefore(this ICssStyleDeclaration style) => /// block in a multi-column element. /// [DomName("breakBefore")] + [DomName("break-before")] [DomAccessor(Accessors.Setter)] public static void SetBreakBefore(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BreakBefore, value); @@ -1168,6 +1288,7 @@ public static void SetBreakBefore(this ICssStyleDeclaration style, String value) /// content block in a multi-column element. /// [DomName("breakInside")] + [DomName("break-inside")] [DomAccessor(Accessors.Getter)] public static String GetBreakInside(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.BreakInside); @@ -1177,6 +1298,7 @@ public static String GetBreakInside(this ICssStyleDeclaration style) => /// content block in a multi-column element. /// [DomName("breakInside")] + [DomName("break-inside")] [DomAccessor(Accessors.Setter)] public static void SetBreakInside(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.BreakInside, value); @@ -1185,6 +1307,7 @@ public static void SetBreakInside(this ICssStyleDeclaration style, String value) /// Gets where the caption of a table is located. /// [DomName("captionSide")] + [DomName("caption-side")] [DomAccessor(Accessors.Getter)] public static String GetCaptionSide(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.CaptionSide); @@ -1193,6 +1316,7 @@ public static String GetCaptionSide(this ICssStyleDeclaration style) => /// Sets where the caption of a table is located. /// [DomName("captionSide")] + [DomName("caption-side")] [DomAccessor(Accessors.Setter)] public static void SetCaptionSide(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.CaptionSide, value); @@ -1237,6 +1361,7 @@ public static void SetClip(this ICssStyleDeclaration style, String value) => /// Gets the bottom coordinate of the object clipping region. /// [DomName("clipBottom")] + [DomName("clip-bottom")] [DomAccessor(Accessors.Getter)] public static String GetClipBottom(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ClipBottom); @@ -1245,6 +1370,7 @@ public static String GetClipBottom(this ICssStyleDeclaration style) => /// Sets the bottom coordinate of the object clipping region. /// [DomName("clipBottom")] + [DomName("clip-bottom")] [DomAccessor(Accessors.Setter)] public static void SetClipBottom(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ClipBottom, value); @@ -1253,6 +1379,7 @@ public static void SetClipBottom(this ICssStyleDeclaration style, String value) /// Gets the left coordinate of the object clipping region. /// [DomName("clipLeft")] + [DomName("clip-left")] [DomAccessor(Accessors.Getter)] public static String GetClipLeft(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ClipLeft); @@ -1261,6 +1388,7 @@ public static String GetClipLeft(this ICssStyleDeclaration style) => /// Sets the left coordinate of the object clipping region. /// [DomName("clipLeft")] + [DomName("clip-left")] [DomAccessor(Accessors.Setter)] public static void SetClipLeft(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ClipLeft, value); @@ -1270,6 +1398,7 @@ public static void SetClipLeft(this ICssStyleDeclaration style, String value) => /// that will be used as the clipping path. /// [DomName("clipPath")] + [DomName("clip-path")] [DomAccessor(Accessors.Getter)] public static String GetClipPath(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ClipPath); @@ -1279,6 +1408,7 @@ public static String GetClipPath(this ICssStyleDeclaration style) => /// that will be used as the clipping path. /// [DomName("clipPath")] + [DomName("clip-path")] [DomAccessor(Accessors.Setter)] public static void SetClipPath(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ClipPath, value); @@ -1287,6 +1417,7 @@ public static void SetClipPath(this ICssStyleDeclaration style, String value) => /// Gets the right coordinate of the object clipping region. /// [DomName("clipRight")] + [DomName("clip-right")] [DomAccessor(Accessors.Getter)] public static String GetClipRight(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ClipRight); @@ -1295,6 +1426,7 @@ public static String GetClipRight(this ICssStyleDeclaration style) => /// Sets the right coordinate of the object clipping region. /// [DomName("clipRight")] + [DomName("clip-right")] [DomAccessor(Accessors.Setter)] public static void SetClipRight(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ClipRight, value); @@ -1304,6 +1436,7 @@ public static void SetClipRight(this ICssStyleDeclaration style, String value) = /// canvas are affected by the fill operation. /// [DomName("clipRule")] + [DomName("clip-rule")] [DomAccessor(Accessors.Getter)] public static String GetClipRule(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ClipRule); @@ -1313,6 +1446,7 @@ public static String GetClipRule(this ICssStyleDeclaration style) => /// canvas are affected by the fill operation. /// [DomName("clipRule")] + [DomName("clip-rule")] [DomAccessor(Accessors.Setter)] public static void SetClipRule(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ClipRule, value); @@ -1321,6 +1455,7 @@ public static void SetClipRule(this ICssStyleDeclaration style, String value) => /// Gets the top coordinate of the object clipping region. /// [DomName("clipTop")] + [DomName("clip-top")] [DomAccessor(Accessors.Getter)] public static String GetClipTop(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ClipTop); @@ -1329,6 +1464,7 @@ public static String GetClipTop(this ICssStyleDeclaration style) => /// Sets the top coordinate of the object clipping region. /// [DomName("clipTop")] + [DomName("clip-top")] [DomAccessor(Accessors.Setter)] public static void SetClipTop(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ClipTop, value); @@ -1353,6 +1489,7 @@ public static void SetColor(this ICssStyleDeclaration style, String value) => /// Gets which color space to use for filter effects. /// [DomName("colorInterpolationFilters")] + [DomName("color-interpolation-filters")] [DomAccessor(Accessors.Getter)] public static String GetColorInterpolationFilters(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ColorInterpolationFilters); @@ -1361,6 +1498,7 @@ public static String GetColorInterpolationFilters(this ICssStyleDeclaration styl /// Sets which color space to use for filter effects. /// [DomName("colorInterpolationFilters")] + [DomName("color-interpolation-filters")] [DomAccessor(Accessors.Setter)] public static void SetColorInterpolationFilters(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ColorInterpolationFilters, value); @@ -1370,6 +1508,7 @@ public static void SetColorInterpolationFilters(this ICssStyleDeclaration style, /// element. /// [DomName("columnCount")] + [DomName("column-count")] [DomAccessor(Accessors.Getter)] public static String GetColumnCount(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ColumnCount); @@ -1379,6 +1518,7 @@ public static String GetColumnCount(this ICssStyleDeclaration style) => /// element. /// [DomName("columnCount")] + [DomName("column-count")] [DomAccessor(Accessors.Setter)] public static void SetColumnCount(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ColumnCount, value); @@ -1388,6 +1528,7 @@ public static void SetColumnCount(this ICssStyleDeclaration style, String value) /// multi-column element are affected by the content flow. /// [DomName("columnFill")] + [DomName("column-fill")] [DomAccessor(Accessors.Getter)] public static String GetColumnFill(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ColumnFill); @@ -1397,6 +1538,7 @@ public static String GetColumnFill(this ICssStyleDeclaration style) => /// multi-column element are affected by the content flow. /// [DomName("columnFill")] + [DomName("column-fill")] [DomAccessor(Accessors.Setter)] public static void SetColumnFill(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ColumnFill, value); @@ -1406,6 +1548,7 @@ public static void SetColumnFill(this ICssStyleDeclaration style, String value) /// element. /// [DomName("columnGap")] + [DomName("column-gap")] [DomAccessor(Accessors.Getter)] public static String GetColumnGap(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ColumnGap); @@ -1415,6 +1558,7 @@ public static String GetColumnGap(this ICssStyleDeclaration style) => /// element. /// [DomName("columnGap")] + [DomName("column-gap")] [DomAccessor(Accessors.Setter)] public static void SetColumnGap(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ColumnGap, value); @@ -1425,6 +1569,7 @@ public static void SetColumnGap(this ICssStyleDeclaration style, String value) = /// multi-column element. /// [DomName("columnRule")] + [DomName("column-rule")] [DomAccessor(Accessors.Getter)] public static String GetColumnRule(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ColumnRule); @@ -1435,6 +1580,7 @@ public static String GetColumnRule(this ICssStyleDeclaration style) => /// multi-column element. /// [DomName("columnRule")] + [DomName("column-rule")] [DomAccessor(Accessors.Setter)] public static void SetColumnRule(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ColumnRule, value); @@ -1444,6 +1590,7 @@ public static void SetColumnRule(this ICssStyleDeclaration style, String value) /// element. /// [DomName("columnRuleColor")] + [DomName("column-rule-color")] [DomAccessor(Accessors.Getter)] public static String GetColumnRuleColor(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ColumnRuleColor); @@ -1453,6 +1600,7 @@ public static String GetColumnRuleColor(this ICssStyleDeclaration style) => /// element. /// [DomName("columnRuleColor")] + [DomName("column-rule-color")] [DomAccessor(Accessors.Setter)] public static void SetColumnRuleColor(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ColumnRuleColor, value); @@ -1462,6 +1610,7 @@ public static void SetColumnRuleColor(this ICssStyleDeclaration style, String va /// element. /// [DomName("columnRuleStyle")] + [DomName("column-rule-style")] [DomAccessor(Accessors.Getter)] public static String GetColumnRuleStyle(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ColumnRuleStyle); @@ -1471,6 +1620,7 @@ public static String GetColumnRuleStyle(this ICssStyleDeclaration style) => /// element. /// [DomName("columnRuleStyle")] + [DomName("column-rule-style")] [DomAccessor(Accessors.Setter)] public static void SetColumnRuleStyle(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ColumnRuleStyle, value); @@ -1480,6 +1630,7 @@ public static void SetColumnRuleStyle(this ICssStyleDeclaration style, String va /// element. /// [DomName("columnRuleWidth")] + [DomName("column-rule-width")] [DomAccessor(Accessors.Getter)] public static String GetColumnRuleWidth(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ColumnRuleWidth); @@ -1489,6 +1640,7 @@ public static String GetColumnRuleWidth(this ICssStyleDeclaration style) => /// element. /// [DomName("columnRuleWidth")] + [DomName("column-rule-width")] [DomAccessor(Accessors.Setter)] public static void SetColumnRuleWidth(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ColumnRuleWidth, value); @@ -1516,6 +1668,7 @@ public static void SetColumns(this ICssStyleDeclaration style, String value) => /// spans in a multi-column element. /// [DomName("columnSpan")] + [DomName("column-span")] [DomAccessor(Accessors.Getter)] public static String GetColumnSpan(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ColumnSpan); @@ -1525,6 +1678,7 @@ public static String GetColumnSpan(this ICssStyleDeclaration style) => /// spans in a multi-column element. /// [DomName("columnSpan")] + [DomName("column-span")] [DomAccessor(Accessors.Setter)] public static void SetColumnSpan(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ColumnSpan, value); @@ -1534,6 +1688,7 @@ public static void SetColumnSpan(this ICssStyleDeclaration style, String value) /// element. /// [DomName("columnWidth")] + [DomName("column-width")] [DomAccessor(Accessors.Getter)] public static String GetColumnWidth(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ColumnWidth); @@ -1543,6 +1698,7 @@ public static String GetColumnWidth(this ICssStyleDeclaration style) => /// element. /// [DomName("columnWidth")] + [DomName("column-width")] [DomAccessor(Accessors.Setter)] public static void SetColumnWidth(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ColumnWidth, value); @@ -1569,6 +1725,7 @@ public static void SetContent(this ICssStyleDeclaration style, String value) => /// Gets a list of counters to increment. /// [DomName("counterIncrement")] + [DomName("counter-increment")] [DomAccessor(Accessors.Getter)] public static String GetCounterIncrement(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.CounterIncrement); @@ -1577,6 +1734,7 @@ public static String GetCounterIncrement(this ICssStyleDeclaration style) => /// Sets a list of counters to increment. /// [DomName("counterIncrement")] + [DomName("counter-increment")] [DomAccessor(Accessors.Setter)] public static void SetCounterIncrement(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.CounterIncrement, value); @@ -1585,6 +1743,7 @@ public static void SetCounterIncrement(this ICssStyleDeclaration style, String v /// Gets a list of counters to create or reset to zero. /// [DomName("counterReset")] + [DomName("counter-reset")] [DomAccessor(Accessors.Getter)] public static String GetCounterReset(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.CounterReset); @@ -1593,6 +1752,7 @@ public static String GetCounterReset(this ICssStyleDeclaration style) => /// Sets a list of counters to create or reset to zero. /// [DomName("counterReset")] + [DomName("counter-reset")] [DomAccessor(Accessors.Setter)] public static void SetCounterReset(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.CounterReset, value); @@ -1602,6 +1762,7 @@ public static void SetCounterReset(this ICssStyleDeclaration style, String value /// the left, right, or not at all. /// [DomName("cssFloat")] + [DomName("float")] [DomAccessor(Accessors.Getter)] public static String GetFloat(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.Float); @@ -1611,6 +1772,7 @@ public static String GetFloat(this ICssStyleDeclaration style) => /// the left, right, or not at all. /// [DomName("cssFloat")] + [DomName("float")] [DomAccessor(Accessors.Setter)] public static void SetFloat(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.Float, value); @@ -1672,6 +1834,7 @@ public static void SetDisplay(this ICssStyleDeclaration style, String value) => /// scaled-baseline table. /// [DomName("dominantBaseline")] + [DomName("dominant-baseline")] [DomAccessor(Accessors.Getter)] public static String GetDominantBaseline(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.DominantBaseline); @@ -1681,6 +1844,7 @@ public static String GetDominantBaseline(this ICssStyleDeclaration style) => /// scaled-baseline table. /// [DomName("dominantBaseline")] + [DomName("dominant-baseline")] [DomAccessor(Accessors.Setter)] public static void SetDominantBaseline(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.DominantBaseline, value); @@ -1689,6 +1853,7 @@ public static void SetDominantBaseline(this ICssStyleDeclaration style, String v /// Gets whether to show or hide a cell without content. /// [DomName("emptyCells")] + [DomName("empty-cells")] [DomAccessor(Accessors.Getter)] public static String GetEmptyCells(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.EmptyCells); @@ -1697,6 +1862,7 @@ public static String GetEmptyCells(this ICssStyleDeclaration style) => /// Sets whether to show or hide a cell without content. /// [DomName("emptyCells")] + [DomName("empty-cells")] [DomAccessor(Accessors.Setter)] public static void SetEmptyCells(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.EmptyCells, value); @@ -1706,6 +1872,7 @@ public static void SetEmptyCells(this ICssStyleDeclaration style, String value) /// container. /// [DomName("enableBackground")] + [DomName("enable-background")] [DomAccessor(Accessors.Getter)] public static String GetEnableBackground(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.EnableBackground); @@ -1715,6 +1882,7 @@ public static String GetEnableBackground(this ICssStyleDeclaration style) => /// container. /// [DomName("enableBackground")] + [DomName("enable-background")] [DomAccessor(Accessors.Setter)] public static void SetEnableBackground(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.EnableBackground, value); @@ -1742,6 +1910,7 @@ public static void SetFill(this ICssStyleDeclaration style, String value) => /// operation that is used to paint the interior of the current object. /// [DomName("fillOpacity")] + [DomName("fill-opacity")] [DomAccessor(Accessors.Getter)] public static String GetFillOpacity(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.FillOpacity); @@ -1751,6 +1920,7 @@ public static String GetFillOpacity(this ICssStyleDeclaration style) => /// operation that is used to paint the interior of the current object. /// [DomName("fillOpacity")] + [DomName("fill-opacity")] [DomAccessor(Accessors.Setter)] public static void SetFillOpacity(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.FillOpacity, value); @@ -1761,6 +1931,7 @@ public static void SetFillOpacity(this ICssStyleDeclaration style, String value) /// shape. /// [DomName("fillRule")] + [DomName("fill-rule")] [DomAccessor(Accessors.Getter)] public static String GetFillRule(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.FillRule); @@ -1771,6 +1942,7 @@ public static String GetFillRule(this ICssStyleDeclaration style) => /// shape. /// [DomName("fillRule")] + [DomName("fill-rule")] [DomAccessor(Accessors.Setter)] public static void SetFillRule(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.FillRule, value); @@ -1815,6 +1987,7 @@ public static void SetFlex(this ICssStyleDeclaration style, String value) => /// Gets the initial main size of the flex item. /// [DomName("flexBasis")] + [DomName("flex-basis")] [DomAccessor(Accessors.Getter)] public static String GetFlexBasis(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.FlexBasis); @@ -1823,6 +1996,7 @@ public static String GetFlexBasis(this ICssStyleDeclaration style) => /// Sets the initial main size of the flex item. /// [DomName("flexBasis")] + [DomName("flex-basis")] [DomAccessor(Accessors.Setter)] public static void SetFlexBasis(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.FlexBasis, value); @@ -1832,6 +2006,7 @@ public static void SetFlexBasis(this ICssStyleDeclaration style, String value) = /// flex items are displayed in the flex container. /// [DomName("flexDirection")] + [DomName("flex-direction")] [DomAccessor(Accessors.Getter)] public static String GetFlexDirection(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.FlexDirection); @@ -1841,6 +2016,7 @@ public static String GetFlexDirection(this ICssStyleDeclaration style) => /// flex items are displayed in the flex container. /// [DomName("flexDirection")] + [DomName("flex-direction")] [DomAccessor(Accessors.Setter)] public static void SetFlexDirection(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.FlexDirection, value); @@ -1850,6 +2026,7 @@ public static void SetFlexDirection(this ICssStyleDeclaration style, String valu /// and flex-wrap properties of a flex container. /// [DomName("flexFlow")] + [DomName("flex-flow")] [DomAccessor(Accessors.Getter)] public static String GetFlexFlow(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.FlexFlow); @@ -1859,6 +2036,7 @@ public static String GetFlexFlow(this ICssStyleDeclaration style) => /// and flex-wrap properties of a flex container. /// [DomName("flexFlow")] + [DomName("flex-flow")] [DomAccessor(Accessors.Setter)] public static void SetFlexFlow(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.FlexFlow, value); @@ -1867,6 +2045,7 @@ public static void SetFlexFlow(this ICssStyleDeclaration style, String value) => /// Gets the flex grow factor for the flex item. /// [DomName("flexGrow")] + [DomName("flex-grow")] [DomAccessor(Accessors.Getter)] public static String GetFlexGrow(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.FlexGrow); @@ -1875,6 +2054,7 @@ public static String GetFlexGrow(this ICssStyleDeclaration style) => /// Sets the flex grow factor for the flex item. /// [DomName("flexGrow")] + [DomName("flex-grow")] [DomAccessor(Accessors.Setter)] public static void SetFlexGrow(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.FlexGrow, value); @@ -1883,6 +2063,7 @@ public static void SetFlexGrow(this ICssStyleDeclaration style, String value) => /// Gets the flex shrink factor for the flex item. /// [DomName("flexShrink")] + [DomName("flex-shrink")] [DomAccessor(Accessors.Getter)] public static String GetFlexShrink(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.FlexShrink); @@ -1891,6 +2072,7 @@ public static String GetFlexShrink(this ICssStyleDeclaration style) => /// Sets the flex shrink factor for the flex item. /// [DomName("flexShrink")] + [DomName("flex-shrink")] [DomAccessor(Accessors.Setter)] public static void SetFlexShrink(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.FlexShrink, value); @@ -1901,6 +2083,7 @@ public static void SetFlexShrink(this ICssStyleDeclaration style, String value) /// flex container. /// [DomName("flexWrap")] + [DomName("flex-wrap")] [DomAccessor(Accessors.Getter)] public static String GetFlexWrap(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.FlexWrap); @@ -1911,6 +2094,7 @@ public static String GetFlexWrap(this ICssStyleDeclaration style) => /// flex container. /// [DomName("flexWrap")] + [DomName("flex-wrap")] [DomAccessor(Accessors.Setter)] public static void SetFlexWrap(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.FlexWrap, value); @@ -1939,6 +2123,7 @@ public static void SetFont(this ICssStyleDeclaration style, String value) => /// Gets the name of the font used for text in the object. /// [DomName("fontFamily")] + [DomName("font-family")] [DomAccessor(Accessors.Getter)] public static String GetFontFamily(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.FontFamily); @@ -1947,6 +2132,7 @@ public static String GetFontFamily(this ICssStyleDeclaration style) => /// Sets the name of the font used for text in the object. /// [DomName("fontFamily")] + [DomName("font-family")] [DomAccessor(Accessors.Setter)] public static void SetFontFamily(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.FontFamily, value); @@ -1956,6 +2142,7 @@ public static void SetFontFamily(this ICssStyleDeclaration style, String value) /// positioning in fonts that include OpenType layout features. /// [DomName("fontFeatureSettings")] + [DomName("font-feature-settings")] [DomAccessor(Accessors.Getter)] public static String GetFontFeatureSettings(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.FontFeatureSettings); @@ -1965,6 +2152,7 @@ public static String GetFontFeatureSettings(this ICssStyleDeclaration style) => /// positioning in fonts that include OpenType layout features. /// [DomName("fontFeatureSettings")] + [DomName("font-feature-settings")] [DomAccessor(Accessors.Setter)] public static void SetFontFeatureSettings(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.FontFeatureSettings, value); @@ -1974,6 +2162,7 @@ public static void SetFontFeatureSettings(this ICssStyleDeclaration style, Strin /// the object. /// [DomName("fontSize")] + [DomName("font-size")] [DomAccessor(Accessors.Getter)] public static String GetFontSize(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.FontSize); @@ -1983,6 +2172,7 @@ public static String GetFontSize(this ICssStyleDeclaration style) => /// the object. /// [DomName("fontSize")] + [DomName("font-size")] [DomAccessor(Accessors.Setter)] public static void SetFontSize(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.FontSize, value); @@ -1993,6 +2183,7 @@ public static void SetFontSize(this ICssStyleDeclaration style, String value) => /// font, whether it is substituted or not. /// [DomName("fontSizeAdjust")] + [DomName("font-size-adjust")] [DomAccessor(Accessors.Getter)] public static String GetFontSizeAdjust(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.FontSizeAdjust); @@ -2003,6 +2194,7 @@ public static String GetFontSizeAdjust(this ICssStyleDeclaration style) => /// font, whether it is substituted or not. /// [DomName("fontSizeAdjust")] + [DomName("font-size-adjust")] [DomAccessor(Accessors.Setter)] public static void SetFontSizeAdjust(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.FontSizeAdjust, value); @@ -2012,6 +2204,7 @@ public static void SetFontSizeAdjust(this ICssStyleDeclaration style, String val /// expanded face of a font family. /// [DomName("fontStretch")] + [DomName("font-stretch")] [DomAccessor(Accessors.Getter)] public static String GetFontStretch(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.FontStretch); @@ -2021,6 +2214,7 @@ public static String GetFontStretch(this ICssStyleDeclaration style) => /// expanded face of a font family. /// [DomName("fontStretch")] + [DomName("font-stretch")] [DomAccessor(Accessors.Setter)] public static void SetFontStretch(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.FontStretch, value); @@ -2030,6 +2224,7 @@ public static void SetFontStretch(this ICssStyleDeclaration style, String value) /// oblique. /// [DomName("fontStyle")] + [DomName("font-style")] [DomAccessor(Accessors.Getter)] public static String GetFontStyle(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.FontStyle); @@ -2039,6 +2234,7 @@ public static String GetFontStyle(this ICssStyleDeclaration style) => /// oblique. /// [DomName("fontStyle")] + [DomName("font-style")] [DomAccessor(Accessors.Setter)] public static void SetFontStyle(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.FontStyle, value); @@ -2048,6 +2244,7 @@ public static void SetFontStyle(this ICssStyleDeclaration style, String value) = /// letters. /// [DomName("fontVariant")] + [DomName("font-variant")] [DomAccessor(Accessors.Getter)] public static String GetFontVariant(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.FontVariant); @@ -2057,6 +2254,7 @@ public static String GetFontVariant(this ICssStyleDeclaration style) => /// letters. /// [DomName("fontVariant")] + [DomName("font-variant")] [DomAccessor(Accessors.Setter)] public static void SetFontVariant(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.FontVariant, value); @@ -2065,6 +2263,7 @@ public static void SetFontVariant(this ICssStyleDeclaration style, String value) /// Gets of sets the weight of the font of the object. /// [DomName("fontWeight")] + [DomName("font-weight")] [DomAccessor(Accessors.Getter)] public static String GetFontWeight(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.FontWeight); @@ -2073,6 +2272,7 @@ public static String GetFontWeight(this ICssStyleDeclaration style) => /// Sets of sets the weight of the font of the object. /// [DomName("fontWeight")] + [DomName("font-weight")] [DomAccessor(Accessors.Setter)] public static void SetFontWeight(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.FontWeight, value); @@ -2083,6 +2283,7 @@ public static void SetFontWeight(this ICssStyleDeclaration style, String value) /// horizontal. /// [DomName("glyphOrientationHorizontal")] + [DomName("glyph-orientation-horizontal")] [DomAccessor(Accessors.Getter)] public static String GetGlyphOrientationHorizontal(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.GlyphOrientationHorizontal); @@ -2093,6 +2294,7 @@ public static String GetGlyphOrientationHorizontal(this ICssStyleDeclaration sty /// horizontal. /// [DomName("glyphOrientationHorizontal")] + [DomName("glyph-orientation-horizontal")] [DomAccessor(Accessors.Setter)] public static void SetGlyphOrientationHorizontal(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.GlyphOrientationHorizontal, value); @@ -2103,6 +2305,7 @@ public static void SetGlyphOrientationHorizontal(this ICssStyleDeclaration style /// vertical. /// [DomName("glyphOrientationVertical")] + [DomName("glyph-orientation-vertical")] [DomAccessor(Accessors.Getter)] public static String GetGlyphOrientationVertical(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.GlyphOrientationVertical); @@ -2113,6 +2316,7 @@ public static String GetGlyphOrientationVertical(this ICssStyleDeclaration style /// vertical. /// [DomName("glyphOrientationVertical")] + [DomName("glyph-orientation-vertical")] [DomAccessor(Accessors.Setter)] public static void SetGlyphOrientationVertical(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.GlyphOrientationVertical, value); @@ -2137,6 +2341,7 @@ public static void SetHeight(this ICssStyleDeclaration style, String value) => /// Gets the state of an IME. /// [DomName("imeMode")] + [DomName("ime-mode")] [DomAccessor(Accessors.Getter)] public static String GetImeMode(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ImeMode); @@ -2145,6 +2350,7 @@ public static String GetImeMode(this ICssStyleDeclaration style) => /// Sets the state of an IME. /// [DomName("imeMode")] + [DomName("ime-mode")] [DomAccessor(Accessors.Setter)] public static void SetImeMode(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ImeMode, value); @@ -2155,6 +2361,7 @@ public static void SetImeMode(this ICssStyleDeclaration style, String value) => /// resolved. /// [DomName("justifyContent")] + [DomName("justify-content")] [DomAccessor(Accessors.Getter)] public static String GetJustifyContent(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.JustifyContent); @@ -2165,6 +2372,7 @@ public static String GetJustifyContent(this ICssStyleDeclaration style) => /// resolved. /// [DomName("justifyContent")] + [DomName("justify-content")] [DomAccessor(Accessors.Setter)] public static void SetJustifyContent(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.JustifyContent, value); @@ -2174,6 +2382,7 @@ public static void SetJustifyContent(this ICssStyleDeclaration style, String val /// the layout of text characters. /// [DomName("layoutGrid")] + [DomName("layout-grid")] [DomAccessor(Accessors.Getter)] public static String GetLayoutGrid(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.LayoutGrid); @@ -2183,6 +2392,7 @@ public static String GetLayoutGrid(this ICssStyleDeclaration style) => /// the layout of text characters. /// [DomName("layoutGrid")] + [DomName("layout-grid")] [DomAccessor(Accessors.Setter)] public static void SetLayoutGrid(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.LayoutGrid, value); @@ -2192,6 +2402,7 @@ public static void SetLayoutGrid(this ICssStyleDeclaration style, String value) /// the text content of an element. /// [DomName("layoutGridChar")] + [DomName("layout-grid-char")] [DomAccessor(Accessors.Getter)] public static String GetLayoutGridChar(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.LayoutGridChar); @@ -2201,6 +2412,7 @@ public static String GetLayoutGridChar(this ICssStyleDeclaration style) => /// the text content of an element. /// [DomName("layoutGridChar")] + [DomName("layout-grid-char")] [DomAccessor(Accessors.Setter)] public static void SetLayoutGridChar(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.LayoutGridChar, value); @@ -2210,6 +2422,7 @@ public static void SetLayoutGridChar(this ICssStyleDeclaration style, String val /// of an element. /// [DomName("layoutGridLine")] + [DomName("layout-grid-line")] [DomAccessor(Accessors.Getter)] public static String GetLayoutGridLine(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.LayoutGridLine); @@ -2219,6 +2432,7 @@ public static String GetLayoutGridLine(this ICssStyleDeclaration style) => /// of an element. /// [DomName("layoutGridLine")] + [DomName("layout-grid-line")] [DomAccessor(Accessors.Setter)] public static void SetLayoutGridLine(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.LayoutGridLine, value); @@ -2227,6 +2441,7 @@ public static void SetLayoutGridLine(this ICssStyleDeclaration style, String val /// Gets whether the text layout grid uses two dimensions. /// [DomName("layoutGridMode")] + [DomName("layout-grid-mode")] [DomAccessor(Accessors.Getter)] public static String GetLayoutGridMode(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.LayoutGridMode); @@ -2235,6 +2450,7 @@ public static String GetLayoutGridMode(this ICssStyleDeclaration style) => /// Sets whether the text layout grid uses two dimensions. /// [DomName("layoutGridMode")] + [DomName("layout-grid-mode")] [DomAccessor(Accessors.Setter)] public static void SetLayoutGridMode(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.LayoutGridMode, value); @@ -2244,6 +2460,7 @@ public static void SetLayoutGridMode(this ICssStyleDeclaration style, String val /// of an element. /// [DomName("layoutGridType")] + [DomName("layout-grid-type")] [DomAccessor(Accessors.Getter)] public static String GetLayoutGridType(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.LayoutGridType); @@ -2253,6 +2470,7 @@ public static String GetLayoutGridType(this ICssStyleDeclaration style) => /// of an element. /// [DomName("layoutGridType")] + [DomName("layout-grid-type")] [DomAccessor(Accessors.Setter)] public static void SetLayoutGridType(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.LayoutGridType, value); @@ -2280,6 +2498,7 @@ public static void SetLeft(this ICssStyleDeclaration style, String value) => /// object. /// [DomName("letterSpacing")] + [DomName("letter-spacing")] [DomAccessor(Accessors.Getter)] public static String GetLetterSpacing(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.LetterSpacing); @@ -2289,6 +2508,7 @@ public static String GetLetterSpacing(this ICssStyleDeclaration style) => /// object. /// [DomName("letterSpacing")] + [DomName("letter-spacing")] [DomAccessor(Accessors.Setter)] public static void SetLetterSpacing(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.LetterSpacing, value); @@ -2297,6 +2517,7 @@ public static void SetLetterSpacing(this ICssStyleDeclaration style, String valu /// Gets the distance between lines in the object. /// [DomName("lineHeight")] + [DomName("line-height")] [DomAccessor(Accessors.Getter)] public static String GetLineHeight(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.LineHeight); @@ -2305,6 +2526,7 @@ public static String GetLineHeight(this ICssStyleDeclaration style) => /// Sets the distance between lines in the object. /// [DomName("lineHeight")] + [DomName("line-height")] [DomAccessor(Accessors.Setter)] public static void SetLineHeight(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.LineHeight, value); @@ -2314,6 +2536,7 @@ public static void SetLineHeight(this ICssStyleDeclaration style, String value) /// object. /// [DomName("listStyle")] + [DomName("list-style")] [DomAccessor(Accessors.Getter)] public static String GetListStyle(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ListStyle); @@ -2323,6 +2546,7 @@ public static String GetListStyle(this ICssStyleDeclaration style) => /// object. /// [DomName("listStyle")] + [DomName("list-style")] [DomAccessor(Accessors.Setter)] public static void SetListStyle(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ListStyle, value); @@ -2332,6 +2556,7 @@ public static void SetListStyle(this ICssStyleDeclaration style, String value) = /// list-item marker for the object. /// [DomName("listStyleImage")] + [DomName("list-style-image")] [DomAccessor(Accessors.Getter)] public static String GetListStyleImage(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ListStyleImage); @@ -2341,6 +2566,7 @@ public static String GetListStyleImage(this ICssStyleDeclaration style) => /// list-item marker for the object. /// [DomName("listStyleImage")] + [DomName("list-style-image")] [DomAccessor(Accessors.Setter)] public static void SetListStyleImage(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ListStyleImage, value); @@ -2350,6 +2576,7 @@ public static void SetListStyleImage(this ICssStyleDeclaration style, String val /// drawn relative to the content of the object. /// [DomName("listStylePosition")] + [DomName("list-style-position")] [DomAccessor(Accessors.Getter)] public static String GetListStylePosition(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ListStylePosition); @@ -2359,6 +2586,7 @@ public static String GetListStylePosition(this ICssStyleDeclaration style) => /// drawn relative to the content of the object. /// [DomName("listStylePosition")] + [DomName("list-style-position")] [DomAccessor(Accessors.Setter)] public static void SetListStylePosition(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ListStylePosition, value); @@ -2368,6 +2596,7 @@ public static void SetListStylePosition(this ICssStyleDeclaration style, String /// object. /// [DomName("listStyleType")] + [DomName("list-style-type")] [DomAccessor(Accessors.Getter)] public static String GetListStyleType(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ListStyleType); @@ -2377,6 +2606,7 @@ public static String GetListStyleType(this ICssStyleDeclaration style) => /// object. /// [DomName("listStyleType")] + [DomName("list-style-type")] [DomAccessor(Accessors.Setter)] public static void SetListStyleType(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ListStyleType, value); @@ -2403,6 +2633,7 @@ public static void SetMargin(this ICssStyleDeclaration style, String value) => /// Gets the height of the bottom margin of the object. /// [DomName("marginBottom")] + [DomName("margin-bottom")] [DomAccessor(Accessors.Getter)] public static String GetMarginBottom(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.MarginBottom); @@ -2411,6 +2642,7 @@ public static String GetMarginBottom(this ICssStyleDeclaration style) => /// Sets the height of the bottom margin of the object. /// [DomName("marginBottom")] + [DomName("margin-bottom")] [DomAccessor(Accessors.Setter)] public static void SetMarginBottom(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.MarginBottom, value); @@ -2419,6 +2651,7 @@ public static void SetMarginBottom(this ICssStyleDeclaration style, String value /// Gets the width of the left margin of the object. /// [DomName("marginLeft")] + [DomName("margin-left")] [DomAccessor(Accessors.Getter)] public static String GetMarginLeft(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.MarginLeft); @@ -2427,6 +2660,7 @@ public static String GetMarginLeft(this ICssStyleDeclaration style) => /// Sets the width of the left margin of the object. /// [DomName("marginLeft")] + [DomName("margin-left")] [DomAccessor(Accessors.Setter)] public static void SetMarginLeft(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.MarginLeft, value); @@ -2435,6 +2669,7 @@ public static void SetMarginLeft(this ICssStyleDeclaration style, String value) /// Gets the width of the right margin of the object. /// [DomName("marginRight")] + [DomName("margin-right")] [DomAccessor(Accessors.Getter)] public static String GetMarginRight(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.MarginRight); @@ -2443,6 +2678,7 @@ public static String GetMarginRight(this ICssStyleDeclaration style) => /// Sets the width of the right margin of the object. /// [DomName("marginRight")] + [DomName("margin-right")] [DomAccessor(Accessors.Setter)] public static void SetMarginRight(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.MarginRight, value); @@ -2451,6 +2687,7 @@ public static void SetMarginRight(this ICssStyleDeclaration style, String value) /// Gets the height of the top margin of the object. /// [DomName("marginTop")] + [DomName("margin-top")] [DomAccessor(Accessors.Getter)] public static String GetMarginTop(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.MarginTop); @@ -2459,6 +2696,7 @@ public static String GetMarginTop(this ICssStyleDeclaration style) => /// Sets the height of the top margin of the object. /// [DomName("marginTop")] + [DomName("margin-top")] [DomAccessor(Accessors.Setter)] public static void SetMarginTop(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.MarginTop, value); @@ -2487,6 +2725,7 @@ public static void SetMarker(this ICssStyleDeclaration style, String value) => /// shape. /// [DomName("markerEnd")] + [DomName("marker-end")] [DomAccessor(Accessors.Getter)] public static String GetMarkerEnd(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.MarkerEnd); @@ -2497,6 +2736,7 @@ public static String GetMarkerEnd(this ICssStyleDeclaration style) => /// shape. /// [DomName("markerEnd")] + [DomName("marker-end")] [DomAccessor(Accessors.Setter)] public static void SetMarkerEnd(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.MarkerEnd, value); @@ -2507,6 +2747,7 @@ public static void SetMarkerEnd(this ICssStyleDeclaration style, String value) = /// first and last) of a given path element or basic shape. /// [DomName("markerMid")] + [DomName("marker-mid")] [DomAccessor(Accessors.Getter)] public static String GetMarkerMid(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.MarkerMid); @@ -2517,6 +2758,7 @@ public static String GetMarkerMid(this ICssStyleDeclaration style) => /// first and last) of a given path element or basic shape. /// [DomName("markerMid")] + [DomName("marker-mid")] [DomAccessor(Accessors.Setter)] public static void SetMarkerMid(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.MarkerMid, value); @@ -2527,6 +2769,7 @@ public static void SetMarkerMid(this ICssStyleDeclaration style, String value) = /// shape. /// [DomName("markerStart")] + [DomName("marker-start")] [DomAccessor(Accessors.Getter)] public static String GetMarkerStart(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.MarkerStart); @@ -2537,6 +2780,7 @@ public static String GetMarkerStart(this ICssStyleDeclaration style) => /// shape. /// [DomName("markerStart")] + [DomName("marker-start")] [DomAccessor(Accessors.Setter)] public static void SetMarkerStart(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.MarkerStart, value); @@ -2561,6 +2805,7 @@ public static void SetMask(this ICssStyleDeclaration style, String value) => /// Gets the maximum height for an element. /// [DomName("maxHeight")] + [DomName("max-height")] [DomAccessor(Accessors.Getter)] public static String GetMaxHeight(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.MaxHeight); @@ -2569,6 +2814,7 @@ public static String GetMaxHeight(this ICssStyleDeclaration style) => /// Sets the maximum height for an element. /// [DomName("maxHeight")] + [DomName("max-height")] [DomAccessor(Accessors.Setter)] public static void SetMaxHeight(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.MaxHeight, value); @@ -2577,6 +2823,8 @@ public static void SetMaxHeight(this ICssStyleDeclaration style, String value) = /// Gets the maximum width for an element. /// [DomName("maxWidth")] + [DomName("max-width")] + [DomAccessor(Accessors.Getter)] public static String GetMaxWidth(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.MaxWidth); @@ -2584,6 +2832,7 @@ public static String GetMaxWidth(this ICssStyleDeclaration style) => /// Sets the maximum width for an element. /// [DomName("maxWidth")] + [DomName("max-width")] [DomAccessor(Accessors.Setter)] public static void SetMaxWidth(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.MaxWidth, value); @@ -2592,6 +2841,7 @@ public static void SetMaxWidth(this ICssStyleDeclaration style, String value) => /// Gets the minimum height for an element. /// [DomName("minHeight")] + [DomName("min-height")] [DomAccessor(Accessors.Getter)] public static String GetMinHeight(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.MinHeight); @@ -2600,6 +2850,7 @@ public static String GetMinHeight(this ICssStyleDeclaration style) => /// Sets the minimum height for an element. /// [DomName("minHeight")] + [DomName("min-height")] [DomAccessor(Accessors.Setter)] public static void SetMinHeight(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.MinHeight, value); @@ -2608,6 +2859,7 @@ public static void SetMinHeight(this ICssStyleDeclaration style, String value) = /// Gets the minimum width for an element. /// [DomName("minWidth")] + [DomName("min-width")] [DomAccessor(Accessors.Getter)] public static String GetMinWidth(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.MinWidth); @@ -2616,6 +2868,7 @@ public static String GetMinWidth(this ICssStyleDeclaration style) => /// Sets the minimum width for an element. /// [DomName("minWidth")] + [DomName("min-width")] [DomAccessor(Accessors.Setter)] public static void SetMinWidth(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.MinWidth, value); @@ -2698,6 +2951,7 @@ public static void SetOutline(this ICssStyleDeclaration style, String value) => /// Gets the color of the outline frame. /// [DomName("outlineColor")] + [DomName("outline-color")] [DomAccessor(Accessors.Getter)] public static String GetOutlineColor(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.OutlineColor); @@ -2706,6 +2960,7 @@ public static String GetOutlineColor(this ICssStyleDeclaration style) => /// Sets the color of the outline frame. /// [DomName("outlineColor")] + [DomName("outline-color")] [DomAccessor(Accessors.Setter)] public static void SetOutlineColor(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.OutlineColor, value); @@ -2714,6 +2969,7 @@ public static void SetOutlineColor(this ICssStyleDeclaration style, String value /// Gets the style of the outline frame. /// [DomName("outlineStyle")] + [DomName("outline-style")] [DomAccessor(Accessors.Getter)] public static String GetOutlineStyle(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.OutlineStyle); @@ -2722,6 +2978,7 @@ public static String GetOutlineStyle(this ICssStyleDeclaration style) => /// Sets the style of the outline frame. /// [DomName("outlineStyle")] + [DomName("outline-style")] [DomAccessor(Accessors.Setter)] public static void SetOutlineStyle(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.OutlineStyle, value); @@ -2730,6 +2987,7 @@ public static void SetOutlineStyle(this ICssStyleDeclaration style, String value /// Gets the width of the outline frame. /// [DomName("outlineWidth")] + [DomName("outline-width")] [DomAccessor(Accessors.Getter)] public static String GetOutlineWidth(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.OutlineWidth); @@ -2738,6 +2996,7 @@ public static String GetOutlineWidth(this ICssStyleDeclaration style) => /// Sets the width of the outline frame. /// [DomName("outlineWidth")] + [DomName("outline-width")] [DomAccessor(Accessors.Setter)] public static void SetOutlineWidth(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.OutlineWidth, value); @@ -2765,6 +3024,7 @@ public static void SetOverflow(this ICssStyleDeclaration style, String value) => /// content exceeds the width of the object. /// [DomName("overflowX")] + [DomName("overflow-x")] [DomAccessor(Accessors.Getter)] public static String GetOverflowX(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.OverflowX); @@ -2774,6 +3034,7 @@ public static String GetOverflowX(this ICssStyleDeclaration style) => /// content exceeds the width of the object. /// [DomName("overflowX")] + [DomName("overflow-x")] [DomAccessor(Accessors.Setter)] public static void SetOverflowX(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.OverflowX, value); @@ -2783,6 +3044,7 @@ public static void SetOverflowX(this ICssStyleDeclaration style, String value) = /// content exceeds the height of the object. /// [DomName("overflowY")] + [DomName("overflow-y")] [DomAccessor(Accessors.Getter)] public static String GetOverflowY(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.OverflowY); @@ -2792,6 +3054,7 @@ public static String GetOverflowY(this ICssStyleDeclaration style) => /// content exceeds the height of the object. /// [DomName("overflowY")] + [DomName("overflow-y")] [DomAccessor(Accessors.Setter)] public static void SetOverflowY(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.OverflowY, value); @@ -2821,6 +3084,7 @@ public static void SetPadding(this ICssStyleDeclaration style, String value) => /// border of the object and the content. /// [DomName("paddingBottom")] + [DomName("padding-bottom")] [DomAccessor(Accessors.Getter)] public static String GetPaddingBottom(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.PaddingBottom); @@ -2830,6 +3094,7 @@ public static String GetPaddingBottom(this ICssStyleDeclaration style) => /// border of the object and the content. /// [DomName("paddingBottom")] + [DomName("padding-bottom")] [DomAccessor(Accessors.Setter)] public static void SetPaddingBottom(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.PaddingBottom, value); @@ -2839,6 +3104,7 @@ public static void SetPaddingBottom(this ICssStyleDeclaration style, String valu /// border of the object and the content. /// [DomName("paddingLeft")] + [DomName("padding-left")] [DomAccessor(Accessors.Getter)] public static String GetPaddingLeft(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.PaddingLeft); @@ -2848,6 +3114,7 @@ public static String GetPaddingLeft(this ICssStyleDeclaration style) => /// border of the object and the content. /// [DomName("paddingLeft")] + [DomName("padding-left")] [DomAccessor(Accessors.Setter)] public static void SetPaddingLeft(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.PaddingLeft, value); @@ -2857,6 +3124,7 @@ public static void SetPaddingLeft(this ICssStyleDeclaration style, String value) /// of the object and the content. /// [DomName("paddingRight")] + [DomName("padding-right")] [DomAccessor(Accessors.Getter)] public static String GetPaddingRight(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.PaddingRight); @@ -2866,6 +3134,7 @@ public static String GetPaddingRight(this ICssStyleDeclaration style) => /// of the object and the content. /// [DomName("paddingRight")] + [DomName("padding-right")] [DomAccessor(Accessors.Setter)] public static void SetPaddingRight(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.PaddingRight, value); @@ -2875,6 +3144,7 @@ public static void SetPaddingRight(this ICssStyleDeclaration style, String value /// of the object and the content. /// [DomName("paddingTop")] + [DomName("padding-top")] [DomAccessor(Accessors.Getter)] public static String GetPaddingTop(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.PaddingTop); @@ -2884,6 +3154,7 @@ public static String GetPaddingTop(this ICssStyleDeclaration style) => /// of the object and the content. /// [DomName("paddingTop")] + [DomName("padding-top")] [DomAccessor(Accessors.Setter)] public static void SetPaddingTop(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.PaddingTop, value); @@ -2893,6 +3164,7 @@ public static void SetPaddingTop(this ICssStyleDeclaration style, String value) /// the object. /// [DomName("pageBreakAfter")] + [DomName("page-break-after")] [DomAccessor(Accessors.Getter)] public static String GetPageBreakAfter(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.PageBreakAfter); @@ -2902,6 +3174,7 @@ public static String GetPageBreakAfter(this ICssStyleDeclaration style) => /// the object. /// [DomName("pageBreakAfter")] + [DomName("page-break-after")] [DomAccessor(Accessors.Setter)] public static void SetPageBreakAfter(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.PageBreakAfter, value); @@ -2911,6 +3184,7 @@ public static void SetPageBreakAfter(this ICssStyleDeclaration style, String val /// the object. /// [DomName("pageBreakBefore")] + [DomName("page-break-before")] [DomAccessor(Accessors.Getter)] public static String GetPageBreakBefore(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.PageBreakBefore); @@ -2920,6 +3194,7 @@ public static String GetPageBreakBefore(this ICssStyleDeclaration style) => /// the object. /// [DomName("pageBreakBefore")] + [DomName("page-break-before")] [DomAccessor(Accessors.Setter)] public static void SetPageBreakBefore(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.PageBreakBefore, value); @@ -2929,6 +3204,7 @@ public static void SetPageBreakBefore(this ICssStyleDeclaration style, String va /// occur inside the object. /// [DomName("pageBreakInside")] + [DomName("page-break-inside")] [DomAccessor(Accessors.Getter)] public static String GetPageBreakInside(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.PageBreakInside); @@ -2938,6 +3214,7 @@ public static String GetPageBreakInside(this ICssStyleDeclaration style) => /// occur inside the object. /// [DomName("pageBreakInside")] + [DomName("page-break-inside")] [DomAccessor(Accessors.Setter)] public static void SetPageBreakInside(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.PageBreakInside, value); @@ -2966,6 +3243,7 @@ public static void SetPerspective(this ICssStyleDeclaration style, String value) /// property declaration. /// [DomName("perspectiveOrigin")] + [DomName("perspective-origin")] [DomAccessor(Accessors.Getter)] public static String GetPerspectiveOrigin(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.PerspectiveOrigin); @@ -2976,6 +3254,7 @@ public static String GetPerspectiveOrigin(this ICssStyleDeclaration style) => /// property declaration. /// [DomName("perspectiveOrigin")] + [DomName("perspective-origin")] [DomAccessor(Accessors.Setter)] public static void SetPerspectiveOrigin(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.PerspectiveOrigin, value); @@ -2986,6 +3265,7 @@ public static void SetPerspectiveOrigin(this ICssStyleDeclaration style, String /// event in SVG. /// [DomName("pointerEvents")] + [DomName("pointer-events")] [DomAccessor(Accessors.Getter)] public static String GetPointerEvents(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.PointerEvents); @@ -2996,6 +3276,7 @@ public static String GetPointerEvents(this ICssStyleDeclaration style) => /// event in SVG. /// [DomName("pointerEvents")] + [DomName("pointer-events")] [DomAccessor(Accessors.Setter)] public static void SetPointerEvents(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.PointerEvents, value); @@ -3057,6 +3338,7 @@ public static void SetRight(this ICssStyleDeclaration style, String value) => /// content. /// [DomName("rubyAlign")] + [DomName("ruby-align")] [DomAccessor(Accessors.Getter)] public static String GetRubyAlign(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.RubyAlign); @@ -3066,6 +3348,7 @@ public static String GetRubyAlign(this ICssStyleDeclaration style) => /// content. /// [DomName("rubyAlign")] + [DomName("ruby-align")] [DomAccessor(Accessors.Setter)] public static void SetRubyAlign(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.RubyAlign, value); @@ -3077,6 +3360,7 @@ public static void SetRubyAlign(this ICssStyleDeclaration style, String value) = /// ruby base. /// [DomName("rubyOverhang")] + [DomName("ruby-overhang")] [DomAccessor(Accessors.Getter)] public static String GetRubyOverhang(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.RubyOverhang); @@ -3088,6 +3372,7 @@ public static String GetRubyOverhang(this ICssStyleDeclaration style) => /// ruby base. /// [DomName("rubyOverhang")] + [DomName("ruby-overhang")] [DomAccessor(Accessors.Setter)] public static void SetRubyOverhang(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.RubyOverhang, value); @@ -3097,6 +3382,7 @@ public static void SetRubyOverhang(this ICssStyleDeclaration style, String value /// with respect to its base. /// [DomName("rubyPosition")] + [DomName("ruby-position")] [DomAccessor(Accessors.Getter)] public static String GetRubyPosition(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.RubyPosition); @@ -3106,6 +3392,7 @@ public static String GetRubyPosition(this ICssStyleDeclaration style) => /// with respect to its base. /// [DomName("rubyPosition")] + [DomName("ruby-position")] [DomAccessor(Accessors.Setter)] public static void SetRubyPosition(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.RubyPosition, value); @@ -3115,6 +3402,7 @@ public static void SetRubyPosition(this ICssStyleDeclaration style, String value /// box and scroll arrows of a scroll bar. /// [DomName("scrollbar3dLightColor")] + [DomName("scrollbar3d-light-color")] [DomAccessor(Accessors.Getter)] public static String GetScrollbar3dLightColor(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.Scrollbar3dLightColor); @@ -3124,6 +3412,7 @@ public static String GetScrollbar3dLightColor(this ICssStyleDeclaration style) = /// box and scroll arrows of a scroll bar. /// [DomName("scrollbar3dLightColor")] + [DomName("scrollbar3d-light-color")] [DomAccessor(Accessors.Setter)] public static void SetScrollbar3dLightColor(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.Scrollbar3dLightColor, value); @@ -3132,6 +3421,7 @@ public static void SetScrollbar3dLightColor(this ICssStyleDeclaration style, Str /// Gets the color of the arrow elements of a scroll arrow. /// [DomName("scrollbarArrowColor")] + [DomName("scrollbar-arrow-color")] [DomAccessor(Accessors.Getter)] public static String GetScrollbarArrowColor(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ScrollbarArrowColor); @@ -3140,6 +3430,7 @@ public static String GetScrollbarArrowColor(this ICssStyleDeclaration style) => /// Sets the color of the arrow elements of a scroll arrow. /// [DomName("scrollbarArrowColor")] + [DomName("scrollbar-arrow-color")] [DomAccessor(Accessors.Setter)] public static void SetScrollbarArrowColor(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ScrollbarArrowColor, value); @@ -3148,6 +3439,7 @@ public static void SetScrollbarArrowColor(this ICssStyleDeclaration style, Strin /// Gets the color of the gutter of a scroll bar. /// [DomName("scrollbarDarkShadowColor")] + [DomName("scrollbar-dark-shadow-color")] [DomAccessor(Accessors.Getter)] public static String GetScrollbarDarkShadowColor(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ScrollbarDarkShadowColor); @@ -3156,6 +3448,7 @@ public static String GetScrollbarDarkShadowColor(this ICssStyleDeclaration style /// Sets the color of the gutter of a scroll bar. /// [DomName("scrollbarDarkShadowColor")] + [DomName("scrollbar-dark-shadow-color")] [DomAccessor(Accessors.Setter)] public static void SetScrollbarDarkShadowColor(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ScrollbarDarkShadowColor, value); @@ -3165,6 +3458,7 @@ public static void SetScrollbarDarkShadowColor(this ICssStyleDeclaration style, /// scroll bar. /// [DomName("scrollbarFaceColor")] + [DomName("scrollbar-face-color")] [DomAccessor(Accessors.Getter)] public static String GetScrollbarFaceColor(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ScrollbarFaceColor); @@ -3174,6 +3468,7 @@ public static String GetScrollbarFaceColor(this ICssStyleDeclaration style) => /// scroll bar. /// [DomName("scrollbarFaceColor")] + [DomName("scrollbar-face-color")] [DomAccessor(Accessors.Setter)] public static void SetScrollbarFaceColor(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ScrollbarFaceColor, value); @@ -3183,6 +3478,7 @@ public static void SetScrollbarFaceColor(this ICssStyleDeclaration style, String /// and scroll arrows of a scroll bar. /// [DomName("scrollbarHighlightColor")] + [DomName("scrollbar-highlight-color")] [DomAccessor(Accessors.Getter)] public static String GetScrollbarHighlightColor(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ScrollbarHighlightColor); @@ -3192,6 +3488,7 @@ public static String GetScrollbarHighlightColor(this ICssStyleDeclaration style) /// and scroll arrows of a scroll bar. /// [DomName("scrollbarHighlightColor")] + [DomName("scrollbar-highlight-color")] [DomAccessor(Accessors.Setter)] public static void SetScrollbarHighlightColor(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ScrollbarHighlightColor, value); @@ -3201,6 +3498,7 @@ public static void SetScrollbarHighlightColor(this ICssStyleDeclaration style, S /// box and scroll arrows of a scroll bar. /// [DomName("scrollbarShadowColor")] + [DomName("scrollbar-shadow-color")] [DomAccessor(Accessors.Getter)] public static String GetScrollbarShadowColor(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ScrollbarShadowColor); @@ -3210,6 +3508,7 @@ public static String GetScrollbarShadowColor(this ICssStyleDeclaration style) => /// box and scroll arrows of a scroll bar. /// [DomName("scrollbarShadowColor")] + [DomName("scrollbar-shadow-color")] [DomAccessor(Accessors.Setter)] public static void SetScrollbarShadowColor(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ScrollbarShadowColor, value); @@ -3218,6 +3517,7 @@ public static void SetScrollbarShadowColor(this ICssStyleDeclaration style, Stri /// Gets the color of the track element of a scroll bar. /// [DomName("scrollbarTrackColor")] + [DomName("scrollbar-track-color")] [DomAccessor(Accessors.Getter)] public static String GetScrollbarTrackColor(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ScrollbarTrackColor); @@ -3226,6 +3526,7 @@ public static String GetScrollbarTrackColor(this ICssStyleDeclaration style) => /// Sets the color of the track element of a scroll bar. /// [DomName("scrollbarTrackColor")] + [DomName("scrollbar-track-color")] [DomAccessor(Accessors.Setter)] public static void SetScrollbarTrackColor(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ScrollbarTrackColor, value); @@ -3253,6 +3554,7 @@ public static void SetStroke(this ICssStyleDeclaration style, String value) => /// and gaps used to stroke paths. /// [DomName("strokeDasharray")] + [DomName("stroke-dasharray")] [DomAccessor(Accessors.Getter)] public static String GetStrokeDashArray(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.StrokeDasharray); @@ -3262,6 +3564,7 @@ public static String GetStrokeDashArray(this ICssStyleDeclaration style) => /// and gaps used to stroke paths. /// [DomName("strokeDasharray")] + [DomName("stroke-dasharray")] [DomAccessor(Accessors.Setter)] public static void SetStrokeDashArray(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.StrokeDasharray, value); @@ -3271,6 +3574,7 @@ public static void SetStrokeDashArray(this ICssStyleDeclaration style, String va /// pattern to start the dash. /// [DomName("strokeDashoffset")] + [DomName("stroke-dashoffset")] [DomAccessor(Accessors.Getter)] public static String GetStrokeDashOffset(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.StrokeDashoffset); @@ -3280,6 +3584,7 @@ public static String GetStrokeDashOffset(this ICssStyleDeclaration style) => /// pattern to start the dash. /// [DomName("strokeDashoffset")] + [DomName("stroke-dashoffset")] [DomAccessor(Accessors.Setter)] public static void SetStrokeDashOffset(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.StrokeDashoffset, value); @@ -3289,6 +3594,7 @@ public static void SetStrokeDashOffset(this ICssStyleDeclaration style, String v /// of open subpaths when they are stroked. /// [DomName("strokeLinecap")] + [DomName("stroke-linecap")] [DomAccessor(Accessors.Getter)] public static String GetStrokeLineCap(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.StrokeLinecap); @@ -3298,6 +3604,7 @@ public static String GetStrokeLineCap(this ICssStyleDeclaration style) => /// of open subpaths when they are stroked. /// [DomName("strokeLinecap")] + [DomName("stroke-linecap")] [DomAccessor(Accessors.Setter)] public static void SetStrokeLineCap(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.StrokeLinecap, value); @@ -3307,6 +3614,7 @@ public static void SetStrokeLineCap(this ICssStyleDeclaration style, String valu /// corners of paths or basic shapes when they are stroked. /// [DomName("strokeLinejoin")] + [DomName("stroke-linejoin")] [DomAccessor(Accessors.Getter)] public static String GetStrokeLineJoin(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.StrokeLinejoin); @@ -3316,6 +3624,7 @@ public static String GetStrokeLineJoin(this ICssStyleDeclaration style) => /// corners of paths or basic shapes when they are stroked. /// [DomName("strokeLinejoin")] + [DomName("stroke-linejoin")] [DomAccessor(Accessors.Setter)] public static void SetStrokeLineJoin(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.StrokeLinejoin, value); @@ -3326,6 +3635,7 @@ public static void SetStrokeLineJoin(this ICssStyleDeclaration style, String val /// property). /// [DomName("strokeMiterlimit")] + [DomName("stroke-miterlimit")] [DomAccessor(Accessors.Getter)] public static String GetStrokeMiterLimit(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.StrokeMiterlimit); @@ -3336,6 +3646,7 @@ public static String GetStrokeMiterLimit(this ICssStyleDeclaration style) => /// property). /// [DomName("strokeMiterlimit")] + [DomName("stroke-miterlimit")] [DomAccessor(Accessors.Setter)] public static void SetStrokeMiterLimit(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.StrokeMiterlimit, value); @@ -3345,6 +3656,7 @@ public static void SetStrokeMiterLimit(this ICssStyleDeclaration style, String v /// operation that is used to stroke the current object. /// [DomName("strokeOpacity")] + [DomName("stroke-opacity")] [DomAccessor(Accessors.Getter)] public static String GetStrokeOpacity(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.StrokeOpacity); @@ -3354,6 +3666,7 @@ public static String GetStrokeOpacity(this ICssStyleDeclaration style) => /// operation that is used to stroke the current object. /// [DomName("strokeOpacity")] + [DomName("stroke-opacity")] [DomAccessor(Accessors.Setter)] public static void SetStrokeOpacity(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.StrokeOpacity, value); @@ -3363,6 +3676,7 @@ public static void SetStrokeOpacity(this ICssStyleDeclaration style, String valu /// current object. /// [DomName("strokeWidth")] + [DomName("stroke-width")] [DomAccessor(Accessors.Getter)] public static String GetStrokeWidth(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.StrokeWidth); @@ -3372,6 +3686,7 @@ public static String GetStrokeWidth(this ICssStyleDeclaration style) => /// current object. /// [DomName("strokeWidth")] + [DomName("stroke-width")] [DomAccessor(Accessors.Setter)] public static void SetStrokeWidth(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.StrokeWidth, value); @@ -3381,6 +3696,7 @@ public static void SetStrokeWidth(this ICssStyleDeclaration style, String value) /// fixed. /// [DomName("tableLayout")] + [DomName("table-layout")] [DomAccessor(Accessors.Getter)] public static String GetTableLayout(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TableLayout); @@ -3390,6 +3706,7 @@ public static String GetTableLayout(this ICssStyleDeclaration style) => /// fixed. /// [DomName("tableLayout")] + [DomName("table-layout")] [DomAccessor(Accessors.Setter)] public static void SetTableLayout(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TableLayout, value); @@ -3399,6 +3716,7 @@ public static void SetTableLayout(this ICssStyleDeclaration style, String value) /// right-aligned, centered, or justified. /// [DomName("textAlign")] + [DomName("text-align")] [DomAccessor(Accessors.Getter)] public static String GetTextAlign(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TextAlign); @@ -3408,6 +3726,7 @@ public static String GetTextAlign(this ICssStyleDeclaration style) => /// right-aligned, centered, or justified. /// [DomName("textAlign")] + [DomName("text-align")] [DomAccessor(Accessors.Setter)] public static void SetTextAlign(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TextAlign, value); @@ -3418,6 +3737,7 @@ public static void SetTextAlign(this ICssStyleDeclaration style, String value) = /// only line of text in the specified object. /// [DomName("textAlignLast")] + [DomName("text-align-last")] [DomAccessor(Accessors.Getter)] public static String GetTextAlignLast(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TextAlignLast); @@ -3428,6 +3748,7 @@ public static String GetTextAlignLast(this ICssStyleDeclaration style) => /// only line of text in the specified object. /// [DomName("textAlignLast")] + [DomName("text-align-last")] [DomAccessor(Accessors.Setter)] public static void SetTextAlignLast(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TextAlignLast, value); @@ -3436,6 +3757,7 @@ public static void SetTextAlignLast(this ICssStyleDeclaration style, String valu /// Gets aligns a string of text relative to the specified point. /// [DomName("textAnchor")] + [DomName("text-anchor")] [DomAccessor(Accessors.Getter)] public static String GetTextAnchor(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TextAnchor); @@ -3444,6 +3766,7 @@ public static String GetTextAnchor(this ICssStyleDeclaration style) => /// Sets aligns a string of text relative to the specified point. /// [DomName("textAnchor")] + [DomName("text-anchor")] [DomAccessor(Accessors.Setter)] public static void SetTextAnchor(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TextAnchor, value); @@ -3453,6 +3776,7 @@ public static void SetTextAnchor(this ICssStyleDeclaration style, String value) /// text. /// [DomName("textAutospace")] + [DomName("text-autospace")] [DomAccessor(Accessors.Getter)] public static String GetTextAutospace(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TextAutospace); @@ -3462,6 +3786,7 @@ public static String GetTextAutospace(this ICssStyleDeclaration style) => /// text. /// [DomName("textAutospace")] + [DomName("text-autospace")] [DomAccessor(Accessors.Setter)] public static void SetTextAutospace(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TextAutospace, value); @@ -3471,6 +3796,7 @@ public static void SetTextAutospace(this ICssStyleDeclaration style, String valu /// has blink, line-through, overline, or underline decorations. /// [DomName("textDecoration")] + [DomName("text-decoration")] [DomAccessor(Accessors.Getter)] public static String GetTextDecoration(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TextDecoration); @@ -3480,6 +3806,7 @@ public static String GetTextDecoration(this ICssStyleDeclaration style) => /// has blink, line-through, overline, or underline decorations. /// [DomName("textDecoration")] + [DomName("text-decoration")] [DomAccessor(Accessors.Setter)] public static void SetTextDecoration(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TextDecoration, value); @@ -3488,6 +3815,7 @@ public static void SetTextDecoration(this ICssStyleDeclaration style, String val /// Gets a value that indicates the style of the text decoration. /// [DomName("textDecorationStyle")] + [DomName("text-decoration-style")] [DomAccessor(Accessors.Getter)] public static String GetTextDecorationStyle(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TextDecorationStyle); @@ -3496,6 +3824,7 @@ public static String GetTextDecorationStyle(this ICssStyleDeclaration style) => /// Sets a value that indicates the style of the text decoration. /// [DomName("textDecorationStyle")] + [DomName("text-decoration-style")] [DomAccessor(Accessors.Setter)] public static void SetTextDecorationStyle(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TextDecorationStyle, value); @@ -3504,6 +3833,7 @@ public static void SetTextDecorationStyle(this ICssStyleDeclaration style, Strin /// Gets a value that indicates the line of the text decoration. /// [DomName("textDecorationLine")] + [DomName("text-decoration-line")] [DomAccessor(Accessors.Getter)] public static String GetTextDecorationLine(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TextDecorationLine); @@ -3512,6 +3842,7 @@ public static String GetTextDecorationLine(this ICssStyleDeclaration style) => /// Sets a value that indicates the line of the text decoration. /// [DomName("textDecorationLine")] + [DomName("text-decoration-line")] [DomAccessor(Accessors.Setter)] public static void SetTextDecorationLine(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TextDecorationLine, value); @@ -3520,6 +3851,7 @@ public static void SetTextDecorationLine(this ICssStyleDeclaration style, String /// Gets a value that indicates the color of the text decoration. /// [DomName("textDecorationColor")] + [DomName("text-decoration-color")] [DomAccessor(Accessors.Getter)] public static String GetTextDecorationColor(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TextDecorationColor); @@ -3528,6 +3860,7 @@ public static String GetTextDecorationColor(this ICssStyleDeclaration style) => /// Sets a value that indicates the color of the text decoration. /// [DomName("textDecorationColor")] + [DomName("text-decoration-color")] [DomAccessor(Accessors.Setter)] public static void SetTextDecorationColor(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TextDecorationColor, value); @@ -3537,6 +3870,7 @@ public static void SetTextDecorationColor(this ICssStyleDeclaration style, Strin /// object. /// [DomName("textIndent")] + [DomName("text-indent")] [DomAccessor(Accessors.Getter)] public static String GetTextIndent(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TextIndent); @@ -3546,6 +3880,7 @@ public static String GetTextIndent(this ICssStyleDeclaration style) => /// object. /// [DomName("textIndent")] + [DomName("text-indent")] [DomAccessor(Accessors.Setter)] public static void SetTextIndent(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TextIndent, value); @@ -3555,6 +3890,7 @@ public static void SetTextIndent(this ICssStyleDeclaration style, String value) /// object. /// [DomName("textJustify")] + [DomName("text-justify")] [DomAccessor(Accessors.Getter)] public static String GetTextJustify(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TextJustify); @@ -3564,6 +3900,7 @@ public static String GetTextJustify(this ICssStyleDeclaration style) => /// object. /// [DomName("textJustify")] + [DomName("text-justify")] [DomAccessor(Accessors.Setter)] public static void SetTextJustify(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TextJustify, value); @@ -3573,6 +3910,7 @@ public static void SetTextJustify(this ICssStyleDeclaration style, String value) /// (...) to indicate text overflow. /// [DomName("textOverflow")] + [DomName("text-overflow")] [DomAccessor(Accessors.Getter)] public static String GetTextOverflow(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TextOverflow); @@ -3582,6 +3920,7 @@ public static String GetTextOverflow(this ICssStyleDeclaration style) => /// (...) to indicate text overflow. /// [DomName("textOverflow")] + [DomName("text-overflow")] [DomAccessor(Accessors.Setter)] public static void SetTextOverflow(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TextOverflow, value); @@ -3591,6 +3930,7 @@ public static void SetTextOverflow(this ICssStyleDeclaration style, String value /// more drop shadows to the specified text. /// [DomName("textShadow")] + [DomName("text-shadow")] [DomAccessor(Accessors.Getter)] public static String GetTextShadow(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TextShadow); @@ -3600,6 +3940,7 @@ public static String GetTextShadow(this ICssStyleDeclaration style) => /// more drop shadows to the specified text. /// [DomName("textShadow")] + [DomName("text-shadow")] [DomAccessor(Accessors.Setter)] public static void SetTextShadow(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TextShadow, value); @@ -3608,6 +3949,7 @@ public static void SetTextShadow(this ICssStyleDeclaration style, String value) /// Gets the rendering of the text in the object. /// [DomName("textTransform")] + [DomName("text-transform")] [DomAccessor(Accessors.Getter)] public static String GetTextTransform(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TextTransform); @@ -3616,6 +3958,7 @@ public static String GetTextTransform(this ICssStyleDeclaration style) => /// Sets the rendering of the text in the object. /// [DomName("textTransform")] + [DomName("text-transform")] [DomAccessor(Accessors.Setter)] public static void SetTextTransform(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TextTransform, value); @@ -3625,6 +3968,7 @@ public static void SetTextTransform(this ICssStyleDeclaration style, String valu /// through the text-decoration property of the object. /// [DomName("textUnderlinePosition")] + [DomName("text-underline-position")] [DomAccessor(Accessors.Getter)] public static String GetTextUnderlinePosition(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TextUnderlinePosition); @@ -3634,6 +3978,7 @@ public static String GetTextUnderlinePosition(this ICssStyleDeclaration style) = /// through the text-decoration property of the object. /// [DomName("textUnderlinePosition")] + [DomName("text-underline-position")] [DomAccessor(Accessors.Setter)] public static void SetTextUnderlinePosition(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TextUnderlinePosition, value); @@ -3679,6 +4024,7 @@ public static void SetTransform(this ICssStyleDeclaration style, String value) = /// transformation for an element. /// [DomName("transformOrigin")] + [DomName("transform-origin")] [DomAccessor(Accessors.Getter)] public static String GetTransformOrigin(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TransformOrigin); @@ -3688,6 +4034,7 @@ public static String GetTransformOrigin(this ICssStyleDeclaration style) => /// transformation for an element. /// [DomName("transformOrigin")] + [DomName("transform-origin")] [DomAccessor(Accessors.Setter)] public static void SetTransformOrigin(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TransformOrigin, value); @@ -3697,6 +4044,7 @@ public static void SetTransformOrigin(this ICssStyleDeclaration style, String va /// object are rendered in 3-D space. /// [DomName("transformStyle")] + [DomName("transform-style")] [DomAccessor(Accessors.Getter)] public static String GetTransformStyle(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TransformStyle); @@ -3706,6 +4054,7 @@ public static String GetTransformStyle(this ICssStyleDeclaration style) => /// object are rendered in 3-D space. /// [DomName("transformStyle")] + [DomName("transform-style")] [DomAccessor(Accessors.Setter)] public static void SetTransformStyle(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TransformStyle, value); @@ -3737,6 +4086,7 @@ public static void SetTransition(this ICssStyleDeclaration style, String value) /// object properties identified in the transition property. /// [DomName("transitionDelay")] + [DomName("transition-delay")] [DomAccessor(Accessors.Getter)] public static String GetTransitionDelay(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TransitionDelay); @@ -3748,6 +4098,7 @@ public static String GetTransitionDelay(this ICssStyleDeclaration style) => /// object properties identified in the transition property. /// [DomName("transitionDelay")] + [DomName("transition-delay")] [DomAccessor(Accessors.Setter)] public static void SetTransitionDelay(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TransitionDelay, value); @@ -3758,6 +4109,7 @@ public static void SetTransitionDelay(this ICssStyleDeclaration style, String va /// in the transition-property property. /// [DomName("transitionDuration")] + [DomName("transition-duration")] [DomAccessor(Accessors.Getter)] public static String GetTransitionDuration(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TransitionDuration); @@ -3768,6 +4120,7 @@ public static String GetTransitionDuration(this ICssStyleDeclaration style) => /// in the transition-property property. /// [DomName("transitionDuration")] + [DomName("transition-duration")] [DomAccessor(Accessors.Setter)] public static void SetTransitionDuration(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TransitionDuration, value); @@ -3779,6 +4132,7 @@ public static void SetTransitionDuration(this ICssStyleDeclaration style, String /// applied when a new property value is specified. /// [DomName("transitionProperty")] + [DomName("transition-property")] [DomAccessor(Accessors.Getter)] public static String GetTransitionProperty(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TransitionProperty); @@ -3790,6 +4144,7 @@ public static String GetTransitionProperty(this ICssStyleDeclaration style) => /// applied when a new property value is specified. /// [DomName("transitionProperty")] + [DomName("transition-property")] [DomAccessor(Accessors.Setter)] public static void SetTransitionProperty(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TransitionProperty, value); @@ -3801,6 +4156,7 @@ public static void SetTransitionProperty(this ICssStyleDeclaration style, String /// transition-property property. /// [DomName("transitionTimingFunction")] + [DomName("transition-timing-function")] [DomAccessor(Accessors.Getter)] public static String GetTransitionTimingFunction(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.TransitionTimingFunction); @@ -3812,6 +4168,7 @@ public static String GetTransitionTimingFunction(this ICssStyleDeclaration style /// transition-property property. /// [DomName("transitionTimingFunction")] + [DomName("transition-timing-function")] [DomAccessor(Accessors.Setter)] public static void SetTransitionTimingFunction(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.TransitionTimingFunction, value); @@ -3821,6 +4178,7 @@ public static void SetTransitionTimingFunction(this ICssStyleDeclaration style, /// bidirectional algorithm. /// [DomName("unicodeBidi")] + [DomName("unicode-bidi")] [DomAccessor(Accessors.Getter)] public static String GetUnicodeBidi(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.UnicodeBidi); @@ -3830,6 +4188,7 @@ public static String GetUnicodeBidi(this ICssStyleDeclaration style) => /// bidirectional algorithm. /// [DomName("unicodeBidi")] + [DomName("unicode-bidi")] [DomAccessor(Accessors.Setter)] public static void SetUnicodeBidi(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.UnicodeBidi, value); @@ -3838,6 +4197,7 @@ public static void SetUnicodeBidi(this ICssStyleDeclaration style, String value) /// Gets the vertical alignment of the object. /// [DomName("verticalAlign")] + [DomName("vertical-align")] [DomAccessor(Accessors.Getter)] public static String GetVerticalAlign(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.VerticalAlign); @@ -3846,6 +4206,7 @@ public static String GetVerticalAlign(this ICssStyleDeclaration style) => /// Sets the vertical alignment of the object. /// [DomName("verticalAlign")] + [DomName("vertical-align")] [DomAccessor(Accessors.Setter)] public static void SetVerticalAlign(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.VerticalAlign, value); @@ -3871,6 +4232,7 @@ public static void SetVisibility(this ICssStyleDeclaration style, String value) /// broken inside the object. /// [DomName("whiteSpace")] + [DomName("white-space")] [DomAccessor(Accessors.Getter)] public static String GetWhiteSpace(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.WhiteSpace); @@ -3880,6 +4242,7 @@ public static String GetWhiteSpace(this ICssStyleDeclaration style) => /// broken inside the object. /// [DomName("whiteSpace")] + [DomName("white-space")] [DomAccessor(Accessors.Setter)] public static void SetWhiteSpace(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.WhiteSpace, value); @@ -3923,6 +4286,7 @@ public static void SetWidth(this ICssStyleDeclaration style, String value) => /// where multiple languages appear in the object. /// [DomName("wordBreak")] + [DomName("word-break")] [DomAccessor(Accessors.Getter)] public static String GetWordBreak(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.WordBreak); @@ -3932,6 +4296,7 @@ public static String GetWordBreak(this ICssStyleDeclaration style) => /// where multiple languages appear in the object. /// [DomName("wordBreak")] + [DomName("word-break")] [DomAccessor(Accessors.Setter)] public static void SetWordBreak(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.WordBreak, value); @@ -3941,6 +4306,7 @@ public static void SetWordBreak(this ICssStyleDeclaration style, String value) = /// object. /// [DomName("wordSpacing")] + [DomName("word-spacing")] [DomAccessor(Accessors.Getter)] public static String GetWordSpacing(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.WordSpacing); @@ -3950,6 +4316,7 @@ public static String GetWordSpacing(this ICssStyleDeclaration style) => /// object. /// [DomName("wordSpacing")] + [DomName("word-spacing")] [DomAccessor(Accessors.Setter)] public static void SetWordSpacing(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.WordSpacing, value); @@ -3959,6 +4326,7 @@ public static void SetWordSpacing(this ICssStyleDeclaration style, String value) /// boundaries of its container. /// [DomName("wordWrap")] + [DomName("word-wrap")] [DomAccessor(Accessors.Getter)] public static String GetWordWrap(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.WordWrap); @@ -3968,6 +4336,7 @@ public static String GetWordWrap(this ICssStyleDeclaration style) => /// boundaries of its container. /// [DomName("wordWrap")] + [DomName("word-wrap")] [DomAccessor(Accessors.Setter)] public static void SetWordWrap(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.WordWrap, value); @@ -3976,6 +4345,7 @@ public static void SetWordWrap(this ICssStyleDeclaration style, String value) => /// Gets the overflow-wrap value. /// [DomName("overflowWrap")] + [DomName("overflow-wrap")] [DomAccessor(Accessors.Getter)] public static String GetOverflowWrap(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.OverflowWrap); @@ -3984,6 +4354,7 @@ public static String GetOverflowWrap(this ICssStyleDeclaration style) => /// Sets the overflow-wrap value. /// [DomName("overflowWrap")] + [DomName("overflow-wrap")] [DomAccessor(Accessors.Setter)] public static void SetOverflowWrap(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.OverflowWrap, value); @@ -3992,6 +4363,7 @@ public static void SetOverflowWrap(this ICssStyleDeclaration style, String value /// Gets the direction and flow of the content in the object. /// [DomName("writingMode")] + [DomName("writing-mode")] [DomAccessor(Accessors.Getter)] public static String GetWritingMode(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.WritingMode); @@ -4000,6 +4372,7 @@ public static String GetWritingMode(this ICssStyleDeclaration style) => /// Sets the direction and flow of the content in the object. /// [DomName("writingMode")] + [DomName("writing-mode")] [DomAccessor(Accessors.Setter)] public static void SetWritingMode(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.WritingMode, value); @@ -4008,6 +4381,7 @@ public static void SetWritingMode(this ICssStyleDeclaration style, String value) /// Gets the stacking order of positioned objects. /// [DomName("zIndex")] + [DomName("z-index")] [DomAccessor(Accessors.Getter)] public static String GetZIndex(this ICssStyleDeclaration style) => style.GetPropertyValue(PropertyNames.ZIndex); @@ -4016,6 +4390,7 @@ public static String GetZIndex(this ICssStyleDeclaration style) => /// Sets the stacking order of positioned objects. /// [DomName("zIndex")] + [DomName("z-index")] [DomAccessor(Accessors.Setter)] public static void SetZIndex(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.ZIndex, value); @@ -4035,5 +4410,3599 @@ public static String GetZoom(this ICssStyleDeclaration style) => [DomAccessor(Accessors.Setter)] public static void SetZoom(this ICssStyleDeclaration style, String value) => style.SetProperty(PropertyNames.Zoom, value); + + /// + /// Gets the value of aspect-ratio. + /// + [DomName("aspectRatio")] + [DomName("aspect-ratio")] + [DomAccessor(Accessors.Getter)] + public static String GetAspectRatio(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.AspectRatio); + + /// + /// Sets the value of aspect-ratio. + /// + [DomName("aspectRatio")] + [DomName("aspect-ratio")] + [DomAccessor(Accessors.Setter)] + public static void SetAspectRatio(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.AspectRatio, value); + + /// + /// Gets the value of animation-composition. + /// + [DomName("animationComposition")] + [DomName("animation-composition")] + [DomAccessor(Accessors.Getter)] + public static String GetAnimationComposition(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.AnimationComposition); + + /// + /// Sets the value of animation-composition. + /// + [DomName("animationComposition")] + [DomName("animation-composition")] + [DomAccessor(Accessors.Setter)] + public static void SetAnimationComposition(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.AnimationComposition, value); + + /// + /// Gets the value of accent-color. + /// + [DomName("accentColor")] + [DomName("accent-color")] + [DomAccessor(Accessors.Getter)] + public static String GetAccentColor(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.AccentColor); + + /// + /// Sets the value of accent-color. + /// + [DomName("accentColor")] + [DomName("accent-color")] + [DomAccessor(Accessors.Setter)] + public static void SetAccentColor(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.AccentColor, value); + + /// + /// Gets the value of appearance. + /// + [DomName("appearance")] + [DomAccessor(Accessors.Getter)] + public static String GetAppearance(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.Appearance); + + /// + /// Sets the value of appearance. + /// + [DomName("appearance")] + [DomAccessor(Accessors.Setter)] + public static void SetAppearance(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.Appearance, value); + + /// + /// Gets the value of background-blend-mode. + /// + [DomName("backgroundBlendMode")] + [DomName("background-blend-mode")] + [DomAccessor(Accessors.Getter)] + public static String GetBackgroundBlendMode(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BackgroundBlendMode); + + /// + /// Sets the value of background-blend-mode. + /// + [DomName("backgroundBlendMode")] + [DomName("background-blend-mode")] + [DomAccessor(Accessors.Setter)] + public static void SetBackgroundBlendMode(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BackgroundBlendMode, value); + + /// + /// Gets the value of backdrop-filter. + /// + [DomName("backdropFilter")] + [DomName("backdrop-filter")] + [DomAccessor(Accessors.Getter)] + public static String GetBackdropFilter(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BackdropFilter); + + /// + /// Sets the value of backdrop-filter. + /// + [DomName("backdropFilter")] + [DomName("backdrop-filter")] + [DomAccessor(Accessors.Setter)] + public static void SetBackdropFilter(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BackdropFilter, value); + + /// + /// Gets the value of box-decoration-break. + /// + [DomName("boxDecorationBreak")] + [DomName("box-decoration-break")] + [DomAccessor(Accessors.Getter)] + public static String GetBoxDecorationBreak(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BoxDecorationBreak); + + /// + /// Sets the value of box-decoration-break. + /// + [DomName("boxDecorationBreak")] + [DomName("box-decoration-break")] + [DomAccessor(Accessors.Setter)] + public static void SetBoxDecorationBreak(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BoxDecorationBreak, value); + + /// + /// Gets the value of border-block. + /// + [DomName("borderBlock")] + [DomName("border-block")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderBlock(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderBlock); + + /// + /// Sets the value of border-block. + /// + [DomName("borderBlock")] + [DomName("border-block")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderBlock(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderBlock, value); + + /// + /// Gets the value of border-block-start. + /// + [DomName("borderBlockStart")] + [DomName("border-block-start")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderBlockStart(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderBlockStart); + + /// + /// Sets the value of border-block-start. + /// + [DomName("borderBlockStart")] + [DomName("border-block-start")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderBlockStart(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderBlockStart, value); + + /// + /// Gets the value of border-block-end. + /// + [DomName("borderBlockEnd")] + [DomName("border-block-end")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderBlockEnd(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderBlockEnd); + + /// + /// Sets the value of border-block-end. + /// + [DomName("borderBlockEnd")] + [DomName("border-block-end")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderBlockEnd(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderBlockEnd, value); + + /// + /// Gets the value of border-block-color. + /// + [DomName("borderBlockColor")] + [DomName("border-block-color")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderBlockColor(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderBlockColor); + + /// + /// Sets the value of border-block-color. + /// + [DomName("borderBlockColor")] + [DomName("border-block-color")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderBlockColor(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderBlockColor, value); + + /// + /// Gets the value of border-block-style. + /// + [DomName("borderBlockStyle")] + [DomName("border-block-style")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderBlockStyle(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderBlockStyle); + + /// + /// Sets the value of border-block-style. + /// + [DomName("borderBlockStyle")] + [DomName("border-block-style")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderBlockStyle(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderBlockStyle, value); + + /// + /// Gets the value of border-block-width. + /// + [DomName("borderBlockWidth")] + [DomName("border-block-width")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderBlockWidth(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderBlockWidth); + + /// + /// Sets the value of border-block-width. + /// + [DomName("borderBlockWidth")] + [DomName("border-block-width")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderBlockWidth(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderBlockWidth, value); + + /// + /// Gets the value of border-block-start-color. + /// + [DomName("borderBlockStartColor")] + [DomName("border-block-start-color")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderBlockStartColor(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderBlockStartColor); + + /// + /// Sets the value of border-block-start-color. + /// + [DomName("borderBlockStartColor")] + [DomName("border-block-start-color")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderBlockStartColor(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderBlockStartColor, value); + + /// + /// Gets the value of border-block-start-style. + /// + [DomName("borderBlockStartStyle")] + [DomName("border-block-start-style")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderBlockStartStyle(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderBlockStartStyle); + + /// + /// Sets the value of border-block-start-style. + /// + [DomName("borderBlockStartStyle")] + [DomName("border-block-start-style")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderBlockStartStyle(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderBlockStartStyle, value); + + /// + /// Gets the value of border-block-start-width. + /// + [DomName("borderBlockStartWidth")] + [DomName("border-block-start-width")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderBlockStartWidth(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderBlockStartWidth); + + /// + /// Sets the value of border-block-start-width. + /// + [DomName("borderBlockStartWidth")] + [DomName("border-block-start-width")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderBlockStartWidth(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderBlockStartWidth, value); + + /// + /// Gets the value of border-block-end-color. + /// + [DomName("borderBlockEndColor")] + [DomName("border-block-end-color")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderBlockEndColor(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderBlockEndColor); + + /// + /// Sets the value of border-block-end-color. + /// + [DomName("borderBlockEndColor")] + [DomName("border-block-end-color")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderBlockEndColor(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderBlockEndColor, value); + + /// + /// Gets the value of border-block-end-style. + /// + [DomName("borderBlockEndStyle")] + [DomName("border-block-end-style")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderBlockEndStyle(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderBlockEndStyle); + + /// + /// Sets the value of border-block-end-style. + /// + [DomName("borderBlockEndStyle")] + [DomName("border-block-end-style")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderBlockEndStyle(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderBlockEndStyle, value); + + /// + /// Gets the value of border-block-end-width. + /// + [DomName("borderBlockEndWidth")] + [DomName("border-block-end-width")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderBlockEndWidth(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderBlockEndWidth); + + /// + /// Sets the value of border-block-end-width. + /// + [DomName("borderBlockEndWidth")] + [DomName("border-block-end-width")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderBlockEndWidth(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderBlockEndWidth, value); + + /// + /// Gets the value of border-inline. + /// + [DomName("borderInline")] + [DomName("border-inline")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderInline(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderInline); + + /// + /// Sets the value of border-inline. + /// + [DomName("borderInline")] + [DomName("border-inline")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderInline(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderInline, value); + + /// + /// Gets the value of border-inline-start. + /// + [DomName("borderInlineStart")] + [DomName("border-inline-start")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderInlineStart(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderInlineStart); + + /// + /// Sets the value of border-inline-start. + /// + [DomName("borderInlineStart")] + [DomName("border-inline-start")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderInlineStart(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderInlineStart, value); + + /// + /// Gets the value of border-inline-end. + /// + [DomName("borderInlineEnd")] + [DomName("border-inline-end")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderInlineEnd(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderInlineEnd); + + /// + /// Sets the value of border-inline-end. + /// + [DomName("borderInlineEnd")] + [DomName("border-inline-end")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderInlineEnd(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderInlineEnd, value); + + /// + /// Gets the value of border-inline-color. + /// + [DomName("borderInlineColor")] + [DomName("border-inline-color")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderInlineColor(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderInlineColor); + + /// + /// Sets the value of border-inline-color. + /// + [DomName("borderInlineColor")] + [DomName("border-inline-color")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderInlineColor(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderInlineColor, value); + + /// + /// Gets the value of border-inline-style. + /// + [DomName("borderInlineStyle")] + [DomName("border-inline-style")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderInlineStyle(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderInlineStyle); + + /// + /// Sets the value of border-inline-style. + /// + [DomName("borderInlineStyle")] + [DomName("border-inline-style")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderInlineStyle(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderInlineStyle, value); + + /// + /// Gets the value of border-inline-width. + /// + [DomName("borderInlineWidth")] + [DomName("border-inline-width")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderInlineWidth(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderInlineWidth); + + /// + /// Sets the value of border-inline-width. + /// + [DomName("borderInlineWidth")] + [DomName("border-inline-width")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderInlineWidth(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderInlineWidth, value); + + /// + /// Gets the value of border-inline-start-color. + /// + [DomName("borderInlineStartColor")] + [DomName("border-inline-start-color")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderInlineStartColor(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderInlineStartColor); + + /// + /// Sets the value of border-inline-start-color. + /// + [DomName("borderInlineStartColor")] + [DomName("border-inline-start-color")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderInlineStartColor(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderInlineStartColor, value); + + /// + /// Gets the value of border-inline-start-style. + /// + [DomName("borderInlineStartStyle")] + [DomName("border-inline-start-style")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderInlineStartStyle(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderInlineStartStyle); + + /// + /// Sets the value of border-inline-start-style. + /// + [DomName("borderInlineStartStyle")] + [DomName("border-inline-start-style")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderInlineStartStyle(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderInlineStartStyle, value); + + /// + /// Gets the value of border-inline-start-width. + /// + [DomName("borderInlineStartWidth")] + [DomName("border-inline-start-width")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderInlineStartWidth(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderInlineStartWidth); + + /// + /// Sets the value of border-inline-start-width. + /// + [DomName("borderInlineStartWidth")] + [DomName("border-inline-start-width")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderInlineStartWidth(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderInlineStartWidth, value); + + /// + /// Gets the value of border-inline-end-color. + /// + [DomName("borderInlineEndColor")] + [DomName("border-inline-end-color")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderInlineEndColor(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderInlineEndColor); + + /// + /// Sets the value of border-inline-end-color. + /// + [DomName("borderInlineEndColor")] + [DomName("border-inline-end-color")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderInlineEndColor(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderInlineEndColor, value); + + /// + /// Gets the value of border-inline-end-style. + /// + [DomName("borderInlineEndStyle")] + [DomName("border-inline-end-style")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderInlineEndStyle(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderInlineEndStyle); + + /// + /// Sets the value of border-inline-end-style. + /// + [DomName("borderInlineEndStyle")] + [DomName("border-inline-end-style")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderInlineEndStyle(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderInlineEndStyle, value); + + /// + /// Gets the value of border-inline-end-width. + /// + [DomName("borderInlineEndWidth")] + [DomName("border-inline-end-width")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderInlineEndWidth(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderInlineEndWidth); + + /// + /// Sets the value of border-inline-end-width. + /// + [DomName("borderInlineEndWidth")] + [DomName("border-inline-end-width")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderInlineEndWidth(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderInlineEndWidth, value); + + /// + /// Gets the value of border-start-start-radius. + /// + [DomName("borderStartStartRadius")] + [DomName("border-start-start-radius")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderStartStartRadius(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderStartStartRadius); + + /// + /// Sets the value of border-start-start-radius. + /// + [DomName("borderStartStartRadius")] + [DomName("border-start-start-radius")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderStartStartRadius(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderStartStartRadius, value); + + /// + /// Gets the value of border-start-end-radius. + /// + [DomName("borderStartEndRadius")] + [DomName("border-start-end-radius")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderStartEndRadius(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderStartEndRadius); + + /// + /// Sets the value of border-start-end-radius. + /// + [DomName("borderStartEndRadius")] + [DomName("border-start-end-radius")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderStartEndRadius(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderStartEndRadius, value); + + /// + /// Gets the value of border-end-start-radius. + /// + [DomName("borderEndStartRadius")] + [DomName("border-end-start-radius")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderEndStartRadius(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderEndStartRadius); + + /// + /// Sets the value of border-end-start-radius. + /// + [DomName("borderEndStartRadius")] + [DomName("border-end-start-radius")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderEndStartRadius(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderEndStartRadius, value); + + /// + /// Gets the value of border-end-end-radius. + /// + [DomName("borderEndEndRadius")] + [DomName("border-end-end-radius")] + [DomAccessor(Accessors.Getter)] + public static String GetBorderEndEndRadius(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BorderEndEndRadius); + + /// + /// Sets the value of border-end-end-radius. + /// + [DomName("borderEndEndRadius")] + [DomName("border-end-end-radius")] + [DomAccessor(Accessors.Setter)] + public static void SetBorderEndEndRadius(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BorderEndEndRadius, value); + + /// + /// Gets the value of block-size. + /// + [DomName("blockSize")] + [DomName("block-size")] + [DomAccessor(Accessors.Getter)] + public static String GetBlockSize(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.BlockSize); + + /// + /// Sets the value of block-size. + /// + [DomName("blockSize")] + [DomName("block-size")] + [DomAccessor(Accessors.Setter)] + public static void SetBlockSize(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.BlockSize, value); + + /// + /// Gets the value of row-gap. + /// + [DomName("rowGap")] + [DomName("row-gap")] + [DomAccessor(Accessors.Getter)] + public static String GetRowGap(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.RowGap); + + /// + /// Sets the value of row-gap. + /// + [DomName("rowGap")] + [DomName("row-gap")] + [DomAccessor(Accessors.Setter)] + public static void SetRowGap(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.RowGap, value); + + /// + /// Gets the value of gap. + /// + [DomName("gap")] + [DomAccessor(Accessors.Getter)] + public static String GetGap(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.Gap); + + /// + /// Sets the value of gap. + /// + [DomName("gap")] + [DomAccessor(Accessors.Setter)] + public static void SetGap(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.Gap, value); + + /// + /// Gets the value of caret-color. + /// + [DomName("caretColor")] + [DomName("caret-color")] + [DomAccessor(Accessors.Getter)] + public static String GetCaretColor(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.CaretColor); + + /// + /// Sets the value of caret-color. + /// + [DomName("caretColor")] + [DomName("caret-color")] + [DomAccessor(Accessors.Setter)] + public static void SetCaretColor(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.CaretColor, value); + + /// + /// Gets the value of color-scheme. + /// + [DomName("colorScheme")] + [DomName("color-scheme")] + [DomAccessor(Accessors.Getter)] + public static String GetColorScheme(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ColorScheme); + + /// + /// Sets the value of color-scheme. + /// + [DomName("colorScheme")] + [DomName("color-scheme")] + [DomAccessor(Accessors.Setter)] + public static void SetColorScheme(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ColorScheme, value); + + /// + /// Gets the value of container. + /// + [DomName("container")] + [DomAccessor(Accessors.Getter)] + public static String GetContainer(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.Container); + + /// + /// Sets the value of container. + /// + [DomName("container")] + [DomAccessor(Accessors.Setter)] + public static void SetContainer(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.Container, value); + + /// + /// Gets the value of container-name. + /// + [DomName("containerName")] + [DomName("container-name")] + [DomAccessor(Accessors.Getter)] + public static String GetContainerName(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ContainerName); + + /// + /// Sets the value of container-name. + /// + [DomName("containerName")] + [DomName("container-name")] + [DomAccessor(Accessors.Setter)] + public static void SetContainerName(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ContainerName, value); + + /// + /// Gets the value of container-type. + /// + [DomName("containerType")] + [DomName("container-type")] + [DomAccessor(Accessors.Getter)] + public static String GetContainerType(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ContainerType); + + /// + /// Sets the value of container-type. + /// + [DomName("containerType")] + [DomName("container-type")] + [DomAccessor(Accessors.Setter)] + public static void SetContainerType(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ContainerType, value); + + /// + /// Gets the value of contain. + /// + [DomName("contain")] + [DomAccessor(Accessors.Getter)] + public static String GetContain(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.Contain); + + /// + /// Sets the value of contain. + /// + [DomName("contain")] + [DomAccessor(Accessors.Setter)] + public static void SetContain(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.Contain, value); + + /// + /// Gets the value of contain-intrinsic-size. + /// + [DomName("containIntrinsicSize")] + [DomName("contain-intrinsic-size")] + [DomAccessor(Accessors.Getter)] + public static String GetContainIntrinsicSize(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ContainIntrinsicSize); + + /// + /// Sets the value of contain-intrinsic-size. + /// + [DomName("containIntrinsicSize")] + [DomName("contain-intrinsic-size")] + [DomAccessor(Accessors.Setter)] + public static void SetContainIntrinsicSize(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ContainIntrinsicSize, value); + + /// + /// Gets the value of contain-intrinsic-width. + /// + [DomName("containIntrinsicWidth")] + [DomName("contain-intrinsic-width")] + [DomAccessor(Accessors.Getter)] + public static String GetContainIntrinsicWidth(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ContainIntrinsicWidth); + + /// + /// Sets the value of contain-intrinsic-width. + /// + [DomName("containIntrinsicWidth")] + [DomName("contain-intrinsic-width")] + [DomAccessor(Accessors.Setter)] + public static void SetContainIntrinsicWidth(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ContainIntrinsicWidth, value); + + /// + /// Gets the value of contain-intrinsic-height. + /// + [DomName("containIntrinsicHeight")] + [DomName("contain-intrinsic-height")] + [DomAccessor(Accessors.Getter)] + public static String GetContainIntrinsicHeight(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ContainIntrinsicHeight); + + /// + /// Sets the value of contain-intrinsic-height. + /// + [DomName("containIntrinsicHeight")] + [DomName("contain-intrinsic-height")] + [DomAccessor(Accessors.Setter)] + public static void SetContainIntrinsicHeight(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ContainIntrinsicHeight, value); + + /// + /// Gets the value of contain-intrinsic-block-size. + /// + [DomName("containIntrinsicBlockSize")] + [DomName("contain-intrinsic-block-size")] + [DomAccessor(Accessors.Getter)] + public static String GetContainIntrinsicBlockSize(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ContainIntrinsicBlockSize); + + /// + /// Sets the value of contain-intrinsic-block-size. + /// + [DomName("containIntrinsicBlockSize")] + [DomName("contain-intrinsic-block-size")] + [DomAccessor(Accessors.Setter)] + public static void SetContainIntrinsicBlockSize(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ContainIntrinsicBlockSize, value); + + /// + /// Gets the value of contain-intrinsic-inline-size. + /// + [DomName("containIntrinsicInlineSize")] + [DomName("contain-intrinsic-inline-size")] + [DomAccessor(Accessors.Getter)] + public static String GetContainIntrinsicInlineSize(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ContainIntrinsicInlineSize); + + /// + /// Sets the value of contain-intrinsic-inline-size. + /// + [DomName("containIntrinsicInlineSize")] + [DomName("contain-intrinsic-inline-size")] + [DomAccessor(Accessors.Setter)] + public static void SetContainIntrinsicInlineSize(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ContainIntrinsicInlineSize, value); + + /// + /// Gets the value of content-visibility. + /// + [DomName("contentVisibility")] + [DomName("content-visibility")] + [DomAccessor(Accessors.Getter)] + public static String GetContentVisibility(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ContentVisibility); + + /// + /// Sets the value of content-visibility. + /// + [DomName("contentVisibility")] + [DomName("content-visibility")] + [DomAccessor(Accessors.Setter)] + public static void SetContentVisibility(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ContentVisibility, value); + + /// + /// Gets the value of counter-set. + /// + [DomName("counterSet")] + [DomName("counter-set")] + [DomAccessor(Accessors.Getter)] + public static String GetCounterSet(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.CounterSet); + + /// + /// Sets the value of counter-set. + /// + [DomName("counterSet")] + [DomName("counter-set")] + [DomAccessor(Accessors.Setter)] + public static void SetCounterSet(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.CounterSet, value); + + /// + /// Gets the value of forced-color-adjust. + /// + [DomName("forcedColorAdjust")] + [DomName("forced-color-adjust")] + [DomAccessor(Accessors.Getter)] + public static String GetForcedColorAdjust(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ForcedColorAdjust); + + /// + /// Sets the value of forced-color-adjust. + /// + [DomName("forcedColorAdjust")] + [DomName("forced-color-adjust")] + [DomAccessor(Accessors.Setter)] + public static void SetForcedColorAdjust(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ForcedColorAdjust, value); + + /// + /// Gets the value of font-variant-caps. + /// + [DomName("fontVariantCaps")] + [DomName("font-variant-caps")] + [DomAccessor(Accessors.Getter)] + public static String GetFontVariantCaps(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.FontVariantCaps); + + /// + /// Sets the value of font-variant-caps. + /// + [DomName("fontVariantCaps")] + [DomName("font-variant-caps")] + [DomAccessor(Accessors.Setter)] + public static void SetFontVariantCaps(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.FontVariantCaps, value); + + /// + /// Gets the value of font-variant-numeric. + /// + [DomName("fontVariantNumeric")] + [DomName("font-variant-numeric")] + [DomAccessor(Accessors.Getter)] + public static String GetFontVariantNumeric(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.FontVariantNumeric); + + /// + /// Sets the value of font-variant-numeric. + /// + [DomName("fontVariantNumeric")] + [DomName("font-variant-numeric")] + [DomAccessor(Accessors.Setter)] + public static void SetFontVariantNumeric(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.FontVariantNumeric, value); + + /// + /// Gets the value of font-variant-ligatures. + /// + [DomName("fontVariantLigatures")] + [DomName("font-variant-ligatures")] + [DomAccessor(Accessors.Getter)] + public static String GetFontVariantLigatures(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.FontVariantLigatures); + + /// + /// Sets the value of font-variant-ligatures. + /// + [DomName("fontVariantLigatures")] + [DomName("font-variant-ligatures")] + [DomAccessor(Accessors.Setter)] + public static void SetFontVariantLigatures(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.FontVariantLigatures, value); + + /// + /// Gets the value of font-variant-east-asian. + /// + [DomName("fontVariantEastAsian")] + [DomName("font-variant-east-asian")] + [DomAccessor(Accessors.Getter)] + public static String GetFontVariantEastAsian(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.FontVariantEastAsian); + + /// + /// Sets the value of font-variant-east-asian. + /// + [DomName("fontVariantEastAsian")] + [DomName("font-variant-east-asian")] + [DomAccessor(Accessors.Setter)] + public static void SetFontVariantEastAsian(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.FontVariantEastAsian, value); + + /// + /// Gets the value of font-kerning. + /// + [DomName("fontKerning")] + [DomName("font-kerning")] + [DomAccessor(Accessors.Getter)] + public static String GetFontKerning(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.FontKerning); + + /// + /// Sets the value of font-kerning. + /// + [DomName("fontKerning")] + [DomName("font-kerning")] + [DomAccessor(Accessors.Setter)] + public static void SetFontKerning(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.FontKerning, value); + + /// + /// Gets the value of font-language-override. + /// + [DomName("fontLanguageOverride")] + [DomName("font-language-override")] + [DomAccessor(Accessors.Getter)] + public static String GetFontLanguageOverride(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.FontLanguageOverride); + + /// + /// Sets the value of font-language-override. + /// + [DomName("fontLanguageOverride")] + [DomName("font-language-override")] + [DomAccessor(Accessors.Setter)] + public static void SetFontLanguageOverride(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.FontLanguageOverride, value); + + /// + /// Gets the value of font-optical-sizing. + /// + [DomName("fontOpticalSizing")] + [DomName("font-optical-sizing")] + [DomAccessor(Accessors.Getter)] + public static String GetFontOpticalSizing(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.FontOpticalSizing); + + /// + /// Sets the value of font-optical-sizing. + /// + [DomName("fontOpticalSizing")] + [DomName("font-optical-sizing")] + [DomAccessor(Accessors.Setter)] + public static void SetFontOpticalSizing(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.FontOpticalSizing, value); + + /// + /// Gets the value of font-palette. + /// + [DomName("fontPalette")] + [DomName("font-palette")] + [DomAccessor(Accessors.Getter)] + public static String GetFontPalette(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.FontPalette); + + /// + /// Sets the value of font-palette. + /// + [DomName("fontPalette")] + [DomName("font-palette")] + [DomAccessor(Accessors.Setter)] + public static void SetFontPalette(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.FontPalette, value); + + /// + /// Gets the value of font-synthesis. + /// + [DomName("fontSynthesis")] + [DomName("font-synthesis")] + [DomAccessor(Accessors.Getter)] + public static String GetFontSynthesis(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.FontSynthesis); + + /// + /// Sets the value of font-synthesis. + /// + [DomName("fontSynthesis")] + [DomName("font-synthesis")] + [DomAccessor(Accessors.Setter)] + public static void SetFontSynthesis(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.FontSynthesis, value); + + /// + /// Gets the value of font-synthesis-weight. + /// + [DomName("fontSynthesisWeight")] + [DomName("font-synthesis-weight")] + [DomAccessor(Accessors.Getter)] + public static String GetFontSynthesisWeight(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.FontSynthesisWeight); + + /// + /// Sets the value of font-synthesis-weight. + /// + [DomName("fontSynthesisWeight")] + [DomName("font-synthesis-weight")] + [DomAccessor(Accessors.Setter)] + public static void SetFontSynthesisWeight(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.FontSynthesisWeight, value); + + /// + /// Gets the value of font-synthesis-style. + /// + [DomName("fontSynthesisStyle")] + [DomName("font-synthesis-style")] + [DomAccessor(Accessors.Getter)] + public static String GetFontSynthesisStyle(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.FontSynthesisStyle); + + /// + /// Sets the value of font-synthesis-style. + /// + [DomName("fontSynthesisStyle")] + [DomName("font-synthesis-style")] + [DomAccessor(Accessors.Setter)] + public static void SetFontSynthesisStyle(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.FontSynthesisStyle, value); + + /// + /// Gets the value of font-synthesis-small-caps. + /// + [DomName("fontSynthesisSmallCaps")] + [DomName("font-synthesis-small-caps")] + [DomAccessor(Accessors.Getter)] + public static String GetFontSynthesisSmallCaps(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.FontSynthesisSmallCaps); + + /// + /// Sets the value of font-synthesis-small-caps. + /// + [DomName("fontSynthesisSmallCaps")] + [DomName("font-synthesis-small-caps")] + [DomAccessor(Accessors.Setter)] + public static void SetFontSynthesisSmallCaps(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.FontSynthesisSmallCaps, value); + + /// + /// Gets the value of font-variation-settings. + /// + [DomName("fontVariationSettings")] + [DomName("font-variation-settings")] + [DomAccessor(Accessors.Getter)] + public static String GetFontVariationSettings(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.FontVariationSettings); + + /// + /// Sets the value of font-variation-settings. + /// + [DomName("fontVariationSettings")] + [DomName("font-variation-settings")] + [DomAccessor(Accessors.Setter)] + public static void SetFontVariationSettings(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.FontVariationSettings, value); + + /// + /// Gets the value of hanging-punctuation. + /// + [DomName("hangingPunctuation")] + [DomName("hanging-punctuation")] + [DomAccessor(Accessors.Getter)] + public static String GetHangingPunctuation(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.HangingPunctuation); + + /// + /// Sets the value of hanging-punctuation. + /// + [DomName("hangingPunctuation")] + [DomName("hanging-punctuation")] + [DomAccessor(Accessors.Setter)] + public static void SetHangingPunctuation(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.HangingPunctuation, value); + + /// + /// Gets the value of hyphenate-character. + /// + [DomName("hyphenateCharacter")] + [DomName("hyphenate-character")] + [DomAccessor(Accessors.Getter)] + public static String GetHyphenateCharacter(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.HyphenateCharacter); + + /// + /// Sets the value of hyphenate-character. + /// + [DomName("hyphenateCharacter")] + [DomName("hyphenate-character")] + [DomAccessor(Accessors.Setter)] + public static void SetHyphenateCharacter(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.HyphenateCharacter, value); + + /// + /// Gets the value of hyphenate-limit-chars. + /// + [DomName("hyphenateLimitChars")] + [DomName("hyphenate-limit-chars")] + [DomAccessor(Accessors.Getter)] + public static String GetHypenatateLimitChars(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.HypenatateLimitChars); + + /// + /// Sets the value of hyphenate-limit-chars. + /// + [DomName("hyphenateLimitChars")] + [DomName("hyphenate-limit-chars")] + [DomAccessor(Accessors.Setter)] + public static void SetHypenatateLimitChars(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.HypenatateLimitChars, value); + + /// + /// Gets the value of hyphens. + /// + [DomName("hyphens")] + [DomAccessor(Accessors.Getter)] + public static String GetHyphens(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.Hyphens); + + /// + /// Sets the value of hyphens. + /// + [DomName("hyphens")] + [DomAccessor(Accessors.Setter)] + public static void SetHyphens(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.Hyphens, value); + + /// + /// Gets the value of initial-letter. + /// + [DomName("initialLetter")] + [DomName("initial-letter")] + [DomAccessor(Accessors.Getter)] + public static String GetInitialLetter(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.InitialLetter); + + /// + /// Sets the value of initial-letter. + /// + [DomName("initialLetter")] + [DomName("initial-letter")] + [DomAccessor(Accessors.Setter)] + public static void SetInitialLetter(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.InitialLetter, value); + + /// + /// Gets the value of initial-letter-align. + /// + [DomName("initialLetterAlign")] + [DomName("initial-letter-align")] + [DomAccessor(Accessors.Getter)] + public static String GetInitialLetterAlign(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.InitialLetterAlign); + + /// + /// Sets the value of initial-letter-align. + /// + [DomName("initialLetterAlign")] + [DomName("initial-letter-align")] + [DomAccessor(Accessors.Setter)] + public static void SetInitialLetterAlign(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.InitialLetterAlign, value); + + /// + /// Gets the value of image-orientation. + /// + [DomName("imageOrientation")] + [DomName("image-orientation")] + [DomAccessor(Accessors.Getter)] + public static String GetImageOrientation(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ImageOrientation); + + /// + /// Sets the value of image-orientation. + /// + [DomName("imageOrientation")] + [DomName("image-orientation")] + [DomAccessor(Accessors.Setter)] + public static void SetImageOrientation(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ImageOrientation, value); + + /// + /// Gets the value of image-rendering. + /// + [DomName("imageRendering")] + [DomName("image-rendering")] + [DomAccessor(Accessors.Getter)] + public static String GetImageRendering(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ImageRendering); + + /// + /// Sets the value of image-rendering. + /// + [DomName("imageRendering")] + [DomName("image-rendering")] + [DomAccessor(Accessors.Setter)] + public static void SetImageRendering(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ImageRendering, value); + + /// + /// Gets the value of inline-size. + /// + [DomName("inlineSize")] + [DomName("inline-size")] + [DomAccessor(Accessors.Getter)] + public static String GetInlineSize(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.InlineSize); + + /// + /// Sets the value of inline-size. + /// + [DomName("inlineSize")] + [DomName("inline-size")] + [DomAccessor(Accessors.Setter)] + public static void SetInlineSize(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.InlineSize, value); + + /// + /// Gets the value of isolation. + /// + [DomName("isolation")] + [DomAccessor(Accessors.Getter)] + public static String GetIsolation(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.Isolation); + + /// + /// Sets the value of isolation. + /// + [DomName("isolation")] + [DomAccessor(Accessors.Setter)] + public static void SetIsolation(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.Isolation, value); + + /// + /// Gets the value of inset. + /// + [DomName("inset")] + [DomAccessor(Accessors.Getter)] + public static String GetInset(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.Inset); + + /// + /// Sets the value of inset. + /// + [DomName("inset")] + [DomAccessor(Accessors.Setter)] + public static void SetInset(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.Inset, value); + + /// + /// Gets the value of inset-block. + /// + [DomName("insetBlock")] + [DomName("inset-block")] + [DomAccessor(Accessors.Getter)] + public static String GetInsetBlock(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.InsetBlock); + + /// + /// Sets the value of inset-block. + /// + [DomName("insetBlock")] + [DomName("inset-block")] + [DomAccessor(Accessors.Setter)] + public static void SetInsetBlock(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.InsetBlock, value); + + /// + /// Gets the value of inset-block-start. + /// + [DomName("insetBlockStart")] + [DomName("inset-block-start")] + [DomAccessor(Accessors.Getter)] + public static String GetInsetBlockStart(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.InsetBlockStart); + + /// + /// Sets the value of inset-block-start. + /// + [DomName("insetBlockStart")] + [DomName("inset-block-start")] + [DomAccessor(Accessors.Setter)] + public static void SetInsetBlockStart(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.InsetBlockStart, value); + + /// + /// Gets the value of inset-block-end. + /// + [DomName("insetBlockEnd")] + [DomName("inset-block-end")] + [DomAccessor(Accessors.Getter)] + public static String GetInsetBlockEnd(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.InsetBlockEnd); + + /// + /// Sets the value of inset-block-end. + /// + [DomName("insetBlockEnd")] + [DomName("inset-block-end")] + [DomAccessor(Accessors.Setter)] + public static void SetInsetBlockEnd(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.InsetBlockEnd, value); + + /// + /// Gets the value of inset-inline. + /// + [DomName("insetInline")] + [DomName("inset-inline")] + [DomAccessor(Accessors.Getter)] + public static String GetInsetInline(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.InsetInline); + + /// + /// Sets the value of inset-inline. + /// + [DomName("insetInline")] + [DomName("inset-inline")] + [DomAccessor(Accessors.Setter)] + public static void SetInsetInline(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.InsetInline, value); + + /// + /// Gets the value of inset-inline-start. + /// + [DomName("insetInlineStart")] + [DomName("inset-inline-start")] + [DomAccessor(Accessors.Getter)] + public static String GetInsetInlineStart(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.InsetInlineStart); + + /// + /// Sets the value of inset-inline-start. + /// + [DomName("insetInlineStart")] + [DomName("inset-inline-start")] + [DomAccessor(Accessors.Setter)] + public static void SetInsetInlineStart(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.InsetInlineStart, value); + + /// + /// Gets the value of inset-inline-end. + /// + [DomName("insetInlineEnd")] + [DomName("inset-inline-end")] + [DomAccessor(Accessors.Getter)] + public static String GetInsetInlineEnd(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.InsetInlineEnd); + + /// + /// Sets the value of inset-inline-end. + /// + [DomName("insetInlineEnd")] + [DomName("inset-inline-end")] + [DomAccessor(Accessors.Setter)] + public static void SetInsetInlineEnd(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.InsetInlineEnd, value); + + /// + /// Gets the value of justify-items. + /// + [DomName("justifyItems")] + [DomName("justify-items")] + [DomAccessor(Accessors.Getter)] + public static String GetJustifyItems(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.JustifyItems); + + /// + /// Sets the value of justify-items. + /// + [DomName("justifyItems")] + [DomName("justify-items")] + [DomAccessor(Accessors.Setter)] + public static void SetJustifyItems(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.JustifyItems, value); + + /// + /// Gets the value of justify-self. + /// + [DomName("justifySelf")] + [DomName("justify-self")] + [DomAccessor(Accessors.Getter)] + public static String GetJustifySelf(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.JustifySelf); + + /// + /// Sets the value of justify-self. + /// + [DomName("justifySelf")] + [DomName("justify-self")] + [DomAccessor(Accessors.Setter)] + public static void SetJustifySelf(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.JustifySelf, value); + + /// + /// Gets the value of grid-template-rows. + /// + [DomName("gridTemplateRows")] + [DomName("grid-template-rows")] + [DomAccessor(Accessors.Getter)] + public static String GetGridTemplateRows(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.GridTemplateRows); + + /// + /// Sets the value of grid-template-rows. + /// + [DomName("gridTemplateRows")] + [DomName("grid-template-rows")] + [DomAccessor(Accessors.Setter)] + public static void SetGridTemplateRows(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.GridTemplateRows, value); + + /// + /// Gets the value of grid-template-columns. + /// + [DomName("gridTemplateColumns")] + [DomName("grid-template-columns")] + [DomAccessor(Accessors.Getter)] + public static String GetGridTemplateColumns(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.GridTemplateColumns); + + /// + /// Sets the value of grid-template-columns. + /// + [DomName("gridTemplateColumns")] + [DomName("grid-template-columns")] + [DomAccessor(Accessors.Setter)] + public static void SetGridTemplateColumns(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.GridTemplateColumns, value); + + /// + /// Gets the value of grid-template-areas. + /// + [DomName("gridTemplateAreas")] + [DomName("grid-template-areas")] + [DomAccessor(Accessors.Getter)] + public static String GetGridTemplateAreas(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.GridTemplateAreas); + + /// + /// Sets the value of grid-template-areas. + /// + [DomName("gridTemplateAreas")] + [DomName("grid-template-areas")] + [DomAccessor(Accessors.Setter)] + public static void SetGridTemplateAreas(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.GridTemplateAreas, value); + + /// + /// Gets the value of grid-template. + /// + [DomName("gridTemplate")] + [DomName("grid-template")] + [DomAccessor(Accessors.Getter)] + public static String GetGridTemplate(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.GridTemplate); + + /// + /// Sets the value of grid-template. + /// + [DomName("gridTemplate")] + [DomName("grid-template")] + [DomAccessor(Accessors.Setter)] + public static void SetGridTemplate(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.GridTemplate, value); + + /// + /// Gets the value of grid-auto-columns. + /// + [DomName("gridAutoColumns")] + [DomName("grid-auto-columns")] + [DomAccessor(Accessors.Getter)] + public static String GetGridAutoColumns(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.GridAutoColumns); + + /// + /// Sets the value of grid-auto-columns. + /// + [DomName("gridAutoColumns")] + [DomName("grid-auto-columns")] + [DomAccessor(Accessors.Setter)] + public static void SetGridAutoColumns(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.GridAutoColumns, value); + + /// + /// Gets the value of grid-auto-rows. + /// + [DomName("gridAutoRows")] + [DomName("grid-auto-rows")] + [DomAccessor(Accessors.Getter)] + public static String GetGridAutoRows(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.GridAutoRows); + + /// + /// Sets the value of grid-auto-rows. + /// + [DomName("gridAutoRows")] + [DomName("grid-auto-rows")] + [DomAccessor(Accessors.Setter)] + public static void SetGridAutoRows(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.GridAutoRows, value); + + /// + /// Gets the value of grid-auto-flow. + /// + [DomName("gridAutoFlow")] + [DomName("grid-auto-flow")] + [DomAccessor(Accessors.Getter)] + public static String GetGridAutoFlow(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.GridAutoFlow); + + /// + /// Sets the value of grid-auto-flow. + /// + [DomName("gridAutoFlow")] + [DomName("grid-auto-flow")] + [DomAccessor(Accessors.Setter)] + public static void SetGridAutoFlow(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.GridAutoFlow, value); + + /// + /// Gets the value of grid. + /// + [DomName("grid")] + [DomAccessor(Accessors.Getter)] + public static String GetGrid(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.Grid); + + /// + /// Sets the value of grid. + /// + [DomName("grid")] + [DomAccessor(Accessors.Setter)] + public static void SetGrid(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.Grid, value); + + /// + /// Gets the value of grid-row-start. + /// + [DomName("gridRowStart")] + [DomName("grid-row-start")] + [DomAccessor(Accessors.Getter)] + public static String GetGridRowStart(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.GridRowStart); + + /// + /// Sets the value of grid-row-start. + /// + [DomName("gridRowStart")] + [DomName("grid-row-start")] + [DomAccessor(Accessors.Setter)] + public static void SetGridRowStart(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.GridRowStart, value); + + /// + /// Gets the value of grid-column-start. + /// + [DomName("gridColumnStart")] + [DomName("grid-column-start")] + [DomAccessor(Accessors.Getter)] + public static String GetGridColumnStart(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.GridColumnStart); + + /// + /// Sets the value of grid-column-start. + /// + [DomName("gridColumnStart")] + [DomName("grid-column-start")] + [DomAccessor(Accessors.Setter)] + public static void SetGridColumnStart(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.GridColumnStart, value); + + /// + /// Gets the value of grid-row-end. + /// + [DomName("gridRowEnd")] + [DomName("grid-row-end")] + [DomAccessor(Accessors.Getter)] + public static String GetGridRowEnd(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.GridRowEnd); + + /// + /// Sets the value of grid-row-end. + /// + [DomName("gridRowEnd")] + [DomName("grid-row-end")] + [DomAccessor(Accessors.Setter)] + public static void SetGridRowEnd(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.GridRowEnd, value); + + /// + /// Gets the value of grid-column-end. + /// + [DomName("gridColumnEnd")] + [DomName("grid-column-end")] + [DomAccessor(Accessors.Getter)] + public static String GetGridColumnEnd(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.GridColumnEnd); + + /// + /// Sets the value of grid-column-end. + /// + [DomName("gridColumnEnd")] + [DomName("grid-column-end")] + [DomAccessor(Accessors.Setter)] + public static void SetGridColumnEnd(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.GridColumnEnd, value); + + /// + /// Gets the value of grid-row. + /// + [DomName("gridRow")] + [DomName("grid-row")] + [DomAccessor(Accessors.Getter)] + public static String GetGridRow(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.GridRow); + + /// + /// Sets the value of grid-row. + /// + [DomName("gridRow")] + [DomName("grid-row")] + [DomAccessor(Accessors.Setter)] + public static void SetGridRow(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.GridRow, value); + + /// + /// Gets the value of grid-column. + /// + [DomName("gridColumn")] + [DomName("grid-column")] + [DomAccessor(Accessors.Getter)] + public static String GetGridColumn(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.GridColumn); + + /// + /// Sets the value of grid-column. + /// + [DomName("gridColumn")] + [DomName("grid-column")] + [DomAccessor(Accessors.Setter)] + public static void SetGridColumn(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.GridColumn, value); + + /// + /// Gets the value of grid-area. + /// + [DomName("gridArea")] + [DomName("grid-area")] + [DomAccessor(Accessors.Getter)] + public static String GetGridArea(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.GridArea); + + /// + /// Sets the value of grid-area. + /// + [DomName("gridArea")] + [DomName("grid-area")] + [DomAccessor(Accessors.Setter)] + public static void SetGridArea(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.GridArea, value); + + /// + /// Gets the value of grid-row-gap. + /// + [DomName("gridRowGap")] + [DomName("grid-row-gap")] + [DomAccessor(Accessors.Getter)] + public static String GetGridRowGap(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.GridRowGap); + + /// + /// Sets the value of grid-row-gap. + /// + [DomName("gridRowGap")] + [DomName("grid-row-gap")] + [DomAccessor(Accessors.Setter)] + public static void SetGridRowGap(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.GridRowGap, value); + + /// + /// Gets the value of grid-column-gap. + /// + [DomName("gridColumnGap")] + [DomName("grid-column-gap")] + [DomAccessor(Accessors.Getter)] + public static String GetGridColumnGap(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.GridColumnGap); + + /// + /// Sets the value of grid-column-gap. + /// + [DomName("gridColumnGap")] + [DomName("grid-column-gap")] + [DomAccessor(Accessors.Setter)] + public static void SetGridColumnGap(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.GridColumnGap, value); + + /// + /// Gets the value of grid-gap. + /// + [DomName("gridGap")] + [DomName("grid-gap")] + [DomAccessor(Accessors.Getter)] + public static String GetGridGap(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.GridGap); + + /// + /// Sets the value of grid-gap. + /// + [DomName("gridGap")] + [DomName("grid-gap")] + [DomAccessor(Accessors.Setter)] + public static void SetGridGap(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.GridGap, value); + + /// + /// Gets the value of line-break. + /// + [DomName("lineBreak")] + [DomName("line-break")] + [DomAccessor(Accessors.Getter)] + public static String GetLineBreak(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.LineBreak); + + /// + /// Sets the value of line-break. + /// + [DomName("lineBreak")] + [DomName("line-break")] + [DomAccessor(Accessors.Setter)] + public static void SetLineBreak(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.LineBreak, value); + + /// + /// Gets the value of margin-block. + /// + [DomName("marginBlock")] + [DomName("margin-block")] + [DomAccessor(Accessors.Getter)] + public static String GetMarginBlock(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MarginBlock); + + /// + /// Sets the value of margin-block. + /// + [DomName("marginBlock")] + [DomName("margin-block")] + [DomAccessor(Accessors.Setter)] + public static void SetMarginBlock(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MarginBlock, value); + + /// + /// Gets the value of margin-block-end. + /// + [DomName("marginBlockEnd")] + [DomName("margin-block-end")] + [DomAccessor(Accessors.Getter)] + public static String GetMarginBlockEnd(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MarginBlockEnd); + + /// + /// Sets the value of margin-block-end. + /// + [DomName("marginBlockEnd")] + [DomName("margin-block-end")] + [DomAccessor(Accessors.Setter)] + public static void SetMarginBlockEnd(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MarginBlockEnd, value); + + /// + /// Gets the value of margin-block-start. + /// + [DomName("marginBlockStart")] + [DomName("margin-block-start")] + [DomAccessor(Accessors.Getter)] + public static String GetMarginBlockStart(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MarginBlockStart); + + /// + /// Sets the value of margin-block-start. + /// + [DomName("marginBlockStart")] + [DomName("margin-block-start")] + [DomAccessor(Accessors.Setter)] + public static void SetMarginBlockStart(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MarginBlockStart, value); + + /// + /// Gets the value of margin-inline. + /// + [DomName("marginInline")] + [DomName("margin-inline")] + [DomAccessor(Accessors.Getter)] + public static String GetMarginInline(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MarginInline); + + /// + /// Sets the value of margin-inline. + /// + [DomName("marginInline")] + [DomName("margin-inline")] + [DomAccessor(Accessors.Setter)] + public static void SetMarginInline(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MarginInline, value); + + /// + /// Gets the value of margin-inline-end. + /// + [DomName("marginInlineEnd")] + [DomName("margin-inline-end")] + [DomAccessor(Accessors.Getter)] + public static String GetMarginInlineEnd(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MarginInlineEnd); + + /// + /// Sets the value of margin-inline-end. + /// + [DomName("marginInlineEnd")] + [DomName("margin-inline-end")] + [DomAccessor(Accessors.Setter)] + public static void SetMarginInlineEnd(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MarginInlineEnd, value); + + /// + /// Gets the value of margin-inline-start. + /// + [DomName("marginInlineStart")] + [DomName("margin-inline-start")] + [DomAccessor(Accessors.Getter)] + public static String GetMarginInlineStart(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MarginInlineStart); + + /// + /// Sets the value of margin-inline-start. + /// + [DomName("marginInlineStart")] + [DomName("margin-inline-start")] + [DomAccessor(Accessors.Setter)] + public static void SetMarginInlineStart(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MarginInlineStart, value); + + /// + /// Gets the value of mix-blend-mode. + /// + [DomName("mixBlendMode")] + [DomName("mix-blend-mode")] + [DomAccessor(Accessors.Getter)] + public static String GetMixBlendMode(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MixBlendMode); + + /// + /// Sets the value of mix-blend-mode. + /// + [DomName("mixBlendMode")] + [DomName("mix-blend-mode")] + [DomAccessor(Accessors.Setter)] + public static void SetMixBlendMode(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MixBlendMode, value); + + /// + /// Gets the value of mask-border. + /// + [DomName("maskBorder")] + [DomName("mask-border")] + [DomAccessor(Accessors.Getter)] + public static String GetMaskBorder(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MaskBorder); + + /// + /// Sets the value of mask-border. + /// + [DomName("maskBorder")] + [DomName("mask-border")] + [DomAccessor(Accessors.Setter)] + public static void SetMaskBorder(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MaskBorder, value); + + /// + /// Gets the value of mask-border-mode. + /// + [DomName("maskBorderMode")] + [DomName("mask-border-mode")] + [DomAccessor(Accessors.Getter)] + public static String GetMaskBorderMode(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MaskBorderMode); + + /// + /// Sets the value of mask-border-mode. + /// + [DomName("maskBorderMode")] + [DomName("mask-border-mode")] + [DomAccessor(Accessors.Setter)] + public static void SetMaskBorderMode(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MaskBorderMode, value); + + /// + /// Gets the value of mask-border-outset. + /// + [DomName("maskBorderOutset")] + [DomName("mask-border-outset")] + [DomAccessor(Accessors.Getter)] + public static String GetMaskBorderOutset(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MaskBorderOutset); + + /// + /// Sets the value of mask-border-outset. + /// + [DomName("maskBorderOutset")] + [DomName("mask-border-outset")] + [DomAccessor(Accessors.Setter)] + public static void SetMaskBorderOutset(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MaskBorderOutset, value); + + /// + /// Gets the value of mask-border-repeat. + /// + [DomName("maskBorderRepeat")] + [DomName("mask-border-repeat")] + [DomAccessor(Accessors.Getter)] + public static String GetMaskBorderRepeat(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MaskBorderRepeat); + + /// + /// Sets the value of mask-border-repeat. + /// + [DomName("maskBorderRepeat")] + [DomName("mask-border-repeat")] + [DomAccessor(Accessors.Setter)] + public static void SetMaskBorderRepeat(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MaskBorderRepeat, value); + + /// + /// Gets the value of mask-border-slice. + /// + [DomName("maskBorderSlice")] + [DomName("mask-border-slice")] + [DomAccessor(Accessors.Getter)] + public static String GetMaskBorderSlice(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MaskBorderSlice); + + /// + /// Sets the value of mask-border-slice. + /// + [DomName("maskBorderSlice")] + [DomName("mask-border-slice")] + [DomAccessor(Accessors.Setter)] + public static void SetMaskBorderSlice(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MaskBorderSlice, value); + + /// + /// Gets the value of mask-border-source. + /// + [DomName("maskBorderSource")] + [DomName("mask-border-source")] + [DomAccessor(Accessors.Getter)] + public static String GetMaskBorderSource(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MaskBorderSource); + + /// + /// Sets the value of mask-border-source. + /// + [DomName("maskBorderSource")] + [DomName("mask-border-source")] + [DomAccessor(Accessors.Setter)] + public static void SetMaskBorderSource(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MaskBorderSource, value); + + /// + /// Gets the value of mask-border-width. + /// + [DomName("maskBorderWidth")] + [DomName("mask-border-width")] + [DomAccessor(Accessors.Getter)] + public static String GetMaskBorderWidth(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MaskBorderWidth); + + /// + /// Sets the value of mask-border-width. + /// + [DomName("maskBorderWidth")] + [DomName("mask-border-width")] + [DomAccessor(Accessors.Setter)] + public static void SetMaskBorderWidth(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MaskBorderWidth, value); + + /// + /// Gets the value of mask-clip. + /// + [DomName("maskClip")] + [DomName("mask-clip")] + [DomAccessor(Accessors.Getter)] + public static String GetMaskClip(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MaskClip); + + /// + /// Sets the value of mask-clip. + /// + [DomName("maskClip")] + [DomName("mask-clip")] + [DomAccessor(Accessors.Setter)] + public static void SetMaskClip(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MaskClip, value); + + /// + /// Gets the value of mask-composite. + /// + [DomName("maskComposite")] + [DomName("mask-composite")] + [DomAccessor(Accessors.Getter)] + public static String GetMaskComposite(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MaskComposite); + + /// + /// Sets the value of mask-composite. + /// + [DomName("maskComposite")] + [DomName("mask-composite")] + [DomAccessor(Accessors.Setter)] + public static void SetMaskComposite(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MaskComposite, value); + + /// + /// Gets the value of mask-image. + /// + [DomName("maskImage")] + [DomName("mask-image")] + [DomAccessor(Accessors.Getter)] + public static String GetMaskImage(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MaskImage); + + /// + /// Sets the value of mask-image. + /// + [DomName("maskImage")] + [DomName("mask-image")] + [DomAccessor(Accessors.Setter)] + public static void SetMaskImage(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MaskImage, value); + + /// + /// Gets the value of mask-mode. + /// + [DomName("maskMode")] + [DomName("mask-mode")] + [DomAccessor(Accessors.Getter)] + public static String GetMaskMode(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MaskMode); + + /// + /// Sets the value of mask-mode. + /// + [DomName("maskMode")] + [DomName("mask-mode")] + [DomAccessor(Accessors.Setter)] + public static void SetMaskMode(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MaskMode, value); + + /// + /// Gets the value of mask-origin. + /// + [DomName("maskOrigin")] + [DomName("mask-origin")] + [DomAccessor(Accessors.Getter)] + public static String GetMaskOrigin(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MaskOrigin); + + /// + /// Sets the value of mask-origin. + /// + [DomName("maskOrigin")] + [DomName("mask-origin")] + [DomAccessor(Accessors.Setter)] + public static void SetMaskOrigin(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MaskOrigin, value); + + /// + /// Gets the value of mask-position. + /// + [DomName("maskPosition")] + [DomName("mask-position")] + [DomAccessor(Accessors.Getter)] + public static String GetMaskPosition(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MaskPosition); + + /// + /// Sets the value of mask-position. + /// + [DomName("maskPosition")] + [DomName("mask-position")] + [DomAccessor(Accessors.Setter)] + public static void SetMaskPosition(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MaskPosition, value); + + /// + /// Gets the value of mask-repeat. + /// + [DomName("maskRepeat")] + [DomName("mask-repeat")] + [DomAccessor(Accessors.Getter)] + public static String GetMaskRepeat(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MaskRepeat); + + /// + /// Sets the value of mask-repeat. + /// + [DomName("maskRepeat")] + [DomName("mask-repeat")] + [DomAccessor(Accessors.Setter)] + public static void SetMaskRepeat(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MaskRepeat, value); + + /// + /// Gets the value of mask-size. + /// + [DomName("maskSize")] + [DomName("mask-size")] + [DomAccessor(Accessors.Getter)] + public static String GetMaskSize(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MaskSize); + + /// + /// Sets the value of mask-size. + /// + [DomName("maskSize")] + [DomName("mask-size")] + [DomAccessor(Accessors.Setter)] + public static void SetMaskSize(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MaskSize, value); + + /// + /// Gets the value of mask-type. + /// + [DomName("maskType")] + [DomName("mask-type")] + [DomAccessor(Accessors.Getter)] + public static String GetMaskType(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MaskType); + + /// + /// Sets the value of mask-type. + /// + [DomName("maskType")] + [DomName("mask-type")] + [DomAccessor(Accessors.Setter)] + public static void SetMaskType(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MaskType, value); + + /// + /// Gets the value of max-block-size. + /// + [DomName("maxBlockSize")] + [DomName("max-block-size")] + [DomAccessor(Accessors.Getter)] + public static String GetMaxBlockSize(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MaxBlockSize); + + /// + /// Sets the value of max-block-size. + /// + [DomName("maxBlockSize")] + [DomName("max-block-size")] + [DomAccessor(Accessors.Setter)] + public static void SetMaxBlockSize(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MaxBlockSize, value); + + /// + /// Gets the value of max-inline-size. + /// + [DomName("maxInlineSize")] + [DomName("max-inline-size")] + [DomAccessor(Accessors.Getter)] + public static String GetMaxInlineSize(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MaxInlineSize); + + /// + /// Sets the value of max-inline-size. + /// + [DomName("maxInlineSize")] + [DomName("max-inline-size")] + [DomAccessor(Accessors.Setter)] + public static void SetMaxInlineSize(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MaxInlineSize, value); + + /// + /// Gets the value of min-block-size. + /// + [DomName("minBlockSize")] + [DomName("min-block-size")] + [DomAccessor(Accessors.Getter)] + public static String GetMinBlockSize(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MinBlockSize); + + /// + /// Sets the value of min-block-size. + /// + [DomName("minBlockSize")] + [DomName("min-block-size")] + [DomAccessor(Accessors.Setter)] + public static void SetMinBlockSize(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MinBlockSize, value); + + /// + /// Gets the value of min-inline-size. + /// + [DomName("minInlineSize")] + [DomName("min-inline-size")] + [DomAccessor(Accessors.Getter)] + public static String GetMinInlineSize(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.MinInlineSize); + + /// + /// Sets the value of min-inline-size. + /// + [DomName("minInlineSize")] + [DomName("min-inline-size")] + [DomAccessor(Accessors.Setter)] + public static void SetMinInlineSize(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.MinInlineSize, value); + + /// + /// Gets the value of outline-offset. + /// + [DomName("outlineOffset")] + [DomName("outline-offset")] + [DomAccessor(Accessors.Getter)] + public static String GetOutlineOffset(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.OutlineOffset); + + /// + /// Sets the value of outline-offset. + /// + [DomName("outlineOffset")] + [DomName("outline-offset")] + [DomAccessor(Accessors.Setter)] + public static void SetOutlineOffset(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.OutlineOffset, value); + + /// + /// Gets the value of overflow-clip-margin. + /// + [DomName("overflowClipMargin")] + [DomName("overflow-clip-margin")] + [DomAccessor(Accessors.Getter)] + public static String GetOverflowClipMargin(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.OverflowClipMargin); + + /// + /// Sets the value of overflow-clip-margin. + /// + [DomName("overflowClipMargin")] + [DomName("overflow-clip-margin")] + [DomAccessor(Accessors.Setter)] + public static void SetOverflowClipMargin(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.OverflowClipMargin, value); + + /// + /// Gets the value of overflow-anchor. + /// + [DomName("overflowAnchor")] + [DomName("overflow-anchor")] + [DomAccessor(Accessors.Getter)] + public static String GetOverflowAnchor(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.OverflowAnchor); + + /// + /// Sets the value of overflow-anchor. + /// + [DomName("overflowAnchor")] + [DomName("overflow-anchor")] + [DomAccessor(Accessors.Setter)] + public static void SetOverflowAnchor(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.OverflowAnchor, value); + + /// + /// Gets the value of padding-block. + /// + [DomName("paddingBlock")] + [DomName("padding-block")] + [DomAccessor(Accessors.Getter)] + public static String GetPaddingBlock(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.PaddingBlock); + + /// + /// Sets the value of padding-block. + /// + [DomName("paddingBlock")] + [DomName("padding-block")] + [DomAccessor(Accessors.Setter)] + public static void SetPaddingBlock(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.PaddingBlock, value); + + /// + /// Gets the value of padding-block-end. + /// + [DomName("paddingBlockEnd")] + [DomName("padding-block-end")] + [DomAccessor(Accessors.Getter)] + public static String GetPaddingBlockEnd(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.PaddingBlockEnd); + + /// + /// Sets the value of padding-block-end. + /// + [DomName("paddingBlockEnd")] + [DomName("padding-block-end")] + [DomAccessor(Accessors.Setter)] + public static void SetPaddingBlockEnd(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.PaddingBlockEnd, value); + + /// + /// Gets the value of padding-block-start. + /// + [DomName("paddingBlockStart")] + [DomName("padding-block-start")] + [DomAccessor(Accessors.Getter)] + public static String GetPaddingBlockStart(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.PaddingBlockStart); + + /// + /// Sets the value of padding-block-start. + /// + [DomName("paddingBlockStart")] + [DomName("padding-block-start")] + [DomAccessor(Accessors.Setter)] + public static void SetPaddingBlockStart(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.PaddingBlockStart, value); + + /// + /// Gets the value of padding-inline. + /// + [DomName("paddingInline")] + [DomName("padding-inline")] + [DomAccessor(Accessors.Getter)] + public static String GetPaddingInline(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.PaddingInline); + + /// + /// Sets the value of padding-inline. + /// + [DomName("paddingInline")] + [DomName("padding-inline")] + [DomAccessor(Accessors.Setter)] + public static void SetPaddingInline(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.PaddingInline, value); + + /// + /// Gets the value of padding-inline-end. + /// + [DomName("paddingInlineEnd")] + [DomName("padding-inline-end")] + [DomAccessor(Accessors.Getter)] + public static String GetPaddingInlineEnd(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.PaddingInlineEnd); + + /// + /// Sets the value of padding-inline-end. + /// + [DomName("paddingInlineEnd")] + [DomName("padding-inline-end")] + [DomAccessor(Accessors.Setter)] + public static void SetPaddingInlineEnd(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.PaddingInlineEnd, value); + + /// + /// Gets the value of padding-inline-start. + /// + [DomName("paddingInlineStart")] + [DomName("padding-inline-start")] + [DomAccessor(Accessors.Getter)] + public static String GetPaddingInlineStart(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.PaddingInlineStart); + + /// + /// Sets the value of padding-inline-start. + /// + [DomName("paddingInlineStart")] + [DomName("padding-inline-start")] + [DomAccessor(Accessors.Setter)] + public static void SetPaddingInlineStart(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.PaddingInlineStart, value); + + /// + /// Gets the value of place-content. + /// + [DomName("placeContent")] + [DomName("place-content")] + [DomAccessor(Accessors.Getter)] + public static String GetPlaceContent(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.PlaceContent); + + /// + /// Sets the value of place-content. + /// + [DomName("placeContent")] + [DomName("place-content")] + [DomAccessor(Accessors.Setter)] + public static void SetPlaceContent(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.PlaceContent, value); + + /// + /// Gets the value of place-items. + /// + [DomName("placeItems")] + [DomName("place-items")] + [DomAccessor(Accessors.Getter)] + public static String GetPlaceItems(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.PlaceItems); + + /// + /// Sets the value of place-items. + /// + [DomName("placeItems")] + [DomName("place-items")] + [DomAccessor(Accessors.Setter)] + public static void SetPlaceItems(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.PlaceItems, value); + + /// + /// Gets the value of place-self. + /// + [DomName("placeSelf")] + [DomName("place-self")] + [DomAccessor(Accessors.Getter)] + public static String GetPlaceSelf(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.PlaceSelf); + + /// + /// Sets the value of place-self. + /// + [DomName("placeSelf")] + [DomName("place-self")] + [DomAccessor(Accessors.Setter)] + public static void SetPlaceSelf(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.PlaceSelf, value); + + /// + /// Gets the value of print-color-adjust. + /// + [DomName("printColorAdjust")] + [DomName("print-color-adjust")] + [DomAccessor(Accessors.Getter)] + public static String GetPrintColorAdjust(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.PrintColorAdjust); + + /// + /// Sets the value of print-color-adjust. + /// + [DomName("printColorAdjust")] + [DomName("print-color-adjust")] + [DomAccessor(Accessors.Setter)] + public static void SetPrintColorAdjust(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.PrintColorAdjust, value); + + /// + /// Gets the value of resize. + /// + [DomName("resize")] + [DomAccessor(Accessors.Getter)] + public static String GetResize(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.Resize); + + /// + /// Sets the value of resize. + /// + [DomName("resize")] + [DomAccessor(Accessors.Setter)] + public static void SetResize(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.Resize, value); + + /// + /// Gets the value of rotate. + /// + [DomName("rotate")] + [DomAccessor(Accessors.Getter)] + public static String GetRotate(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.Rotate); + + /// + /// Sets the value of rotate. + /// + [DomName("rotate")] + [DomAccessor(Accessors.Setter)] + public static void SetRotate(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.Rotate, value); + + /// + /// Gets the value of scale. + /// + [DomName("scale")] + [DomAccessor(Accessors.Getter)] + public static String GetScale(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.Scale); + + /// + /// Sets the value of scale. + /// + [DomName("scale")] + [DomAccessor(Accessors.Setter)] + public static void SetScale(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.Scale, value); + + /// + /// Gets the value of scrollbar-width. + /// + [DomName("scrollbarWidth")] + [DomName("scrollbar-width")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollbarWidth(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollbarWidth); + + /// + /// Sets the value of scrollbar-width. + /// + [DomName("scrollbarWidth")] + [DomName("scrollbar-width")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollbarWidth(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollbarWidth, value); + + /// + /// Gets the value of scrollbar-color. + /// + [DomName("scrollbarColor")] + [DomName("scrollbar-color")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollbarColor(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollbarColor); + + /// + /// Sets the value of scrollbar-color. + /// + [DomName("scrollbarColor")] + [DomName("scrollbar-color")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollbarColor(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollbarColor, value); + + /// + /// Gets the value of scrollbar-gutter. + /// + [DomName("scrollbarGutter")] + [DomName("scrollbar-gutter")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollbarGutter(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollbarGutter); + + /// + /// Sets the value of scrollbar-gutter. + /// + [DomName("scrollbarGutter")] + [DomName("scrollbar-gutter")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollbarGutter(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollbarGutter, value); + + /// + /// Gets the value of scroll-behavior. + /// + [DomName("scrollBehavior")] + [DomName("scroll-behavior")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollBehavior(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollBehavior); + + /// + /// Sets the value of scroll-behavior. + /// + [DomName("scrollBehavior")] + [DomName("scroll-behavior")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollBehavior(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollBehavior, value); + + /// + /// Gets the value of scroll-snap-stop. + /// + [DomName("scrollSnapStop")] + [DomName("scroll-snap-stop")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollSnapStop(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollSnapStop); + + /// + /// Sets the value of scroll-snap-stop. + /// + [DomName("scrollSnapStop")] + [DomName("scroll-snap-stop")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollSnapStop(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollSnapStop, value); + + /// + /// Gets the value of scroll-snap-type. + /// + [DomName("scrollSnapType")] + [DomName("scroll-snap-type")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollSnapType(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollSnapType); + + /// + /// Sets the value of scroll-snap-type. + /// + [DomName("scrollSnapType")] + [DomName("scroll-snap-type")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollSnapType(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollSnapType, value); + + /// + /// Gets the value of scroll-margin. + /// + [DomName("scrollMargin")] + [DomName("scroll-margin")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollMargin(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollMargin); + + /// + /// Sets the value of scroll-margin. + /// + [DomName("scrollMargin")] + [DomName("scroll-margin")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollMargin(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollMargin, value); + + /// + /// Gets the value of scroll-margin-top. + /// + [DomName("scrollMarginTop")] + [DomName("scroll-margin-top")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollMarginTop(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollMarginTop); + + /// + /// Sets the value of scroll-margin-top. + /// + [DomName("scrollMarginTop")] + [DomName("scroll-margin-top")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollMarginTop(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollMarginTop, value); + + /// + /// Gets the value of scroll-margin-right. + /// + [DomName("scrollMarginRight")] + [DomName("scroll-margin-right")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollMarginRight(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollMarginRight); + + /// + /// Sets the value of scroll-margin-right. + /// + [DomName("scrollMarginRight")] + [DomName("scroll-margin-right")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollMarginRight(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollMarginRight, value); + + /// + /// Gets the value of scroll-margin-bottom. + /// + [DomName("scrollMarginBottom")] + [DomName("scroll-margin-bottom")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollMarginBottom(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollMarginBottom); + + /// + /// Sets the value of scroll-margin-bottom. + /// + [DomName("scrollMarginBottom")] + [DomName("scroll-margin-bottom")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollMarginBottom(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollMarginBottom, value); + + /// + /// Gets the value of scroll-margin-left. + /// + [DomName("scrollMarginLeft")] + [DomName("scroll-margin-left")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollMarginLeft(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollMarginLeft); + + /// + /// Sets the value of scroll-margin-left. + /// + [DomName("scrollMarginLeft")] + [DomName("scroll-margin-left")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollMarginLeft(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollMarginLeft, value); + + /// + /// Gets the value of scroll-margin-block. + /// + [DomName("scrollMarginBlock")] + [DomName("scroll-margin-block")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollMarginBlock(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollMarginBlock); + + /// + /// Sets the value of scroll-margin-block. + /// + [DomName("scrollMarginBlock")] + [DomName("scroll-margin-block")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollMarginBlock(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollMarginBlock, value); + + /// + /// Gets the value of scroll-margin-block-start. + /// + [DomName("scrollMarginBlockStart")] + [DomName("scroll-margin-block-start")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollMarginBlockStart(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollMarginBlockStart); + + /// + /// Sets the value of scroll-margin-block-start. + /// + [DomName("scrollMarginBlockStart")] + [DomName("scroll-margin-block-start")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollMarginBlockStart(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollMarginBlockStart, value); + + /// + /// Gets the value of scroll-margin-block-end. + /// + [DomName("scrollMarginBlockEnd")] + [DomName("scroll-margin-block-end")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollMarginBlockEnd(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollMarginBlockEnd); + + /// + /// Sets the value of scroll-margin-block-end. + /// + [DomName("scrollMarginBlockEnd")] + [DomName("scroll-margin-block-end")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollMarginBlockEnd(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollMarginBlockEnd, value); + + /// + /// Gets the value of scroll-margin-inline. + /// + [DomName("scrollMarginInline")] + [DomName("scroll-margin-inline")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollMarginInline(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollMarginInline); + + /// + /// Sets the value of scroll-margin-inline. + /// + [DomName("scrollMarginInline")] + [DomName("scroll-margin-inline")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollMarginInline(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollMarginInline, value); + + /// + /// Gets the value of scroll-margin-inline-start. + /// + [DomName("scrollMarginInlineStart")] + [DomName("scroll-margin-inline-start")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollMarginInlineStart(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollMarginInlineStart); + + /// + /// Sets the value of scroll-margin-inline-start. + /// + [DomName("scrollMarginInlineStart")] + [DomName("scroll-margin-inline-start")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollMarginInlineStart(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollMarginInlineStart, value); + + /// + /// Gets the value of scroll-margin-inline-end. + /// + [DomName("scrollMarginInlineEnd")] + [DomName("scroll-margin-inline-end")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollMarginInlineEnd(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollMarginInlineEnd); + + /// + /// Sets the value of scroll-margin-inline-end. + /// + [DomName("scrollMarginInlineEnd")] + [DomName("scroll-margin-inline-end")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollMarginInlineEnd(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollMarginInlineEnd, value); + + /// + /// Gets the value of shape-outside. + /// + [DomName("shapeOutside")] + [DomName("shape-outside")] + [DomAccessor(Accessors.Getter)] + public static String GetShapeOutside(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ShapeOutside); + + /// + /// Sets the value of shape-outside. + /// + [DomName("shapeOutside")] + [DomName("shape-outside")] + [DomAccessor(Accessors.Setter)] + public static void SetShapeOutside(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ShapeOutside, value); + + /// + /// Gets the value of shape-margin. + /// + [DomName("shapeMargin")] + [DomName("shape-margin")] + [DomAccessor(Accessors.Getter)] + public static String GetShapeMargin(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ShapeMargin); + + /// + /// Sets the value of shape-margin. + /// + [DomName("shapeMargin")] + [DomName("shape-margin")] + [DomAccessor(Accessors.Setter)] + public static void SetShapeMargin(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ShapeMargin, value); + + /// + /// Gets the value of shape-image-threshold. + /// + [DomName("shapeImageThreshold")] + [DomName("shape-image-threshold")] + [DomAccessor(Accessors.Getter)] + public static String GetShapeImageThreshold(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ShapeImageThreshold); + + /// + /// Sets the value of shape-image-threshold. + /// + [DomName("shapeImageThreshold")] + [DomName("shape-image-threshold")] + [DomAccessor(Accessors.Setter)] + public static void SetShapeImageThreshold(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ShapeImageThreshold, value); + + /// + /// Gets the value of shape-rendering. + /// + [DomName("shapeRendering")] + [DomName("shape-rendering")] + [DomAccessor(Accessors.Getter)] + public static String GetShapeRendering(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ShapeRendering); + + /// + /// Sets the value of shape-rendering. + /// + [DomName("shapeRendering")] + [DomName("shape-rendering")] + [DomAccessor(Accessors.Setter)] + public static void SetShapeRendering(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ShapeRendering, value); + + /// + /// Gets the value of scroll-padding. + /// + [DomName("scrollPadding")] + [DomName("scroll-padding")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollPadding(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollPadding); + + /// + /// Sets the value of scroll-padding. + /// + [DomName("scrollPadding")] + [DomName("scroll-padding")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollPadding(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollPadding, value); + + /// + /// Gets the value of scroll-padding-top. + /// + [DomName("scrollPaddingTop")] + [DomName("scroll-padding-top")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollPaddingTop(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollPaddingTop); + + /// + /// Sets the value of scroll-padding-top. + /// + [DomName("scrollPaddingTop")] + [DomName("scroll-padding-top")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollPaddingTop(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollPaddingTop, value); + + /// + /// Gets the value of scroll-padding-right. + /// + [DomName("scrollPaddingRight")] + [DomName("scroll-padding-right")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollPaddingRight(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollPaddingRight); + + /// + /// Sets the value of scroll-padding-right. + /// + [DomName("scrollPaddingRight")] + [DomName("scroll-padding-right")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollPaddingRight(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollPaddingRight, value); + + /// + /// Gets the value of scroll-padding-bottom. + /// + [DomName("scrollPaddingBottom")] + [DomName("scroll-padding-bottom")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollPaddingBottom(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollPaddingBottom); + + /// + /// Sets the value of scroll-padding-bottom. + /// + [DomName("scrollPaddingBottom")] + [DomName("scroll-padding-bottom")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollPaddingBottom(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollPaddingBottom, value); + + /// + /// Gets the value of scroll-padding-left. + /// + [DomName("scrollPaddingLeft")] + [DomName("scroll-padding-left")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollPaddingLeft(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollPaddingLeft); + + /// + /// Sets the value of scroll-padding-left. + /// + [DomName("scrollPaddingLeft")] + [DomName("scroll-padding-left")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollPaddingLeft(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollPaddingLeft, value); + + /// + /// Gets the value of scroll-padding-block. + /// + [DomName("scrollPaddingBlock")] + [DomName("scroll-padding-block")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollPaddingBlock(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollPaddingBlock); + + /// + /// Sets the value of scroll-padding-block. + /// + [DomName("scrollPaddingBlock")] + [DomName("scroll-padding-block")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollPaddingBlock(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollPaddingBlock, value); + + /// + /// Gets the value of scroll-padding-block-start. + /// + [DomName("scrollPaddingBlockStart")] + [DomName("scroll-padding-block-start")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollPaddingBlockStart(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollPaddingBlockStart); + + /// + /// Sets the value of scroll-padding-block-start. + /// + [DomName("scrollPaddingBlockStart")] + [DomName("scroll-padding-block-start")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollPaddingBlockStart(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollPaddingBlockStart, value); + + /// + /// Gets the value of scroll-padding-block-end. + /// + [DomName("scrollPaddingBlockEnd")] + [DomName("scroll-padding-block-end")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollPaddingBlockEnd(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollPaddingBlockEnd); + + /// + /// Sets the value of scroll-padding-block-end. + /// + [DomName("scrollPaddingBlockEnd")] + [DomName("scroll-padding-block-end")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollPaddingBlockEnd(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollPaddingBlockEnd, value); + + /// + /// Gets the value of scroll-padding-inline. + /// + [DomName("scrollPaddingInline")] + [DomName("scroll-padding-inline")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollPaddingInline(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollPaddingInline); + + /// + /// Sets the value of scroll-padding-inline. + /// + [DomName("scrollPaddingInline")] + [DomName("scroll-padding-inline")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollPaddingInline(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollPaddingInline, value); + + /// + /// Gets the value of scroll-padding-inline-start. + /// + [DomName("scrollPaddingInlineStart")] + [DomName("scroll-padding-inline-start")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollPaddingInlineStart(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollPaddingInlineStart); + + /// + /// Sets the value of scroll-padding-inline-start. + /// + [DomName("scrollPaddingInlineStart")] + [DomName("scroll-padding-inline-start")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollPaddingInlineStart(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollPaddingInlineStart, value); + + /// + /// Gets the value of scroll-padding-inline-end. + /// + [DomName("scrollPaddingInlineEnd")] + [DomName("scroll-padding-inline-end")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollPaddingInlineEnd(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollPaddingInlineEnd); + + /// + /// Sets the value of scroll-padding-inline-end. + /// + [DomName("scrollPaddingInlineEnd")] + [DomName("scroll-padding-inline-end")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollPaddingInlineEnd(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollPaddingInlineEnd, value); + + /// + /// Gets the value of overscroll-behavior. + /// + [DomName("overscrollBehavior")] + [DomName("overscroll-behavior")] + [DomAccessor(Accessors.Getter)] + public static String GetOverscrollBehavior(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.OverscrollBehavior); + + /// + /// Sets the value of overscroll-behavior. + /// + [DomName("overscrollBehavior")] + [DomName("overscroll-behavior")] + [DomAccessor(Accessors.Setter)] + public static void SetOverscrollBehavior(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.OverscrollBehavior, value); + + /// + /// Gets the value of overscroll-behavior-x. + /// + [DomName("overscrollBehaviorX")] + [DomName("overscroll-behavior-x")] + [DomAccessor(Accessors.Getter)] + public static String GetOverscrollBehaviorX(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.OverscrollBehaviorX); + + /// + /// Sets the value of overscroll-behavior-x. + /// + [DomName("overscrollBehaviorX")] + [DomName("overscroll-behavior-x")] + [DomAccessor(Accessors.Setter)] + public static void SetOverscrollBehaviorX(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.OverscrollBehaviorX, value); + + /// + /// Gets the value of overscroll-behavior-y. + /// + [DomName("overscrollBehaviorY")] + [DomName("overscroll-behavior-y")] + [DomAccessor(Accessors.Getter)] + public static String GetOverscrollBehaviorY(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.OverscrollBehaviorY); + + /// + /// Sets the value of overscroll-behavior-y. + /// + [DomName("overscrollBehaviorY")] + [DomName("overscroll-behavior-y")] + [DomAccessor(Accessors.Setter)] + public static void SetOverscrollBehaviorY(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.OverscrollBehaviorY, value); + + /// + /// Gets the value of overscroll-behavior-block. + /// + [DomName("overscrollBehaviorBlock")] + [DomName("overscroll-behavior-block")] + [DomAccessor(Accessors.Getter)] + public static String GetOverscrollBehaviorBlock(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.OverscrollBehaviorBlock); + + /// + /// Sets the value of overscroll-behavior-block. + /// + [DomName("overscrollBehaviorBlock")] + [DomName("overscroll-behavior-block")] + [DomAccessor(Accessors.Setter)] + public static void SetOverscrollBehaviorBlock(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.OverscrollBehaviorBlock, value); + + /// + /// Gets the value of overscroll-behavior-inline. + /// + [DomName("overscrollBehaviorInline")] + [DomName("overscroll-behavior-inline")] + [DomAccessor(Accessors.Getter)] + public static String GetOverscrollBehaviorInline(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.OverscrollBehaviorInline); + + /// + /// Sets the value of overscroll-behavior-inline. + /// + [DomName("overscrollBehaviorInline")] + [DomName("overscroll-behavior-inline")] + [DomAccessor(Accessors.Setter)] + public static void SetOverscrollBehaviorInline(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.OverscrollBehaviorInline, value); + + /// + /// Gets the value of scroll-snap-align. + /// + [DomName("scrollSnapAlign")] + [DomName("scroll-snap-align")] + [DomAccessor(Accessors.Getter)] + public static String GetScrollSnapAlign(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ScrollSnapAlign); + + /// + /// Sets the value of scroll-snap-align. + /// + [DomName("scrollSnapAlign")] + [DomName("scroll-snap-align")] + [DomAccessor(Accessors.Setter)] + public static void SetScrollSnapAlign(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ScrollSnapAlign, value); + + /// + /// Gets the value of tab-size. + /// + [DomName("tabSize")] + [DomName("tab-size")] + [DomAccessor(Accessors.Getter)] + public static String GetTabSize(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.TabSize); + + /// + /// Sets the value of tab-size. + /// + [DomName("tabSize")] + [DomName("tab-size")] + [DomAccessor(Accessors.Setter)] + public static void SetTabSize(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.TabSize, value); + + /// + /// Gets the value of text-decoration-skip-ink. + /// + [DomName("textDecorationSkipInk")] + [DomName("text-decoration-skip-ink")] + [DomAccessor(Accessors.Getter)] + public static String GetTextDecorationSkipInk(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.TextDecorationSkipInk); + + /// + /// Sets the value of text-decoration-skip-ink. + /// + [DomName("textDecorationSkipInk")] + [DomName("text-decoration-skip-ink")] + [DomAccessor(Accessors.Setter)] + public static void SetTextDecorationSkipInk(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.TextDecorationSkipInk, value); + + /// + /// Gets the value of text-decoration-thickness. + /// + [DomName("textDecorationThickness")] + [DomName("text-decoration-thickness")] + [DomAccessor(Accessors.Getter)] + public static String GetTextDecorationThickness(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.TextDecorationThickness); + + /// + /// Sets the value of text-decoration-thickness. + /// + [DomName("textDecorationThickness")] + [DomName("text-decoration-thickness")] + [DomAccessor(Accessors.Setter)] + public static void SetTextDecorationThickness(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.TextDecorationThickness, value); + + /// + /// Gets the value of text-orientation. + /// + [DomName("textOrientation")] + [DomName("text-orientation")] + [DomAccessor(Accessors.Getter)] + public static String GetTextOrientation(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.TextOrientation); + + /// + /// Sets the value of text-orientation. + /// + [DomName("textOrientation")] + [DomName("text-orientation")] + [DomAccessor(Accessors.Setter)] + public static void SetTextOrientation(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.TextOrientation, value); + + /// + /// Gets the value of text-underline-offset. + /// + [DomName("textUnderlineOffset")] + [DomName("text-underline-offset")] + [DomAccessor(Accessors.Getter)] + public static String GetTextUnderlineOffset(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.TextUnderlineOffset); + + /// + /// Sets the value of text-underline-offset. + /// + [DomName("textUnderlineOffset")] + [DomName("text-underline-offset")] + [DomAccessor(Accessors.Setter)] + public static void SetTextUnderlineOffset(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.TextUnderlineOffset, value); + + /// + /// Gets the value of text-wrap. + /// + [DomName("textWrap")] + [DomName("text-wrap")] + [DomAccessor(Accessors.Getter)] + public static String GetTextWrap(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.TextWrap); + + /// + /// Sets the value of text-wrap. + /// + [DomName("textWrap")] + [DomName("text-wrap")] + [DomAccessor(Accessors.Setter)] + public static void SetTextWrap(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.TextWrap, value); + + /// + /// Gets the value of text-wrap-mode. + /// + [DomName("textWrapMode")] + [DomName("text-wrap-mode")] + [DomAccessor(Accessors.Getter)] + public static String GetTextWrapMode(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.TextWrapMode); + + /// + /// Sets the value of text-wrap-mode. + /// + [DomName("textWrapMode")] + [DomName("text-wrap-mode")] + [DomAccessor(Accessors.Setter)] + public static void SetTextWrapMode(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.TextWrapMode, value); + + /// + /// Gets the value of text-wrap-style. + /// + [DomName("textWrapStyle")] + [DomName("text-wrap-style")] + [DomAccessor(Accessors.Getter)] + public static String GetTextWrapStyle(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.TextWrapStyle); + + /// + /// Sets the value of text-wrap-style. + /// + [DomName("textWrapStyle")] + [DomName("text-wrap-style")] + [DomAccessor(Accessors.Setter)] + public static void SetTextWrapStyle(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.TextWrapStyle, value); + + /// + /// Gets the value of transform-box. + /// + [DomName("transformBox")] + [DomName("transform-box")] + [DomAccessor(Accessors.Getter)] + public static String GetTransformBox(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.TransformBox); + + /// + /// Sets the value of transform-box. + /// + [DomName("transformBox")] + [DomName("transform-box")] + [DomAccessor(Accessors.Setter)] + public static void SetTransformBox(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.TransformBox, value); + + /// + /// Gets the value of translate. + /// + [DomName("translate")] + [DomAccessor(Accessors.Getter)] + public static String GetTranslate(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.Translate); + + /// + /// Sets the value of translate. + /// + [DomName("translate")] + [DomAccessor(Accessors.Setter)] + public static void SetTranslate(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.Translate, value); + + /// + /// Gets the value of transition-behavior. + /// + [DomName("transitionBehavior")] + [DomName("transition-behavior")] + [DomAccessor(Accessors.Getter)] + public static String GetTransitionBehavior(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.TransitionBehavior); + + /// + /// Sets the value of transition-behavior. + /// + [DomName("transitionBehavior")] + [DomName("transition-behavior")] + [DomAccessor(Accessors.Setter)] + public static void SetTransitionBehavior(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.TransitionBehavior, value); + + /// + /// Gets the value of touch-action. + /// + [DomName("touchAction")] + [DomName("touch-action")] + [DomAccessor(Accessors.Getter)] + public static String GetTouchAction(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.TouchAction); + + /// + /// Sets the value of touch-action. + /// + [DomName("touchAction")] + [DomName("touch-action")] + [DomAccessor(Accessors.Setter)] + public static void SetTouchAction(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.TouchAction, value); + + /// + /// Gets the value of user-select. + /// + [DomName("userSelect")] + [DomName("user-select")] + [DomAccessor(Accessors.Getter)] + public static String GetUserSelect(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.UserSelect); + + /// + /// Sets the value of user-select. + /// + [DomName("userSelect")] + [DomName("user-select")] + [DomAccessor(Accessors.Setter)] + public static void SetUserSelect(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.UserSelect, value); + + /// + /// Gets the value of white-space-collapse. + /// + [DomName("whiteSpaceCollapse")] + [DomName("white-space-collapse")] + [DomAccessor(Accessors.Getter)] + public static String GetWhiteSpaceCollapse(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.WhiteSpaceCollapse); + + /// + /// Sets the value of white-space-collapse. + /// + [DomName("whiteSpaceCollapse")] + [DomName("white-space-collapse")] + [DomAccessor(Accessors.Setter)] + public static void SetWhiteSpaceCollapse(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.WhiteSpaceCollapse, value); + + /// + /// Gets the value of will-change. + /// + [DomName("willChange")] + [DomName("will-change")] + [DomAccessor(Accessors.Getter)] + public static String GetWillChange(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.WillChange); + + /// + /// Sets the value of will-change. + /// + [DomName("willChange")] + [DomName("will-change")] + [DomAccessor(Accessors.Setter)] + public static void SetWillChange(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.WillChange, value); + + /// + /// Gets the value of object-fit. + /// + [DomName("objectFit")] + [DomName("object-fit")] + [DomAccessor(Accessors.Getter)] + public static String GetObjectFit(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ObjectFit); + + /// + /// Sets the value of object-fit. + /// + [DomName("objectFit")] + [DomName("object-fit")] + [DomAccessor(Accessors.Setter)] + public static void SetObjectFit(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ObjectFit, value); + + /// + /// Gets the value of object-position. + /// + [DomName("objectPosition")] + [DomName("object-position")] + [DomAccessor(Accessors.Getter)] + public static String GetObjectPosition(this ICssStyleDeclaration style) => + style.GetPropertyValue(PropertyNames.ObjectPosition); + + /// + /// Sets the value of object-position. + /// + [DomName("objectPosition")] + [DomName("object-position")] + [DomAccessor(Accessors.Setter)] + public static void SetObjectPosition(this ICssStyleDeclaration style, String value) => + style.SetProperty(PropertyNames.ObjectPosition, value); } } diff --git a/src/AngleSharp.Css/Extensions/CssApiExtensions.cs b/src/AngleSharp.Css/Extensions/CssApiExtensions.cs index ab3f69a3..2aa17335 100644 --- a/src/AngleSharp.Css/Extensions/CssApiExtensions.cs +++ b/src/AngleSharp.Css/Extensions/CssApiExtensions.cs @@ -32,7 +32,7 @@ public static ICssStyleDeclaration ComputeCurrentStyle(this IElement element) var device = ctx?.GetService(); var defaultStyleSheetProvider = ctx?.GetServices() ?? Enumerable.Empty(); var defaultSheets = defaultStyleSheetProvider.Select(m => m.Default).Where(m => m != null); - var currentSheets = document?.GetStyleSheets().OfType() ?? Enumerable.Empty(); + var currentSheets = document?.GetEffectiveStyleSheets() ?? Enumerable.Empty(); var styleCollection = new StyleCollection(defaultSheets, currentSheets, device!); return styleCollection.ComputeDeclarations(element); } diff --git a/src/AngleSharp.Css/Extensions/ElementExtensions.cs b/src/AngleSharp.Css/Extensions/ElementExtensions.cs index 46e6a498..ec4fda02 100644 --- a/src/AngleSharp.Css/Extensions/ElementExtensions.cs +++ b/src/AngleSharp.Css/Extensions/ElementExtensions.cs @@ -4,6 +4,7 @@ namespace AngleSharp.Dom using AngleSharp.Attributes; using AngleSharp.Css; using AngleSharp.Css.Dom; + using AngleSharp.Css.RenderTree; using AngleSharp.Html.Dom; using AngleSharp.Text; using System; @@ -118,97 +119,7 @@ public static void RemovePseudoClass(this IElement element, String pseudoClass) /// The computed inner text. [DomName("innerText")] [DomAccessor(Accessors.Getter)] - public static String GetInnerText(this IElement element) - { - var hidden = new Nullable(); - - if (element.Owner == null) - { - hidden = true; - } - - // Build the style collection once and cache computed styles for the - // entire traversal to avoid redundant stylesheet enumeration and - // repeated selector matching for the same elements. - var document = element.Owner; - var window = document?.DefaultView; - var device = window?.Document.Context.GetService() ?? new DefaultRenderDevice(); - var styleCollection = window is not null ? window.GetStyleCollection(device) : null; - var styleCache = new Dictionary(); - - if (!hidden.HasValue) - { - var css = ComputeCachedStyle(element, styleCollection, styleCache); - - if (!String.IsNullOrEmpty(css?.GetDisplay())) - { - hidden = css!.GetDisplay() == CssKeywords.None; - } - } - - if (!hidden.HasValue) - { - hidden = (element as IHtmlElement)?.IsHidden ?? false; - } - - if (!hidden.Value) - { - var offset = 0; - var sb = StringBuilderPool.Obtain(); - var requiredLineBreakCounts = new Dictionary(); - var textStyleCache = new Dictionary(); - var parentStyle = element.ParentElement != null - ? ComputeCachedStyle(element.ParentElement, styleCollection, styleCache) - : null; - InnerTextCollection(element, sb, requiredLineBreakCounts, parentStyle, styleCollection, styleCache, textStyleCache); - - // Remove any runs of consecutive required line break count items at the start or end of results. - requiredLineBreakCounts.Remove(0); - requiredLineBreakCounts.Remove(sb.Length); - - // SortedDictionary would be nicer - foreach (var keyval in requiredLineBreakCounts.OrderBy(kv => kv.Key)) - { - var index = keyval.Key + offset; - sb.Insert(index, new String(Symbols.LineFeed, keyval.Value)); - offset += keyval.Value; - } - - return sb.ToPool(); - } - - return element.TextContent; - } - - private static ICssStyleDeclaration? ComputeCachedStyle(IElement element, IStyleCollection? styleCollection, Dictionary cache) - { - if (styleCollection == null) - { - return null; - } - - if (cache.TryGetValue(element, out var cached)) - { - return cached; - } - - ICssStyleDeclaration style; - var parent = element.ParentElement; - - if (parent != null && cache.TryGetValue(parent, out var parentStyle)) - { - // Parent already computed โ€” use incremental computation that - // skips the O(depth) ancestor walk. - style = styleCollection.ComputeDeclarationsWithParent(element, parentStyle); - } - else - { - style = styleCollection.ComputeDeclarations(element); - } - - cache[element] = style; - return style; - } + public static String GetInnerText(this IElement element) => InnerText.Get(element); /// /// Sets the innerText of an element. @@ -272,133 +183,6 @@ public static void SetInnerText(this IElement element, String? value) } } - private static void InnerTextCollection(INode node, StringBuilder sb, Dictionary requiredLineBreakCounts, ICssStyleDeclaration? parentStyle, IStyleCollection? styleCollection, Dictionary styleCache, Dictionary textStyleCache) - { - if (HasCssBox(node)) - { - var element = node as IElement; - var elementCss = element != null ? ComputeCachedStyle(element, styleCollection, styleCache) : null; - ItcInCssBox(elementCss, parentStyle, node, sb, requiredLineBreakCounts, styleCollection, styleCache, textStyleCache); - } - } - - private static void ItcInCssBox(ICssStyleDeclaration? elementStyle, ICssStyleDeclaration? parentStyle, INode node, StringBuilder sb, Dictionary requiredLineBreakCounts, IStyleCollection? styleCollection, Dictionary styleCache, Dictionary textStyleCache) - { - var elementHidden = new Nullable(); - - if (elementStyle is not null) - { - if (!String.IsNullOrEmpty(elementStyle.GetDisplay())) - { - elementHidden = elementStyle.GetDisplay() == CssKeywords.None; - } - - if (!String.IsNullOrEmpty(elementStyle.GetVisibility()) && elementHidden != true) - { - elementHidden = elementStyle.GetVisibility() != CssKeywords.Visible; - } - } - - if (!elementHidden.HasValue) - { - elementHidden = (node as IHtmlElement)?.IsHidden ?? false; - } - - if (!elementHidden.Value) - { - var isBlockLevel = new Nullable(); - var startIndex = sb.Length; - - foreach (var child in node.ChildNodes) - { - InnerTextCollection(child, sb, requiredLineBreakCounts, elementStyle, styleCollection, styleCache, textStyleCache); - } - - if (node is IText textElement) - { - var lastLine = node.NextSibling is null || - String.IsNullOrEmpty(node.NextSibling.TextContent) || - node.NextSibling is IHtmlBreakRowElement; - var styleInfo = GetTextStyleInfo(parentStyle, textStyleCache); - ProcessText(textElement.Data, sb, styleInfo.WhiteSpace, styleInfo.TextTransform, lastLine, requiredLineBreakCounts); - } - else if (node is IHtmlBreakRowElement) - { - sb.Append(Symbols.LineFeed); - } - else if (elementStyle is not null && ((node is IHtmlTableCellElement && String.IsNullOrEmpty(elementStyle.GetDisplay())) || elementStyle.GetDisplay() == CssKeywords.TableCell)) - { - if (((IElement)node).NextElementSibling is IElement nextSibling) - { - var nextSiblingCss = ComputeCachedStyle(nextSibling, styleCollection, styleCache); - - if (nextSibling is IHtmlTableCellElement && String.IsNullOrEmpty(nextSiblingCss!.GetDisplay()) || nextSiblingCss!.GetDisplay() == CssKeywords.TableCell) - { - sb.Append(Symbols.Tab); - } - } - } - else if (elementStyle is not null && ((node is IHtmlTableRowElement && String.IsNullOrEmpty(elementStyle.GetDisplay())) || elementStyle.GetDisplay() == CssKeywords.TableRow)) - { - if (((IElement)node).NextElementSibling is IElement nextSibling) - { - var nextSiblingCss = ComputeCachedStyle(nextSibling, styleCollection, styleCache); - - if (nextSibling is IHtmlTableRowElement && String.IsNullOrEmpty(nextSiblingCss!.GetDisplay()) || nextSiblingCss!.GetDisplay() == CssKeywords.TableRow) - { - sb.Append(Symbols.LineFeed); - } - } - } - else if (node is IHtmlParagraphElement) - { - requiredLineBreakCounts.TryGetValue(startIndex, out var startIndexCount); - - if (startIndexCount < 2) - { - requiredLineBreakCounts[startIndex] = 2; - } - - requiredLineBreakCounts.TryGetValue(sb.Length, out var endIndexCount); - - if (endIndexCount < 2) - { - requiredLineBreakCounts[sb.Length] = 2; - } - } - - if (elementStyle is not null) - { - if (IsBlockLevelDisplay(elementStyle.GetDisplay())) - { - isBlockLevel = true; - } - } - - if (!isBlockLevel.HasValue) - { - isBlockLevel = IsBlockLevel(node); - } - - if (isBlockLevel.Value) - { - requiredLineBreakCounts.TryGetValue(startIndex, out var startIndexCount); - - if (startIndexCount < 1) - { - requiredLineBreakCounts[startIndex] = 1; - } - - requiredLineBreakCounts.TryGetValue(sb.Length, out var endIndexCount); - - if (endIndexCount < 1) - { - requiredLineBreakCounts[sb.Length] = 1; - } - } - } - } - /// /// Sets the style on all elements of the collection. /// @@ -418,153 +202,5 @@ public static IEnumerable SetStyle(this IEnumerable false, - _ => true, - }; - } - - private static Boolean IsBlockLevelDisplay(String display) - { - // https://www.w3.org/TR/css-display-3/#display-value-summary - // https://hg.mozilla.org/mozilla-central/file/0acceb224b7d/servo/components/layout/query.rs#l1016 - return display switch - { - "block" or "flow-root" or "flex" or "grid" or "table" or "table-caption" => true, - _ => false, - }; - } - - private static Boolean IsBlockLevel(INode node) - { - // https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements - return node.NodeName switch - { - "ADDRESS" or "ARTICLE" or "ASIDE" or "BLOCKQUOTE" or "CANVAS" or "DD" or "DIV" or "DL" or "DT" or "FIELDSET" or "FIGCAPTION" or "FIGURE" or "FOOTER" or "FORM" or "H1" or "H2" or "H3" or "H4" or "H5" or "H6" or "HEADER" or "GROUP" or "HR" or "LI" or "MAIN" or "NAV" or "NOSCRIPT" or "OL" or "OPTION" or "OUTPUT" or "P" or "PRE" or "SECTION" or "TABLE" or "TFOOT" or "UL" or "VIDEO" => true, - _ => false, - }; - } - - private static Boolean IsWhiteSpace(Char c) => Char.IsWhiteSpace(c) && c != Symbols.NoBreakSpace; - - private static TextStyleInfo GetTextStyleInfo(ICssStyleDeclaration? style, Dictionary cache) - { - if (style is null) - { - return default; - } - - if (cache.TryGetValue(style, out var info)) - { - return info; - } - - info = new TextStyleInfo(style.GetWhiteSpace(), style.GetTextTransform()); - cache[style] = info; - return info; - } - - private static void ProcessText(String text, StringBuilder sb, String? whiteSpace, String? textTransform, Boolean lastLine, Dictionary requiredLineBreakCounts) - { - var startIndex = sb.Length; - var isWhiteSpace = startIndex <= 0 || IsWhiteSpace(sb[startIndex - 1]) || (requiredLineBreakCounts.ContainsKey(startIndex) && IsWhiteSpace(text[0])); - - for (var i = 0; i < text.Length; i++) - { - var c = text[i]; - - if (Char.IsWhiteSpace(c) && c != Symbols.NoBreakSpace) - { - // https://drafts.csswg.org/css-text/#white-space-property - switch (whiteSpace) - { - case "pre": - case "pre-wrap": - break; - case "pre-line": - if (c == Symbols.Space || c == Symbols.Tab) - { - if (isWhiteSpace) - { - continue; - } - - c = Symbols.Space; - } - break; - case "nowrap": - case "normal": - default: - if (isWhiteSpace) - { - continue; - } - - c = Symbols.Space; - break; - } - - isWhiteSpace = true; - } - else - { - // https://drafts.csswg.org/css-text/#propdef-text-transform - switch (textTransform) - { - case "uppercase": - c = Char.ToUpperInvariant(c); - break; - case "lowercase": - c = Char.ToLowerInvariant(c); - break; - case "capitalize": - if (isWhiteSpace) - { - c = Char.ToUpperInvariant(c); - } - break; - case "none": - default: - break; - } - - isWhiteSpace = false; - } - - sb.Append(c); - } - - // ended with whitespace - if (isWhiteSpace && lastLine) - { - for (var offset = sb.Length - 1; offset >= startIndex; offset--) - { - var c = sb[offset]; - - if (!Char.IsWhiteSpace(c) || c == Symbols.NoBreakSpace) - { - sb.Remove(offset + 1, sb.Length - 1 - offset); - break; - } - } - } - } - - private readonly struct TextStyleInfo - { - public TextStyleInfo(String? whiteSpace, String? textTransform) - { - WhiteSpace = whiteSpace; - TextTransform = textTransform; - } - - public String? WhiteSpace { get; } - - public String? TextTransform { get; } - } } } diff --git a/src/AngleSharp.Css/Extensions/MediaQueryListExtensions.cs b/src/AngleSharp.Css/Extensions/MediaQueryListExtensions.cs new file mode 100644 index 00000000..e44947d8 --- /dev/null +++ b/src/AngleSharp.Css/Extensions/MediaQueryListExtensions.cs @@ -0,0 +1,35 @@ +#nullable enable +namespace AngleSharp.Dom +{ + using AngleSharp.Attributes; + using AngleSharp.Css.Dom; + using System; + + /// + /// The members of a MediaQueryList kept by the standard for pages from before it was an + /// event target. + /// + [DomExposed("MediaQueryList")] + public static class MediaQueryListExtensions + { + private const String ChangeEvent = "change"; + + /// + /// Adds a listener for changes of the query, like listening to its change event. + /// + /// The list to listen to. + /// The listener. + [DomName("addListener")] + public static void AddListener(this IMediaQueryList list, DomEventHandler? callback) => + list.AddEventListener(ChangeEvent, callback); + + /// + /// Removes a listener for changes of the query. + /// + /// The list to stop listening to. + /// The listener. + [DomName("removeListener")] + public static void RemoveListener(this IMediaQueryList list, DomEventHandler? callback) => + list.RemoveEventListener(ChangeEvent, callback); + } +} diff --git a/src/AngleSharp.Css/Extensions/RenderNodeExtensions.cs b/src/AngleSharp.Css/Extensions/RenderNodeExtensions.cs index 8bc928e5..80a5fdc1 100644 --- a/src/AngleSharp.Css/Extensions/RenderNodeExtensions.cs +++ b/src/AngleSharp.Css/Extensions/RenderNodeExtensions.cs @@ -181,6 +181,14 @@ public static Boolean IsVisible(this IRenderNode node) return false; } + /// + /// Gets the rendered text (innerText) of the element of the given render node, + /// e.g. from a render tree that is already there, without styling anything again. + /// + /// The render node of the element. + /// The rendered text of the element. + public static String GetInnerText(this ElementRenderNode node) => InnerText.Get(node ?? throw new ArgumentNullException(nameof(node))); + /// /// Finds a particular render node based on the given reference node. /// diff --git a/src/AngleSharp.Css/Extensions/StyleCollectionExtensions.cs b/src/AngleSharp.Css/Extensions/StyleCollectionExtensions.cs index c3c7aae8..af47d2a7 100644 --- a/src/AngleSharp.Css/Extensions/StyleCollectionExtensions.cs +++ b/src/AngleSharp.Css/Extensions/StyleCollectionExtensions.cs @@ -30,7 +30,7 @@ public static IStyleCollection GetStyleCollection(this IWindow window, IRenderDe var ctx = document.Context; var defaultStyleSheetProvider = ctx.GetServices(); var defaultSheets = defaultStyleSheetProvider.Select(m => m.Default).Where(m => m != null); - var currentSheets = document.GetStyleSheets().OfType(); + var currentSheets = document.GetEffectiveStyleSheets(); return new StyleCollection(defaultSheets, currentSheets, renderDevice); } diff --git a/src/AngleSharp.Css/Extensions/WindowExtensions.cs b/src/AngleSharp.Css/Extensions/WindowExtensions.cs index 0433e11f..5d1df9d1 100644 --- a/src/AngleSharp.Css/Extensions/WindowExtensions.cs +++ b/src/AngleSharp.Css/Extensions/WindowExtensions.cs @@ -111,7 +111,6 @@ public static Double DevicePixelRatio(this IWindow window) /// The element to compute the style for. /// The optional pseudo selector to use. /// The style declaration describing the element. - [DomName("getComputedStyle")] public static ICssStyleDeclaration GetComputedStyle(this IWindow window, IElement element, String? pseudo = null) { var device = window.GetRenderDevice(); @@ -119,6 +118,29 @@ public static ICssStyleDeclaration GetComputedStyle(this IWindow window, IElemen return styleCollection.ComputeDeclarations(element, pseudo); } + /// + /// Gets the computed style as script sees it, where a property that was not declared has + /// its initial value instead of being empty. + /// + /// The window to extend with the functionality. + /// The element to compute the style for. + /// The optional pseudo selector to use. + /// The style declaration describing the element. + [DomName("getComputedStyle")] + public static ICssStyleDeclaration GetComputedStyleOfScript(this IWindow window, IElement element, String? pseudo = null) + { + var style = window.GetComputedStyle(element, pseudo); + + if (style is not CssStyleDeclaration declaration) + { + return style; + } + + // what is known from layout is what script gets to see (CSSOM 9), which a pseudo element has none of + var provider = String.IsNullOrEmpty(pseudo) ? element.Owner?.Context.GetUsedValueProvider() : null; + return declaration.WithInitialValues(provider != null ? name => provider.GetUsedValue(element, name) : null); + } + /// /// Computes the element's default style. This ignores any transitions or animations. /// Presentational hints such as bgColor are also ignored, as well as inline styles. diff --git a/src/AngleSharp.Css/Factories/CssPseudoClassSelectorFactory.cs b/src/AngleSharp.Css/Factories/CssPseudoClassSelectorFactory.cs new file mode 100644 index 00000000..9085328d --- /dev/null +++ b/src/AngleSharp.Css/Factories/CssPseudoClassSelectorFactory.cs @@ -0,0 +1,39 @@ +#nullable enable +namespace AngleSharp.Css +{ + using AngleSharp.Css.Dom; + using System; + + /// + /// Decorates another pseudo-class selector factory with the pseudo-classes + /// that are supported by AngleSharp.Css, but not recognized by the decorated one. + /// + sealed class CssPseudoClassSelectorFactory : IPseudoClassSelectorFactory + { + /// + /// The name of the `:popover-open` pseudo-class (HTML, "The popover attribute"). + /// + public static readonly String PopoverOpen = "popover-open"; + + private static readonly ISelector PopoverOpenSelector = new PopoverOpenPseudoClassSelector(); + + private readonly IPseudoClassSelectorFactory _inner; + + public CssPseudoClassSelectorFactory(IPseudoClassSelectorFactory inner) + { + _inner = inner; + } + + public ISelector? Create(String name) + { + var selector = _inner.Create(name); + + if (selector is null && name.Equals(PopoverOpen, StringComparison.OrdinalIgnoreCase)) + { + return PopoverOpenSelector; + } + + return selector; + } + } +} diff --git a/src/AngleSharp.Css/Factories/CssPseudoElementSelectorFactory.cs b/src/AngleSharp.Css/Factories/CssPseudoElementSelectorFactory.cs index b96e990a..d005c9c7 100644 --- a/src/AngleSharp.Css/Factories/CssPseudoElementSelectorFactory.cs +++ b/src/AngleSharp.Css/Factories/CssPseudoElementSelectorFactory.cs @@ -15,8 +15,15 @@ sealed class CssPseudoElementSelectorFactory : IPseudoElementSelectorFactory /// public static readonly String Placeholder = "placeholder"; + /// + /// The name of the `::backdrop` pseudo-element (CSS Position 4 ยง4.2). + /// + public static readonly String Backdrop = "backdrop"; + private static readonly ISelector PlaceholderSelector = new CssPseudoElementSelector(Placeholder); + private static readonly ISelector BackdropSelector = new CssPseudoElementSelector(Backdrop); + private readonly IPseudoElementSelectorFactory _inner; public CssPseudoElementSelectorFactory(IPseudoElementSelectorFactory inner) @@ -28,9 +35,17 @@ public ISelector Create(String name) { var selector = _inner.Create(name); - if (selector is null && name.Equals(Placeholder, StringComparison.OrdinalIgnoreCase)) + if (selector is null) { - return PlaceholderSelector; + if (name.Equals(Placeholder, StringComparison.OrdinalIgnoreCase)) + { + return PlaceholderSelector; + } + + if (name.Equals(Backdrop, StringComparison.OrdinalIgnoreCase)) + { + return BackdropSelector; + } } return selector; diff --git a/src/AngleSharp.Css/Factories/DefaultPseudoElementFactory.cs b/src/AngleSharp.Css/Factories/DefaultPseudoElementFactory.cs index 93d63253..61e76179 100644 --- a/src/AngleSharp.Css/Factories/DefaultPseudoElementFactory.cs +++ b/src/AngleSharp.Css/Factories/DefaultPseudoElementFactory.cs @@ -25,6 +25,8 @@ public class DefaultPseudoElementFactory : IPseudoElementFactory { PseudoElementNames.After, element => new PseudoElement(element, PseudoElementNames.After) }, { PseudoElementNames.Slotted, element => new PseudoElement(element, PseudoElementNames.Slotted) }, { CssPseudoElementSelectorFactory.Placeholder, CreatePlaceholder }, + { CssPseudoElementSelectorFactory.Backdrop, CreateBackdrop }, + { PseudoElementNames.Selection, element => new PseudoElement(element, PseudoElementNames.Selection) }, }; private static IPseudoElement CreatePlaceholder(IElement host) @@ -38,6 +40,17 @@ private static IPseudoElement CreatePlaceholder(IElement host) return null; } + private static IPseudoElement CreateBackdrop(IElement host) + { + // Only an element in the top layer has a backdrop; for now that is a shown popover. + if (host is IHtmlElement html && html.IsPopoverOpen()) + { + return new PseudoElement(host, CssPseudoElementSelectorFactory.Backdrop); + } + + return null; + } + /// /// Registers a new creator for the specified pseudo type. /// Throws an exception if another creator for the given diff --git a/src/AngleSharp.Css/Parser/CssBuilder.cs b/src/AngleSharp.Css/Parser/CssBuilder.cs index 3d91e52e..721f1659 100644 --- a/src/AngleSharp.Css/Parser/CssBuilder.cs +++ b/src/AngleSharp.Css/Parser/CssBuilder.cs @@ -863,7 +863,7 @@ public void CreateDeclarationWith(ICssStyleSheet owner, ICssProperties propertie value = ResolveRelativeUrls(owner, value); } - if ((owner?.OwnerNode?.Owner ?? _context.Active)?.CompatMode == "BackCompat") + if (PresentationalHints.IsQuirksMode(owner?.OwnerNode?.Owner ?? _context.Active)) { value = ApplyQuirks(name, value); } @@ -1084,16 +1084,19 @@ private String CreateValue(ref CssToken token, out Boolean important) /// private static String ResolveRelativeUrls(ICssStyleSheet owner, String value) { + var constructedSheet = owner as CssStyleSheet; + var isConstructed = constructedSheet?.IsConstructed == true; + if (value.IndexOf("url(", StringComparison.OrdinalIgnoreCase) < 0 || - String.IsNullOrEmpty(owner?.Href) || - owner.OwnerNode is IHtmlStyleElement) + (!isConstructed && String.IsNullOrEmpty(owner?.Href)) || + (!isConstructed && owner.OwnerNode is IHtmlStyleElement)) { return value; } - var baseUrl = new Url(owner.Href); + var baseUrl = isConstructed ? constructedSheet.BaseUrl : new Url(owner.Href); - if (baseUrl.IsInvalid) + if (baseUrl is null || baseUrl.IsInvalid) { return value; } diff --git a/src/AngleSharp.Css/Parser/CssParser.cs b/src/AngleSharp.Css/Parser/CssParser.cs index d2ebee8b..106b6a59 100644 --- a/src/AngleSharp.Css/Parser/CssParser.cs +++ b/src/AngleSharp.Css/Parser/CssParser.cs @@ -202,7 +202,11 @@ public Task ParseStyleSheetAsync(ICssStyleSheet sheet, Cancellat internal ICssStyleSheet ParseStylesheet(TextSource source) { - var sheet = new CssStyleSheet(_context, source); + return ParseStylesheet(source, new CssStyleSheet(_context, source)); + } + + internal ICssStyleSheet ParseStylesheet(TextSource source, CssStyleSheet sheet) + { var tokenizer = CreateTokenizer(source); var builder = new CssBuilder(_options, tokenizer, _context); InvokeEventListener(new CssParseEvent(sheet, completed: false)); diff --git a/src/AngleSharp.Css/Parser/Micro/ConditionParser.cs b/src/AngleSharp.Css/Parser/Micro/ConditionParser.cs index bbcd23bb..513ec5c7 100644 --- a/src/AngleSharp.Css/Parser/Micro/ConditionParser.cs +++ b/src/AngleSharp.Css/Parser/Micro/ConditionParser.cs @@ -81,6 +81,24 @@ private static IConditionFunction ConjunctionOrDisjunction(this StringSource sou private static IConditionFunction Group(this StringSource source, IBrowsingContext context, Int32 depth) { + var start = source.Index; + + if (source.ParseIdent() is String name && name.Isi("selector") && source.Current == Symbols.RoundBracketOpen) + { + source.SkipCurrentAndSpaces(); + var selector = source.TakeUntilClosed(); + + if (selector != null && source.Current == Symbols.RoundBracketClose) + { + source.SkipCurrentAndSpaces(); + return new SelectorCondition(context, selector); + } + + return null; + } + + source.BackTo(start); + // each parenthesis recurses, so beyond the limit the condition is invalid if (source.Current == Symbols.RoundBracketOpen && depth < ValueNesting.Limit) { diff --git a/src/AngleSharp.Css/RenderTree/ElementRenderNode.cs b/src/AngleSharp.Css/RenderTree/ElementRenderNode.cs index 6c3554f2..8e2e9600 100644 --- a/src/AngleSharp.Css/RenderTree/ElementRenderNode.cs +++ b/src/AngleSharp.Css/RenderTree/ElementRenderNode.cs @@ -2,7 +2,10 @@ namespace AngleSharp.Css.RenderTree { using AngleSharp.Css.Dom; using AngleSharp.Dom; + using System; using System.Collections.Generic; + using System.Linq; + using System.Threading; /// /// Represents a rendered element. @@ -11,9 +14,19 @@ public sealed class ElementRenderNode : IRenderNode { private readonly IElement _reference; private readonly ElementRenderNode? _parent; - private readonly IEnumerable _children; - private readonly ICssStyleDeclaration _specifiedStyle; private readonly ICssStyleDeclaration _computedStyle; + // Either the children (IEnumerable) or, in a partial render tree, what + // builds them on first read (RenderTreeBuilder.PendingChildren), which also keeps what + // only a partial tree needs: a complete node has no field for that. + private readonly Object _children; + + // The specified style is only built when it is read: from the explicit style of the + // element and the specified style its parent had when it was built (or, for the root + // of a rendering, the given one). + private readonly ICssStyleDeclaration? _explicitStyle; + private readonly ICssStyleDeclaration? _inheritedStyle; + private readonly IBrowsingContext? _context; + private SpecifiedStyles? _specified; /// /// Constructs a new rendered element. @@ -33,7 +46,39 @@ public ElementRenderNode( _reference = reference; _parent = parent; _children = children; - _specifiedStyle = specifiedStyle; + _specified = new SpecifiedStyles(specifiedStyle, specifiedStyle); + _computedStyle = computedStyle; + } + + /// + /// Constructs a rendered element whose specified style is built on first read. + /// + /// The reference to the original element. + /// The used parent node if any. + /// The contained children. + /// The explicit style of the element. + /// + /// The specified style to inherit from, if not the one of the parent node. + /// + /// The computed style of the element. + /// The context to create the specified style in. + /// Builds the children on first read, if not given. + internal ElementRenderNode( + IElement reference, + ElementRenderNode? parent, + IEnumerable? children, + ICssStyleDeclaration explicitStyle, + CssStyleDeclaration? inheritedStyle, + ICssStyleDeclaration computedStyle, + IBrowsingContext context, + RenderTreeBuilder.PendingChildren? pendingChildren) + { + _reference = reference; + _parent = parent; + _children = (Object?)pendingChildren ?? children!; + _explicitStyle = explicitStyle; + _inheritedStyle = inheritedStyle; + _context = context; _computedStyle = computedStyle; } @@ -47,7 +92,11 @@ public ElementRenderNode( /// /// Gets the contained render nodes. /// - public IEnumerable Children => _children; + public IEnumerable Children => _children is RenderTreeBuilder.PendingChildren pending + ? pending.GetChildren(this) + : (IEnumerable)_children; + + private RenderTreeBuilder.PendingChildren? Pending => _children as RenderTreeBuilder.PendingChildren; /// /// Gets the parent of the node. @@ -57,11 +106,86 @@ public ElementRenderNode( /// /// Gets the cascaded style of the element. /// - public ICssStyleDeclaration SpecifiedStyle => _specifiedStyle; + public ICssStyleDeclaration SpecifiedStyle => GetSpecifiedStyles().Style; /// /// Gets the computed style of the element. /// public ICssStyleDeclaration ComputedStyle => _computedStyle; + + private Boolean InheritsFromParent => _inheritedStyle is null && Pending?.GetInheritedStyle is null && _parent is not null; + + /// + /// Gets the children without the ::before and ::after. In a partial tree these are only + /// built when all children are read; in a complete one they are taken from them. + /// + internal List Content => Pending?.GetContent(this) ?? Children.Where(m => m.Ref is not IPseudoElement).ToList(); + + /// + /// Forgets the children without the ::before and ::after of a partial tree, so they can + /// be collected once nothing else refers to them; reading them again builds them again. + /// Only for a partial tree that nobody else sees. + /// + internal void ReleaseContent() => Pending?.ReleaseContent(); + + private SpecifiedStyles GetSpecifiedStyles() + { + var specified = Volatile.Read(ref _specified); + + if (specified is not null) + { + return specified; + } + + // build the missing ones top-down without recursion, as the chain is as deep as the tree + var pending = new Stack(); + + for (var node = this; node is not null && Volatile.Read(ref node._specified) is null; node = node.InheritsFromParent ? node._parent : null) + { + pending.Push(node); + } + + while (pending.Count > 0) + { + specified = pending.Pop().BuildSpecifiedStyles(); + } + + return specified!; + } + + private SpecifiedStyles BuildSpecifiedStyles() + { + var inherited = InheritsFromParent ? Volatile.Read(ref _parent!._specified)!.ForChildren : _inheritedStyle ?? Pending?.GetInheritedStyle?.Invoke(); + var style = new CssStyleDeclaration(_context); + style.SetDeclarations(_explicitStyle!); + + if (inherited is not null) + { + style.InheritFrom(inherited); + } + + // another thread may have been faster: then its style is the one of the node + var specified = new SpecifiedStyles(style, style.Freeze()); + return Interlocked.CompareExchange(ref _specified, specified, null) ?? specified; + } + + private sealed class SpecifiedStyles + { + public SpecifiedStyles(ICssStyleDeclaration style, ICssStyleDeclaration forChildren) + { + Style = style; + ForChildren = forChildren; + } + + /// + /// Gets the specified style handed out, which may be modified. + /// + public ICssStyleDeclaration Style { get; } + + /// + /// Gets the specified style as it was built, which the children inherit. + /// + public ICssStyleDeclaration ForChildren { get; } + } } } diff --git a/src/AngleSharp.Css/RenderTree/InnerText.cs b/src/AngleSharp.Css/RenderTree/InnerText.cs new file mode 100644 index 00000000..17aa169a --- /dev/null +++ b/src/AngleSharp.Css/RenderTree/InnerText.cs @@ -0,0 +1,402 @@ +#nullable enable +namespace AngleSharp.Css.RenderTree +{ + using AngleSharp.Css.Dom; + using AngleSharp.Dom; + using AngleSharp.Html.Dom; + using AngleSharp.Text; + using System; + using System.Collections.Generic; + using System.Linq; + using System.Text; + + /// + /// Collects the rendered text of an element (innerText) from its render tree: + /// https://html.spec.whatwg.org/multipage/dom.html#the-innertext-idl-attribute + /// + static class InnerText + { + /// + /// Gets the rendered text of the element, from a partial render tree that only + /// styles what is needed, e.g. not the content of hidden elements. + /// + public static String Get(IElement element) + { + var window = element.Owner?.DefaultView; + + if (window is null) + { + return element.TextContent; + } + + var builder = RenderTreeBuilder.GetInstance(window); + // nobody else sees this tree: what has been walked can be released on the way + return Get(builder.RenderPartial(element, builder.DefaultDevice), true); + } + + /// + /// Gets the rendered text of the element of the given render node. + /// + public static String Get(ElementRenderNode node) => Get(node, false); + + /// + /// Gets the rendered text of the element of the given render node, releasing the + /// children of every node once it is walked if the tree is the walk's own: a tree + /// that stays reachable until the end makes the garbage collector copy all of it. + /// + private static String Get(ElementRenderNode node, Boolean release) + { + var element = node.Ref; + var display = node.ComputedStyle.GetDisplay(); + var hidden = !String.IsNullOrEmpty(display) ? display == CssKeywords.None : (element as IHtmlElement)?.IsHidden ?? false; + + // an element that is not being rendered gives its text content + if (hidden) + { + return element.TextContent; + } + + var sb = StringBuilderPool.Obtain(); + var requiredLineBreakCounts = new Dictionary(); + var textStyleCache = new Dictionary(); + Collect(node, null, sb, requiredLineBreakCounts, textStyleCache, release); + + // Remove any runs of consecutive required line break count items at the start or end of results. + requiredLineBreakCounts.Remove(0); + requiredLineBreakCounts.Remove(sb.Length); + var offset = 0; + + // SortedDictionary would be nicer + foreach (var keyval in requiredLineBreakCounts.OrderBy(kv => kv.Key)) + { + var index = keyval.Key + offset; + sb.Insert(index, new String(Symbols.LineFeed, keyval.Value)); + offset += keyval.Value; + } + + return sb.ToPool(); + } + + private static void Collect(IRenderNode node, ElementRenderNode? nextElement, StringBuilder sb, Dictionary requiredLineBreakCounts, Dictionary textStyleCache, Boolean release) + { + if (!HasCssBox(node.Ref)) + { + return; + } + + var style = (node as ElementRenderNode)?.ComputedStyle; + var hidden = new Nullable(); + + if (style is not null) + { + var display = style.GetDisplay(); + var visibility = style.GetVisibility(); + + if (!String.IsNullOrEmpty(display)) + { + hidden = display == CssKeywords.None; + } + + if (!String.IsNullOrEmpty(visibility) && hidden != true) + { + hidden = visibility != CssKeywords.Visible; + } + } + + // the children of a hidden element are never read, i.e., not even built + if (hidden ?? (node.Ref as IHtmlElement)?.IsHidden ?? false) + { + return; + } + + var startIndex = sb.Length; + + if (node is ElementRenderNode element) + { + var children = GetChildren(element); + + for (var i = 0; i < children.Count; i++) + { + Collect(children[i], NextElement(children, i), sb, requiredLineBreakCounts, textStyleCache, release); + } + + // the siblings stay, as the next sibling's style decides on the separator + if (release) + { + element.ReleaseContent(); + } + } + + if (node is TextRenderNode text) + { + var next = text.Ref.NextSibling; + var lastLine = next is null || String.IsNullOrEmpty(next.TextContent) || next is IHtmlBreakRowElement; + var styleInfo = GetTextStyleInfo((text.Parent as ElementRenderNode)?.ComputedStyle, textStyleCache); + ProcessText(text.Ref.Data, sb, styleInfo.WhiteSpace, styleInfo.TextTransform, lastLine, requiredLineBreakCounts); + } + else if (node.Ref is IHtmlBreakRowElement) + { + sb.Append(Symbols.LineFeed); + } + else if (style is not null && IsTableCell(node.Ref, style)) + { + if (nextElement is not null && IsTableCell(nextElement.Ref, nextElement.ComputedStyle)) + { + sb.Append(Symbols.Tab); + } + } + else if (style is not null && IsTableRow(node.Ref, style)) + { + if (nextElement is not null && IsTableRow(nextElement.Ref, nextElement.ComputedStyle)) + { + sb.Append(Symbols.LineFeed); + } + } + else if (node.Ref is IHtmlParagraphElement) + { + RequireLineBreaks(requiredLineBreakCounts, startIndex, 2); + RequireLineBreaks(requiredLineBreakCounts, sb.Length, 2); + } + + if ((style is not null && IsBlockLevelDisplay(style.GetDisplay())) || IsBlockLevel(node.Ref)) + { + RequireLineBreaks(requiredLineBreakCounts, startIndex, 1); + RequireLineBreaks(requiredLineBreakCounts, sb.Length, 1); + } + } + + /// + /// Gets the render nodes of the element's own child nodes, in tree order. Generated + /// content is left out, and so is the shadow tree of a shadow host: its light children + /// count if they are rendered, i.e., assigned to a slot of the shadow tree. + /// + private static List GetChildren(ElementRenderNode node) + { + var element = node.Ref; + + if (element is not IPseudoElement && element.ShadowRoot is not null) + { + var rendered = FindRenderedChildren(node); + var children = new List(); + + foreach (var child in element.ChildNodes) + { + if (rendered.TryGetValue(child, out var renderNode)) + { + children.Add(renderNode); + } + } + + return children; + } + + return node.Content; + } + + /// + /// Finds the render nodes of the host's own child nodes, which are placed in the slots + /// anywhere in its shadow tree. + /// + private static Dictionary FindRenderedChildren(ElementRenderNode host) + { + var rendered = new Dictionary(); + var pending = new Stack(host.Content); + + while (pending.Count > 0) + { + var current = pending.Pop(); + + if (Object.ReferenceEquals(current.Ref.Parent, host.Ref)) + { + rendered[current.Ref] = current; + } + else if (current is ElementRenderNode element) + { + foreach (var child in element.Content) + { + pending.Push(child); + } + } + } + + return rendered; + } + + private static ElementRenderNode? NextElement(List children, Int32 index) + { + for (var i = index + 1; i < children.Count; i++) + { + if (children[i] is ElementRenderNode element) + { + return element; + } + } + + return null; + } + + private static Boolean IsTableCell(INode node, ICssStyleDeclaration style) => + (node is IHtmlTableCellElement && String.IsNullOrEmpty(style.GetDisplay())) || style.GetDisplay() == CssKeywords.TableCell; + + private static Boolean IsTableRow(INode node, ICssStyleDeclaration style) => + (node is IHtmlTableRowElement && String.IsNullOrEmpty(style.GetDisplay())) || style.GetDisplay() == CssKeywords.TableRow; + + private static void RequireLineBreaks(Dictionary requiredLineBreakCounts, Int32 index, Int32 count) + { + requiredLineBreakCounts.TryGetValue(index, out var current); + + if (current < count) + { + requiredLineBreakCounts[index] = count; + } + } + + private static Boolean HasCssBox(INode node) + { + return node.NodeName switch + { + "CANVAS" or "COL" or "COLGROUP" or "DETAILS" or "FRAME" or "FRAMESET" or "IFRAME" or "IMG" or "INPUT" or "LINK" or "METER" or "PROGRESS" or "TEMPLATE" or "TEXTAREA" or "VIDEO" or "WBR" or "SCRIPT" or "STYLE" or "NOSCRIPT" => false, + _ => true, + }; + } + + private static Boolean IsBlockLevelDisplay(String display) + { + // https://www.w3.org/TR/css-display-3/#display-value-summary + // https://hg.mozilla.org/mozilla-central/file/0acceb224b7d/servo/components/layout/query.rs#l1016 + return display switch + { + "block" or "flow-root" or "flex" or "grid" or "table" or "table-caption" => true, + _ => false, + }; + } + + private static Boolean IsBlockLevel(INode node) + { + // https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements + return node.NodeName switch + { + "ADDRESS" or "ARTICLE" or "ASIDE" or "BLOCKQUOTE" or "CANVAS" or "DD" or "DIV" or "DL" or "DT" or "FIELDSET" or "FIGCAPTION" or "FIGURE" or "FOOTER" or "FORM" or "H1" or "H2" or "H3" or "H4" or "H5" or "H6" or "HEADER" or "GROUP" or "HR" or "LI" or "MAIN" or "NAV" or "NOSCRIPT" or "OL" or "OPTION" or "OUTPUT" or "P" or "PRE" or "SECTION" or "TABLE" or "TFOOT" or "UL" or "VIDEO" => true, + _ => false, + }; + } + + private static Boolean IsWhiteSpace(Char c) => Char.IsWhiteSpace(c) && c != Symbols.NoBreakSpace; + + private static TextStyleInfo GetTextStyleInfo(ICssStyleDeclaration? style, Dictionary cache) + { + if (style is null) + { + return default; + } + + if (cache.TryGetValue(style, out var info)) + { + return info; + } + + info = new TextStyleInfo(style.GetWhiteSpace(), style.GetTextTransform()); + cache[style] = info; + return info; + } + + private static void ProcessText(String text, StringBuilder sb, String? whiteSpace, String? textTransform, Boolean lastLine, Dictionary requiredLineBreakCounts) + { + var startIndex = sb.Length; + var isWhiteSpace = startIndex <= 0 || IsWhiteSpace(sb[startIndex - 1]) || (requiredLineBreakCounts.ContainsKey(startIndex) && IsWhiteSpace(text[0])); + + for (var i = 0; i < text.Length; i++) + { + var c = text[i]; + + if (Char.IsWhiteSpace(c) && c != Symbols.NoBreakSpace) + { + // https://drafts.csswg.org/css-text/#white-space-property + switch (whiteSpace) + { + case "pre": + case "pre-wrap": + break; + case "pre-line": + if (c == Symbols.Space || c == Symbols.Tab) + { + if (isWhiteSpace) + { + continue; + } + + c = Symbols.Space; + } + break; + case "nowrap": + case "normal": + default: + if (isWhiteSpace) + { + continue; + } + + c = Symbols.Space; + break; + } + + isWhiteSpace = true; + } + else + { + // https://drafts.csswg.org/css-text/#propdef-text-transform + switch (textTransform) + { + case "uppercase": + c = Char.ToUpperInvariant(c); + break; + case "lowercase": + c = Char.ToLowerInvariant(c); + break; + case "capitalize": + if (isWhiteSpace) + { + c = Char.ToUpperInvariant(c); + } + break; + case "none": + default: + break; + } + + isWhiteSpace = false; + } + + sb.Append(c); + } + + // ended with whitespace + if (isWhiteSpace && lastLine) + { + for (var offset = sb.Length - 1; offset >= startIndex; offset--) + { + var c = sb[offset]; + + if (!Char.IsWhiteSpace(c) || c == Symbols.NoBreakSpace) + { + sb.Remove(offset + 1, sb.Length - 1 - offset); + break; + } + } + } + } + + private readonly struct TextStyleInfo + { + public TextStyleInfo(String? whiteSpace, String? textTransform) + { + WhiteSpace = whiteSpace; + TextTransform = textTransform; + } + + public String? WhiteSpace { get; } + + public String? TextTransform { get; } + } + } +} diff --git a/src/AngleSharp.Css/RenderTree/RenderTreeBuilder.cs b/src/AngleSharp.Css/RenderTree/RenderTreeBuilder.cs index 775dcf12..0868ccba 100644 --- a/src/AngleSharp.Css/RenderTree/RenderTreeBuilder.cs +++ b/src/AngleSharp.Css/RenderTree/RenderTreeBuilder.cs @@ -11,6 +11,7 @@ namespace AngleSharp.Css.RenderTree using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; + using System.Threading; sealed class RenderTreeBuilder { @@ -20,6 +21,7 @@ sealed class RenderTreeBuilder private readonly IWindow _window; private readonly List _defaultSheets; private readonly Dictionary _cascadedStyles = new(); + private readonly Dictionary _renderedNodes = new(); private RenderTreeBuilder(IWindow window) { @@ -41,12 +43,18 @@ public ElementRenderNode RenderDocument(IRenderDevice? device = null) var collection = CreateStyleCollection(device ?? DefaultDevice); _cascadedStyles.Clear(); + _renderedNodes.Clear(); return RenderElement(root, collection, null, null, null); } public ICssStyleDeclaration GetElementStyle(IElement element, IRenderDevice? device = null) { + if (_renderedNodes.TryGetValue(element, out var node)) + { + return node.SpecifiedStyle; + } + if (_cascadedStyles.TryGetValue(element, out var cascadedStyle)) { return cascadedStyle; @@ -62,10 +70,11 @@ public ElementRenderNode RenderElement(IElement element, IRenderDevice device) { var collection = CreateStyleCollection(device); var parent = element.ParentElement; - var parentSpecifiedStyle = parent is not null ? collection.GetDeclarations(parent) : null; + var parentSpecifiedStyle = parent is not null ? (CssStyleDeclaration)collection.GetDeclarations(parent) : null; var parentComputedStyle = parent is not null ? collection.ComputeDeclarations(parent) : null; _cascadedStyles.Clear(); + _renderedNodes.Clear(); return RenderElement(element, collection, null, parentSpecifiedStyle, parentComputedStyle); } @@ -73,13 +82,37 @@ public ElementRenderNode RenderElement(IElement element, IRenderDevice device) public ElementRenderNode RenderElement(IElement element, ElementRenderNode parent, IRenderDevice device) { var collection = CreateStyleCollection(device); - return RenderElement(element, collection, parent, parent.SpecifiedStyle, parent.ComputedStyle); + // the specified style of the parent as it is now, also if modified since + var parentSpecifiedStyle = parent.SpecifiedStyle is CssStyleDeclaration style ? style.Freeze() : Copy(parent.SpecifiedStyle); + return RenderElement(element, collection, parent, parentSpecifiedStyle, parent.ComputedStyle); + } + + /// + /// Renders the element into a partial render tree: the children of a node are only + /// built when they are read, so e.g. the content of a hidden element is never styled. + /// The parts are built from the DOM and style sheets of the moment they are read, and + /// the tree is not remembered (as GetElementStyle does for complete ones). + /// + public ElementRenderNode RenderPartial(IElement element, IRenderDevice device) + { + var collection = CreateStyleCollection(device); + var parent = element.ParentElement; + var parentComputedStyle = parent is not null ? collection.ComputeDeclarations(parent) : null; + var getInheritedStyle = parent is not null ? () => collection.GetDeclarations(parent) : default(Func); + return RenderElement(element, collection, null, null, parentComputedStyle, getInheritedStyle: getInheritedStyle, partial: true); + } + + private CssStyleDeclaration Copy(ICssStyleDeclaration style) + { + var copy = new CssStyleDeclaration(_context); + copy.SetDeclarations(style); + return copy; } private StyleCollection CreateStyleCollection(IRenderDevice device) { var document = _window.Document; - var currentSheets = document.GetStyleSheets().OfType(); + var currentSheets = document.GetEffectiveStyleSheets(); return new StyleCollection(_defaultSheets, currentSheets.ToList(), device); } @@ -87,30 +120,61 @@ private ElementRenderNode RenderElement( IElement element, StyleCollection collection, ElementRenderNode? parent, - ICssStyleDeclaration? parentSpecifiedStyle, + CssStyleDeclaration? inheritedStyle, ICssStyleDeclaration? parentComputedStyle, ICssStyleDeclaration? explicitStyle = null, - StyleCollection? slottedCollection = null) + StyleCollection? slottedCollection = null, + Func? getInheritedStyle = null, + Boolean partial = false) { var shadowCollection = CreateShadowCollection(element, collection); explicitStyle ??= shadowCollection is not null ? collection.ComputeHostStyle(shadowCollection, element) : collection.ComputeExplicitStyle(element); - var specifiedStyle = new CssStyleDeclaration(_context); - specifiedStyle.SetDeclarations(explicitStyle); + var computeContext = new CssComputeContext(collection.Device, _context, explicitStyle, parentComputedStyle); + var computedStyle = explicitStyle.PrepareComputedDeclarations(parentComputedStyle!, computeContext).Compute(computeContext).Blockify(element); + var pending = partial ? new PendingChildren(this, collection, shadowCollection, slottedCollection, getInheritedStyle) : null; + var children = partial ? null : new List(); + // inherits the specified style of the parent node, unless another one is given + var node = new ElementRenderNode(element, parent, children, explicitStyle, inheritedStyle, computedStyle, _context, pending); - if (parentSpecifiedStyle is not null) + if (children is not null) { - specifiedStyle.InheritFrom(parentSpecifiedStyle); + _renderedNodes[element] = node; + AddChildren(node, children, collection, shadowCollection, slottedCollection, false); } - var computeContext = new CssComputeContext(collection.Device, _context, explicitStyle, parentComputedStyle); - var computedStyle = explicitStyle.PrepareComputedDeclarations(parentComputedStyle!, computeContext).Compute(computeContext).Blockify(element); - var children = new List(); - var node = new ElementRenderNode(element, parent, children, specifiedStyle, computedStyle); + return node; + } + + private void AddChildren(ElementRenderNode node, List children, StyleCollection collection, StyleCollection? shadowCollection, StyleCollection? slottedCollection, Boolean partial) + { + var element = node.Ref; + var beforeNode = element is IPseudoElement ? null : RenderPseudoElement(element, "before", collection, node, node.ComputedStyle, partial); + + if (beforeNode is not null) + { + children.Add(beforeNode); + } + + AddContent(node, children, collection, shadowCollection, slottedCollection, partial); - _cascadedStyles[element] = specifiedStyle; + var afterNode = element is IPseudoElement ? null : RenderPseudoElement(element, "after", collection, node, node.ComputedStyle, partial); + + if (afterNode is not null) + { + children.Add(afterNode); + } + } + + /// + /// Adds the children of the node without its ::before and ::after. + /// + private void AddContent(ElementRenderNode node, List children, StyleCollection collection, StyleCollection? shadowCollection, StyleCollection? slottedCollection, Boolean partial) + { + var element = node.Ref; + var computedStyle = node.ComputedStyle; if (element is IPseudoElement) { @@ -121,36 +185,113 @@ private ElementRenderNode RenderElement( // this same element, since a pseudo-element has no attributes of its own to differ from // its host's). children.Add(new TextRenderNode(_window.Document.CreateTextNode(ContentDeclaration.Stringify(computedStyle, element)), node)); - return node; - } - - var beforeNode = RenderPseudoElement(element, "before", collection, node, specifiedStyle, computedStyle); - - if (beforeNode is not null) - { - children.Add(beforeNode); + return; } foreach (var child in GetFlatChildren(element, collection, shadowCollection, slottedCollection)) { if (child.Node is IElement childElement) { - children.Add(RenderElement(childElement, child.Collection, node, specifiedStyle, computedStyle, slottedCollection: child.SlottedCollection)); + children.Add(RenderElement(childElement, child.Collection, node, null, computedStyle, slottedCollection: child.SlottedCollection, partial: partial)); } else if (child.Node is IText childText) { children.Add(new TextRenderNode(childText, node)); } } + } - var afterNode = RenderPseudoElement(element, "after", collection, node, specifiedStyle, computedStyle); + /// + /// What is needed to build the children of a node of a partial tree later on, and what + /// only such a node needs. + /// + internal sealed class PendingChildren + { + private readonly RenderTreeBuilder _builder; + private readonly StyleCollection _collection; + private readonly StyleCollection? _shadowCollection; + private readonly StyleCollection? _slottedCollection; + private List? _content; + private List? _children; + + public PendingChildren(RenderTreeBuilder builder, StyleCollection collection, StyleCollection? shadowCollection, StyleCollection? slottedCollection, Func? getInheritedStyle) + { + _builder = builder; + _collection = collection; + _shadowCollection = shadowCollection; + _slottedCollection = slottedCollection; + GetInheritedStyle = getInheritedStyle; + } - if (afterNode is not null) + /// + /// Gets the specified style to inherit from for the root of the partial tree, if + /// it has a parent element. + /// + public Func? GetInheritedStyle { get; } + + /// + /// Gets the children of the node without its ::before and ::after, which are built + /// on first read. + /// + public List GetContent(ElementRenderNode node) { - children.Add(afterNode); + var content = Volatile.Read(ref _content); + + if (content is null) + { + content = new List(); + _builder.AddContent(node, content, _collection, _shadowCollection, _slottedCollection, true); + // another thread may have been faster: then its children are the ones of the node + content = Interlocked.CompareExchange(ref _content, content, null) ?? content; + } + + return content; } - return node; + /// + /// Forgets the children without the ::before and ::after. + /// + public void ReleaseContent() => Volatile.Write(ref _content, null); + + /// + /// Gets all children of the node, which are built on first read. + /// + public IEnumerable GetChildren(ElementRenderNode node) + { + var children = Volatile.Read(ref _children); + + if (children is null) + { + var before = BuildPseudoElement(node, "before"); + var content = GetContent(node); + var after = BuildPseudoElement(node, "after"); + children = new List(content.Count + 2); + + if (before is not null) + { + children.Add(before); + } + + children.AddRange(content); + + if (after is not null) + { + children.Add(after); + } + + // another thread may have been faster: then its children are the ones of the node + children = Interlocked.CompareExchange(ref _children, children, null) ?? children; + } + + return children; + } + + /// + /// Builds the ::before or ::after of the node, if it has one. + /// + public ElementRenderNode? BuildPseudoElement(ElementRenderNode node, String name) => node.Ref is IPseudoElement ? + null : + _builder.RenderPseudoElement(node.Ref, name, _collection, node, node.ComputedStyle, true); } /// @@ -183,7 +324,7 @@ private static IEnumerable GetFlatChildren( return null; } - var shadowSheets = shadowRoot.StyleSheets.OfType().ToList(); + var shadowSheets = shadowRoot.GetEffectiveStyleSheets().ToList(); return new StyleCollection(_defaultSheets, shadowSheets, collection.Device, element); } @@ -245,12 +386,14 @@ public FlatChild(INode node, StyleCollection collection, StyleCollection? slotte String name, StyleCollection collection, ElementRenderNode parent, - ICssStyleDeclaration parentSpecifiedStyle, - ICssStyleDeclaration parentComputedStyle) + ICssStyleDeclaration parentComputedStyle, + Boolean partial) { var pseudo = element.Pseudo(name); - if (pseudo is null) + // Only a rule can declare `content`: without one that may match the pseudo-element + // (most elements have none) it has no box, and its style is not computed at all. + if (pseudo is null || !collection.GetIndex().MayDeclareContent(pseudo)) { return null; } @@ -264,7 +407,7 @@ public FlatChild(INode node, StyleCollection collection, StyleCollection? slotte return null; } - var node = RenderElement(pseudo, collection, parent, parentSpecifiedStyle, parentComputedStyle, explicitStyle); + var node = RenderElement(pseudo, collection, parent, null, parentComputedStyle, explicitStyle, partial: partial); // Per spec, `content: none` (and the initial/unset `normal`, equivalent for these two // pseudo-elements specifically) means no box is generated at all - not merely an empty diff --git a/src/AngleSharp.Performance.Css/AngleSharp.Performance.Css.csproj b/src/AngleSharp.Performance.Css/AngleSharp.Performance.Css.csproj index a687ec4c..2dfa0b18 100644 --- a/src/AngleSharp.Performance.Css/AngleSharp.Performance.Css.csproj +++ b/src/AngleSharp.Performance.Css/AngleSharp.Performance.Css.csproj @@ -3,7 +3,7 @@ net472;net10.0 Exe false - 1.* + 1.10.0 diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 333dd16b..bf95587e 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -2,7 +2,7 @@ Extends the CSSOM from the core AngleSharp library. AngleSharp.Css - 1.3.2 + 1.4.0 enable latest true