Xiaodong Wang
Visual Web Editor / Design Engineering / Case Study 01

Aura Canvas

Making imported HTML easier to understand, edit, preview, and maintain.

Aura Canvas is a browser-based visual editing system designed to bridge the gap between AI-generated HTML and the ongoing work of maintaining a real website. It replaces unmanageable spaghetti markup with structured visual modules without stripping away native code fidelity.

Role Product Definition, UX/UI, System Architecture, Front-End
Platform Browser Application (Desktop First, Web Standards)
Technology Stack JavaScript (ES6+), DOMParser, IndexedDB, CSS Variables
Status & Intellectual Property Independent Product · Software Copyright Registered
aura-canvas.local/workspace/project-alpha-landing
devices terminal
Aura Canvas - Main Layout: 3 Columns (Tree, Canvas, Inspector)
Aura Canvas v1.4.2 Core Engine · Native DOM Bridge Active
01 · Strategic Context

Generating a page is easy. Maintaining it is not.

Generative AI tools and automated page builders have made HTML generation nearly frictionless. In seconds, users can produce sprawling single-page sites containing hundreds of nested elements, inline styles, and bespoke class declarations.

However, this velocity creates immediate downstream cognitive friction: the produced markup is inherently opaque. The second a designer or front-end developer needs to adjust typographic spacing, restyle grid layouts across viewports, or connect dynamic content, they are forced into either an incomprehensible raw code editor or a rigid, proprietary site builder that breaks standard web output.

Aura Canvas was initiated to construct a transparent intermediary layer: parsing raw imported HTML directly into meaningful visual regions, modular sections, and design tokens while keeping the source code fully transparent, standard-compliant, and exportable.

target Product Goal

Turn an imported HTML page into a manageable visual structure while preserving the ability to preview, configure, and export the underlying result.

visibility
01 · Understand

Break opaque HTML trees into coherent visual regions without requiring manual code inspection.

tune
02 · Edit

Expose the spatial decisions users iterate on repeatedly - grids, spacing, typography, colors - as direct controls.

shield
03 · Preserve

Output clean, standard HTML and CSS with zero lock-in, vendor dependencies, or hidden runtimes.

02 · System Architecture

The 7-Stage End-to-End Pipeline

How Aura Canvas parses raw HTML, establishes visual section bounds, isolates styling environments, and reconstructs standard production-ready code.

01 file_upload

HTML Import

Raw code ingestion via clipboard, file upload, or URL.

Input
02 account_tree

DOM Parsing

Native DOMParser analyzes tree & isolates main landmarks.

AST Engine
03 layers

Section Mgmt

Boundaries mapped to modular, re-orderable visual slices.

Structure
04 grid_4x4

Grid & Styles

Direct manipulation of columns, gutters, and tokens.

Configuration
05 dataset

Data Binding

Linking dynamic JSON arrays to repeated DOM cards.

State Mapping
06 devices

Live Preview

Multi-device iframe sandbox with zero CSS leakage.

Isolation
07 download

Standard Export

Zero-dependency bundle with semantic markup & clean CSS.

Clean Output
03 · Architectural Decisions

Three Core Design Choice Points

Every complex tool requires difficult tradeoffs. These three pivotal forks defined Aura Canvas's conceptual model and user experience.

Choice Point 01

Edit raw code - or create a structured visual layer?

Tradeoff: Flexibility vs. Comprehension

The Situation: Conventional code editors preserve 100% of HTML/CSS flexibility, but they provide zero relief from the cognitive load of navigating 1,200 lines of generated code. Conversely, visual website builders turn everything into proprietary canvas nodes, destroying semantic HTML and locking the author in.

Evaluated Options:
Option A: Raw Code Editor with Syntax Highlighting. Too high barrier; failed the core goal of intuitive maintenance.
Option B: Convert HTML to Proprietary JSON Schema. Clean UI, but lossy export. Broke native tags and custom CSS scripts.
Option C (Selected): Parse Existing HTML into Visual Structure without Mutating Source AST. Extract sections and tokens dynamically, allow visual edits, write cleanly back to DOM nodes.
Design Principle 01

"Reduce complexity without removing control."

Raw Generated HTML
Aura Structured Sections
<div class="sc-10x9f flex-col relative w-full pt-12 pb-24 mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 bg-[#0b132b] overflow-hidden">
  <div class="grid grid-cols-1 md:grid-cols-12 gap-8 items-center">
    <div class="md:col-span-7 flex flex-col gap-4">
      <span style="font-size:12px;letter-spacing:0.1em;color:#48cae4">NEW</span>
      <h1 class="font-bold text-4xl leading-tight">...</h1>
      <p class="text-gray-300 text-lg">...</p>
    </div>
    <div class="md:col-span-5 relative">
      <img src="..." />
    </div>
  </div>
</div>
Hero Section 12-col
Title + Copy (7 Cols)
Media Frame (5 Cols)
Feature Bento 3 Cards
Global Footer
Choice Point 02

Maximum freedom - or a controlled editing system?

Tradeoff: Freeform Canvas vs. Structured Tokens

The Situation: Freeform pixel drag-and-drop tools (absolute positioning) give the illusion of speed, but they generate unmaintainable, brittle code that collapses on diverse screen sizes. Conversely, exposing all 400+ native CSS properties in the sidebar paralyzes the user with micro-decisions.

The Decision: Cluster controls around the primary structural anchors of responsive web layouts: Section boundaries, Grid track definitions, and Semantic Style tokens. Keep fine-grained styling accessible via secondary detail drawers without cluttering the primary workflow.

Design Principle 02

"Expose the decisions users make repeatedly; keep exceptional complexity available but secondary."

layers Section
Reorder Drag ↕
Tag <section>
Padding 64px / 4rem
grid_on Grid
Columns 12 Tracks
Gutters 24px
Break Wrap 768px
palette Style
Type Scale Manrope
Color Token Primary Deep
Radius 8px Base

Controlled 3-tier parameter taxonomy preventing layout breakage.

Choice Point 03

Depend on a backend - or begin with a local-first product?

Tradeoff: Server Infrastructure vs. Frictionless Onboarding

The Situation: Standard industry instincts dictate setting up authentication databases, cloud sync servers, and hosting pipelines before releasing an editor. However, this introduces network latency, subscription paywalls, and deep privacy concerns for engineers pasting sensitive proprietary code.

The Decision: Build Aura Canvas strictly as a local-first browser client using browser native storage (IndexedDB for parsed AST snapshots and localStorage for session preferences). The entire loop - from paste to parse, edit, and export - happens 100% on the client machine in sub-millisecond response times with zero network round trips.

Design Principle 03

"Validate the core product loop before expanding the platform."

Local Client Sandbox Topology ZERO SERVER OVERHEAD
terminal DOM In-Memory Tree
0.4ms parse
storage IndexedDB Snapshot Store
50MB max local
security No Cloud Telemetry or Code Leaks
100% Air-gapped

Enables immediate testing without account signups, database hosting costs, or third-party compliance hurdles.

04 · Product Experience Walkthrough

From imported page to editable system.

A step-by-step walkthrough of how a user navigates Aura Canvas from initial opaque HTML ingestion to clean production delivery.

STEP 01 input

Import HTML

Paste raw code or drag in `.html` files. The input sanitizer strips harmful scripts while retaining layout classes, inline SVG icons, and inline styles.

Aura Canvas - Import HTML
STEP 02 device_hub

Review Structure

DOMParser identifies root landmarks (`<header>`, `<main>`, `<section>`, `<footer>`), presenting a clean semantic tree instead of 1,000 raw lines.

Aura Canvas - Review Structure
STEP 03 drag_indicator

Manage Sections

Rearrange page blocks effortlessly via drag-and-drop handles. Duplicate modules, temporarily hide drafts, or isolate sections for targeted editing.

Aura Canvas - Manage Sections
STEP 04 tune

Configure Grid & Styles

Manipulate column proportions, vertical alignment, typography scales, and unified color palettes directly using tactile sliders and token pills.

Aura Canvas - Configure Grid & Styles
STEP 05 link

Connect Content or Data

Bind JSON fields to visual elements. Repetitive items (team grids, product catalogs) update synchronously from simple key-value inputs without code editing.

Aura Canvas - Connect Content or Data
STEP 06 ios_share

Preview & Export

Toggle live mobile, tablet, and wide desktop viewports. Download standard, zero-dependency HTML/CSS bundles with clean class structures and no proprietary code.

Aura Canvas - Preview & Export
05 · Design System Architecture

An editor needs a consistent language of states.

Complex design tools fail when users lose spatial orientation. We formalized six fundamental UI states with rigorous visual boundaries to guarantee predictable interaction feedback.

Navigation & Project States State 01

Provides continuous orientation across project switching, unsaved memory status, and IndexedDB sync feedback with color-coded badges.

Project Alfa SYNCED
Marketing Beta 3 UNSAVED
Section List & Selection State 02

Active vs. hover vs. multiselect states use distinct teal tints (`#176B73`) and hairline rules rather than heavy shadows to maintain calm scanning.

[ACTIVE] Hero Section check
[HOVER] Testimonial Grid drag_handle
Grid Config Controls State 03

Visual representations of grid tracks allow designers to split, join, or nudge column spans with instantaneous CSS preview updates.

8 cols
4 cols
Style & Token Controls State 04

Typographic and color inputs show immediate global inheritance. Editing a root CSS variable updates all linked components synchronously.

Primary Secondary Muted
Multi-Device Preview Modes State 05

Iframe sandboxes test 320px, 768px, and 1200px breakpoints with simulated zoom ratios and media query triggers.

smartphone tablet laptop
Export & Payload States State 06

Provides clean diff generation, code minification toggles, and one-click clipboard copying or direct `.zip` distribution.

Clean HTML + CSS Payload 14.2 KB
06 · Design Engineering

Design decisions tested through implementation.

Building Aura Canvas as a working software product - not merely static Figma prototypes - immediately challenged initial UX hypotheses and uncovered critical browser runtime constraints.

The foremost challenge was CSS cascading leakage: imported third-party CSS files regularly broke the host editor's navigation and panel layouts. This necessitated constructing a strict shadow DOM iframe sandboxing strategy where user styles are parsed and encapsulated while allowing real-time bidirectional messaging between host canvas controls and client markup.

Additionally, the browser's native DOMParser proved exceptionally resilient at recovering malformed HTML tags generated by AI models. Implementing this in vanilla JavaScript eliminated heavy framework runtime overhead, preserving 60fps rendering even when parsing complex landing pages with dozens of nested SVG vectors.

JavaScript (ES6+) Native DOMParser IndexedDB Persistence CSS Custom Properties Iframe Sandboxing Zero Build Runtimes
Delivered Outcome
100% Working Client Application

Successfully tested against 40+ AI-generated HTML landing pages without data loss or layout destruction.

verified Software Copyright Registered
speed Zero-latency local-first execution
lock_open 100% standard web output
07 · Retrospective

What I would explore next.

Key learnings from the initial release and technical avenues for the next evolutionary iteration of the Aura Canvas architecture.

groups

Formal Usability Testing with Non-Technical Designers

While front-end developers immediately grasped the direct DOM tree and CSS grid controls, non-coding product designers experienced friction with nomenclature like "CSS Grid Tracks" versus simple "Column Counts". Future work should evaluate progressive disclosure layers tailored to user skill profiles.

toggle_on

Universal vs. Component-Specific Controls

Striking the right balance between generalized properties (margin, padding, background) and specialized component controls (video embeds, interactive form inputs) remains an active design question. A modular plugin inspector is planned for v2.

history

Time-Travel Versioning via CRDTs

Currently, history snapshots use full IndexedDB states. Transitioning to Conflict-Free Replicated Data Types (CRDTs) like Yjs would unlock seamless multi-tab collaboration, branching iterations, and character-level undo/redo histories.

psychology

Fault-Tolerant Heuristics for Unsemantic Markup

When imported HTML completely lacks semantic tags and relies exclusively on generic nested `<div>` structures, automated section detection can misjudge boundaries. Developing lightweight visual clustering heuristics based on computed DOM heights will significantly improve auto-sectioning fidelity.