Changelog
This page tracks notable changes, new features, and fixes in Sheet Architect. Entries are listed newest first.
April 11, 2026
Style Presets
- You can now create reusable style presets — named collections of CSS properties that apply as classes to any element. Changes to a preset automatically update every element that uses it. Style Presets
- Style presets applied to elements inside repeating sections now correctly propagate to all rows, not just the first.
Roll Template Editor
- Logic blocks (If, Roll Total, Was Crit, etc.) now display a small icon badge on the canvas showing their type. Hover the badge to see the full condition. Template Layout
- Empty logic blocks now show a visible placeholder with a drop target, making them easier to find and populate.
Infrastructure
- Improved error tracking and reporting for faster issue resolution.
- Added a global error page for graceful handling of unexpected errors.
April 5, 2026
Saving & Undo
- Fixed an issue where the editor could trigger unnecessary saves when no actual changes were made, reducing server load and preventing version history clutter.
- Drag-and-drop moves, property renames, and roll template scenario edits are now properly tracked by undo/redo, so Ctrl+Z correctly reverses these actions.
- Moving a component via drag-and-drop is now recorded as a single undo step instead of multiple steps.
- Sheets using templates now correctly apply layout changes to the right section of the document.
April 4, 2026
Exporting
- Collapsible sections now export correctly to Roll20. Previously, the collapse toggle and header structure were missing from exported sheets, making the section non-functional. Collapsible sections also now work correctly inside repeating sections.
Layout Editor
- Collapsible sections now have a new internal structure for better Roll20 compatibility. Existing sheets with collapsible sections will be automatically migrated when opened — no action is needed on your part.
- When creating a collapsible section, you can now specify a custom attribute name for the toggle control. This is useful when you want to reference the collapse state elsewhere or need a predictable name. If left blank, a name is derived from the section title automatically.
April 3, 2026
Exporting
- Repeating sections now export with the correct Roll20 class name format. Previously, exported repeating sections could be missing the required
repeating_prefix, causing Roll20 to not recognize them as repeating sections. - The export validation step now checks your CSS for features that Roll20 does not support, such as
@import,@font-face,position: fixed, and other incompatible patterns. See Validation — Unsupported CSS Features. - Translation file export now correctly picks up display text from component labels, fixing cases where translation keys were exported with empty default values.
- The export dialog no longer briefly flashes old validation results when reopened.
Logic Editor
- Fixed an issue where Batch Processor nodes in repeating mode did not correctly compute running totals or per-row results in exported sheets. Previously, output values could return stale data instead of the computed result from the logic graph.
- Circular dependencies between nodes are now visually flagged with an error indicator on the affected node, instead of failing silently.
- Connecting edges to nodes with dynamic inputs (such as Add or Multiply) now positions the connection at the correct handle location.
- Clicking a button in the layout canvas now triggers logic evaluation, matching the behavior of clicking the trigger in the Logic Editor.
- In Batch Processor manual mode, you can now set which attribute each output slot writes to for the selected row directly in the Results panel.
Roll Templates
- Prebuilt layout components (grids, columns, etc.) now display correctly in the roll template editor, roll output previews, and exported Roll20 sheets.
- Design token CSS variables are now applied in roll template previews.
Layout Editor
- Fixed a crash that prevented sheets from loading when opening the editor or dropping components onto the canvas.
- Fixed an issue where the Sheet Settings modal could not be interacted with after dragging it.
- Undo and redo operations are now more resilient and no longer crash on complex layout changes.
- Selecting components like labels now correctly shows the selection outline in the canvas.
- The Property Inspector once again shows the Attribute Name field prominently at the top when a form element is selected.
- Cancelling a custom component drop no longer leaves a ghost element in the layout.
Style Editor
- The CSS format button now produces consistent, stable output regardless of how many times it is pressed.
Stability
- Comprehensive internal restructuring for improved maintainability and performance. No user-facing behavior changes from the restructuring itself.
March 30, 2026
Bug Fixes
- Fixed an issue where the rename dialog for repeating sections appeared empty, preventing sections from being renamed. The dialog now correctly shows the current section name and allows editing it.
- Fixed incorrect socket positions on If / Else logic nodes.
March 29, 2026 — Multi-Case If/Else, Group Duplication, and Stability Fixes
If / Else Node Overhaul
The If / Else node has been completely redesigned as a multi-case conditional switch.
- Multiple cases — Add as many condition branches as you need, not just one. Each case has its own "When" condition input and one or more "Then" value slots.
- First-match evaluation — Cases are evaluated top to bottom. The first condition that is true wins.
- Dynamic slots — Each case (and the Default section) supports multiple value slots. Connect to the last empty slot and a new one appears automatically. Disconnect and trailing empties collapse.
- Case management — Reorder cases with up/down arrows, remove cases with the x button. All connections are automatically updated when you reorder or remove a case.
- Collapse — When you have 4 or more cases, a collapse toggle hides the case details to save canvas space.
- Match highlighting — The matched case is highlighted green in the editor; unmatched cases are dimmed so you can see which path your data is taking.
- Inactive case filtering — Outputs from unmatched cases are automatically ignored by downstream nodes, including Batch Processors. You can safely connect outputs from multiple cases to the same Add, Multiply, or other multi-input node — only the winning case's values flow through.
Existing If / Else nodes are automatically upgraded to the new format when you open your sheet.
Repeating Section Rename
Renaming a repeating section now automatically updates everything that references it:
- Layout fields — Input and button names inside the section are updated to use the new name.
- Attributes — All attributes belonging to the section (templates and row data) are renamed.
- Logic nodes — Batch Processor nodes referencing the old section name are updated to the new name.
Previously, renaming a section required manually fixing names across the Layout Editor, attribute list, and Logic Editor. Now it's a single rename in the Component Details dialog.
Smarter Attribute Inputs
Attribute editing throughout the Logic Editor now uses type-aware inputs that match the field type defined in your layout:
- Checkboxes, radio buttons, and select dropdowns render as dropdown menus with their valid options pre-populated from the layout.
- Number fields show number inputs.
- Text fields show text inputs (unchanged).
This applies to Attribute nodes, Batch Processor row tables (both manual and repeating mode), and the repeating section panel.
Logic Editor
- Group duplication — You can now duplicate Batch Processor, Roll Group, and Group nodes. The duplicate includes all child nodes and connections inside the group, with the label set to "(Copy)."
- Better container sizing — Batch and Roll container nodes now shrink to fit their contents when you rearrange nodes inside them.
- Improved row table — The repeating section row table is now scrollable with sticky column headers.
Repeating Section Fixes
- Sections with fields called "name" or "type" are now correctly recognized as repeating sections.
- Checkboxes and radio buttons inside repeating sections now correctly default to their unchecked value instead of being blank.
- Attribute names with a stray "attr_" prefix are now cleaned up automatically when you open the sheet.
- Fixed an issue where typed inputs in repeating sections could have their attribute names incorrectly double-prefixed.
- Changing a repeating section value in the Logic Editor now updates the Layout Editor in real time, and vice versa.
Stability
- Fixed an issue where saving could briefly cause the Logic Editor to reload from stale data.
- Fixed a batch evaluation issue where internal loops could occur when a node referenced itself inside a batch group.
- Template row values now sync to the Layout Editor during batch evaluation.
Documentation
- Repeating Sections now have their own dedicated docs page, with coverage of the rename feature.
- If / Else node docs rewritten to cover multi-case conditions, dynamic slots, case management, and inactive case filtering.
- Changelog section added to the docs site (you're reading it!).