Donner SVG main
0.8.0 ยท 382bd0190.8.0 main
SVG editor and embeddable C⁠+⁠+⁠20 engine.
Loading...
Searching...
No Matches
donner::svg::PropertyRegistry Class Reference

Holds CSS properties for a single element. More...

#include "donner/svg/properties/PropertyRegistry.h"

Public Member Functions

 PropertyRegistry ()
 Constructor.
 ~PropertyRegistry ()
 Destructor.
 PropertyRegistry (const PropertyRegistry &)
 Copy constructor.
 PropertyRegistry (PropertyRegistry &&) noexcept
 Move constructor.
PropertyRegistry & operator= (const PropertyRegistry &)
 Copy assignment operator.
PropertyRegistry & operator= (PropertyRegistry &&) noexcept
 Move assignment operator.
auto allProperties () const
 Return a tuple of all properties within the PropertyRegistry.
auto allPropertiesMutable ()
 Return a mutable tuple of all properties within the PropertyRegistry.
size_t numPropertiesSet () const
 Return the number of properties set within the PropertyRegistry.
void resolveElementColors (ParseWarningSink &warningSink)
 Resolve resource-color overlays and deferred diagnostics before computing inheritance.
PropertyRegistry inheritFrom (const PropertyRegistry &parent, PropertyInheritOptions options=PropertyInheritOptions::All) const
 Inherit the value of each element in the stylesheet.
std::size_t complexPropertyBytes () const
 Dynamic bytes in inheritable complex property values that copying would retain.
void resolveFontSize (double parentFontSizePx)
 Resolve font-size from relative units (em, %, ex) to absolute pixels.
void resolveTextDecorationThickness (double rootFontSizePx=16.0)
 Compute font-relative decoration lengths before a descendant explicitly inherits them.
void resolveInsetClipLengths (double rootFontSizePx)
 Resolve supported inset offsets to computed pixels while retaining percentages. Unrepresentable offsets keep an empty clipping region. Call after resolving this element's computed font size, before descendants inherit styles.
void resolveFontWeight (int parentFontWeight)
 Resolve relative font-weight keywords (bolder/lighter) against the parent's computed font-weight.
void resolveFontStretch (int parentFontStretch)
 Resolve relative font-stretch keywords (narrower/wider) against the parent's computed font-stretch value.
std::optional< ParseDiagnostic > parseProperty (const css::Declaration &declaration, css::Specificity specificity)
 Parse a single declaration, adding it to the property registry.
bool parseStyle (std::string_view str)
 Parse a SVG style attribute, and set the parsed values on this PropertyRegistry.
void clearStyleAttributeProperties ()
 Clear every property that was set from a style="" attribute, leaving presentation attributes (specificity 0,0,0) and stylesheet-origin declarations intact.
ParseResult< bool > parsePresentationAttribute (std::string_view name, std::string_view value, EntityHandle handle=EntityHandle(), css::Specificity specificity={})
 Parse a common presentation attribute (CSS properties like fill, stroke, etc.) or transform.

Static Public Member Functions

static constexpr size_t numProperties ()
 Return the size of the tuple returned by allProperties().
template<size_t Start, size_t End, class F>
static constexpr void forEachProperty (const F &f)
 Calls a compile time functor for each property in the registry.
static std::span< const std::string_view > propertyNames ()
 Returns all CSS property names understood by this registry.
static bool isPresentationAttributeName (std::string_view name)
 Returns true if a name is a valid SVG presentation attribute.
static bool isPresentationAttributeInherited (std::string_view name)
 Returns true if a presentation attribute participates in inheritance.

Public Attributes

Property< css::Color, PropertyCascade::Inherit > color
 color property, which stores the context color of the element. For painting shapes, use stroke or fill instead.
Property< css::Color > floodColor
 flood-color property, used by filter floods and drop shadows. Only explicit inheritance propagates this color from an ancestor.
Property< css::Color > stopColor
 stop-color property, used by gradient stops. Only explicit inheritance propagates this color from an ancestor.
Property< css::Color > lightingColor
 Light-source color for diffuse and specular lighting. Only explicit inheritance propagates it.
Property< Display > display {"display", []() -> std::optional<Display> { return Display::Inline; }}
 display property, which determines how the element is rendered. Set to Display::None to hide the element.
Property< double > opacity {"opacity", []() -> std::optional<double> { return 1.0; }}
 opacity property, which determines the opacity of the element. A value of 0.0 will make the element invisible.
Property< Visibility, PropertyCascade::Inherit > visibility
 visibility property, which determines whether the element is visible. Set to Visibility::Hidden to hide the element. Compared to display with Display::None, hiding the element will not remove it from the document, so it will still contribute to bounding boxes.
Property< Overflow > overflow
 overflow property, which determines how content that overflows the element's box is handled. Defaults to visible.
Property< TransformOrigin > transformOrigin
 transform-origin property, which sets the origin for transformations.
Property< PaintServer, PropertyCascade::PaintInherit > fill
 fill property, which determines the color of the element's interior. Defaults to black.
Property< FillRule, PropertyCascade::Inherit > fillRule
 fill-rule property, which determines how the interior of the element is filled in the case of overlapping shapes. Defaults to FillRule::NonZero.
Property< double, PropertyCascade::Inherit > fillOpacity
 fill-opacity property, which determines the opacity of the element's interior. Defaults to 1.0. A value of 0.0 will make the interior invisible.
Property< PaintServer, PropertyCascade::PaintInherit > stroke
 stroke property, which determines the color of the element's outline stroke. Defaults to none.
Property< double, PropertyCascade::Inherit > strokeOpacity
 stroke-opacity property, which determines the opacity of the element's outline stroke. Defaults to 1.0. A value of 0.0 will make the outline invisible.
Property< Lengthd, PropertyCascade::Inherit > strokeWidth
 stroke-width property, which determines the width of the element's outline stroke. Defaults to 1.0.
Property< StrokeLinecap, PropertyCascade::Inherit > strokeLinecap
 stroke-linecap property, which determines the shape of the element's outline stroke at the ends of the path. Defaults to StrokeLinecap::Butt.
Property< StrokeLinejoin, PropertyCascade::Inherit > strokeLinejoin
 stroke-linejoin property, which determines the shape of the element's outline stroke in between line segments. Defaults to StrokeLinejoin::Miter.
Property< double, PropertyCascade::Inherit > strokeMiterlimit
 stroke-miterlimit property, which determines the limit of the ratio of the miter length to the stroke width. Defaults to 4.0.
Property< StrokeDasharray, PropertyCascade::Inherit > strokeDasharray
 stroke-dasharray property, which determines the pattern of dashes and gaps used to stroke paths.
Property< Lengthd, PropertyCascade::Inherit > strokeDashoffset
 stroke-dashoffset property, which determines the distance into the dash pattern to start the stroke.
Property< VectorEffect > vectorEffect
 vector-effect property, which modifies how the element is affected by coordinate system transformations. Not inherited per spec. Defaults to VectorEffect::None. Only VectorEffect::NonScalingStroke is honored during rendering.
Property< ClipPath, PropertyCascade::None > clipPath
 clip-path property, which determines the shape of the element's clipping region. Defaults to none.
Property< ClipRule, PropertyCascade::Inherit > clipRule
 clip-rule property, which determines how the interior of the element is filled in the case of overlapping shapes. Defaults to ClipRule::NonZero.
Property< Reference, PropertyCascade::None > mask
 mask property, which determines the shape of the element's clipping region. Defaults to none.
Property< MaskType > maskType
 mask-type property, which selects how rendered <mask> content becomes coverage. Defaults to luminance and is not inherited.
Property< ColorInterpolation, PropertyCascade::Inherit > colorInterpolation
 Inherited color-interpolation property. Defaults to sRGB; used by luminance masks.
Property< std::vector< FilterEffect > > filter
 filter property, which determines the filter effect(s) to apply to the element. Defaults to an empty list (no filter). Supports CSS filter function lists like blur(5px) grayscale().
Property< ColorInterpolationFilters, PropertyCascade::Inherit > colorInterpolationFilters
 color-interpolation-filters property, which determines the color space for filter operations. Defaults to ColorInterpolationFilters::LinearRGB. Inherited.
Property< PointerEvents, PropertyCascade::Inherit > pointerEvents
 pointer-events property, which determines how the element responds to pointer events (such as clicks or hover). Defaults to PointerEvents::Auto.
Property< Cursor, PropertyCascade::Inherit > cursor
 cursor property, which defines the mouse cursor to display when hovering over the element. Defaults to an empty image list and CursorType::Auto fallback. Inherited.
Property< Reference, PropertyCascade::Inherit > markerStart
 marker-start property, which determines the marker to be drawn at the start of the path.
Property< Reference, PropertyCascade::Inherit > markerMid
 marker-mid property, which determines the marker to be drawn at the middle of the path.
Property< Reference, PropertyCascade::Inherit > markerEnd
 marker-end property, which determines the marker to be drawn at the end of the path.
Property< SmallVector< RcString, 1 >, PropertyCascade::Inherit > fontFamily
 font-family property, which determines the font family for text content. Inherited.
Property< Lengthd, PropertyCascade::Inherit > fontSize
 font-size property, which determines the font size for text content. Inherited. Initial value is medium, which maps to the UA default font size (12px).
Property< int, PropertyCascade::Inherit > fontWeight
 font-weight property, which determines the font weight (boldness) for text content. Inherited. Value is a numeric weight (100-900), where 400=normal and 700=bold. The relative keywords bolder/lighter are stored as sentinel values and resolved by resolveFontWeight() during style cascade.
Property< FontStyle, PropertyCascade::Inherit > fontStyle
 font-style property, which determines the style (normal/italic/oblique) for text content. Inherited. Defaults to FontStyle::Normal.
Property< int, PropertyCascade::Inherit > fontStretch
 font-stretch property, which determines the width (condensed/expanded) for text content. Inherited. Stored as the underlying integer of FontStretch for sentinel support. Defaults to FontStretch::Normal (5).
Property< FontVariant, PropertyCascade::Inherit > fontVariant
 font-variant shorthand property (SVG 1.1 subset: normal | small-caps). Inherited. Defaults to FontVariant::Normal.
Property< FontSynthesisSmallCaps, PropertyCascade::Inherit > fontSynthesisSmallCaps
 Inherited CSS small-caps synthesis policy; native features remain enabled.
Property< FontSynthesisStyle, PropertyCascade::Inherit > fontSynthesisStyle
 Inherited CSS permission to synthesize an oblique face; native faces remain enabled.
Property< FontKerning, PropertyCascade::Inherit > fontKerning
 font-kerning property. Inherited. auto and normal enable kerning; none disables it.
Property< std::optional< double >, PropertyCascade::Inherit > fontSizeAdjust
 font-size-adjust property. Inherited. An empty value represents the initial none value.
Property< OverflowWrap, PropertyCascade::Inherit > overflowWrap
 Inherited emergency line-breaking policy; word-wrap is an alias of this property.
Property< TextTransform, PropertyCascade::Inherit > textTransform
 Supported inherited CSS text-transform operation; defaults to none.
Property< WhiteSpace, PropertyCascade::Inherit > whiteSpace
 CSS white-space collapsing and wrapping policy, inherited by text descendants.
Property< TextAnchor, PropertyCascade::Inherit > textAnchor
 text-anchor property, which determines the alignment of text relative to its anchor point. Inherited. Defaults to TextAnchor::Start.
Property< TextDecoration > textDecoration
 text-decoration-line, which determines decoration lines drawn on text. The text-decoration shorthand also sets it, and the property keeps the shorthand's name. Not inherited. Defaults to TextDecoration::None.
Property< TextDecorationStyle > textDecorationStyle
 text-decoration-style of decorations originating on this element; not inherited.
Property< css::Color > textDecorationColor
 text-decoration-color of decorations originating on this element; not inherited.
Property< TextDecorationThickness > textDecorationThickness
 CSS thickness of decorations originating on this element; not inherited.
Property< DominantBaseline, PropertyCascade::Inherit > dominantBaseline
 dominant-baseline property, which determines the baseline alignment for text. Inherited (CSS Inline Layout 3). Defaults to DominantBaseline::Auto.
Property< Lengthd, PropertyCascade::Inherit > letterSpacing
 letter-spacing property, extra spacing between characters. Inherited. "normal" maps to 0. Defaults to 0 (normal).
Property< Lengthd, PropertyCascade::Inherit > wordSpacing
 word-spacing property, extra spacing between words (U+0020 space characters). Inherited. "normal" maps to 0. Defaults to 0 (normal).
Property< Lengthd > baselineShift
 baseline-shift property. Shifts the dominant baseline of the element. Not inherited. "baseline" = 0, "sub"/"super" map to em-relative offsets. Positive = shift up (per CSS). Stored as Lengthd.
Property< DominantBaseline > alignmentBaseline
 alignment-baseline property. Specifies how an inline element aligns with its parent's baseline. Uses the same enum as dominant-baseline (baseline parses to DominantBaseline::Auto - both defer to the dominant baseline). Not inherited.
Property< WritingMode, PropertyCascade::Inherit > writingMode
 writing-mode property, controlling text flow direction. Inherited.
Property< TextOrientation, PropertyCascade::Inherit > textOrientation
 text-orientation property, controlling glyph orientation in vertical text. Inherited.
Property< Lengthd > inlineSize
 inline-size property (SVG2). When set to a positive length on a <text> element it establishes an automatic wrapping area whose measure (extent in the inline axis) is the given length; text greedily wraps to that measure. Not inherited. The initial value 0 means "no wrapping area" (the text behaves as ordinary single-line SVG text).
Property< MixBlendMode > mixBlendMode
 mix-blend-mode property. Controls how an element composites with its backdrop. Not inherited. Defaults to Normal (SourceOver).
Property< Isolation > isolation
 isolation property. Forces creation of a new stacking context. Not inherited. Defaults to Auto.
Property< ImageRendering, PropertyCascade::Inherit > imageRendering
 image-rendering property. Selects smooth, crisp, or two-stage pixelated sampling. Inherited.
Property< PaintOrder, PropertyCascade::Inherit > paintOrder
 paint-order property. Controls the order in which fill, stroke, and markers of a shape/text are painted. Inherited. Defaults to fill, stroke, markers.
Property< Lengthd, PropertyCascade::Inherit > textIndent
 CSS text-indent: inherited first-line start margin in a fixed inline-size text area. Absolute lengths and em compute to pixels; percentages resolve against this text area's inline measure. hanging, each-line and other relative units are not supported.
std::map< RcString, parser::UnparsedProperty > unparsedProperties
 Properties which don't have specific listings above, which are stored as raw css declarations.

Static Public Attributes

static constexpr int kFontWeightBolder = -1
 Sentinel value for the bolder relative keyword, resolved during cascade.
static constexpr int kFontWeightLighter = -2
 Sentinel value for the lighter relative keyword, resolved during cascade.
static constexpr int kFontStretchNarrower = -1
 Sentinel value for the narrower relative keyword, resolved during cascade.
static constexpr int kFontStretchWider = -2
 Sentinel value for the wider relative keyword, resolved during cascade.

Friends

std::ostream & operator<< (std::ostream &os, const PropertyRegistry &registry)
 Ostream output operator, for debugging which outputs a human-readable representation of all of the properties.

Detailed Description

Holds CSS properties for a single element.

This class stores common properties which may be applied to any element, plus unparsedProperties which contains element-specific properties which are applied if the element matches.

For unparsedProperties, presentation attributes specified in CSS such as transform will be stored here until they can be applied to the element.

Supported properties

Property Member Default
color color black
flood-color floodColor black
stop-color stopColor black
lighting-color lightingColor white
display display inline
opacity Opacity 1.0
visibility visibility visible
overflow overflow visible
fill fill black
fill-rule fillRule nonzero
fill-opacity fillOpacity 1.0
stroke stroke none
stroke-opacity strokeOpacity 1.0
stroke-width strokeWidth 1.0
stroke-linecap strokeLinecap butt
stroke-linejoin strokeLinejoin miter
stroke-miterlimit strokeMiterlimit 4.0
stroke-dasharray strokeDasharray none
stroke-dashoffset strokeDashoffset 0
clip-path clipPath none
clip-rule clipRule nonzero
mask Mask none
mask-type maskType luminance
pointer-events pointerEvents auto
cursor cursor auto
marker-start markerStart none
marker-mid markerMid none
marker-end markerEnd none
font-family fontFamily serif
font-size fontSize 16px
text-transform textTransform none
overflow-wrap (word-wrap alias) overflowWrap normal
font-synthesis-small-caps fontSynthesisSmallCaps auto
font-synthesis-style fontSynthesisStyle auto
white-space whiteSpace normal
text-anchor textAnchor start
text-decoration shorthand for the four longhands below none
text-decoration-line textDecoration none
text-decoration-style textDecorationStyle solid
text-decoration-color textDecorationColor (declaring element's fill)
text-decoration-thickness textDecorationThickness auto
dominant-baseline dominantBaseline auto
inline-size inlineSize 0
text-indent textIndent 0px

Member Function Documentation

◆ allProperties()

auto donner::svg::PropertyRegistry::allProperties ( ) const
inline

Return a tuple of all properties within the PropertyRegistry.

To get the size of the tuple, use numProperties().

◆ allPropertiesMutable()

auto donner::svg::PropertyRegistry::allPropertiesMutable ( )
inline

Return a mutable tuple of all properties within the PropertyRegistry.

See also
allProperties()

◆ clearStyleAttributeProperties()

void donner::svg::PropertyRegistry::clearStyleAttributeProperties ( )

Clear every property that was set from a style="" attribute, leaving presentation attributes (specificity 0,0,0) and stylesheet-origin declarations intact.

Identifies style-origin properties by css::Specificity::isStyleAttribute(), including both normal and important inline declarations.

Use this before re-calling parseStyle on the same registry to get "replace the `style=""` contribution" semantics while preserving fill="red" and the like.

Also clears entries from unparsedProperties with either inline-origin priority.

◆ forEachProperty()

template<size_t Start, size_t End, class F>
constexpr void donner::svg::PropertyRegistry::forEachProperty ( const F & f)
inlinestaticconstexpr

Calls a compile time functor for each property in the registry.

Example:

auto properties = allProperties();
forEachProperty<0, numProperties()>([&properties](auto i) {
auto& property = std::get<i>(properties);
}
auto allProperties() const
Return a tuple of all properties within the PropertyRegistry.
Definition PropertyRegistry.h:550
static constexpr void forEachProperty(const F &f)
Calls a compile time functor for each property in the registry.
Definition PropertyRegistry.h:605
Template Parameters
StartIndex of the current property to call.
EndTotal number of properties in the registry.
FType of the functor object, with signature void(std::integral_constant<size_t>).
Parameters
fFunctor instance.

◆ inheritFrom()

PropertyRegistry donner::svg::PropertyRegistry::inheritFrom ( const PropertyRegistry & parent,
PropertyInheritOptions options = PropertyInheritOptions::All ) const
nodiscard

Inherit the value of each element in the stylesheet.

Parameters
parentPropertyRegistry from this element's direct parent, where properties will be inherited from.
optionsOptions for how to inherit properties, which can be used to skip inheritance for a category of properties.

◆ isPresentationAttributeInherited()

bool donner::svg::PropertyRegistry::isPresentationAttributeInherited ( std::string_view name)
static

Returns true if a presentation attribute participates in inheritance.

This uses the underlying property cascade metadata instead of a hand-maintained list in DOM mutation code.

Parameters
namePresentation attribute name.
Returns
True if the property inherits to descendants.

◆ isPresentationAttributeName()

bool donner::svg::PropertyRegistry::isPresentationAttributeName ( std::string_view name)
static

Returns true if a name is a valid SVG presentation attribute.

Parameters
nameAttribute name.
Returns
True when name can be parsed as a presentation attribute.

◆ parsePresentationAttribute()

ParseResult< bool > donner::svg::PropertyRegistry::parsePresentationAttribute ( std::string_view name,
std::string_view value,
EntityHandle handle = EntityHandle(),
css::Specificity specificity = {} )

Parse a common presentation attribute (CSS properties like fill, stroke, etc.) or transform.

This handles properties stored in PropertyRegistry and the transform attribute. For element-specific presentation attributes (like cx on circles), use parser::ParsePresentationAttribute separately.

See also
https://www.w3.org/TR/SVG2/styling.html#PresentationAttributes
Parameters
nameName of the attribute.
valueValue of the attribute, parsed as a CSS value.
handleEntity handle, needed for transform attribute parsing.
specificityCascade level; defaults to a presentation attribute.
Returns
true if the attribute was parsed successfully, false if not recognized, or a ParseDiagnostic if parsing failed.

◆ parseProperty()

std::optional< ParseDiagnostic > donner::svg::PropertyRegistry::parseProperty ( const css::Declaration & declaration,
css::Specificity specificity )

Parse a single declaration, adding it to the property registry.

Parameters
declarationDeclaration to parse.
specificitySpecificity of the declaration.
Returns
Error if the declaration had errors parsing or the property is not supported.

◆ parseStyle()

bool donner::svg::PropertyRegistry::parseStyle ( std::string_view str)

Parse a SVG style attribute, and set the parsed values on this PropertyRegistry.

Does not clear existing properties, new ones are applied additively.

Parses the string as a CSS "<declaration-list>", ignoring any parse errors or unsupported properties

Parameters
strInput string from a style attribute, e.g. "fill: red; stroke: blue".

◆ propertyNames()

std::span< const std::string_view > donner::svg::PropertyRegistry::propertyNames ( )
static

Returns all CSS property names understood by this registry.

The names preserve registry insertion order and are suitable for editor tooling such as autocomplete.

Returns
Known CSS property names.

◆ resolveElementColors()

void donner::svg::PropertyRegistry::resolveElementColors ( ParseWarningSink & warningSink)

Resolve resource-color overlays and deferred diagnostics before computing inheritance.

Retained non-inline values preserve presentation-attribute fallbacks on inline replacement.

Parameters
warningSinkReceives invalid color diagnostics.

◆ resolveFontSize()

void donner::svg::PropertyRegistry::resolveFontSize ( double parentFontSizePx)

Resolve font-size from relative units (em, %, ex) to absolute pixels.

Must be called after CSS cascade with the parent's computed font-size, since font-size percentages and em units resolve against the parent (not the viewBox). Also canonicalizes text-indent absolute lengths and computes local em lengths against this element's unadjusted computed font-size, before that value can be inherited. Percentages retain their own-area dependency.

Parameters
parentFontSizePxThe parent element's computed font-size in pixels. Use the renderer's initial 12px font-size for the root element.

◆ resolveFontStretch()

void donner::svg::PropertyRegistry::resolveFontStretch ( int parentFontStretch)

Resolve relative font-stretch keywords (narrower/wider) against the parent's computed font-stretch value.

Parameters
parentFontStretchThe parent element's computed font-stretch (as int). Use static_cast<int>(FontStretch::Normal) for root.

◆ resolveFontWeight()

void donner::svg::PropertyRegistry::resolveFontWeight ( int parentFontWeight)

Resolve relative font-weight keywords (bolder/lighter) against the parent's computed font-weight.

Parameters
parentFontWeightThe parent element's computed font-weight (100-900). Use 400 for root.

◆ resolveInsetClipLengths()

void donner::svg::PropertyRegistry::resolveInsetClipLengths ( double rootFontSizePx)

Resolve supported inset offsets to computed pixels while retaining percentages. Unrepresentable offsets keep an empty clipping region. Call after resolving this element's computed font size, before descendants inherit styles.

Parameters
rootFontSizePxRoot element's computed font size in pixels.

◆ resolveTextDecorationThickness()

void donner::svg::PropertyRegistry::resolveTextDecorationThickness ( double rootFontSizePx = 16.0)

Compute font-relative decoration lengths before a descendant explicitly inherits them.

Parameters
rootFontSizePxRoot computed font size for rem units.

◆ operator<<

std::ostream & operator<< ( std::ostream & os,
const PropertyRegistry & registry )
friend

Ostream output operator, for debugging which outputs a human-readable representation of all of the properties.

Example output:

color: Color(rgba(0, 255, 0, 255)) (set) @ Specificity(0, 0, 0)
}
Property< css::Color, PropertyCascade::Inherit > color
color property, which stores the context color of the element. For painting shapes,...
Definition PropertyRegistry.h:154
@ Color
Source hue and saturation, destination luminosity.
Definition MixBlendMode.h:31
Parameters
osOutput stream.
registryPropertyRegistry to output.

Member Data Documentation

◆ alignmentBaseline

Property<DominantBaseline> donner::svg::PropertyRegistry::alignmentBaseline
Initial value:
{
"alignment-baseline",
[]() -> std::optional<DominantBaseline> { return DominantBaseline::Auto; }}
@ Auto
[DEFAULT] Use the default baseline for the script.
Definition DominantBaseline.h:23

alignment-baseline property. Specifies how an inline element aligns with its parent's baseline. Uses the same enum as dominant-baseline (baseline parses to DominantBaseline::Auto - both defer to the dominant baseline). Not inherited.

◆ baselineShift

Property<Lengthd> donner::svg::PropertyRegistry::baselineShift
Initial value:
{
"baseline-shift", []() -> std::optional<Lengthd> { return Lengthd(0, Lengthd::Unit::None); }}
Length< double > Lengthd
Shorthand for Length<double>.
Definition Length.h:279

baseline-shift property. Shifts the dominant baseline of the element. Not inherited. "baseline" = 0, "sub"/"super" map to em-relative offsets. Positive = shift up (per CSS). Stored as Lengthd.

◆ clipPath

Property<ClipPath, PropertyCascade::None> donner::svg::PropertyRegistry::clipPath
Initial value:
{
"clip-path", []() -> std::optional<ClipPath> { return std::nullopt; }}

clip-path property, which determines the shape of the element's clipping region. Defaults to none.

◆ clipRule

Property<ClipRule, PropertyCascade::Inherit> donner::svg::PropertyRegistry::clipRule
Initial value:
{
"clip-rule", []() -> std::optional<ClipRule> { return ClipRule::NonZero; }}
@ NonZero
[DEFAULT] Determines "insideness" of a point by counting crossings of a ray drawn from that point to ...
Definition ClipRule.h:19

clip-rule property, which determines how the interior of the element is filled in the case of overlapping shapes. Defaults to ClipRule::NonZero.

◆ color

Property<css::Color, PropertyCascade::Inherit> donner::svg::PropertyRegistry::color
Initial value:
{
"color", []() -> std::optional<css::Color> { return css::Color(css::RGBA(0, 0, 0, 0xFF)); }}
Represents a CSS color value, like a RGBA color from a #rrggbb or #rgb hex value, or the currentcolor...
Definition Color.h:113
Represents as 32-bit RGBA color, with each component in the range [0, 255].
Definition Color.h:25

color property, which stores the context color of the element. For painting shapes, use stroke or fill instead.

◆ colorInterpolation

Property<ColorInterpolation, PropertyCascade::Inherit> donner::svg::PropertyRegistry::colorInterpolation
Initial value:
{
"color-interpolation",
[]() -> std::optional<ColorInterpolation> { return ColorInterpolation::SRGB; }}
@ SRGB
Use sRGB color values.
Definition ColorInterpolation.h:14

Inherited color-interpolation property. Defaults to sRGB; used by luminance masks.

◆ colorInterpolationFilters

Property<ColorInterpolationFilters, PropertyCascade::Inherit> donner::svg::PropertyRegistry::colorInterpolationFilters
Initial value:
{
"color-interpolation-filters", []() -> std::optional<ColorInterpolationFilters> {
}}
@ LinearRGB
Operations are performed in the linearRGB color space.
Definition ColorInterpolationFilters.h:19

color-interpolation-filters property, which determines the color space for filter operations. Defaults to ColorInterpolationFilters::LinearRGB. Inherited.

◆ cursor

Property<Cursor, PropertyCascade::Inherit> donner::svg::PropertyRegistry::cursor
Initial value:
{
"cursor", []() -> std::optional<Cursor> { return Cursor{}; }}
Cascaded CSS cursor value with authored URL candidates and a required keyword fallback.
Definition Cursor.h:24

cursor property, which defines the mouse cursor to display when hovering over the element. Defaults to an empty image list and CursorType::Auto fallback. Inherited.

◆ dominantBaseline

Property<DominantBaseline, PropertyCascade::Inherit> donner::svg::PropertyRegistry::dominantBaseline
Initial value:
{
"dominant-baseline",
[]() -> std::optional<DominantBaseline> { return DominantBaseline::Auto; }}

dominant-baseline property, which determines the baseline alignment for text. Inherited (CSS Inline Layout 3). Defaults to DominantBaseline::Auto.

◆ fill

Property<PaintServer, PropertyCascade::PaintInherit> donner::svg::PropertyRegistry::fill
Initial value:
{
"fill", []() -> std::optional<PaintServer> {
}}
static constexpr RGBA RGB(uint8_t r, uint8_t g, uint8_t b)
Constructor, for RGB colors, which are fully opaque.
Definition Color.h:38
Represents a solid color paint server.
Definition PaintServer.h:36

fill property, which determines the color of the element's interior. Defaults to black.

◆ fillOpacity

Property<double, PropertyCascade::Inherit> donner::svg::PropertyRegistry::fillOpacity
Initial value:
{
"fill-opacity", []() -> std::optional<double> { return 1.0; }}

fill-opacity property, which determines the opacity of the element's interior. Defaults to 1.0. A value of 0.0 will make the interior invisible.

◆ fillRule

Property<FillRule, PropertyCascade::Inherit> donner::svg::PropertyRegistry::fillRule
Initial value:
{
"fill-rule", []() -> std::optional<FillRule> { return FillRule::NonZero; }}
@ NonZero
[DEFAULT] Determines "insideness" of a point by counting signed crossings of a ray drawn from that po...
Definition FillRule.h:19

fill-rule property, which determines how the interior of the element is filled in the case of overlapping shapes. Defaults to FillRule::NonZero.

◆ filter

Property<std::vector<FilterEffect> > donner::svg::PropertyRegistry::filter
Initial value:
{
"filter",
[]() -> std::optional<std::vector<FilterEffect>> { return std::vector<FilterEffect>(); }}

filter property, which determines the filter effect(s) to apply to the element. Defaults to an empty list (no filter). Supports CSS filter function lists like blur(5px) grayscale().

◆ floodColor

Property<css::Color> donner::svg::PropertyRegistry::floodColor
Initial value:
{"flood-color", []() -> std::optional<css::Color> {
return css::Color(css::RGBA(0, 0, 0, 255));
}}

flood-color property, used by filter floods and drop shadows. Only explicit inheritance propagates this color from an ancestor.

◆ fontFamily

Property<SmallVector<RcString, 1>, PropertyCascade::Inherit> donner::svg::PropertyRegistry::fontFamily
Initial value:
{
"font-family", []() -> std::optional<SmallVector<RcString, 1>> {
}}
A reference counted string, that is copy-on-write and implements the small-string optimization.
Definition RcString.h:35
A vector with small-size optimization.
Definition SmallVector.h:24

font-family property, which determines the font family for text content. Inherited.

◆ fontKerning

Property<FontKerning, PropertyCascade::Inherit> donner::svg::PropertyRegistry::fontKerning
Initial value:
{
"font-kerning", []() -> std::optional<FontKerning> { return FontKerning::Auto; }}
@ Auto
The user agent selects when to apply kerning.
Definition FontKerning.h:13

font-kerning property. Inherited. auto and normal enable kerning; none disables it.

◆ fontSize

Property<Lengthd, PropertyCascade::Inherit> donner::svg::PropertyRegistry::fontSize
Initial value:
{
"font-size", []() -> std::optional<Lengthd> { return Lengthd(12, Lengthd::Unit::Px); }}

font-size property, which determines the font size for text content. Inherited. Initial value is medium, which maps to the UA default font size (12px).

◆ fontSizeAdjust

Property<std::optional<double>, PropertyCascade::Inherit> donner::svg::PropertyRegistry::fontSizeAdjust
Initial value:
{
"font-size-adjust",
[]() -> std::optional<std::optional<double>> { return std::optional<double>(); }}

font-size-adjust property. Inherited. An empty value represents the initial none value.

◆ fontStretch

Property<int, PropertyCascade::Inherit> donner::svg::PropertyRegistry::fontStretch
Initial value:
{
"font-stretch", []() -> std::optional<int> { return static_cast<int>(FontStretch::Normal); }}
@ Normal
[DEFAULT] Normal width (100%).
Definition FontStretch.h:27

font-stretch property, which determines the width (condensed/expanded) for text content. Inherited. Stored as the underlying integer of FontStretch for sentinel support. Defaults to FontStretch::Normal (5).

◆ fontStyle

Property<FontStyle, PropertyCascade::Inherit> donner::svg::PropertyRegistry::fontStyle
Initial value:
{
"font-style", []() -> std::optional<FontStyle> { return FontStyle::Normal; }}
@ Normal
[DEFAULT] Normal (upright) style.
Definition FontStyle.h:21

font-style property, which determines the style (normal/italic/oblique) for text content. Inherited. Defaults to FontStyle::Normal.

◆ fontSynthesisSmallCaps

Property<FontSynthesisSmallCaps, PropertyCascade::Inherit> donner::svg::PropertyRegistry::fontSynthesisSmallCaps
Initial value:
{
"font-synthesis-small-caps",
[]() -> std::optional<FontSynthesisSmallCaps> { return FontSynthesisSmallCaps::Auto; }}
@ Auto
Permit synthesis when the selected face lacks native small caps.
Definition FontSynthesisSmallCaps.h:13

Inherited CSS small-caps synthesis policy; native features remain enabled.

◆ fontSynthesisStyle

Property<FontSynthesisStyle, PropertyCascade::Inherit> donner::svg::PropertyRegistry::fontSynthesisStyle
Initial value:
{
"font-synthesis-style",
[]() -> std::optional<FontSynthesisStyle> { return FontSynthesisStyle::Auto; }}
@ Auto
Permit the backend's existing synthetic oblique behavior.
Definition FontSynthesisStyle.h:13

Inherited CSS permission to synthesize an oblique face; native faces remain enabled.

◆ fontVariant

Property<FontVariant, PropertyCascade::Inherit> donner::svg::PropertyRegistry::fontVariant
Initial value:
{
"font-variant", []() -> std::optional<FontVariant> { return FontVariant::Normal; }}
@ Normal
[DEFAULT] Normal variant.
Definition FontVariant.h:24

font-variant shorthand property (SVG 1.1 subset: normal | small-caps). Inherited. Defaults to FontVariant::Normal.

◆ fontWeight

Property<int, PropertyCascade::Inherit> donner::svg::PropertyRegistry::fontWeight
Initial value:
{"font-weight",
[]() -> std::optional<int> { return 400; }}

font-weight property, which determines the font weight (boldness) for text content. Inherited. Value is a numeric weight (100-900), where 400=normal and 700=bold. The relative keywords bolder/lighter are stored as sentinel values and resolved by resolveFontWeight() during style cascade.

◆ imageRendering

Property<ImageRendering, PropertyCascade::Inherit> donner::svg::PropertyRegistry::imageRendering
Initial value:
{
"image-rendering", []() -> std::optional<ImageRendering> { return ImageRendering::Auto; }}
@ Auto
[DEFAULT] UA-defined; Donner uses the Mitchell cubic, like resvg.
Definition ImageRendering.h:18

image-rendering property. Selects smooth, crisp, or two-stage pixelated sampling. Inherited.

◆ inlineSize

Property<Lengthd> donner::svg::PropertyRegistry::inlineSize
Initial value:
{
"inline-size", []() -> std::optional<Lengthd> { return Lengthd(0, Lengthd::Unit::None); }}

inline-size property (SVG2). When set to a positive length on a <text> element it establishes an automatic wrapping area whose measure (extent in the inline axis) is the given length; text greedily wraps to that measure. Not inherited. The initial value 0 means "no wrapping area" (the text behaves as ordinary single-line SVG text).

Uses Donner's current per-line wrapping and text-anchor profile in horizontal and vertical writing modes.

See also
https://www.w3.org/TR/SVG2/text.html#InlineSizeProperty

◆ isolation

Property<Isolation> donner::svg::PropertyRegistry::isolation
Initial value:
{"isolation",
[]() -> std::optional<Isolation> { return Isolation::Auto; }}
@ Auto
[DEFAULT] Element does not necessarily create a new stacking context.
Definition Isolation.h:15

isolation property. Forces creation of a new stacking context. Not inherited. Defaults to Auto.

◆ letterSpacing

Property<Lengthd, PropertyCascade::Inherit> donner::svg::PropertyRegistry::letterSpacing
Initial value:
{
"letter-spacing", []() -> std::optional<Lengthd> { return Lengthd(0, Lengthd::Unit::None); }}

letter-spacing property, extra spacing between characters. Inherited. "normal" maps to 0. Defaults to 0 (normal).

◆ lightingColor

Property<css::Color> donner::svg::PropertyRegistry::lightingColor
Initial value:
{"lighting-color", []() -> std::optional<css::Color> {
return css::Color(css::RGBA::RGB(255, 255, 255));
}}

Light-source color for diffuse and specular lighting. Only explicit inheritance propagates it.

◆ markerEnd

Property<Reference, PropertyCascade::Inherit> donner::svg::PropertyRegistry::markerEnd
Initial value:
{
"marker-end", []() -> std::optional<Reference> { return std::nullopt; }}

marker-end property, which determines the marker to be drawn at the end of the path.

◆ markerMid

Property<Reference, PropertyCascade::Inherit> donner::svg::PropertyRegistry::markerMid
Initial value:
{
"marker-mid", []() -> std::optional<Reference> { return std::nullopt; }}

marker-mid property, which determines the marker to be drawn at the middle of the path.

◆ markerStart

Property<Reference, PropertyCascade::Inherit> donner::svg::PropertyRegistry::markerStart
Initial value:
{
"marker-start", []() -> std::optional<Reference> { return std::nullopt; }}

marker-start property, which determines the marker to be drawn at the start of the path.

◆ mask

Property<Reference, PropertyCascade::None> donner::svg::PropertyRegistry::mask
Initial value:
{
"mask", []() -> std::optional<Reference> { return std::nullopt; }}

mask property, which determines the shape of the element's clipping region. Defaults to none.

◆ maskType

Property<MaskType> donner::svg::PropertyRegistry::maskType
Initial value:
{"mask-type",
[]() -> std::optional<MaskType> { return MaskType::Luminance; }}
@ Luminance
[DEFAULT] Derive mask coverage from luminance multiplied by alpha.
Definition MaskType.h:17

mask-type property, which selects how rendered <mask> content becomes coverage. Defaults to luminance and is not inherited.

◆ mixBlendMode

Property<MixBlendMode> donner::svg::PropertyRegistry::mixBlendMode
Initial value:
{
"mix-blend-mode", []() -> std::optional<MixBlendMode> { return MixBlendMode::Normal; }}
@ Normal
[DEFAULT] Source over destination (no blending effect).
Definition MixBlendMode.h:17

mix-blend-mode property. Controls how an element composites with its backdrop. Not inherited. Defaults to Normal (SourceOver).

◆ overflow

Property<Overflow> donner::svg::PropertyRegistry::overflow
Initial value:
{"overflow",
[]() -> std::optional<Overflow> { return Overflow::Visible; }}
@ Visible
[DEFAULT] "visible": Content is not clipped, and may render outside the box.
Definition Overflow.h:28

overflow property, which determines how content that overflows the element's box is handled. Defaults to visible.

◆ overflowWrap

Property<OverflowWrap, PropertyCascade::Inherit> donner::svg::PropertyRegistry::overflowWrap
Initial value:
{
"overflow-wrap", []() -> std::optional<OverflowWrap> { return OverflowWrap::Normal; }}

Inherited emergency line-breaking policy; word-wrap is an alias of this property.

◆ paintOrder

Property<PaintOrder, PropertyCascade::Inherit> donner::svg::PropertyRegistry::paintOrder
Initial value:
{
"paint-order", []() -> std::optional<PaintOrder> { return PaintOrder{}; }}
CSS paint-order property value: the order in which the fill, stroke, and markers of a shape/text are ...
Definition PaintOrder.h:45

paint-order property. Controls the order in which fill, stroke, and markers of a shape/text are painted. Inherited. Defaults to fill, stroke, markers.

◆ pointerEvents

Property<PointerEvents, PropertyCascade::Inherit> donner::svg::PropertyRegistry::pointerEvents
Initial value:
{
"pointer-events", []() -> std::optional<PointerEvents> { return PointerEvents::Auto; }}
@ Auto
[DEFAULT] Behaves as visiblePainted for SVG content.
Definition PointerEvents.h:38

pointer-events property, which determines how the element responds to pointer events (such as clicks or hover). Defaults to PointerEvents::Auto.

◆ stopColor

Property<css::Color> donner::svg::PropertyRegistry::stopColor
Initial value:
{"stop-color", []() -> std::optional<css::Color> {
return css::Color(css::RGBA(0, 0, 0, 255));
}}

stop-color property, used by gradient stops. Only explicit inheritance propagates this color from an ancestor.

◆ stroke

Property<PaintServer, PropertyCascade::PaintInherit> donner::svg::PropertyRegistry::stroke
Initial value:
{
"stroke", []() -> std::optional<PaintServer> { return PaintServer::None(); }}
Represents the "none" value for a paint server.
Definition PaintServer.h:18

stroke property, which determines the color of the element's outline stroke. Defaults to none.

◆ strokeDasharray

Property<StrokeDasharray, PropertyCascade::Inherit> donner::svg::PropertyRegistry::strokeDasharray
Initial value:
{
"stroke-dasharray", []() -> std::optional<StrokeDasharray> { return std::nullopt; }}

stroke-dasharray property, which determines the pattern of dashes and gaps used to stroke paths.

◆ strokeDashoffset

Property<Lengthd, PropertyCascade::Inherit> donner::svg::PropertyRegistry::strokeDashoffset
Initial value:
{
"stroke-dashoffset",
[]() -> std::optional<Lengthd> { return Lengthd(0, Lengthd::Unit::None); }}

stroke-dashoffset property, which determines the distance into the dash pattern to start the stroke.

◆ strokeLinecap

Property<StrokeLinecap, PropertyCascade::Inherit> donner::svg::PropertyRegistry::strokeLinecap
Initial value:
{
"stroke-linecap", []() -> std::optional<StrokeLinecap> { return StrokeLinecap::Butt; }}
@ Butt
[DEFAULT] The stroke is squared off at the endpoint of the path.
Definition Stroke.h:23

stroke-linecap property, which determines the shape of the element's outline stroke at the ends of the path. Defaults to StrokeLinecap::Butt.

◆ strokeLinejoin

Property<StrokeLinejoin, PropertyCascade::Inherit> donner::svg::PropertyRegistry::strokeLinejoin
Initial value:
{
"stroke-linejoin", []() -> std::optional<StrokeLinejoin> { return StrokeLinejoin::Miter; }}
@ Miter
[DEFAULT] The outer edges of the strokes for the two segments are extended until they meet at an angl...
Definition Stroke.h:47

stroke-linejoin property, which determines the shape of the element's outline stroke in between line segments. Defaults to StrokeLinejoin::Miter.

◆ strokeMiterlimit

Property<double, PropertyCascade::Inherit> donner::svg::PropertyRegistry::strokeMiterlimit
Initial value:
{
"stroke-miterlimit", []() -> std::optional<double> { return 4.0; }}

stroke-miterlimit property, which determines the limit of the ratio of the miter length to the stroke width. Defaults to 4.0.

◆ strokeOpacity

Property<double, PropertyCascade::Inherit> donner::svg::PropertyRegistry::strokeOpacity
Initial value:
{
"stroke-opacity", []() -> std::optional<double> { return 1.0; }}

stroke-opacity property, which determines the opacity of the element's outline stroke. Defaults to 1.0. A value of 0.0 will make the outline invisible.

◆ strokeWidth

Property<Lengthd, PropertyCascade::Inherit> donner::svg::PropertyRegistry::strokeWidth
Initial value:
{
"stroke-width", []() -> std::optional<Lengthd> { return Lengthd(1, Lengthd::Unit::None); }}

stroke-width property, which determines the width of the element's outline stroke. Defaults to 1.0.

◆ textAnchor

Property<TextAnchor, PropertyCascade::Inherit> donner::svg::PropertyRegistry::textAnchor
Initial value:
{
"text-anchor", []() -> std::optional<TextAnchor> { return TextAnchor::Start; }}
@ Start
[DEFAULT] Text starts at the anchor position.
Definition TextAnchor.h:23

text-anchor property, which determines the alignment of text relative to its anchor point. Inherited. Defaults to TextAnchor::Start.

◆ textDecoration

Property<TextDecoration> donner::svg::PropertyRegistry::textDecoration
Initial value:
{
"text-decoration", []() -> std::optional<TextDecoration> { return TextDecoration::None; }}
@ None
[DEFAULT] No text decoration.
Definition TextDecoration.h:28

text-decoration-line, which determines decoration lines drawn on text. The text-decoration shorthand also sets it, and the property keeps the shorthand's name. Not inherited. Defaults to TextDecoration::None.

◆ textDecorationColor

Property<css::Color> donner::svg::PropertyRegistry::textDecorationColor
Initial value:
{
"text-decoration-color", []() -> std::optional<css::Color> { return std::nullopt; }}

text-decoration-color of decorations originating on this element; not inherited.

SVG 2 (section 11.11) paints a decoration with the fill and stroke of the element that declares it. An unset value (the initial state) keeps that fill; an author-specified color, including currentcolor, replaces the decoration's fill paint and leaves its stroke as SVG 2 defines it.

◆ textDecorationStyle

Property<TextDecorationStyle> donner::svg::PropertyRegistry::textDecorationStyle
Initial value:
{
"text-decoration-style", []() { return std::optional(TextDecorationStyle::Solid); }}
@ Solid
[DEFAULT] A single line.
Definition TextDecoration.h:46

text-decoration-style of decorations originating on this element; not inherited.

◆ textDecorationThickness

Property<TextDecorationThickness> donner::svg::PropertyRegistry::textDecorationThickness
Initial value:
{
"text-decoration-thickness", []() { return std::optional(TextDecorationThickness{}); }}
CSS thickness of decoration lines originating on an element.
Definition TextDecoration.h:66

CSS thickness of decorations originating on this element; not inherited.

◆ textIndent

Property<Lengthd, PropertyCascade::Inherit> donner::svg::PropertyRegistry::textIndent
Initial value:
{
"text-indent", []() -> std::optional<Lengthd> { return Lengthd(0, Lengthd::Unit::Px); }}

CSS text-indent: inherited first-line start margin in a fixed inline-size text area. Absolute lengths and em compute to pixels; percentages resolve against this text area's inline measure. hanging, each-line and other relative units are not supported.

◆ textOrientation

Property<TextOrientation, PropertyCascade::Inherit> donner::svg::PropertyRegistry::textOrientation
Initial value:
{
"text-orientation",
[]() -> std::optional<TextOrientation> { return TextOrientation::Mixed; }}

text-orientation property, controlling glyph orientation in vertical text. Inherited.

◆ textTransform

Property<TextTransform, PropertyCascade::Inherit> donner::svg::PropertyRegistry::textTransform
Initial value:
{
"text-transform", []() -> std::optional<TextTransform> { return TextTransform::None; }}

Supported inherited CSS text-transform operation; defaults to none.

◆ transformOrigin

Property<TransformOrigin> donner::svg::PropertyRegistry::transformOrigin
Initial value:
{
"transform-origin", []() -> std::optional<TransformOrigin> {
return TransformOrigin{Lengthd(50, Lengthd::Unit::Percent),
Lengthd(50, Lengthd::Unit::Percent)};
}}
Represents the transform-origin property value.
Definition TransformOrigin.h:14

transform-origin property, which sets the origin for transformations.

◆ vectorEffect

Property<VectorEffect> donner::svg::PropertyRegistry::vectorEffect
Initial value:
{
"vector-effect", []() -> std::optional<VectorEffect> { return VectorEffect::None; }}
@ None
[DEFAULT] No vector effect; the element scales normally with the coordinate system.
Definition VectorEffect.h:21

vector-effect property, which modifies how the element is affected by coordinate system transformations. Not inherited per spec. Defaults to VectorEffect::None. Only VectorEffect::NonScalingStroke is honored during rendering.

◆ visibility

Property<Visibility, PropertyCascade::Inherit> donner::svg::PropertyRegistry::visibility
Initial value:
{
"visibility", []() -> std::optional<Visibility> { return Visibility::Visible; }}
@ Visible
[DEFAULT] Visible is the default value.
Definition Visibility.h:26

visibility property, which determines whether the element is visible. Set to Visibility::Hidden to hide the element. Compared to display with Display::None, hiding the element will not remove it from the document, so it will still contribute to bounding boxes.

◆ whiteSpace

Property<WhiteSpace, PropertyCascade::Inherit> donner::svg::PropertyRegistry::whiteSpace
Initial value:
{
"white-space", []() -> std::optional<WhiteSpace> { return WhiteSpace::Normal; }}

CSS white-space collapsing and wrapping policy, inherited by text descendants.

◆ wordSpacing

Property<Lengthd, PropertyCascade::Inherit> donner::svg::PropertyRegistry::wordSpacing
Initial value:
{
"word-spacing", []() -> std::optional<Lengthd> { return Lengthd(0, Lengthd::Unit::None); }}

word-spacing property, extra spacing between words (U+0020 space characters). Inherited. "normal" maps to 0. Defaults to 0 (normal).

◆ writingMode

Property<WritingMode, PropertyCascade::Inherit> donner::svg::PropertyRegistry::writingMode
Initial value:
{
"writing-mode", []() -> std::optional<WritingMode> { return WritingMode::HorizontalTb; }}
@ HorizontalTb
[DEFAULT] Left-to-right, top-to-bottom (horizontal text).
Definition WritingMode.h:18

writing-mode property, controlling text flow direction. Inherited.


The documentation for this class was generated from the following file: