use Elementor\Core\Upgrade\Manager as Upgrade_Manager;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
* Elementor fonts handler class is responsible for registering the supported
* fonts used by Elementor.
const GOOGLE = 'googlefonts';
* The google early access font name.
const EARLYACCESS = 'earlyaccess';
* Used to hold font types/groups.
private static $font_groups;
private static $is_google_fonts_enabled = null;
* Retrieve the list of font groups.
* @return array Supported font groups/types.
public static function get_font_groups() {
if ( null === self::$font_groups ) {
self::SYSTEM => esc_html__( 'System', 'elementor' ),
if ( static::is_google_fonts_enabled() ) {
$font_groups = array_merge( $font_groups, [
self::GOOGLE => esc_html__( 'Google', 'elementor' ),
self::EARLYACCESS => esc_html__( 'Google (Early Access)', 'elementor' ),
* Filters the fonts groups used by Elementor.
* @param array $font_groups Font groups.
$font_groups = apply_filters( 'elementor/fonts/groups', $font_groups );
self::$font_groups = $font_groups;
return self::$font_groups;
* Retrieve the list of supported fonts.
* @return array Supported fonts.
public static function get_fonts() {
if ( null === self::$fonts ) {
* Filters the fonts used by Elementor to add additional fonts.
* @param array $additional_fonts Additional Elementor fonts.
$additional_fonts = apply_filters( 'elementor/fonts/additional_fonts', $additional_fonts );
self::$fonts = array_replace( self::get_native_fonts(), $additional_fonts );
* Get Elementor native fonts.
* Retrieve the list of supported fonts.
* @return array Supported fonts.
private static function get_native_fonts() {
'Tahoma' => self::SYSTEM,
'Verdana' => self::SYSTEM,
'Helvetica' => self::SYSTEM,
'Times New Roman' => self::SYSTEM,
'Trebuchet MS' => self::SYSTEM,
'Georgia' => self::SYSTEM,
if ( static::is_google_fonts_enabled() ) {
$fonts = array_merge( $fonts, [
// Google Fonts (last update: 05/05/2024).
'ABeeZee' => self::GOOGLE,
'ADLaM Display' => self::GOOGLE,
'AR One Sans' => self::GOOGLE,
'Abhaya Libre' => self::GOOGLE,
'Aboreto' => self::GOOGLE,
'Abril Fatface' => self::GOOGLE,
'Abyssinica SIL' => self::GOOGLE,
'Aclonica' => self::GOOGLE,
'Adamina' => self::GOOGLE,
'Advent Pro' => self::GOOGLE,
'Afacad' => self::GOOGLE,
'Agbalumo' => self::GOOGLE,
'Agdasima' => self::GOOGLE,
'Aguafina Script' => self::GOOGLE,
'Akatab' => self::GOOGLE,
'Akaya Kanadaka' => self::GOOGLE,
'Akaya Telivigala' => self::GOOGLE,
'Akronim' => self::GOOGLE,
'Akshar' => self::GOOGLE,
'Aladin' => self::GOOGLE,
'Alatsi' => self::GOOGLE,
'Albert Sans' => self::GOOGLE,
'Aldrich' => self::GOOGLE,
'Alef Hebrew' => self::EARLYACCESS, // Hack for Google Early Access.
'Alegreya' => self::GOOGLE,
'Alegreya SC' => self::GOOGLE,
'Alegreya Sans' => self::GOOGLE,
'Alegreya Sans SC' => self::GOOGLE,
'Alex Brush' => self::GOOGLE,
'Alexandria' => self::GOOGLE,
'Alfa Slab One' => self::GOOGLE,
'Alike Angular' => self::GOOGLE,
'Alkalami' => self::GOOGLE,
'Alkatra' => self::GOOGLE,
'Allerta' => self::GOOGLE,
'Allerta Stencil' => self::GOOGLE,
'Allison' => self::GOOGLE,
'Allura' => self::GOOGLE,
'Almarai' => self::GOOGLE,
'Almendra' => self::GOOGLE,
'Almendra Display' => self::GOOGLE,
'Almendra SC' => self::GOOGLE,
'Alumni Sans' => self::GOOGLE,
'Alumni Sans Collegiate One' => self::GOOGLE,
'Alumni Sans Inline One' => self::GOOGLE,
'Alumni Sans Pinstripe' => self::GOOGLE,
'Amarante' => self::GOOGLE,
'Amaranth' => self::GOOGLE,
'Amatic SC' => self::GOOGLE,
'Amethysta' => self::GOOGLE,
'Amiri Quran' => self::GOOGLE,
'Anaheim' => self::GOOGLE,
'Andada Pro' => self::GOOGLE,
'Andika' => self::GOOGLE,
'Anek Bangla' => self::GOOGLE,
'Anek Devanagari' => self::GOOGLE,
'Anek Gujarati' => self::GOOGLE,
'Anek Gurmukhi' => self::GOOGLE,
'Anek Kannada' => self::GOOGLE,
'Anek Latin' => self::GOOGLE,
'Anek Malayalam' => self::GOOGLE,
'Anek Odia' => self::GOOGLE,
'Anek Tamil' => self::GOOGLE,
'Anek Telugu' => self::GOOGLE,
'Angkor' => self::GOOGLE,
'Annapurna SIL' => self::GOOGLE,
'Annie Use Your Telescope' => self::GOOGLE,
'Anonymous Pro' => self::GOOGLE,
'Antic Didone' => self::GOOGLE,
'Antic Slab' => self::GOOGLE,
'Antonio' => self::GOOGLE,
'Anuphan' => self::GOOGLE,
'Anybody' => self::GOOGLE,
'Aoboshi One' => self::GOOGLE,
'Arapey' => self::GOOGLE,
'Arbutus' => self::GOOGLE,
'Arbutus Slab' => self::GOOGLE,
'Architects Daughter' => self::GOOGLE,
'Archivo' => self::GOOGLE,
'Archivo Black' => self::GOOGLE,
'Archivo Narrow' => self::GOOGLE,
'Are You Serious' => self::GOOGLE,
'Aref Ruqaa' => self::GOOGLE,
'Aref Ruqaa Ink' => self::GOOGLE,
'Arizonia' => self::GOOGLE,
'Armata' => self::GOOGLE,
'Arsenal' => self::GOOGLE,
'Artifika' => self::GOOGLE,
'Asap Condensed' => self::GOOGLE,
'Assistant' => self::GOOGLE,
'Astloch' => self::GOOGLE,
'Athiti' => self::GOOGLE,
'Atkinson Hyperlegible' => self::GOOGLE,
'Atomic Age' => self::GOOGLE,
'Aubrey' => self::GOOGLE,
'Audiowide' => self::GOOGLE,
'Autour One' => self::GOOGLE,
'Average' => self::GOOGLE,
'Average Sans' => self::GOOGLE,
'Averia Gruesa Libre' => self::GOOGLE,
'Averia Libre' => self::GOOGLE,
'Averia Sans Libre' => self::GOOGLE,
'Averia Serif Libre' => self::GOOGLE,
'Azeret Mono' => self::GOOGLE,
'B612 Mono' => self::GOOGLE,
'BIZ UDGothic' => self::GOOGLE,
'BIZ UDMincho' => self::GOOGLE,
'BIZ UDPGothic' => self::GOOGLE,
'BIZ UDPMincho' => self::GOOGLE,
'Babylonica' => self::GOOGLE,
'Bacasime Antique' => self::GOOGLE,
'Bad Script' => self::GOOGLE,
'Bagel Fat One' => self::GOOGLE,
'Bahiana' => self::GOOGLE,
'Bahianita' => self::GOOGLE,
'Bai Jamjuree' => self::GOOGLE,
'Bakbak One' => self::GOOGLE,
'Ballet' => self::GOOGLE,
'Baloo 2' => self::GOOGLE,
'Baloo Bhai 2' => self::GOOGLE,
'Baloo Bhaijaan 2' => self::GOOGLE,
'Baloo Bhaina 2' => self::GOOGLE,
'Baloo Chettan 2' => self::GOOGLE,
'Baloo Da 2' => self::GOOGLE,
'Baloo Paaji 2' => self::GOOGLE,
'Baloo Tamma 2' => self::GOOGLE,
'Baloo Tammudu 2' => self::GOOGLE,
'Baloo Thambi 2' => self::GOOGLE,
'Balsamiq Sans' => self::GOOGLE,
'Balthazar' => self::GOOGLE,
'Bangers' => self::GOOGLE,
'Barlow' => self::GOOGLE,
'Barlow Condensed' => self::GOOGLE,
'Barlow Semi Condensed' => self::GOOGLE,
'Barriecito' => self::GOOGLE,
'Barrio' => self::GOOGLE,
'Baskervville' => self::GOOGLE,
'Battambang' => self::GOOGLE,
'Baumans' => self::GOOGLE,
'Be Vietnam Pro' => self::GOOGLE,
'Beau Rivage' => self::GOOGLE,
'Bebas Neue' => self::GOOGLE,
'Belanosima' => self::GOOGLE,
'Belgrano' => self::GOOGLE,
'Bellefair' => self::GOOGLE,
'Belleza' => self::GOOGLE,
'Bellota' => self::GOOGLE,
'Bellota Text' => self::GOOGLE,
'BenchNine' => self::GOOGLE,
'Bentham' => self::GOOGLE,
'Berkshire Swash' => self::GOOGLE,
'Besley' => self::GOOGLE,
'Beth Ellen' => self::GOOGLE,
'BhuTuka Expanded One' => self::GOOGLE,
'Big Shoulders Display' => self::GOOGLE,
'Big Shoulders Inline Display' => self::GOOGLE,
'Big Shoulders Inline Text' => self::GOOGLE,
'Big Shoulders Stencil Display' => self::GOOGLE,
'Big Shoulders Stencil Text' => self::GOOGLE,
'Big Shoulders Text' => self::GOOGLE,
'Bigelow Rules' => self::GOOGLE,
'Bigshot One' => self::GOOGLE,
'Bilbo Swash Caps' => self::GOOGLE,
'BioRhyme' => self::GOOGLE,
'BioRhyme Expanded' => self::GOOGLE,
'Birthstone' => self::GOOGLE,
'Birthstone Bounce' => self::GOOGLE,
'Biryani' => self::GOOGLE,
'Bitter' => self::GOOGLE,
'Black And White Picture' => self::GOOGLE,
'Black Han Sans' => self::GOOGLE,
'Black Ops One' => self::GOOGLE,
'Blaka Hollow' => self::GOOGLE,
'Blaka Ink' => self::GOOGLE,
'Blinker' => self::GOOGLE,
'Bodoni Moda' => self::GOOGLE,
'Bona Nova' => self::GOOGLE,
'Bonbon' => self::GOOGLE,
'Bonheur Royale' => self::GOOGLE,
'Boogaloo' => self::GOOGLE,
'Bowlby One' => self::GOOGLE,
'Bowlby One SC' => self::GOOGLE,
'Braah One' => self::GOOGLE,
'Brawler' => self::GOOGLE,
'Bree Serif' => self::GOOGLE,
'Bricolage Grotesque' => self::GOOGLE,
'Briem Hand' => self::GOOGLE,
'Bruno Ace' => self::GOOGLE,
'Bruno Ace SC' => self::GOOGLE,
'Brygada 1918' => self::GOOGLE,
'Bubblegum Sans' => self::GOOGLE,
'Bubbler One' => self::GOOGLE,
'Buenard' => self::GOOGLE,
'Bungee' => self::GOOGLE,
'Bungee Hairline' => self::GOOGLE,
'Bungee Inline' => self::GOOGLE,
'Bungee Outline' => self::GOOGLE,
'Bungee Shade' => self::GOOGLE,
'Bungee Spice' => self::GOOGLE,
'Butcherman' => self::GOOGLE,
'Butterfly Kids' => self::GOOGLE,
'Cabin Condensed' => self::GOOGLE,
'Cabin Sketch' => self::GOOGLE,
'Caesar Dressing' => self::GOOGLE,
'Cagliostro' => self::GOOGLE,
'Cairo Play' => self::GOOGLE,
'Caladea' => self::GOOGLE,
'Calistoga' => self::GOOGLE,
'Calligraffitti' => self::GOOGLE,
'Cambay' => self::GOOGLE,
'Candal' => self::GOOGLE,
'Cantarell' => self::GOOGLE,
'Cantata One' => self::GOOGLE,
'Cantora One' => self::GOOGLE,
'Caprasimo' => self::GOOGLE,
'Capriola' => self::GOOGLE,
'Caramel' => self::GOOGLE,
'Carattere' => self::GOOGLE,
'Carlito' => self::GOOGLE,
'Carrois Gothic' => self::GOOGLE,
'Carrois Gothic SC' => self::GOOGLE,
'Carter One' => self::GOOGLE,
'Castoro' => self::GOOGLE,
'Castoro Titling' => self::GOOGLE,
'Catamaran' => self::GOOGLE,
'Caudex' => self::GOOGLE,
'Caveat' => self::GOOGLE,
'Caveat Brush' => self::GOOGLE,
'Cedarville Cursive' => self::GOOGLE,
'Ceviche One' => self::GOOGLE,
'Chakra Petch' => self::GOOGLE,
'Changa' => self::GOOGLE,
'Changa One' => self::GOOGLE,
'Chango' => self::GOOGLE,
'Charis SIL' => self::GOOGLE,
'Charmonman' => self::GOOGLE,
'Chathura' => self::GOOGLE,
'Chau Philomene One' => self::GOOGLE,
'Chela One' => self::GOOGLE,
'Chelsea Market' => self::GOOGLE,
'Chenla' => self::GOOGLE,
'Cherish' => self::GOOGLE,
'Cherry Bomb One' => self::GOOGLE,
'Cherry Cream Soda' => self::GOOGLE,
'Cherry Swash' => self::GOOGLE,
'Chicle' => self::GOOGLE,
'Chilanka' => self::GOOGLE,
'Chivo Mono' => self::GOOGLE,
'Chokokutai' => self::GOOGLE,
'Chonburi' => self::GOOGLE,
'Cinzel' => self::GOOGLE,
'Cinzel Decorative' => self::GOOGLE,
'Clicker Script' => self::GOOGLE,
'Climate Crisis' => self::GOOGLE,
'Coda Caption' => self::GOOGLE,
'Codystar' => self::GOOGLE,
'Comfortaa' => self::GOOGLE,
'Comforter' => self::GOOGLE,
'Comforter Brush' => self::GOOGLE,
'Comic Neue' => self::GOOGLE,
'Coming Soon' => self::GOOGLE,
'Commissioner' => self::GOOGLE,
'Concert One' => self::GOOGLE,
'Condiment' => self::GOOGLE,
'Content' => self::GOOGLE,
'Contrail One' => self::GOOGLE,
'Convergence' => self::GOOGLE,
'Cookie' => self::GOOGLE,
'Corben' => self::GOOGLE,
'Corinthia' => self::GOOGLE,
'Cormorant' => self::GOOGLE,
'Cormorant Garamond' => self::GOOGLE,
'Cormorant Infant' => self::GOOGLE,
'Cormorant SC' => self::GOOGLE,
'Cormorant Unicase' => self::GOOGLE,
'Cormorant Upright' => self::GOOGLE,
'Courgette' => self::GOOGLE,
'Courier Prime' => self::GOOGLE,
'Cousine' => self::GOOGLE,
'Coustard' => self::GOOGLE,
'Covered By Your Grace' => self::GOOGLE,
'Crafty Girls' => self::GOOGLE,
'Creepster' => self::GOOGLE,
'Crete Round' => self::GOOGLE,
'Crimson Pro' => self::GOOGLE,
'Crimson Text' => self::GOOGLE,
'Croissant One' => self::GOOGLE,
'Crushed' => self::GOOGLE,
'Cuprum' => self::GOOGLE,
'Cute Font' => self::GOOGLE,
'Cutive' => self::GOOGLE,
'Cutive Mono' => self::GOOGLE,
'DM Mono' => self::GOOGLE,
'DM Sans' => self::GOOGLE,
'DM Serif Display' => self::GOOGLE,
'DM Serif Text' => self::GOOGLE,
'Dai Banna SIL' => self::GOOGLE,
'Damion' => self::GOOGLE,