<!-- Froala 5.5.0 — Headless mode demo (paste into the JSFiddle HTML pane) -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/froala-editor@5.5.0/css/froala_editor.pkgd.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/froala-editor@5.5.0/css/froala_style.min.css">
<main class="demo">
<header class="demo-head">
<h1>Froala headless mode</h1>
<p>Froala runs with <code>headless: true</code>: no built-in toolbar, popups or styling.
Everything below is <strong>our own UI</strong>, calling the editor's API.</p>
</header>
<!-- Our custom toolbar is built from JavaScript into this element -->
<div id="my-toolbar" class="my-toolbar" aria-label="Custom editor toolbar"></div>
<!-- The editor itself: just an editable area -->
<div id="editor">
<h2>Welcome to a headless editor</h2>
<p>Select some text, then use the custom buttons above. This editor has
<em>no toolbar of its own</em>. Every button is plain HTML that calls a Froala API method.</p>
<ul><li>Lists work</li><li>Undo and redo work</li></ul>
<table style="width:100%"><tbody>
<tr><td>Cell A1</td><td>Cell B1</td></tr>
<tr><td>Cell A2</td><td>Cell B2</td></tr>
</tbody></table>
<p>Last paragraph.</p>
</div>
<section class="panel">
<h3>Live HTML output</h3>
<pre id="output" class="output"></pre>
</section>
</main>
<script src="https://cdn.jsdelivr.net/npm/froala-editor@5.5.0/js/froala_editor.pkgd.min.js"></script>