[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

/wp-includes/ -> class-wp-duotone.php (summary)

WP_Duotone class Parts of this source were derived and modified from colord, released under the MIT license.

File Size: 1302 lines (40 kb)
Included or required:0 times
Referenced: 0 times
Includes or requires: 0 files

Defines 1 class

WP_Duotone:: (37 methods):
  colord_clamp()
  colord_clamp_hue()
  colord_parse_hue()
  colord_parse_hex()
  colord_clamp_rgba()
  colord_parse_rgba_string()
  colord_clamp_hsla()
  colord_hsva_to_rgba()
  colord_hsla_to_hsva()
  colord_hsla_to_rgba()
  colord_parse_hsla_string()
  colord_parse()
  get_slug_from_attribute()
  is_preset()
  get_css_custom_property_name()
  get_filter_id()
  get_css_var()
  get_filter_url()
  get_filter_svg()
  get_filter_id_from_preset()
  get_filter_svg_from_preset()
  get_svg_definitions()
  get_global_styles_presets()
  enqueue_block_css()
  enqueue_custom_filter()
  enqueue_global_styles_preset()
  register_duotone_support()
  get_selector()
  get_all_global_styles_presets()
  get_all_global_style_block_names()
  render_duotone_support()
  output_block_styles()
  output_global_styles()
  output_footer_assets()
  add_editor_settings()
  migrate_experimental_duotone_support_flag()
  get_filter_css_property_value_from_preset()


Class: WP_Duotone  - X-Ref

Manages duotone block supports and global styles.

colord_clamp( $number, $min = 0, $max = 1 )   X-Ref
Clamps a value between an upper and lower bound.

Direct port of colord's clamp function.

return: float The clamped value.
param: float $number The number to clamp.
param: float $min    The minimum value.
param: float $max    The maximum value.

colord_clamp_hue( $degrees )   X-Ref
Processes and clamps a degree (angle) value properly.

Direct port of colord's clampHue function.

return: float The clamped hue.
param: float $degrees The hue to clamp.

colord_parse_hue( $value, $unit = 'deg' )   X-Ref
Converts a hue value to degrees from 0 to 360 inclusive.

Direct port of colord's parseHue function.

return: float The parsed hue value.
param: float  $value The hue value to parse.
param: string $unit  The unit of the hue value.

colord_parse_hex( $hex )   X-Ref
Parses any valid Hex3, Hex4, Hex6 or Hex8 string and converts it to an RGBA object

Direct port of colord's parseHex function.

return: array|null An array of RGBA values or null if the hex string is invalid.
param: string $hex The hex string to parse.

colord_clamp_rgba( $rgba )   X-Ref
Clamps an array of RGBA values.

Direct port of colord's clampRgba function.

return: array The clamped RGBA array.
param: array $rgba The RGBA array to clamp.

colord_parse_rgba_string( $input )   X-Ref
Parses a valid RGB[A] CSS color function/string

Direct port of colord's parseRgbaString function.

return: array|null An array of RGBA values or null if the RGB string is invalid.
param: string $input The RGBA string to parse.

colord_clamp_hsla( $hsla )   X-Ref
Clamps an array of HSLA values.

Direct port of colord's clampHsla function.

return: array The clamped HSLA array.
param: array $hsla The HSLA array to clamp.

colord_hsva_to_rgba( $hsva )   X-Ref
Converts an HSVA array to RGBA.

Direct port of colord's hsvaToRgba function.

return: array The RGBA array.
param: array $hsva The HSVA array to convert.

colord_hsla_to_hsva( $hsla )   X-Ref
Converts an HSLA array to HSVA.

Direct port of colord's hslaToHsva function.

return: array The HSVA array.
param: array $hsla The HSLA array to convert.

colord_hsla_to_rgba( $hsla )   X-Ref
Converts an HSLA array to RGBA.

Direct port of colord's hslaToRgba function.

return: array The RGBA array.
param: array $hsla The HSLA array to convert.

colord_parse_hsla_string( $input )   X-Ref
Parses a valid HSL[A] CSS color function/string.

Direct port of colord's parseHslaString function.

return: array|null An array of RGBA values or null if the RGB string is invalid.
param: string $input The HSLA string to parse.

colord_parse( $input )   X-Ref
Tries to convert an incoming string into RGBA values.

Direct port of colord's parse function simplified for our use case. This
version only supports string parsing and only returns RGBA values.

return: array|null An array of RGBA values or null if the string is invalid.
param: string $input The string to parse.

get_slug_from_attribute( $duotone_attr )   X-Ref
Takes the inline CSS duotone variable from a block and return the slug.

Handles styles slugs like:
var:preset|duotone|blue-orange
var(--wp--preset--duotone--blue-orange)

return: string The slug of the duotone preset or an empty string if no slug is found.
param: string $duotone_attr The duotone attribute from a block.

is_preset( $duotone_attr )   X-Ref
Checks if we have a valid duotone preset.

Valid presets are defined in the $global_styles_presets array.

return: bool True if the duotone preset present and valid.
param: string $duotone_attr The duotone attribute from a block.

get_css_custom_property_name( $slug )   X-Ref
Gets the CSS variable name for a duotone preset.

Example output:
--wp--preset--duotone--blue-orange

return: string The CSS variable name.
param: string $slug The slug of the duotone preset.

get_filter_id( $slug )   X-Ref
Get the ID of the duotone filter.

Example output:
wp-duotone-blue-orange

return: string The ID of the duotone filter.
param: string $slug The slug of the duotone preset.

get_css_var( $slug )   X-Ref
Get the CSS variable for a duotone preset.

Example output:
var(--wp--preset--duotone--blue-orange)

return: string The CSS variable.
param: string $slug The slug of the duotone preset.

get_filter_url( $filter_id )   X-Ref
Get the URL for a duotone filter.

Example output:
url(#wp-duotone-blue-orange)

return: string The URL for the duotone filter.
param: string $filter_id The ID of the filter.

get_filter_svg( $filter_id, $colors )   X-Ref
Gets the SVG for the duotone filter definition.

Whitespace is removed when SCRIPT_DEBUG is not enabled.

return: string An SVG with a duotone filter definition.
param: string $filter_id The ID of the filter.
param: array  $colors    An array of color strings.

get_filter_id_from_preset( $preset )   X-Ref
Returns the prefixed id for the duotone filter for use as a CSS id.

Exported for the deprecated function wp_get_duotone_filter_id().

return: string        Duotone filter CSS id.
param: array $preset Duotone preset value as seen in theme.json.

get_filter_svg_from_preset( $preset )   X-Ref
Gets the SVG for the duotone filter definition from a preset.

Exported for the deprecated function wp_get_duotone_filter_property().

return: string The SVG for the filter definition.
param: array $preset The duotone preset.

get_svg_definitions( $sources )   X-Ref
Get the SVGs for the duotone filters.

Example output:
<svg><defs><filter id="wp-duotone-blue-orange">…</filter></defs></svg><svg>…</svg>

return: string The SVGs for the duotone filters.
param: array $sources The duotone presets.

get_global_styles_presets( $sources )   X-Ref
Get the CSS for global styles.

Example output:
body{--wp--preset--duotone--blue-orange:url('#wp-duotone-blue-orange');}

return: string The CSS for global styles.
param: array $sources The duotone presets.

enqueue_block_css( $filter_id, $duotone_selector, $filter_value )   X-Ref
Enqueue a block CSS declaration for the page.

This does not include any SVGs.

param: string $filter_id        The filter ID. e.g. 'wp-duotone-000000-ffffff-2'.
param: string $duotone_selector The block's duotone selector. e.g. '.wp-block-image img'.
param: string $filter_value     The filter CSS value. e.g. 'url(#wp-duotone-000000-ffffff-2)' or 'unset'.

enqueue_custom_filter( $filter_id, $duotone_selector, $filter_value, $filter_data )   X-Ref
Enqueue custom filter assets for the page.

Includes an SVG filter and block CSS declaration.

param: string $filter_id        The filter ID. e.g. 'wp-duotone-000000-ffffff-2'.
param: string $duotone_selector The block's duotone selector. e.g. '.wp-block-image img'.
param: string $filter_value     The filter CSS value. e.g. 'url(#wp-duotone-000000-ffffff-2)' or 'unset'.
param: array  $filter_data      Duotone filter data with 'slug' and 'colors' keys.

enqueue_global_styles_preset( $filter_id, $duotone_selector, $filter_value )   X-Ref
Enqueue preset assets for the page.

Includes a CSS custom property, SVG filter, and block CSS declaration.

param: string $filter_id        The filter ID. e.g. 'wp-duotone-blue-orange'.
param: string $duotone_selector The block's duotone selector. e.g. '.wp-block-image img'.
param: string $filter_value     The filter CSS value. e.g. 'url(#wp-duotone-blue-orange)' or 'unset'.

register_duotone_support( $block_type )   X-Ref
Registers the style and colors block attributes for block types that support it.

Block support is added with `supports.filter.duotone` in block.json.

param: WP_Block_Type $block_type Block Type.

get_selector( $block_type )   X-Ref
Get the CSS selector for a block type.

This handles selectors defined in `color.__experimentalDuotone` support
if `filter.duotone` support is not defined.

return: string|null The CSS selector or null if there is no support.
param: WP_Block_Type $block_type Block type to check for support.

get_all_global_styles_presets()   X-Ref
Scrape all possible duotone presets from global and theme styles and
store them in self::$global_styles_presets.

Used in conjunction with self::render_duotone_support for blocks that
use duotone preset filters.

return: array An array of global styles presets, keyed on the filter ID.

get_all_global_style_block_names()   X-Ref
Scrape all block names from global styles and store in self::$global_styles_block_names.

Used in conjunction with self::render_duotone_support to output the
duotone filters defined in the theme.json global styles.

return: string[] An array of global style block slugs, keyed on the block name.

render_duotone_support( $block_content, $block, $wp_block )   X-Ref
Render out the duotone CSS styles and SVG.

The hooks self::set_global_style_block_names and self::set_global_styles_presets
must be called before this function.

return: string Filtered block content.
param: string   $block_content Rendered block content.
param: array    $block         Block object.
param: WP_Block $wp_block      The block instance.

output_block_styles()   X-Ref
Appends the used block duotone filter declarations to the inline block supports CSS.

Uses the declarations saved in earlier calls to self::enqueue_block_css.


output_global_styles()   X-Ref
Appends the used global style duotone filter presets (CSS custom
properties) to the inline global styles CSS.

Uses the declarations saved in earlier calls to self::enqueue_global_styles_preset.


output_footer_assets()   X-Ref
Outputs all necessary SVG for duotone filters, CSS for classic themes.

Uses the declarations saved in earlier calls to self::enqueue_global_styles_preset
and self::enqueue_custom_filter.


add_editor_settings( $settings )   X-Ref
Adds the duotone SVGs and CSS custom properties to the editor settings.

This allows the properties to be pulled in by the EditorStyles component
in JS and rendered in the post editor.

return: array The editor settings with duotone SVGs and CSS custom properties.
param: array $settings The block editor settings from the `block_editor_settings_all` filter.

migrate_experimental_duotone_support_flag( $settings, $metadata )   X-Ref
Migrates the experimental duotone support flag to the stabilized location.

This moves `supports.color.__experimentalDuotone` to `supports.filter.duotone`.

return: array Filtered block type settings.
param: array $settings Current block type settings.
param: array $metadata Block metadata as read in via block.json.

get_filter_css_property_value_from_preset( $preset )   X-Ref
Gets the CSS filter property value from a preset.

Exported for the deprecated function wp_get_duotone_filter_id().

return: string The CSS filter property value.
param: array $preset The duotone preset.



Generated : Sun Apr 28 08:20:02 2024 Cross-referenced by PHPXref