Vanilla Breeze

change-set

Interactive change tracking group that wraps related ins and del elements with toggle controls for tracking, final, and original views.

Overview

The <change-set> element groups related <ins> and <del> elements into a reviewable unit. Users can toggle between three views: tracked changes (both visible), final text (only insertions), or original text (only deletions).

The view states are CSS-only via the view attribute. JavaScript adds interactive toggle buttons.

View States

StateWhat's VisibleHow to Set
Tracking (default) Both <ins> and <del> No view attribute
Final Only <ins> content view="final"
Original Only <del> content view="original"

Static View (No JS)

Set view directly in markup for server-rendered or static pages. No JavaScript is needed for the visual states.

Multiple Changes

A single <change-set> can group changes across multiple sections. All <ins> and <del> descendants are toggled together.

Attributes

AttributeValuesDefaultDescription
view final, original Omitted (tracking) Controls which content is visible
datetime ISO 8601 date — Date of the change set
author String — Author of the changes

JavaScript API

Events

EventDetailDescription
change-set:view { view: string } Fired when the view mode changes. Bubbles.

Accessibility

  • Toggle buttons use aria-pressed to indicate the active view
  • The controls <nav> has aria-label="Change view controls"
  • In final and original views, hidden content uses display: none — it is removed from both the visual and accessibility trees
  • Without JavaScript, all content is visible in tracking view
↑