Skip to content

Font Control

Elementor Core BasicFont Control

Elementor font control displays a font select box field based on Google Fonts library. The control allows you to set a list of fonts.

The control is defined in Control_Font class which extends Base_Data_Control class.

When using this control, the type should be set to \Elementor\Controls_Manager::FONT constant.

Arguments

NameTypeDefaultDescription
typestringfontThe type of the control.
labelstringThe label that appears above of the field.
descriptionstringThe description that appears below the field.
show_labelbooltrueWhether to display the label.
label_blockboolfalseWhether to display the label in a separate line.
separatorstringdefaultSet the position of the control separator. Available values are default, before and after. default will hide the separator, unless the control type has specific separator settings. before / after will position the separator before/after the control.
optionsarrayAn associative array of available fonts. [ 'Font Name' => 'family-name', ... ]
groups
arrayAn associative array of available font groups.
defaultstringDefault font name.

Return Value

(string) The selected font-family name.

Usage

php
<?php
class Elementor_Test_Widget extends \Elementor\Widget_Base {

	protected function register_controls(): void {

		$this->start_controls_section(
			'style_section',
			[
				'label' => esc_html__( 'Style', 'textdomain' ),
				'tab' => \Elementor\Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'font_family',
			[
				'label' => esc_html__( 'Font Family', 'textdomain' ),
				'type' => \Elementor\Controls_Manager::FONT,
				'default' => "'Open Sans', sans-serif",
				'selectors' => [
					'{{WRAPPER}} .your-class' => 'font-family: {{VALUE}}',
				],
			]
		);

		$this->end_controls_section();

	}

	protected function render(): void {
		$settings = $this->get_settings_for_display();
		?>
		<h2 class="your-class">
			...
		</h2>
		<?php

	}

	protected function content_template(): void {
		?>
		<h2 class="your-class">
			...
		</h2>
		<?php
	}

}