Source code

Revision control

Copy as Markdown

Other Tools

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
<%namespace name="helpers" file="/helpers.mako.rs" />
${helpers.predefined_type(
"color",
"ColorPropertyValue",
"crate::color::AbsoluteColor::BLACK",
engines="gecko servo",
animation_value_type="AbsoluteColor",
ignored_when_colors_disabled="True",
affects="paint",
)}
// CSS Text Module Level 3
${helpers.predefined_type(
"text-transform",
"TextTransform",
"computed::TextTransform::none()",
engines="gecko servo",
servo_pref="layout.legacy_layout",
animation_value_type="discrete",
servo_restyle_damage="rebuild_and_reflow",
affects="layout",
)}
${helpers.single_keyword(
"hyphens",
"manual none auto",
engines="gecko",
gecko_enum_prefix="StyleHyphens",
animation_value_type="discrete",
extra_prefixes="moz",
affects="layout",
)}
// TODO: Support <percentage>
${helpers.single_keyword(
"-moz-text-size-adjust",
"auto none",
engines="gecko",
gecko_enum_prefix="StyleTextSizeAdjust",
gecko_ffi_name="mTextSizeAdjust",
animation_value_type="discrete",
aliases="-webkit-text-size-adjust",
affects="layout",
)}
${helpers.predefined_type(
"text-indent",
"TextIndent",
"computed::TextIndent::zero()",
engines="gecko servo",
animation_value_type="ComputedValue",
servo_restyle_damage = "reflow",
affects="layout",
)}
// Also known as "word-wrap" (which is more popular because of IE), but this is
// the preferred name per CSS-TEXT 6.2.
${helpers.predefined_type(
"overflow-wrap",
"OverflowWrap",
"computed::OverflowWrap::Normal",
engines="gecko servo",
servo_pref="layout.legacy_layout",
animation_value_type="discrete",
aliases="word-wrap",
servo_restyle_damage="rebuild_and_reflow",
affects="layout",
)}
${helpers.predefined_type(
"word-break",
"WordBreak",
"computed::WordBreak::Normal",
engines="gecko servo",
servo_pref="layout.legacy_layout",
animation_value_type="discrete",
servo_restyle_damage="rebuild_and_reflow",
affects="layout",
)}
${helpers.predefined_type(
"text-justify",
"TextJustify",
"computed::TextJustify::Auto",
engines="gecko servo",
animation_value_type="discrete",
servo_restyle_damage="rebuild_and_reflow",
affects="layout",
)}
${helpers.predefined_type(
"text-align-last",
"TextAlignLast",
"computed::text::TextAlignLast::Auto",
engines="gecko servo",
animation_value_type="discrete",
affects="layout",
)}
// TODO make this a shorthand and implement text-align-last/text-align-all
${helpers.predefined_type(
"text-align",
"TextAlign",
"computed::TextAlign::Start",
engines="gecko servo",
animation_value_type="discrete",
servo_restyle_damage = "reflow",
affects="layout",
)}
${helpers.predefined_type(
"letter-spacing",
"LetterSpacing",
"computed::LetterSpacing::normal()",
engines="gecko servo",
animation_value_type="ComputedValue",
servo_restyle_damage="rebuild_and_reflow",
affects="layout",
)}
${helpers.predefined_type(
"word-spacing",
"WordSpacing",
"computed::WordSpacing::zero()",
engines="gecko servo",
animation_value_type="ComputedValue",
servo_restyle_damage="rebuild_and_reflow",
affects="layout",
)}
// TODO: `white-space-collapse: discard` not yet supported
${helpers.single_keyword(
name="white-space-collapse",
values="collapse preserve preserve-breaks preserve-spaces break-spaces",
engines="gecko",
gecko_enum_prefix="StyleWhiteSpaceCollapse",
animation_value_type="discrete",
affects="layout",
)}
${helpers.predefined_type(
"text-shadow",
"SimpleShadow",
None,
engines="gecko servo",
servo_pref="layout.legacy_layout",
vector=True,
vector_animation_type="with_zero",
animation_value_type="AnimatedTextShadowList",
ignored_when_colors_disabled=True,
simple_vector_bindings=True,
affects="overflow",
)}
${helpers.predefined_type(
"text-emphasis-style",
"TextEmphasisStyle",
"computed::TextEmphasisStyle::None",
engines="gecko",
initial_specified_value="SpecifiedValue::None",
animation_value_type="discrete",
affects="overflow",
)}
${helpers.predefined_type(
"text-emphasis-position",
"TextEmphasisPosition",
"computed::TextEmphasisPosition::OVER",
engines="gecko",
initial_specified_value="specified::TextEmphasisPosition::OVER",
animation_value_type="discrete",
affects="layout",
)}
${helpers.predefined_type(
"text-emphasis-color",
"Color",
"computed_value::T::currentcolor()",
engines="gecko",
initial_specified_value="specified::Color::currentcolor()",
animation_value_type="AnimatedColor",
ignored_when_colors_disabled=True,
affects="paint",
)}
${helpers.predefined_type(
"tab-size",
"NonNegativeLengthOrNumber",
"generics::length::LengthOrNumber::Number(From::from(8.0))",
engines="gecko",
animation_value_type="LengthOrNumber",
aliases="-moz-tab-size",
affects="layout",
)}
${helpers.predefined_type(
"line-break",
"LineBreak",
"computed::LineBreak::Auto",
engines="gecko",
animation_value_type="discrete",
affects="layout",
)}
// CSS Compatibility
${helpers.predefined_type(
"-webkit-text-fill-color",
"Color",
"computed_value::T::currentcolor()",
engines="gecko",
animation_value_type="AnimatedColor",
ignored_when_colors_disabled=True,
affects="paint",
)}
${helpers.predefined_type(
"-webkit-text-stroke-color",
"Color",
"computed_value::T::currentcolor()",
initial_specified_value="specified::Color::currentcolor()",
engines="gecko",
animation_value_type="AnimatedColor",
ignored_when_colors_disabled=True,
affects="paint",
)}
${helpers.predefined_type(
"-webkit-text-stroke-width",
"LineWidth",
"app_units::Au(0)",
engines="gecko",
initial_specified_value="specified::LineWidth::zero()",
animation_value_type="discrete",
affects="overflow",
)}
// CSS Ruby Layout Module Level 1
${helpers.single_keyword(
"ruby-align",
"space-around start center space-between",
engines="gecko",
animation_value_type="discrete",
gecko_enum_prefix="StyleRubyAlign",
affects="layout",
)}
${helpers.predefined_type(
"ruby-position",
"RubyPosition",
"computed::RubyPosition::AlternateOver",
engines="gecko",
animation_value_type="discrete",
affects="layout",
)}
// CSS Writing Modes Module Level 3
${helpers.single_keyword(
"text-combine-upright",
"none all",
engines="gecko",
gecko_enum_prefix="StyleTextCombineUpright",
animation_value_type="none",
affects="layout",
)}
// SVG 2: Section 13 - Painting: Filling, Stroking and Marker Symbols
${helpers.single_keyword(
"text-rendering",
"auto optimizespeed optimizelegibility geometricprecision",
engines="gecko servo",
gecko_enum_prefix="StyleTextRendering",
animation_value_type="discrete",
servo_restyle_damage="rebuild_and_reflow",
affects="layout",
)}
${helpers.predefined_type(
"-moz-control-character-visibility",
"text::MozControlCharacterVisibility",
"Default::default()",
engines="gecko",
enabled_in="chrome",
gecko_pref="layout.css.moz-control-character-visibility.enabled",
has_effect_on_gecko_scrollbars=False,
animation_value_type="none",
spec="Nonstandard",
affects="layout",
)}
// text underline offset
${helpers.predefined_type(
"text-underline-offset",
"LengthPercentageOrAuto",
"computed::LengthPercentageOrAuto::auto()",
engines="gecko",
animation_value_type="ComputedValue",
affects="overflow",
)}
// text underline position
${helpers.predefined_type(
"text-underline-position",
"TextUnderlinePosition",
"computed::TextUnderlinePosition::AUTO",
engines="gecko",
animation_value_type="discrete",
affects="overflow",
)}
// text decoration skip ink
${helpers.predefined_type(
"text-decoration-skip-ink",
"TextDecorationSkipInk",
"computed::TextDecorationSkipInk::Auto",
engines="gecko",
animation_value_type="discrete",
affects="overflow",
)}
// hyphenation character
${helpers.predefined_type(
"hyphenate-character",
"HyphenateCharacter",
"computed::HyphenateCharacter::Auto",
engines="gecko",
animation_value_type="discrete",
affects="layout",
)}
${helpers.predefined_type(
"forced-color-adjust",
"ForcedColorAdjust",
"computed::ForcedColorAdjust::Auto",
engines="gecko",
gecko_pref="layout.css.forced-color-adjust.enabled",
has_effect_on_gecko_scrollbars=False,
animation_value_type="discrete",
affects="paint",
)}
${helpers.single_keyword(
"-webkit-text-security",
"none circle disc square",
engines="gecko",
gecko_enum_prefix="StyleTextSecurity",
animation_value_type="discrete",
affects="layout",
)}
${helpers.single_keyword(
"text-wrap-mode",
"wrap nowrap",
engines="gecko",
gecko_enum_prefix="StyleTextWrapMode",
animation_value_type="discrete",
affects="layout",
)}
${helpers.single_keyword(
"text-wrap-style",
"auto stable balance",
engines="gecko",
gecko_pref="layout.css.text-wrap-balance.enabled",
has_effect_on_gecko_scrollbars=False,
gecko_enum_prefix="StyleTextWrapStyle",
animation_value_type="discrete",
affects="layout",
)}