<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: XXChen</title>
    <description>The latest articles on DEV Community by XXChen (@xxchen).</description>
    <link>https://dev.to/xxchen</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3915328%2F6e651a74-9e7e-458c-aa74-3afb332036a9.png</url>
      <title>DEV Community: XXChen</title>
      <link>https://dev.to/xxchen</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/xxchen"/>
    <language>en</language>
    <item>
      <title>How to Use HeyHTML Editor: A Complete Guide to the Visual HTML Editor (Drag &amp; Drop)</title>
      <dc:creator>XXChen</dc:creator>
      <pubDate>Sat, 09 May 2026 07:13:56 +0000</pubDate>
      <link>https://dev.to/xxchen/how-to-use-heyhtml-editor-a-complete-guide-to-the-visual-html-editor-drag-drop-1g8a</link>
      <guid>https://dev.to/xxchen/how-to-use-heyhtml-editor-a-complete-guide-to-the-visual-html-editor-drag-drop-1g8a</guid>
      <description>&lt;p&gt;Welcome to &lt;a href="https://heyhtml.com" rel="noopener noreferrer"&gt;HeyHTML&lt;/a&gt; — a WYSIWYG HTML editor that runs right in your browser. Build web pages by dragging, dropping, and clicking, just like making a slide deck — no coding required.&lt;/p&gt;

&lt;p&gt;HeyHTML packs a lot of features and keyboard shortcuts into a compact interface. If you're using it for the first time, some of them might not be immediately obvious.&lt;/p&gt;

&lt;p&gt;This guide walks you through every major feature and shares practical tips to help you get productive fast.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fem7k218t82nu1q83x6yf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fem7k218t82nu1q83x6yf.png" alt=" " width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Visit: &lt;a href="https://heyhtml.com" rel="noopener noreferrer"&gt;HeyHTML&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Quick Start
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Entering Edit Mode
&lt;/h3&gt;

&lt;p&gt;When you open the HeyHTML website, you'll see a Control Bar fixed at the very top of the page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcpcycmw8x4cwzsngayql.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcpcycmw8x4cwzsngayql.png" alt=" " width="377" height="47"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click the &lt;strong&gt;Edit&lt;/strong&gt; button to enter editing mode. Three things happen:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The &lt;strong&gt;Edit&lt;/strong&gt; button highlights in indigo — edit mode is now active.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;feature-rich floating toolbar&lt;/strong&gt; appears below the control bar — this is your main control panel.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;page content becomes interactive&lt;/strong&gt; — you can click to select elements, drag to move them, and double-click to edit text.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Click &lt;strong&gt;Edit&lt;/strong&gt; again to exit editing mode and return to normal browsing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Your First Edit — Three Steps
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Click&lt;/strong&gt; any element on the page (a paragraph, button, or card) to select it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Double-click&lt;/strong&gt; the text area to edit the content directly.&lt;/li&gt;
&lt;li&gt;Press &lt;strong&gt;Ctrl+S&lt;/strong&gt; (Mac: &lt;strong&gt;Cmd+S&lt;/strong&gt;) to save the edited HTML file to your computer.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's it — you've completed your first edit. (If your imported HTML file briefly appears blank, give it a moment to load — this depends on the complexity of the file.)&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Interface Overview
&lt;/h2&gt;

&lt;p&gt;In edit mode, the interface is composed of the following areas:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F36d3bgnsy9de476t5he2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F36d3bgnsy9de476t5he2.png" alt=" " width="800" height="73"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Top Control Bar
&lt;/h3&gt;

&lt;p&gt;Always fixed at the top of the page, providing global actions:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Button&lt;/th&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Toggle between Edit Mode and View Mode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Open&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Open a local HTML file for editing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Save As&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Download the current document as an HTML file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Floating Toolbar
&lt;/h3&gt;

&lt;p&gt;Located below the control bar, organized into functional groups separated by vertical dividers:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Group&lt;/th&gt;
&lt;th&gt;Tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Text Format&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Bold, Italic, Underline, Strikethrough&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Font &amp;amp; Heading&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Font Family, Font Size, Heading Level (Paragraph, H1–H4)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alignment&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Align Left, Align Center, Align Right&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Colors&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Text Color, Background Color&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Visual Effects&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Border Radius, Shadow, Opacity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Insert&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Insert... (Container, Text Box, Heading, Table, Image, Button, Divider, Link, List, Quote)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Format Brush&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Copy styles from one element and apply them to others&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Element Actions&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Duplicate Element, Bring Forward, Send Backward, Lock/Unlock, Delete&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Panels&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Page Sorter, PDF Pagination &amp;amp; Export, Chart Typography&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;History&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Undo, Redo&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; When no element is selected, most element-action buttons appear dimmed (except &lt;strong&gt;Insert...&lt;/strong&gt;, &lt;strong&gt;Page Sorter&lt;/strong&gt;, &lt;strong&gt;Chart Typography&lt;/strong&gt;, &lt;strong&gt;Undo&lt;/strong&gt;, and &lt;strong&gt;Redo&lt;/strong&gt;). Once you select an element, all buttons become active.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  The Page Canvas
&lt;/h3&gt;

&lt;p&gt;The HTML content you're editing. In edit mode:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hovering over an element shows a &lt;strong&gt;purple dashed outline&lt;/strong&gt; — it's selectable.&lt;/li&gt;
&lt;li&gt;Clicking selects it — the outline becomes a &lt;strong&gt;solid indigo line&lt;/strong&gt; with &lt;strong&gt;8 blue resize handles&lt;/strong&gt; at the corners and edges.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;If clicking doesn't select an element, try pressing and holding the mouse button while dragging slightly.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmf0xxgouhcv79upouavk.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmf0xxgouhcv79upouavk.gif" alt=" " width="426" height="240"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Selecting &amp;amp; Navigating Elements
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Click to Select
&lt;/h3&gt;

&lt;p&gt;Move your mouse over any element on the page (text, images, buttons, cards, etc.). A purple dashed outline appears around it. Click to select. The outline turns solid, and the toolbar activates all buttons relevant to that element.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note: if clicking doesn't select an element, try pressing and holding the mouse button while dragging slightly within the element.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Select Parent (Esc Key)
&lt;/h3&gt;

&lt;p&gt;Sometimes the element you want is nested inside others. Press &lt;strong&gt;Esc&lt;/strong&gt; to step upward from the current element to its parent:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Text inside a paragraph → Paragraph → Container div → Section → ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each press of &lt;strong&gt;Esc&lt;/strong&gt; moves the selection one level outward. When the outermost element is selected, pressing Esc again deselects everything.&lt;/p&gt;

&lt;p&gt;So if you want to select a deeply nested element, you can first select something inside it, then press Esc repeatedly until you reach the desired parent.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjkjyspqm92t0cf3lxnom.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjkjyspqm92t0cf3lxnom.gif" alt=" " width="426" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Quick Targeting
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;As you move your mouse around the page, the element under the cursor is automatically highlighted — this helps you know what will be selected when you click.&lt;/li&gt;
&lt;li&gt;The editor intelligently identifies editable HTML elements and avoids selecting unnecessary internal structures.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  4. Drag &amp;amp; Move with Smart Alignment
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Free Drag
&lt;/h3&gt;

&lt;p&gt;Select any element, then &lt;strong&gt;hold the mouse button and drag&lt;/strong&gt; to move it anywhere on the page.&lt;/p&gt;

&lt;p&gt;During movement:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The element follows your cursor in real time with a subtle transparency and shadow, so you can see the target position.&lt;/li&gt;
&lt;li&gt;As you approach other elements, &lt;strong&gt;magenta alignment guides&lt;/strong&gt; appear automatically.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Smart Alignment Guides
&lt;/h3&gt;

&lt;p&gt;HeyHTML calculates alignment relationships in real time as you drag:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guide Type&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Horizontal line&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Top, bottom, or center alignment with a nearby element&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Vertical line&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Left, right, or center alignment with a nearby element&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Equal-spacing markers&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Shown when three or more elements have equal spacing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Distance labels&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Exact pixel values (px) displayed at key points on the guides&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This alignment system helps you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Line up multiple elements on the same horizontal axis&lt;/li&gt;
&lt;li&gt;Maintain equal spacing between elements&lt;/li&gt;
&lt;li&gt;Achieve pixel-precise positioning&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Keyboard Nudge (Arrow Keys)
&lt;/h3&gt;

&lt;p&gt;With an element selected, use the arrow keys for precise adjustments:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Keys&lt;/th&gt;
&lt;th&gt;Effect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;↑ ↓ ← →&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Move 1 pixel in that direction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Shift + ↑ ↓ ← →&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Move 10 pixels in that direction&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  5. Resizing Elements
&lt;/h2&gt;

&lt;p&gt;When an element is selected, &lt;strong&gt;8 indigo handles&lt;/strong&gt; appear on its border.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Handle Position&lt;/th&gt;
&lt;th&gt;Drag Effect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Four corners&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Resize width and height simultaneously&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Top / Bottom midpoints&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Change height only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Left / Right midpoints&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Change width only&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The element resizes in real time as you drag; release the mouse to finalize. All resize operations are recorded in the undo history.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Inline Text Editing
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Entering Text Edit Mode
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Double-click&lt;/strong&gt; any text-containing element to enter inline editing mode. In this mode:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The element border turns &lt;strong&gt;solid blue&lt;/strong&gt; (distinct from the selection indigo).&lt;/li&gt;
&lt;li&gt;You can type, select, copy, and paste — just like in a word processor.&lt;/li&gt;
&lt;li&gt;Standard cursor positioning, text selection, and clipboard operations are fully supported.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Text Formatting
&lt;/h3&gt;

&lt;p&gt;You can format text in two ways while editing:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Method 1: Toolbar Buttons&lt;/strong&gt;&lt;br&gt;
Select some text, then click a formatting button on the toolbar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;B&lt;/strong&gt; — Bold&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;I&lt;/em&gt;&lt;/strong&gt; — Italic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;U&lt;/strong&gt; — Underline&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;S&lt;/strong&gt; — Strikethrough&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Method 2: Keyboard Shortcuts (while editing text)&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Windows / Linux&lt;/th&gt;
&lt;th&gt;Mac&lt;/th&gt;
&lt;th&gt;Effect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ctrl+B&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Cmd+B&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Bold&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ctrl+I&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Cmd+I&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Italic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ctrl+U&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Cmd+U&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Underline&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Exiting Text Edit Mode
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Click anywhere outside the element.&lt;/li&gt;
&lt;li&gt;Press &lt;strong&gt;Esc&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Changing Font, Size, and Heading Level
&lt;/h3&gt;

&lt;p&gt;Select the element (click once — no need to enter text edit mode), then:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Change Font&lt;/strong&gt; — Click the &lt;strong&gt;Font Family&lt;/strong&gt; dropdown on the toolbar and choose from 13 fonts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Change Font Size&lt;/strong&gt; — Click the &lt;strong&gt;Font Size&lt;/strong&gt; button and pick a size from 10px to 48px.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Change Heading Level&lt;/strong&gt; — Click the &lt;strong&gt;Heading Level&lt;/strong&gt; button to convert the element to Paragraph (P), Heading 1 (H1), Heading 2 (H2), Heading 3 (H3), or Heading 4 (H4).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Changing Text Color &amp;amp; Background Color
&lt;/h3&gt;

&lt;p&gt;Click the &lt;strong&gt;Text Color&lt;/strong&gt; (letter A icon) or &lt;strong&gt;Background Color&lt;/strong&gt; (square icon) button on the toolbar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pick from 40 preset colors for quick selection.&lt;/li&gt;
&lt;li&gt;Use the native color picker for any custom color.&lt;/li&gt;
&lt;li&gt;Type a hex color value (e.g., &lt;code&gt;#4F46E5&lt;/code&gt;) and press Enter.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  7. Format Brush — One-Click Style Copy
&lt;/h2&gt;

&lt;p&gt;The Format Brush is a major productivity feature. It lets you copy styles from one element and apply them to others instantly.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Use
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Select a styled element&lt;/strong&gt; (the source).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Click&lt;/strong&gt; the Format Brush button (paintbrush icon) on the toolbar — the button lights up in light indigo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Click another element&lt;/strong&gt; (the target) — the source element's styles are applied immediately.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Continuous Mode
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Double-click&lt;/strong&gt; the Format Brush button to enter continuous mode:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The button turns deep indigo, indicating continuous mode is active.&lt;/li&gt;
&lt;li&gt;You can click one target element after another — each receives the same styles.&lt;/li&gt;
&lt;li&gt;Click the Format Brush button again, or press &lt;strong&gt;Esc&lt;/strong&gt;, to exit continuous mode.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  8. Inserting New Elements
&lt;/h2&gt;

&lt;p&gt;Click the &lt;strong&gt;Insert...&lt;/strong&gt; button (the &lt;strong&gt;+&lt;/strong&gt; icon) on the toolbar, or &lt;strong&gt;double-click an empty area&lt;/strong&gt; of the page — a &lt;strong&gt;+&lt;/strong&gt; marker appears. Click it to open the Insert Panel.&lt;/p&gt;

&lt;p&gt;Before inserting, make sure you understand the two insertion modes!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F85yfx9x9npprtq1tq1uq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F85yfx9x9npprtq1tq1uq.png" alt=" " width="586" height="234"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Insert Modes
&lt;/h3&gt;

&lt;p&gt;HeyHTML supports two insert modes: &lt;strong&gt;Float&lt;/strong&gt; and &lt;strong&gt;Flow&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Float mode:&lt;/strong&gt; The new element is absolutely positioned. It floats above the page layout without affecting surrounding elements. After inserting, you can drag it anywhere.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuvz9y2xfzuj1l0tqcwfr.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuvz9y2xfzuj1l0tqcwfr.gif" alt=" " width="426" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Flow mode:&lt;/strong&gt; If an element is already selected, the new element is inserted right after it. If nothing is selected, it goes to the top of the page.
In Flow mode, we recommend selecting the element above your desired insertion point first.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc07oyciu5hvsbul6bwlt.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc07oyciu5hvsbul6bwlt.gif" alt=" " width="426" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If you insert via double-clicking the page in Flow mode, the element is inserted at the click position. However, if that position falls outside the page layout, it will be inserted at the end of the page.&lt;/p&gt;

&lt;p&gt;We recommend using the toolbar &lt;strong&gt;Insert...&lt;/strong&gt; button. When using Flow mode, select an element first — this ensures the new element lands exactly where you want it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Inserting a Table
&lt;/h3&gt;

&lt;p&gt;Choosing &lt;strong&gt;Table&lt;/strong&gt; opens a dialog where you can set:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rows&lt;/li&gt;
&lt;li&gt;Columns&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After confirmation, a table with the specified dimensions is inserted immediately. You can then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Drag the table to reposition it&lt;/li&gt;
&lt;li&gt;Double-click any cell to edit its content&lt;/li&gt;
&lt;li&gt;Right-click the table area for row/column operations&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  9. Right-Click Context Menu
&lt;/h2&gt;

&lt;p&gt;In edit mode, &lt;strong&gt;right-clicking&lt;/strong&gt; any element opens a context menu with the following shortcuts:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fou5nnckr198okd9kjs4v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fou5nnckr198okd9kjs4v.png" alt=" " width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Basic Operations
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Menu Item&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;✏️ Edit Text&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Enter inline text editing mode (same as double-click)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;📋 Duplicate Element&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Create a copy of the element right below the original&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Style Operations
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Menu Item&lt;/th&gt;
&lt;th&gt;Shortcut&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;🎨 Copy Style&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+Shift+C&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy all inline styles from the current element&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;🖌️ Paste style&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+Shift+V&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Apply previously copied styles to the selected element(s)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;🧹 Clear style&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Remove all inline CSS styles from the element(s)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Copied styles stay in memory and won't be lost when you select other elements. You can copy a button's style, then select multiple elements and paste.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Layer Operations
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Menu Item&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;⬆️ Bring forward&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Swap the element with its previous sibling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;⬇️ Send backward&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Swap the element with its next sibling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;⏫ Bring to Front&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Move the element to the very front of its parent container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;⏬ Send to Back&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Move the element to the very back of its parent container&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Lock &amp;amp; Group
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Menu Item&lt;/th&gt;
&lt;th&gt;Shortcut&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;🔒 Lock Element&lt;/strong&gt; / &lt;strong&gt;🔓 Unlock Element&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lock prevents moving, resizing, or deleting; unlock restores editability&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;🔗 Group&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+G&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Combine selected elements into one group&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;🔓 Ungroup&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+Shift+G&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Split a group back into individual elements&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Visual indicator for locked elements:&lt;/strong&gt; A small lock icon 🔒 appears at the top-right corner, and the selection outline turns gray.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Delete
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Menu Item&lt;/th&gt;
&lt;th&gt;Shortcut&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;🗑️ Delete element&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Del&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove the selected element(s) — supports batch delete&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  10. Multi-Select &amp;amp; Grouping
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Selecting Multiple Elements
&lt;/h3&gt;

&lt;p&gt;Hold &lt;strong&gt;Ctrl&lt;/strong&gt; (Mac: &lt;strong&gt;Cmd&lt;/strong&gt;) and click additional elements to add them to the current selection.&lt;/p&gt;

&lt;p&gt;When multiple elements are selected:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each selected element shows an indigo outline.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;multi-select toast&lt;/strong&gt; appears at the bottom-right corner, showing the element count and quick-action buttons.&lt;/li&gt;
&lt;li&gt;You can drag, duplicate, delete, lock, or group all selected elements at once.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Multi-Select Toast
&lt;/h3&gt;

&lt;p&gt;The toast panel at the bottom-right shows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The number of selected elements (e.g., "3 elements selected")&lt;/li&gt;
&lt;li&gt;Quick-action buttons: Copy Style, Paste style, Delete, Group, and Deselect&lt;/li&gt;
&lt;li&gt;Available keyboard shortcut hints&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Grouping (Ctrl+G)
&lt;/h3&gt;

&lt;p&gt;Select multiple elements, then press &lt;strong&gt;Ctrl+G&lt;/strong&gt; (Mac: &lt;strong&gt;Cmd+G&lt;/strong&gt;) or choose &lt;strong&gt;Group&lt;/strong&gt; from the context menu:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The elements are wrapped inside a container.&lt;/li&gt;
&lt;li&gt;Clicking any part of the group selects the entire group; dragging the group moves everything together.&lt;/li&gt;
&lt;li&gt;The group's selection outline is a &lt;strong&gt;purple dashed line&lt;/strong&gt; (distinct from the solid outline of individual elements).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Ungrouping (Ctrl+Shift+G)
&lt;/h3&gt;

&lt;p&gt;Select a group, then press &lt;strong&gt;Ctrl+Shift+G&lt;/strong&gt; (Mac: &lt;strong&gt;Cmd+Shift+G&lt;/strong&gt;) or choose &lt;strong&gt;Ungroup&lt;/strong&gt; from the context menu. The group is dissolved back into independent elements.&lt;/p&gt;




&lt;h2&gt;
  
  
  11. Table Editing
&lt;/h2&gt;

&lt;p&gt;HeyHTML provides full table editing capabilities:&lt;/p&gt;

&lt;h3&gt;
  
  
  Selecting Tables and Cells
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Click a cell&lt;/strong&gt; — Selects that individual cell.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Click the table's outer border&lt;/strong&gt; — Selects the entire table. If this is hard to target, press &lt;strong&gt;Esc&lt;/strong&gt; repeatedly to step up to the table level.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Right-click&lt;/strong&gt; — Choose &lt;strong&gt;Select Entire Table&lt;/strong&gt; from the menu.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With a table or cell selected, right-click to see the table operations menu:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgx4o1xtpizmmgdxo2lmw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgx4o1xtpizmmgdxo2lmw.png" alt=" " width="800" height="330"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Table Operations
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Insert Row Above:&lt;/strong&gt; Add a new row above the selected cell's row&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Insert Row Below:&lt;/strong&gt; Add a new row below the selected cell's row&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Insert Column Left:&lt;/strong&gt; Add a new column to the left of the selected cell's column&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Insert Column Right:&lt;/strong&gt; Add a new column to the right of the selected cell's column&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Delete Current Row:&lt;/strong&gt; Remove the row containing the selected cell&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Delete Current Column:&lt;/strong&gt; Remove the column containing the selected cell&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Toggle Table Style:&lt;/strong&gt; Cycle through table style presets&lt;/p&gt;

&lt;h3&gt;
  
  
  Dragging to Resize Tables
&lt;/h3&gt;

&lt;p&gt;Select the entire table, then drag the resize handles to change its dimensions. Column widths adjust proportionally to maintain a balanced layout.&lt;/p&gt;

&lt;h3&gt;
  
  
  Editing Cell Content
&lt;/h3&gt;

&lt;p&gt;Double-click any cell to enter editing mode. You can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Type and modify text content.&lt;/li&gt;
&lt;li&gt;Press &lt;strong&gt;Shift+Enter&lt;/strong&gt; to insert a line break (&lt;code&gt;&amp;lt;br&amp;gt;&lt;/code&gt;) within a cell.&lt;/li&gt;
&lt;li&gt;Use the toolbar to format text inside the cell.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  12. Chart Typography — Data Visualization Layout
&lt;/h2&gt;

&lt;p&gt;Click the &lt;strong&gt;Chart Typography&lt;/strong&gt; button (the grid icon) on the toolbar to open a panel on the right side of the page. This panel is designed for building data visualization and infographic layouts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Preset Templates
&lt;/h3&gt;

&lt;p&gt;Click any template to insert it onto the page:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Template&lt;/th&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;th&gt;Content&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data Card&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Single large metric display&lt;/td&gt;
&lt;td&gt;Large number + label + trend indicator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Metric Row&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Metric with progress bar&lt;/td&gt;
&lt;td&gt;Label + progress bar + percentage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Comparison Data&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Side-by-side value comparison&lt;/td&gt;
&lt;td&gt;Left value + VS label + right value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Table Heading&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Table header section&lt;/td&gt;
&lt;td&gt;Main title + subtitle + update timestamp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Legend&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Color-coded legend list&lt;/td&gt;
&lt;td&gt;Color dots + names + values&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Annotation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Text annotation&lt;/td&gt;
&lt;td&gt;Arrow + description text&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Badge&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Status badges&lt;/td&gt;
&lt;td&gt;4 color-coded status badges&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;KPI Grid&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2×2 metric matrix&lt;/td&gt;
&lt;td&gt;Grid of 4 metric cards&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Fine-Tuning Controls
&lt;/h3&gt;

&lt;p&gt;Below the templates, the panel provides typography controls:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Control&lt;/th&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Font Size slider&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Adjust the font size of numeric text&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Font Weight selector&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Switch between Light / Regular / Medium / Bold&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Color theme&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Switch between preset color schemes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Template Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;All templates include complete CSS styles and are ready to use immediately.&lt;/li&gt;
&lt;li&gt;Template text is double-clickable for editing.&lt;/li&gt;
&lt;li&gt;Template elements can be freely dragged and resized.&lt;/li&gt;
&lt;li&gt;All operations are undoable.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  13. Undo &amp;amp; Redo
&lt;/h2&gt;

&lt;p&gt;HeyHTML has a full history system — nearly every action can be undone and redone.&lt;/p&gt;

&lt;h3&gt;
  
  
  Actions That Support Undo
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Moving elements (both drag and arrow key nudge)&lt;/li&gt;
&lt;li&gt;Resizing elements&lt;/li&gt;
&lt;li&gt;Style changes (colors, fonts, border radius, shadow, etc.)&lt;/li&gt;
&lt;li&gt;Text content edits&lt;/li&gt;
&lt;li&gt;Inserting and deleting elements&lt;/li&gt;
&lt;li&gt;Changing tag types (e.g., P → H1)&lt;/li&gt;
&lt;li&gt;Duplicate, paste, and delete&lt;/li&gt;
&lt;li&gt;Grouping and ungrouping&lt;/li&gt;
&lt;li&gt;Locking and unlocking&lt;/li&gt;
&lt;li&gt;Layer reordering&lt;/li&gt;
&lt;li&gt;Table row/column operations&lt;/li&gt;
&lt;li&gt;Inserting/clearing page break markers&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to Undo &amp;amp; Redo
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Windows / Linux&lt;/th&gt;
&lt;th&gt;Mac&lt;/th&gt;
&lt;th&gt;Note&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Undo&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+Z&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+Z&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Step backward through history&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Redo&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;Ctrl+Y&lt;/code&gt; or &lt;code&gt;Ctrl+Shift+Z&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;Cmd+Y&lt;/code&gt; or &lt;code&gt;Cmd+Shift+Z&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Recover an undone operation&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;You can also click the &lt;strong&gt;Undo&lt;/strong&gt; and &lt;strong&gt;Redo&lt;/strong&gt; buttons at the right end of the toolbar.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; When editing text inline (double-click mode), &lt;code&gt;Ctrl+Z&lt;/code&gt; and &lt;code&gt;Ctrl+Y&lt;/code&gt; are handled by the browser for text-level undo/redo. They do not trigger the editor's element-level undo/redo at that time.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  14. File Operations
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Opening an HTML File
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Method 1: Control Bar Button&lt;/strong&gt;&lt;br&gt;
Click the &lt;strong&gt;Open&lt;/strong&gt; button in the top control bar and select a &lt;code&gt;.html&lt;/code&gt; file from the file picker.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Method 2: Keyboard Shortcut&lt;/strong&gt;&lt;br&gt;
Press &lt;strong&gt;Ctrl+O&lt;/strong&gt; (Mac: &lt;strong&gt;Cmd+O&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;Once opened, the file content loads into the editing area and you can start editing immediately.&lt;/p&gt;

&lt;h3&gt;
  
  
  Saving an HTML File
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Method 1: Control Bar Button&lt;/strong&gt;&lt;br&gt;
Click the &lt;strong&gt;Save As&lt;/strong&gt; button in the top control bar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Method 2: Keyboard Shortcut&lt;/strong&gt;&lt;br&gt;
Press &lt;strong&gt;Ctrl+S&lt;/strong&gt; (Mac: &lt;strong&gt;Cmd+S&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;When saving:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The editor automatically strips all editor-injected attributes and elements (such as &lt;code&gt;data-hve-*&lt;/code&gt; markers, editor UI components, etc.).&lt;/li&gt;
&lt;li&gt;The output is a clean, ready-to-use HTML file.&lt;/li&gt;
&lt;li&gt;The file retains its original name, or defaults to &lt;code&gt;untitled.html&lt;/code&gt; if unnamed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  About Data Privacy &amp;amp; Security
&lt;/h3&gt;

&lt;p&gt;HeyHTML runs entirely in your browser:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No sign-up required&lt;/strong&gt; — Open and start editing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No file uploads to any server&lt;/strong&gt; — All your HTML content and edits stay local.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline support&lt;/strong&gt; — Once the page is loaded, you can disconnect from the internet and keep editing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data never leaves your device&lt;/strong&gt; — Nothing is ever sent to the cloud.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  15. Full Keyboard Shortcuts Reference
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Global Shortcuts (Edit Mode)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Windows / Linux&lt;/th&gt;
&lt;th&gt;Mac&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Undo&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+Z&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+Z&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Redo&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;Ctrl+Y&lt;/code&gt; or &lt;code&gt;Ctrl+Shift+Z&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;Cmd+Y&lt;/code&gt; or &lt;code&gt;Cmd+Shift+Z&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Save As&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+S&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+S&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open File&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+O&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+O&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Duplicate Element&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+D&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+D&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Copy Style&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+Shift+C&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+Shift+C&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Paste style&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+Shift+V&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+Shift+V&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Group&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+G&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+G&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ungroup&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+Shift+G&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+Shift+G&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lock/Unlock&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+L&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Page Sorter&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+Shift+P&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+Shift+P&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Delete element&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;Del&lt;/code&gt; or &lt;code&gt;Backspace&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;Del&lt;/code&gt; or &lt;code&gt;Backspace&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deselect / Select Parent&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Esc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Esc&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nudge 1px&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;↑&lt;/code&gt; &lt;code&gt;↓&lt;/code&gt; &lt;code&gt;←&lt;/code&gt; &lt;code&gt;→&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;↑&lt;/code&gt; &lt;code&gt;↓&lt;/code&gt; &lt;code&gt;←&lt;/code&gt; &lt;code&gt;→&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nudge 10px&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Shift+↑↓←→&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Shift+↑↓←→&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Text Editing Shortcuts (while double-click editing)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Windows / Linux&lt;/th&gt;
&lt;th&gt;Mac&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Bold&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+B&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+B&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Italic&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+I&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+I&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Underline&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+U&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+U&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Line break in cell&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Shift+Enter&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Shift+Enter&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Mouse Operations
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Effect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Click element&lt;/td&gt;
&lt;td&gt;Select element&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ctrl/Cmd + Click&lt;/td&gt;
&lt;td&gt;Add to selection (multi-select)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Double-click text&lt;/td&gt;
&lt;td&gt;Enter inline text editing mode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Right-click element&lt;/td&gt;
&lt;td&gt;Open context menu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Drag selected element&lt;/td&gt;
&lt;td&gt;Move element&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Drag resize handle&lt;/td&gt;
&lt;td&gt;Resize element&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Double-click Format Brush&lt;/td&gt;
&lt;td&gt;Enter continuous format brush mode&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  16. FAQ &amp;amp; Tips
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Q1: How do I select a deeply nested element?
&lt;/h3&gt;

&lt;p&gt;Use the &lt;strong&gt;Esc&lt;/strong&gt; key to step upward through parent elements. Each press moves the selection one level outward. Stop when you reach the desired layer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q2: I moved an element and want to restore its original position. What do I do?
&lt;/h3&gt;

&lt;p&gt;Press &lt;strong&gt;Ctrl+Z&lt;/strong&gt; (Mac: &lt;strong&gt;Cmd+Z&lt;/strong&gt;) to undo the move. All moves, resizes, and style changes are undoable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q3: How do I quickly unify the styling of multiple elements?
&lt;/h3&gt;

&lt;p&gt;Use the &lt;strong&gt;Format Brush&lt;/strong&gt;: select a well-styled element → click the Format Brush button → click each target element. Double-click the Format Brush for continuous mode to batch-apply styles.&lt;/p&gt;

&lt;p&gt;Alternatively, use &lt;strong&gt;Ctrl+Shift+C&lt;/strong&gt; to copy styles → select target element(s) → &lt;strong&gt;Ctrl+Shift+V&lt;/strong&gt; to paste.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q4: I accidentally moved an element to the wrong position and did many other things first. Can I still fix it?
&lt;/h3&gt;

&lt;p&gt;Yes. Press &lt;strong&gt;Ctrl+Z&lt;/strong&gt; (Mac: &lt;strong&gt;Cmd+Z&lt;/strong&gt;) repeatedly to step backward through your edit history (up to 100 steps) until you reach the desired state.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q5: How do I protect an element from being accidentally modified?
&lt;/h3&gt;

&lt;p&gt;Select the element and press &lt;strong&gt;Ctrl+L&lt;/strong&gt; (Mac: &lt;strong&gt;Cmd+L&lt;/strong&gt;) to lock it. A locked element:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cannot be selected, moved, or resized.&lt;/li&gt;
&lt;li&gt;Cannot be deleted.&lt;/li&gt;
&lt;li&gt;Shows a lock icon 🔒 at its top-right corner.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Press &lt;strong&gt;Ctrl+L&lt;/strong&gt; again to unlock.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q6: Will my edits overwrite the original file on my computer?
&lt;/h3&gt;

&lt;p&gt;No. The editor runs in your browser — all edits happen in memory. Only when you click &lt;strong&gt;Save As&lt;/strong&gt; and download the file are changes written to a new file. Your original local file is never automatically overwritten.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q7: Can I use HeyHTML on a phone or tablet?
&lt;/h3&gt;

&lt;p&gt;Yes. HeyHTML is a responsive web application. On touch devices:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tap&lt;/strong&gt; to select (replaces mouse click).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Double-tap&lt;/strong&gt; to enter text editing mode.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Long-press&lt;/strong&gt; to trigger the context menu.&lt;/li&gt;
&lt;li&gt;The toolbar automatically adapts to the screen width.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Q8: Which browsers are supported?
&lt;/h3&gt;

&lt;p&gt;We recommend the latest versions of Chrome, Edge, Firefox, or Safari. All modern browsers work well.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q9: Is the exported HTML code clean?
&lt;/h3&gt;

&lt;p&gt;Yes. When you save, the editor automatically strips all editor-related markers (&lt;code&gt;data-hve-*&lt;/code&gt; attributes, editor-injected styles and elements, &lt;code&gt;contenteditable&lt;/code&gt; attributes, etc.). The exported HTML file contains only your page content.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q10: Can I edit multiple pages at the same time?
&lt;/h3&gt;

&lt;p&gt;The editor works on one document at a time. To edit multiple files simultaneously, open each in a separate browser tab.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pro Tips
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Precise Layout&lt;/strong&gt; — Use drag + alignment guides for rough positioning, then fine-tune with arrow keys (1px) or Shift+arrow (10px) for pixel-perfect placement.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Batch Formatting&lt;/strong&gt; — Use continuous Format Brush mode to quickly unify the appearance of all similar elements (all buttons, all cards) across the page.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Layer Management&lt;/strong&gt; — Use the context menu's &lt;strong&gt;Bring forward&lt;/strong&gt;, &lt;strong&gt;Send backward&lt;/strong&gt;, &lt;strong&gt;Bring to Front&lt;/strong&gt;, and &lt;strong&gt;Send to Back&lt;/strong&gt; commands to control stacking order. Combine with &lt;strong&gt;Group&lt;/strong&gt; for complex layouts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Build Data Visualizations&lt;/strong&gt; — Use the &lt;strong&gt;Chart Typography&lt;/strong&gt; panel to rapidly assemble data presentation pages. Insert a template, edit the text, then fine-tune typography — 10× faster than building from scratch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lock Key Elements&lt;/strong&gt; — After finalizing your layout, lock structural elements (headers, footers) with &lt;strong&gt;Ctrl+L&lt;/strong&gt; to avoid accidentally moving them while editing surrounding content.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Shortcut Quick Reference Card
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Bookmark or print this card for quick access to the most-used shortcuts.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Windows / Linux&lt;/th&gt;
&lt;th&gt;Mac&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Undo&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+Z&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+Z&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Redo&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+Y&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+Y&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Save As&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+S&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+S&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Duplicate Element&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+D&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+D&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Copy Style&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+Shift+C&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+Shift+C&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Paste style&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+Shift+V&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+Shift+V&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Group&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+G&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+G&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ungroup&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+Shift+G&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+Shift+G&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lock/Unlock&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+L&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Delete&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;Del&lt;/code&gt; / &lt;code&gt;Backspace&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Del&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Select Parent / Deselect&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Esc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Esc&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nudge 1px&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;↑&lt;/code&gt; &lt;code&gt;↓&lt;/code&gt; &lt;code&gt;←&lt;/code&gt; &lt;code&gt;→&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;↑&lt;/code&gt; &lt;code&gt;↓&lt;/code&gt; &lt;code&gt;←&lt;/code&gt; &lt;code&gt;→&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nudge 10px&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Shift+↑↓←→&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Shift+↑↓←→&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Edit Text&lt;/td&gt;
&lt;td&gt;Double-click&lt;/td&gt;
&lt;td&gt;Double-click&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-Select&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+Click&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+Click&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Page Sorter&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl+Shift+P&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Cmd+Shift+P&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;&lt;em&gt;This guide applies to &lt;a href="https://heyhtml.com" rel="noopener noreferrer"&gt;HeyHTML&lt;/a&gt; as of May 2026. Features are continuously being updated.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;a href="https://heyhtml.com" rel="noopener noreferrer"&gt;HeyHTML&lt;/a&gt; — free online HTML editing for everyone.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>html</category>
      <category>nocode</category>
      <category>tooling</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>AI Can Write HTML Now — Do Visual Editors Still Matter?</title>
      <dc:creator>XXChen</dc:creator>
      <pubDate>Wed, 06 May 2026 07:22:05 +0000</pubDate>
      <link>https://dev.to/xxchen/ai-can-write-html-now-do-visual-editors-still-matter-2lo8</link>
      <guid>https://dev.to/xxchen/ai-can-write-html-now-do-visual-editors-still-matter-2lo8</guid>
      <description>&lt;p&gt;HTML/CSS is one of the most mature domains in AI code generation. UI code has the entire open Web as its training corpus — every &lt;code&gt;index.html&lt;/code&gt; and &lt;code&gt;style.css&lt;/code&gt; in every public GitHub repository, every page source ever indexed by a crawler, feeds the models. Today, any mainstream model can produce a structurally complete, semantically reasonable HTML page in under a minute. Vercel v0 and Bolt.new have gone so far as to make "generate a full page from a single prompt" their marquee feature — describe what you want, get runnable code back.&lt;/p&gt;

&lt;p&gt;The real impact of this is simple: &lt;strong&gt;anyone who can type can now generate HTML code.&lt;/strong&gt; Writing HTML used to require at least a working understanding of tag structure, the CSS box model, and responsive layout basics — a bar high enough to exclude the vast majority of non-technical users. AI has demolished that bar. Product managers, founders, marketing people, designers — they can all get "something that looks usable" out of an AI.&lt;/p&gt;

&lt;p&gt;And that's exactly where the problems start.&lt;/p&gt;




&lt;h2&gt;
  
  
  AI-Generated Code: 80 Points, Then Stuck
&lt;/h2&gt;

&lt;p&gt;This isn't about bugs. The HTML AI produces usually renders correctly, and the CSS parses fine. The problem is &lt;strong&gt;visual precision&lt;/strong&gt; — the kind of detail deviations you only catch by iterating in the browser, tweaking and looking, over and over.&lt;/p&gt;

&lt;p&gt;The typical issues fall into a few categories:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Spacing micro-adjustments.&lt;/strong&gt; AI-generated CSS spacing values are almost always multiples of 8 — 16px, 24px, 32px — because that's how mainstream design system spacing scales are defined, and those values appear everywhere in the training data. But on a real page, the perceived distance between a heading and body text is influenced by line-height, the font's x-height, even the luminance of the text color. The human eye judges "these two elements are too far apart" based on visual weight, not pixel values. AI has no such judgment — it's just picking the statistically most frequent spacing value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Responsive breakpoints.&lt;/strong&gt; Ask AI for a responsive page and you'll almost certainly get breakpoints at 768px and 480px — because that's what the overwhelming majority of training examples use. But the model has no idea that with &lt;em&gt;this specific&lt;/em&gt; hero image and &lt;em&gt;this specific&lt;/em&gt; headline copy, the title already wraps into the image's face at 680px. This kind of "layout breaks at a specific width" problem only reveals itself when you actually drag the browser window through the range.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Missing interaction states.&lt;/strong&gt; AI writes &lt;code&gt;:hover&lt;/code&gt; color transitions for buttons, but routinely forgets &lt;code&gt;:active&lt;/code&gt; press states. Forms get &lt;code&gt;:focus&lt;/code&gt; blue outlines, but no &lt;code&gt;:focus-visible&lt;/code&gt; differentiation — mouse users see a clean interface; keyboard-navigation users have no idea where their focus is. Skeleton screens, empty-state placeholders, error messages — these "non-happy-path" UI states are underrepresented in training data, and AI is naturally bad at handling them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Design homogenization.&lt;/strong&gt; There's a subtler problem here too. Tailwind CSS creator Adam Wathan half-jokingly apologized in 2025: "I want to formally apologize — five years ago I made every button in Tailwind UI &lt;code&gt;bg-indigo-500&lt;/code&gt;, and now every AI-generated interface on Earth is indigo." Design teams have started calling this the "Slop Trap" — AI makes interface creation so fast and cheap that teams, under deadline pressure, look at "good enough" and ship it. UX review gets skipped. Real users quietly churn away in the friction of rough details. Nobody complains, because no single issue is bad enough to warrant an email — users just don't come back.&lt;/p&gt;

&lt;p&gt;What all these problems share is this: each one, in isolation, is a one-line CSS fix. But in a real AI-generated page, there might be a dozen or more such issues. For a professional frontend developer, it's grunt work — they know what to change, they just have to change each one. For non-technical users, it's a dead end — they can't even see what's wrong, just that something "feels off." So they start blindly tuning prompts, making the page worse through random walks.&lt;/p&gt;

&lt;p&gt;This is the essence of the "80-point dilemma": &lt;strong&gt;AI solves the zero-to-one generation problem, but leaves behind the 80-to-95 refinement problem. And these two problems demand entirely different capability models.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Gap Is Structural, Not Temporary
&lt;/h2&gt;

&lt;p&gt;A common rejoinder: AI is advancing fast. Give it two years and these problems disappear.&lt;/p&gt;

&lt;p&gt;This argument misses one thing: &lt;strong&gt;generating code and perceiving visuals are two fundamentally different task types.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI writing HTML/CSS is text generation — prompt in, predict the next token, emit token by token. Throughout this process, the model has no visual feedback loop. It doesn't "look at" the page it's producing. It's just computing, based on statistical patterns in the training data, "given this prompt, what combination of code tokens is most likely to appear in the training corpus?"&lt;/p&gt;

&lt;p&gt;Page refinement, by contrast, is visual perception. You nudge an element 3 pixels to the left not because a spec document says it should be "24px below the heading," but because you stared at the screen for two seconds, felt it was slightly off, and moved it. That "feels slightly off" judgment involves holistic perception of visual weight, spatial rhythm, color relationships, and information hierarchy. The human brain does this fast — but it's a capability built over millions of years of evolution, not something you can simulate by predicting the next token.&lt;/p&gt;

&lt;p&gt;Concretely, current AI code generation faces three structural constraints:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One: the averaging effect of training data.&lt;/strong&gt; A model generates what is "most like" its training data — the most common, most average patterns. But good design is rarely the average. It requires making specific deviations in specific contexts. AI can give you a "standard three-column card layout," but it doesn't know whether, given &lt;em&gt;this&lt;/em&gt; particular image, &lt;em&gt;this&lt;/em&gt; particular copy, and &lt;em&gt;this&lt;/em&gt; particular brand palette, the card spacing should be 20px or 24px. It can only give you the statistically safest value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Two: the absence of a visual verification loop.&lt;/strong&gt; A huge portion of frontend development time isn't spent writing code — it's spent in browser DevTools, tweaking a margin, glancing at the result, tweaking again, glancing again. This "write → look → adjust" rapid cycle is the core mechanism of visual refinement. AI's code generation pattern is "write → output" — the "look" and "adjust" steps simply don't exist. Current multimodal models can roughly identify what elements are present in a UI screenshot, but they can't tell whether a button's &lt;code&gt;margin-top&lt;/code&gt; is 16px or 20px — and the difference between those two values happens to fall within the human eye's discernible range.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Three: there's no ground truth for aesthetics.&lt;/strong&gt; The same page — one person feels the heading should be 2px larger for impact; another feels it should be 1px smaller for restraint. AI can generate 10 versions, but which one do you pick? That choice &lt;em&gt;is&lt;/em&gt; design judgment. A tool can generate options, but "which is better" depends on specific context, target users, brand character — information that typically lives in a person's head, not in the prompt.&lt;/p&gt;

&lt;p&gt;These three constraints aren't problems of "not enough compute" or "not a big enough model." They're rooted in the architecture of LLMs themselves. No matter how powerful the model becomes, so long as it fundamentally works by learning text distributions and generating text, it will inherently lack visual perception and aesthetic judgment.&lt;/p&gt;




&lt;h2&gt;
  
  
  Redefining the HTML Editor's Role: The Visual Refinement Layer
&lt;/h2&gt;

&lt;p&gt;The analysis above points to a clear conclusion: &lt;strong&gt;AI code generation and human visual refinement solve different problems. Neither replaces the other.&lt;/strong&gt; AI handles zero-to-one scaffolding — turning a blank canvas into "basically looks right." A visual editor handles 80-to-95 pixel-level refinement — turning "good enough" into "just right." The two are upstream and downstream on the same pipeline, not competitors.&lt;/p&gt;

&lt;p&gt;This gives the HTML editor — particularly the WYSIWYG visual editor — a new positioning: the &lt;strong&gt;Visual Refinement Layer.&lt;/strong&gt; Its core task is no longer "build pages from scratch" (that's the zone where AI is most efficient). Instead, it receives AI-generated first drafts and lets humans refine them directly on the rendered result.&lt;/p&gt;

&lt;p&gt;Once this positioning is established, the technical requirements for the editor itself become completely different from previous-generation tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First, the rendered page itself must be the editor.&lt;/strong&gt; The "code on the left, preview on the right" split-pane model — CodePen, JSFiddle — is efficient when you're writing code from scratch, but it's excruciatingly slow when you need to fix 17 small issues. Every margin tweak requires your eyes to jump from code to preview and back, your brain performing a "CSS property → visual change" mapping each time. This context switch is unnoticeable for one fix — it's real friction for a dozen. What visual refinement actually needs is: you see something wrong, you act on it right there — drag a margin, tweak a color, click in to edit text. The result automatically reflects in the underlying code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second, it must export clean code.&lt;/strong&gt; This requirement is more demanding than it sounds. Many visual editors use proprietary internal positioning systems — converting every dragged element into &lt;code&gt;position: absolute&lt;/code&gt; with &lt;code&gt;left/top&lt;/code&gt; coordinates, or injecting a massive JavaScript runtime to support editing capabilities. You start with AI-generated HTML that's reasonably clean, drag a few things around in the editor, and end up with an unmaintainable plate of absolute-positioned spaghetti. The entire "AI generate + human refine" pipeline is worthless.&lt;/p&gt;

&lt;p&gt;This is where a critical technical choice enters: &lt;strong&gt;should drag operations use CSS transform, or change position?&lt;/strong&gt; Most visual tools use the latter — intuitively, "dragging an element from A to B means changing its coordinates." But &lt;code&gt;position: absolute&lt;/code&gt; pulls the element out of document flow. Flexbox and Grid layout rules stop applying to it. Responsive layout collapses with it.&lt;/p&gt;

&lt;p&gt;Using &lt;code&gt;transform: translate()&lt;/code&gt; for dragging is a different approach: &lt;code&gt;transform&lt;/code&gt; only affects an element's visual rendering position — it does not change its role in document flow. Flexbox still manages it. Grid still calculates its track position. Responsive breakpoints still operate normally. Dragging, semantically, shifts from "reflowing the layout" to "visual micro-adjustment" — which is exactly the mental model you need for that last 20% of refinement after AI generates the code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third, it should be zero friction.&lt;/strong&gt; No account registration. No software installation. No prerequisite study of Flexbox, Grid, and stacking context concepts. Open a browser, drag an AI-generated HTML file in, operate directly on the rendered page, export when done. That's the only way to catch the new wave of users unleashed by AI code generation — people who can generate HTML but can't debug it, who can see "something's not quite right" but don't know what to change in the CSS.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why the Window of Opportunity Is Now
&lt;/h2&gt;

&lt;p&gt;Through late 2025, a notable trend emerged: &lt;strong&gt;"vibe coding" is receding.&lt;/strong&gt; Traffic to several high-profile AI coding platforms dropped significantly from their peaks. Industry observers noted that user churn across these platforms was remarkably high — people would try them once, generate impressive-looking output, then hit a wall the moment they needed to modify anything real.&lt;/p&gt;

&lt;p&gt;"Generate a complete app from a single sentence" was once the narrative investors loved most. But real-world usage data revealed a harsh truth: one-click-generated things can't be meaningfully modified. When non-technical users get AI output and face any need for changes — and real projects always need changes — they're stuck.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI gave them a master key that opens the door, but once inside, they discovered they had no tools to renovate.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the real opportunity window for visual HTML editors. Not competing with AI over "who builds the page" — that's last era's question. The real job is to handle the link AI can't: making AI-generated HTML actually &lt;em&gt;usable&lt;/em&gt; by the people who generated it.&lt;/p&gt;

&lt;p&gt;Tools are already moving in this direction. &lt;a href="//heyhtml.com"&gt;HeyHTML&lt;/a&gt;, for example, is a browser-based visual HTML editor whose model is "the browser is the editor" — open a page, drag to reposition elements, double-click to edit text, adjust style properties directly. No account required, and it doesn't inject any editor runtime code into exports. It's not a tool for developers building pages from scratch — it's a tool for people who &lt;em&gt;already have an HTML file&lt;/em&gt; and need to visually refine it. That happens to be the most glaring missing link in the AI code generation pipeline today.&lt;/p&gt;




&lt;h2&gt;
  
  
  Closing
&lt;/h2&gt;

&lt;p&gt;The 2025 AI code generation wave ultimately taught us one thing: &lt;strong&gt;generating code is getting cheaper, but "the right code" is getting more expensive.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When anyone can get an 80-point HTML page from AI in under a minute, that remaining 20 points of visual refinement — tuning spacing until it breathes right, adjusting colors until they're compliant &lt;em&gt;and&lt;/em&gt; harmonious, dialing responsive breakpoints until every width works — becomes the most scarce and differentiating capability in the room.&lt;/p&gt;

&lt;p&gt;HTML visual editors aren't going away in the AI era. They're just finding their new place: not AI's opponent, but AI's counterpart. One handles speed; the other handles precision. One handles going from nothing to something; the other handles going from something to right.&lt;/p&gt;

&lt;p&gt;And that "from something to right" process, in the end, doesn't depend on more compute or bigger models. It depends on human eyes, human hands, and human judgment.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
