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 http://mozilla.org/MPL/2.0/.
#
# This file contains the list of support CSS pseudo-elements and some flags.
#
# Each pseudo element has its own section, with the following keys:
#
# enabled_in - Same semantics as longhands.toml
# is_css2 - Default false, whether this is a css2 pseudo-element, and can be
# parsed only with one colon.
# is_eager - Whether the pseudo-element is eagerly cascaded by the style
# system during traversal. This should generally only be used for
# pseudo-elements that apply to most elements.
# is_js_created_nac - True if this pseudo-element can be created by JS.
# is_flex_or_grid_item - True if display item fixup for flex / grid should
# happen for this pseudo
# is_element_backed - whether this is an element-backed pseudo-element
# supports_user_action_state - true if this pseudo supports :hover etc.
# argument - If provided, the argument this functional pseudo takes.
# pref - Same semantics as gecko_pref in longhands.toml
#
# When adding a pseudo-element, you also need to add the relevant atom to
# StaticAtoms.py, with the camel-case name of the pseudo-element.
[after]
is_css2 = true
is_eager = true
is_flex_or_grid_item = true
[before]
is_css2 = true
is_eager = true
is_flex_or_grid_item = true
[marker]
[backdrop]
[cue]
is_js_created_nac = true
[first-letter]
is_css2 = true
is_eager = true
[first-line]
is_css2 = true
is_eager = true
[highlight]
argument = "AtomIdent"
[selection]
[target-text]
[view-transition]
enabled_in = "ua"
pref = "dom.viewTransitions.enabled"
[view-transition-group]
enabled_in = "ua"
pref = "dom.viewTransitions.enabled"
argument = "PtNameAndClassSelector"
is_element_backed = true
[view-transition-image-pair]
enabled_in = "ua"
pref = "dom.viewTransitions.enabled"
is_element_backed = true
argument = "PtNameAndClassSelector"
[view-transition-old]
enabled_in = "ua"
pref = "dom.viewTransitions.enabled"
is_element_backed = true
argument = "PtNameAndClassSelector"
[view-transition-new]
enabled_in = "ua"
pref = "dom.viewTransitions.enabled"
is_element_backed = true
argument = "PtNameAndClassSelector"
# The internal implementation usage for View transition to create the snapshot
# containing block concept.
[-moz-snapshot-containing-block]
enabled_in = "ua"
# HTML5 Forms pseudo elements
[-moz-number-spin-box]
supports_user_action_state = true
enabled_in = "chrome"
is_element_backed = true
[-moz-number-spin-down]
supports_user_action_state = true
enabled_in = "chrome"
is_element_backed = true
[-moz-number-spin-up]
supports_user_action_state = true
enabled_in = "chrome"
is_element_backed = true
[-moz-search-clear-button]
supports_user_action_state = true
enabled_in = "chrome"
is_element_backed = true
# The selected label of a <select>
[-moz-select-content]
enabled_in = "chrome"
is_element_backed = true
# The menulist button of a <select>
# TODO: Maybe unify with the base-appearance ::picker-icon pseudo?
[-moz-select-picker-icon]
enabled_in = "chrome"
is_element_backed = true
[-moz-progress-bar]
supports_user_action_state = true
[-moz-range-track]
supports_user_action_state = true
[-moz-range-progress]
supports_user_action_state = true
[-moz-range-thumb]
supports_user_action_state = true
[-moz-meter-bar]
supports_user_action_state = true
[placeholder]
supports_user_action_state = true
is_element_backed = true
[-moz-color-swatch]
supports_user_action_state = true
# The root of the text value anonymous content inside an <input> or <textarea>.
[-moz-text-control-editing-root]
enabled_in = "ua"
is_element_backed = true
# The element that shows the autofill value.
[-moz-text-control-preview]
enabled_in = "ua"
is_element_backed = true
# The Reveal Password button for <input type=password>.
[-moz-reveal]
enabled_in = "ua"
is_element_backed = true
# The button in an <input type=file>
[file-selector-button]
supports_user_action_state = true
# The cropped label in a file input.
[-moz-file-content]
enabled_in = "chrome"
# Standard progress/meter/range pseudo-elements.
[slider-track]
supports_user_action_state = true
enabled_in = "chrome"
pref = "layout.css.modern-range-pseudos.enabled"
[slider-thumb]
supports_user_action_state = true
enabled_in = "chrome"
pref = "layout.css.modern-range-pseudos.enabled"
[slider-fill]
supports_user_action_state = true
enabled_in = "chrome"
pref = "layout.css.modern-range-pseudos.enabled"
# The content in a <details> element that is shown when the element is open.
[details-content]
supports_user_action_state = true
enabled_in = "chrome"
pref = "layout.css.details-content.enabled"
is_element_backed = true
# Tree pseudo-elements
[-moz-tree-column]
enabled_in = "chrome"
argument = "AtomThinVec"
[-moz-tree-row]
enabled_in = "chrome"
argument = "AtomThinVec"
[-moz-tree-separator]
enabled_in = "chrome"
argument = "AtomThinVec"
[-moz-tree-cell]
enabled_in = "chrome"
argument = "AtomThinVec"
[-moz-tree-indentation]
enabled_in = "chrome"
argument = "AtomThinVec"
[-moz-tree-line]
enabled_in = "chrome"
argument = "AtomThinVec"
[-moz-tree-twisty]
enabled_in = "chrome"
argument = "AtomThinVec"
[-moz-tree-image]
enabled_in = "chrome"
argument = "AtomThinVec"
[-moz-tree-cell-text]
enabled_in = "chrome"
argument = "AtomThinVec"
[-moz-tree-checkbox]
enabled_in = "chrome"
argument = "AtomThinVec"
[-moz-tree-drop-feedback]
enabled_in = "chrome"
argument = "AtomThinVec"