How to add wysiwyg in ui component form Magento 2?

You can add a WYSIWYG text field area using UI Component form in Magento 2 backend. With Wysiwyg, you can also add a page builder option to edit content using the page builder.

Use formElement as wysiwyg in XML file with field like <field name=”description” template=”ui/form/field” sortOrder=”10″ formElement=”wysiwyg”>

Add below XML code snippet to use Wysiwyg in custom form UI component,

<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
 * Rakesh Jesadiya
 */
-->
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
    <fieldset name="general" sortOrder="5">
        <field name="content" sortOrder="10" formElement="wysiwyg" template="ui/form/field">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">page</item>
                    <item name="wysiwygConfigData" xsi:type="array">
                        <item name="is_pagebuilder_enabled" xsi:type="boolean">false</item>
                        <item name="toggle_button" xsi:type="boolean">true</item>
                        <item name="height" xsi:type="string">200px</item>
                        <item name="add_variables" xsi:type="boolean">true</item>
                        <item name="add_widgets" xsi:type="boolean">true</item>
                        <item name="add_images" xsi:type="boolean">true</item>
                        <item name="add_directives" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
            <settings>
                <label translate="true">Contents</label>
                <dataScope>content</dataScope>
            </settings>
            <formElements>
                <wysiwyg>
                    <settings>
                        <rows>5</rows>
                        <wysiwyg>true</wysiwyg>
                    </settings>
                </wysiwyg>
            </formElements>
        </field>
    </fieldset>
</form>

template=”ui/form/field” Default template used for Wysiwyg.
is_pagebuilder_enabled value is boolean if you set yes, page builder will be displayed instead of Wysiwyg.
toggle_button — Add toggle button with text Show/Hide editor button.
add_variables — Add Button with text insert variable.
add_widgets — Add Button with text Insert widget button
add_images — Add Button with text insert image button
<rows> indicates the no. of rows for the Wysiwyg.