Make WYSIWYG HTML Editors Work for You

IderaDevTools - Aug 28 - - Dev Community

Do you use WYSIWYG HTML editors in your projects? These user-friendly tools have become increasingly popular among web developers and content creators, offering an intuitive interface for crafting web content without delving into raw HTML code. While these editors are powerful out of the box, their true potential is often unlocked through customization.

Key Takeaways

  • You can add new features to WYSIWYG HTML editors

  • Custom buttons help users format content easily

  • Changing the editor’s look can match your site’s style

Why Change WYSIWYG HTML Editors?

Changing a WYSIWYG HTML editor lets you:

  1. Add features your project needs

  2. Make it easier for users to use

  3. Keep formatting the same across your site

Now, let’s see how we can do this with a real example.

Adding a Handy Highlight Button

Often, we want to make some text stand out. Let’s add a button that does this quickly. First, we need to add the editor to our page:

<link href="https://cdn.jsdelivr.net/npm/froala-editor@latest/css/froala_editor.pkgd.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/froala-editor@latest/js/froala_editor.pkgd.min.js"></script>
Enter fullscreen mode Exit fullscreen mode

Then, we can add our new button:

// Make a new icon
FroalaEditor.DefineIcon('highlight', {NAME: 'star'});

// Create a new button
FroalaEditor.RegisterCommand('highlight', {
  title: 'Highlight',
  icon: 'highlight',
  focus: true,
  undo: true,
  refreshAfterCallback: true,
  callback: function () {
    this.html.insert('<span class="custom-highlight">' + this.selection.text() + '</span>');
  }
});

// Start the editor with our new button
new FroalaEditor('#editor', {
  toolbarButtons: ['bold', 'italic', 'underline', '|', 'highlight']
});
Enter fullscreen mode Exit fullscreen mode

This code does a few things:

  1. It makes a new icon for our button

  2. It tells the editor what to do when someone clicks the button

  3. It adds our new button to the toolbar

To make the highlighted text look good, we add some style:

.fr-view .custom-highlight {
  background-color: yellow;
  padding: 2px;
  border-radius: 2px;
}
Enter fullscreen mode Exit fullscreen mode

Making the Editor Look Good

You can also change how the editor looks. Here’s a simple way to do that:

new FroalaEditor('#editor', {
  toolbarButtons: ['bold', 'italic', 'underline', '|', 'highlight'],
  toolbarButtonsSM: ['bold', 'italic', 'underline', '-', 'highlight'],
  placeholderText: 'Type here...',
  charCounterCount: false,
  toolbarSticky: false,
  theme: 'royal'
});
Enter fullscreen mode Exit fullscreen mode

This change does several things:

  • It sets up buttons for different screen sizes

  • It adds some text to show where to type

  • It turns off the character counter

  • It makes the toolbar move with the page

  • It uses a pre-made theme

Tips for Changing WYSIWYG HTML Editors

When you change these editors, keep these tips in mind:

  1. Start Small: Make small changes first before trying big ones.

  2. Use What’s There: Use the editor’s built-in tools when you can.

  3. Test a Lot: Make sure your changes work in different browsers.

  4. Think About Speed: Big changes might slow things down, so test with lots of content.

  5. Stay Up to Date: Check for new features that might help you.

Using Changed Editors in Different Frameworks

You can use these changed editors in many web frameworks. Here’s how you might use our changed editor in React:

import React, { useEffect, useRef } from 'react';
import FroalaEditor from 'react-froala-wysiwyg';

const MyEditor = () => {
  const editorRef = useRef(null);

  useEffect(() => {
    if (editorRef.current) {
      FroalaEditor.DefineIcon('highlight', {NAME: 'star'});
      FroalaEditor.RegisterCommand('highlight', {
        title: 'Highlight',
        icon: 'highlight',
        focus: true,
        undo: true,
        refreshAfterCallback: true,
        callback: function () {
          this.html.insert('<span class="custom-highlight">' + this.selection.text() + '</span>');
        }
      });
    }
  }, []);

  const config = {
    toolbarButtons: ['bold', 'italic', 'underline', '|', 'highlight'],
    placeholderText: 'Type here...'
  };

  return <FroalaEditor tag='textarea' config={config} ref={editorRef} />;
};

export default MyEditor;
Enter fullscreen mode Exit fullscreen mode

This React component wraps our changed editor, making it easy to use in your React app.

Wrapping Up

WYSIWYG HTML editors are great tools for making content. Moreover, when you change them to fit your needs, they become even better. By adding new buttons, changing how they look, and fitting them into your project, you can make a perfect editing tool.

Remember, the goal is to make the editor work just right for you. With some clever changes, you can turn a good editor into a great one that fits smoothly into your work.

So, go ahead and try it out! Change your WYSIWYG HTML editor and see how much better it can be for your users.

This post was initially published on Froala's blog.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .