80 lines
4.5 KiB
Markdown
80 lines
4.5 KiB
Markdown
# Editor Visual Language
|
|
|
|
Blacksite's editor UI is a dense production tool. Its visual system prioritizes scan speed,
|
|
stable controls, viewport legibility, and unambiguous editing state over decorative surfaces.
|
|
|
|
## Palette Roles
|
|
|
|
- Near-black neutral surfaces separate canvas, panels, controls, and elevated popovers without a
|
|
light-gray cast or single-hue tint.
|
|
- Amber is the Blacksite action accent: active tools, the primary selection, warnings, and
|
|
rendering paths that need attention.
|
|
- Cyan identifies secondary selections, links, and neutral viewport information.
|
|
- Red, green, and blue are reserved for the X, Y, and Z axes across transform gizmos, the world
|
|
grid, and the viewport orientation widget.
|
|
- Green and red communicate success/running and error/blocked states. They are not decorative.
|
|
|
|
## Editor Chrome
|
|
|
|
- A compact Blacksite mark and amber signal line identify the tool without turning the workspace
|
|
into a branded landing surface; squared controls and tight radii reinforce the industrial tone.
|
|
- Menus, the grouped creation/file toolbar, centered transport controls, dock tabs, and the status
|
|
strip keep stable dimensions so mode changes do not shift the workspace.
|
|
- Controls use familiar symbols with hover labels. Persistent text is reserved for state, values,
|
|
selection identity, and task-specific feedback.
|
|
- Dock tabs use an amber active edge, while splitters and panel borders stay neutral until hovered
|
|
or dragged.
|
|
- Popovers and viewport chips share one elevated surface, border, corner radius, and shadow.
|
|
|
|
## Viewport Language
|
|
|
|
- The top-left toolbar groups transform, coordinate space, shading, grid/snap, visualizer, focus,
|
|
and display controls.
|
|
- The top-right selection chip identifies the active object, selection count, and overlapping-pick
|
|
position. It moves below the toolbar when the viewport is narrow.
|
|
- The bottom-right orientation widget and combined shading/render-path chip provide camera and
|
|
render context without covering scene content.
|
|
- Dragging an asset over the viewport produces an amber placement boundary and compact placement
|
|
card, pointer reticle, and corner brackets before the drop is committed.
|
|
- Grid lines use minor/major weights. The world X and Z axes retain their gizmo colors.
|
|
|
|
## Selection And Gizmos
|
|
|
|
- The first selected object is primary: amber x-ray rim and corner brackets, hierarchy edge, and
|
|
selection HUD identity.
|
|
- Additional selected objects are secondary: cyan rim, brackets, and hierarchy edge.
|
|
- All unlocked authored objects in a multi-selection receive grouped transform-gizmo targets; a
|
|
single interaction is captured as one undoable group transform.
|
|
- Transform gizmos use restrained X/Y/Z colors, an amber interaction highlight, larger stable
|
|
screen size, and translation snapping synchronized with the viewport snap toggle and increment.
|
|
- Brush vertex, edge, and face modes reuse the same palette and enlarge active element handles.
|
|
Face mode outlines the selected face instead of showing only a center point.
|
|
|
|
## Drag And Drop
|
|
|
|
- Drag previews follow the pointer and name both the payload and pending action; they never rely on
|
|
cursor shape alone.
|
|
- Hierarchy rows expose their full remaining width as attach targets. Amber means attach, cyan
|
|
means root/reorder, and red means the requested hierarchy would be invalid.
|
|
- Reparenting preserves world placement, keeps selected subtrees intact, expands the new parent,
|
|
and records parent, sibling order, and local transform in one undoable command.
|
|
- Manual hierarchy sort exposes between-row insertion targets; semantic Name and Type sorts expose
|
|
parenting without pretending a manual reorder will remain visible.
|
|
|
|
## Visualizers
|
|
|
|
- Visualizers preserve semantic category colors while selected objects receive stronger emphasis.
|
|
- Camera visualizers include near and far frustum planes plus a forward vector.
|
|
- Spot lights show inner and outer cones; point lights, directional lights, colliders, spawns,
|
|
gameplay markers, volumes, prefab/model anchors, and runtime helpers remain independently
|
|
toggleable.
|
|
- Editor-only visualizers and selection helpers never enter saved scene data.
|
|
|
|
## Maintenance Rules
|
|
|
|
- Add shared colors and surface frames in `ui/theme.rs`; do not introduce local panel palettes
|
|
unless the color has domain meaning.
|
|
- Keep selection semantics consistent across the viewport, hierarchy, inspector, and status bar.
|
|
- New viewport overlays must adapt before they overlap existing controls at narrow widths.
|
|
- Visual polish must preserve picking, undo/redo, clean game view, and scene serialization behavior.
|