Back to Website
Show / Hide Table of Contents

Styling

  • Last updated on September 22, 2025
  • •
  • 3 minutes to read

The Handy Editor uses CSS variables to customize its appearance and integrate seamlessly with your product's design system. These variables define a "theme" for the editor, allowing you to override semantic elements such as colors, typography, and layout.

This article describes how to customize the Handy Editor using CSS variables, including best practices and examples.

Customizing the Editor with CSS Variables

To override the editor's default styles, add a <style> tag to your HTML or link an external stylesheet using <link>. Define your CSS variables in the :root selector.

:root {
  /* Colors */
  --he-color-primary: #2450ff; /* Brand color for buttons, grips, etc. */
  --he-color-primary-hover: #1d4ed8; /* Brand color on hover */
  --he-color-primary-active: #1e40af; /* Brand color when active */
  --he-color-primary-contrast: #ffffff; /* Contrast color for primary elements (e.g., button text) */
  --he-color-warning: #b45309; /* Warnings */
  --he-color-danger: #dc2626; /* Errors */
  --he-color-background: #ffffff; /* Background color for panels and elements */
  --he-color-shadow: #00000029; /* Shadow color */

  /* Typography */
  --he-font-family: Inter; /* Font for all text elements */

  /* Buttons */
  --he-buttons-border-radius: 24px; /* Border radius for buttons */

  /* Headings */
  --he-heading-1-font-size: 32px;
  --he-heading-1-font-weight: 600;
  --he-heading-1-line-height: 40px;

  /* Panels, Dialogs*/
  --he-heading-2-font-size: 18px;
  --he-heading-2-font-weight: 600;
  --he-heading-2-line-height: 24px;

  /* Drop-down menus in the properties panel */
  --he-heading-3-font-size: 16px;
  --he-heading-3-font-weight: 600;
  --he-heading-3-line-height: 24px;

  /* Body Text */
  --he-body-font-size: 14px;
  --he-body-line-height: 20px;
  --he-body-font-weight-regular: 400;
  --he-body-font-weight-medium: 500;
  --he-body-font-weight-bold: 600;

  /* Captions, Labels */
  --he-caption-font-size: 12px;
  --he-caption-line-height: 16px;
  --he-caption-font-weight-regular: 400;
  --he-caption-font-weight-medium: 500;

  /* Viewer Selection */
  --he-viewer-items-selection-border-width: 2px;
  --he-viewer-items-selection-grips-size: 12px;
  --he-viewer-items-selection-grips-background: #ffffff;
  --he-viewer-items-selection-rotate-grip-size: 24px;

  /* Interactive Zones */
  --he-viewer-interactive-zone-border-width: 2px;
  --he-viewer-interactive-zone-label-font-size: 11px;
  --he-viewer-interactive-zone-label-color: #ffffff;
  --he-viewer-interactive-zone-color-active: #00b400;
  --he-viewer-interactive-zone-color-hover: #0000ff;
}
Note

If a variable is not defined, the editor will use its default value. For Design Atoms Viewer, ensure variables are defined before the editor initializes. For best results, embed CSS variables directly in the <style> tag.

Available CSS Variables

Colors

Variable Description Default Value
--he-color-primary Brand color for buttons, highlights, etc. #2450ff
--he-color-primary-hover Brand color on hover #1d4ed8
--he-color-primary-active Brand color when active #1e40af
--he-color-primary-contrast Contrast color for primary elements #ffffff
--he-color-warning Warning color #b45309
--he-color-danger Error color #dc2626
--he-color-background Background color for panels and elements #ffffff
--he-color-shadow Shadow color #00000029

Typography

Variable Description Default Value
--he-font-family Font for all text elements Inter
--he-heading-1-font-size Font size for H1 32px
--he-heading-1-font-weight Font weight for H1 600
--he-heading-1-line-height Line height for H1 40px
--he-body-font-size Font size for body text 14px
--he-body-line-height Line height for body text 20px

Buttons

Variable Description Default Value
--he-buttons-border-radius Border radius for buttons 24px

Viewer Selection

Variable Description Default Value
--he-viewer-items-selection-border-width Border width for selected items 2px
--he-viewer-items-selection-grips-size Size of selection grips 12px

Interactive Zones

Variable Description Default Value
--he-viewer-interactive-zone-border-width Border width for interactive zones 2px
--he-viewer-interactive-zone-label-font-size Font size for zone labels 11px

How to Use CSS Variables

1. Embed in HTML

Add CSS variables directly in a <style> tag:

<style>
  :root {
    --he-color-primary: #3b82f6;
    --he-font-family: "Segoe UI";
  }
</style>

2. External CSS File

Link an external stylesheet:

<link rel="stylesheet" href="path/to/editor-theme.css">

3. Adaptive Design

Use media queries to adjust variables for different screen sizes:

@media (max-width: 768px) {
  :root {
    --he-heading-1-font-size: 24px;
  }
}

4. Dynamic Updates with JavaScript

Modify variables at runtime:

document.documentElement.style.setProperty(
  '--he-color-primary',
  '#10b981'
);

Best Practices

  • Define variables before editor initialization to avoid default fallbacks.
  • Use semantic names for variables (e.g., --he-color-primary instead of --color-blue).
  • Test responsive behavior with media queries.
  • Avoid overriding internal class names unless necessary, as they may change in future updates.

You can also add custom HTML code with using Slots. This will not only fit the appearance, but also change the functionality of the editor.

Was this page helpful?
Thanks for your feedback!
Back to top Copyright © 2001–2025 Aurigma, Inc. All rights reserved.
Loading...
    Thank for your vote
    Your opinion is important to us. To provide details, send feedback.
    Send feedback