Make WordPress Core


Ignore:
Timestamp:
01/23/2024 05:55:49 AM (16 months ago)
Author:
isabel_brison
Message:

Editor: fix fluid font division by zero error when min and max viewport widths are equal.

Fixes a division error by returning null when minViewportWidth - maxViewportWidth is zero in wp_get_computed_fluid_typography_value.

Props ramonopoly, mukesh27, andrewserong, audrasjb.
Fixes #60263.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/block-supports/typography.php

    r56742 r57329  
    399399 * @since 6.1.0
    400400 * @since 6.3.0 Checks for unsupported min/max viewport values that cause invalid clamp values.
     401 * @since 6.5.0 Returns early when min and max viewport subtraction is zero to avoid division by zero.
    401402 * @access private
    402403 *
     
    469470    }
    470471
     472    // Calculates the linear factor denominator. If it's 0, we cannot calculate a fluid value.
     473    $linear_factor_denominator = $maximum_viewport_width['value'] - $minimum_viewport_width['value'];
     474    if ( empty( $linear_factor_denominator ) ) {
     475        return null;
     476    }
     477
    471478    /*
    472479     * Build CSS rule.
     
    474481     */
    475482    $view_port_width_offset = round( $minimum_viewport_width['value'] / 100, 3 ) . $font_size_unit;
    476     $linear_factor          = 100 * ( ( $maximum_font_size['value'] - $minimum_font_size['value'] ) / ( $maximum_viewport_width['value'] - $minimum_viewport_width['value'] ) );
     483    $linear_factor          = 100 * ( ( $maximum_font_size['value'] - $minimum_font_size['value'] ) / ( $linear_factor_denominator ) );
    477484    $linear_factor_scaled   = round( $linear_factor * $scale_factor, 3 );
    478485    $linear_factor_scaled   = empty( $linear_factor_scaled ) ? 1 : $linear_factor_scaled;
Note: See TracChangeset for help on using the changeset viewer.