OGraf Studio 0.09
OGraf Studio 0.09 makes dense broadcast-authoring work faster and clearer. It expands Timeline and layer-order editing, improves project/history reliability, adds a deliberate text-distortion mode, and aligns the application chrome and configuration panes with the Zero Density/RealityHub visual system. These editor changes do not alter authored canvas pixels unless the author explicitly uses the new content properties.
Timeline editing
- Added Ctrl/Cmd additive selection across layer/property timeline rows and same-row Shift ranges. Dragging or arrow-nudging any selected key moves the complete selection atomically, preserves spacing, and stops at composition bounds or unselected keys on every affected track.
- Set lifecycle, layer, and property key diamonds to 11 px. Loop badges and selection/focus outlines scale with them without changing frame alignment or Timeline row heights.
- Made the divider between Timeline layer/property names and keyframe tracks resizable. Dragging, keyboard arrows, Home/End, and double-click reset are supported; the width persists locally and always reserves usable track space.
- Made Timeline Group names reliably editable by double-click, with full-name selection, F2 keyboard access, and event handling that no longer lets the second click retrigger group selection.
- Hidden selected-layer outlines and Moveable controls during Timeline playback. Selection is preserved and its overlay returns immediately when playback pauses or stops.
- Upgraded normal Timeline Play to sample every compiled local loop together, including scrolling tickers and loops that continue while parked at a Step. Removed the redundant top Edit/OGraf Preview switch and separate main-canvas runtime mode; Preview & Export remains available for detailed playout actions and certification.
Layer ordering and reliability
- Added an editable Z order field to Properties. It maps directly to canonical layer paint
order, with
1at the back and the current layer count at the front; values are rounded and clamped to the available range. - Added standard Send to Back, Send Backward, Bring Forward, and Bring to Front toolbar actions. They support multi-selection, retain internal order, and disable at the applicable boundary.
- Added Ctrl/Cmd+A and Edit -> Select all layers for selecting the complete active composition instead of webpage text. Hidden, locked, and guide layers are included; editable fields retain native Select All behavior.
- Browser Undo now reconciles the active composition and keyframe when restoring a snapshot from a different bridge-synchronized project, preventing stale composition IDs from crashing the editor.
Docking and element authoring
- Changed Window-menu reopening so a closed pane first returns as a centered floating window rather than docking automatically to its former/default edge. Multiple reopened panes cascade slightly and remain fully dockable afterward.
- Added Squeeze beside the existing text sizing modes. Resizing a squeezed text layer scales glyph width and height independently to fill the box, enabling intentional condensed, expanded, tall, or flattened text in the editor, capture path, and exported runtime.
- Changed ordinary Rectangle, Ellipse, Text, Image, Path, Image Sequence, and Lottie creation to alpha 1 at Start, Step, and End so new objects are immediately visible. Recipe motion retains its explicit hidden entrance and exit states.
- Replaced text-only add-element buttons with a consistent icon-only SVG set. Accessible names, native titles, immediate custom tooltips, and clearer hover/focus feedback remain available.
Zero Density visual system
- Centralized the visual tokens sampled from the live RealityHub interface: Nunito, 14 px/13 px
hierarchy, charcoal surfaces,
#dadada/#aaaaaatext,#399ed4active tabs,#60d0fffocus, teal actions, 1 px separators, and flat 0/2 px geometry. - Bundled OFL-1.1 Nunito 400 Latin, Latin Extended, and Vietnamese subsets locally through
@fontsource/nunito; Studio does not depend on a running RealityHub server or external font CDN. - Applied the shared contract to application/header surfaces, docking tabs/groups/floating panes, menus, panels, scrollbars, forms, selections, resources, layer rows, and element/timeline toolbars. Authored graphic typography, canvas pixels, capture, certification, and export remain independent.
Configuration tables and numeric scrubbing
- Reworked Properties into RealityHub-style configuration tables with full-width section bars, stable 42% label / 58% editor columns, 1 px row/column separators, aligned checkboxes, and full-row Width/Height/effect/corner/frame-duration controls instead of scattered mini-grids.
- Applied the same label/value column contract to Data test values and Preview data overrides while preserving task-specific list, canvas, chat, resource-tree, and Timeline-track layouts.
- Added one editor-wide RealityHub-style controller for every enabled numeric input: hover shows the usage popup and east/west cursor, horizontal drag changes by the declared field step, Shift uses 10x speed, Alt uses 0.1x speed, and min/max bounds are respected.
- Kept normal typing first-class: a sub-threshold click focuses and selects the value, while real drags publish native bubbling input/change events through existing React/store/history actions.
Validation
npm run verifypasses generated MCP-contract and in-app-prompt drift checks, formatting, lint, every workspace typecheck, 410 tests across 84 files, the runtime bundle, and the production editor build.- Regression coverage includes multi-key selection, gutter resizing, z-order commands, Select All, project-history reconciliation, Squeeze rendering, full-alpha creation defaults, the shared configuration-grid contract, and numeric modifier/rounding/clamping behavior.
- The production editor build continues to emit the documented large-chunk advisory. Headless render/certify remains intentionally deferred, and real provider smoke testing still requires the user's configured BYOK credentials.