Skip to content

Home > @unseenco/backstage-core > ISheet

ISheet interface

Public API for a Backstage.js sheet (objects, sequence, and runtime lifecycle).

Signature:

typescript
export interface ISheet

Properties

PropertyModifiersTypeDescription
addressSheetAddressThe address of the Sheet
projectIProjectThe Project this Sheet belongs to
sequenceISequenceThe Sequence of this Sheet (uses the currently active sequence variant)
type'Backstage_Sheet_PublicAPI'All sheets have sheet.type === 'Backstage_Sheet_PublicAPI'

Methods

MethodDescription
declareOutlineNamespace(namespacePath, opts)

Declares an outline namespace folder in the Studio. The folder appears in the outline panel even before any sheet objects are added under it.

You can also use this to set the default collapsed state for a namespace folder. The default only applies when the user has not manually expanded or collapsed the folder yet.

This method is part of @unseenco/backstage so you can configure outline folders without importing @unseenco/backstage/studio.

declareSequenceVariants(variants)

Declares the sequence variants available on this sheet. Each variant has its own independent sequence data, allowing the same properties to be animated differently per variant (e.g. mobile vs desktop).

The "default" variant is always required and is included automatically if omitted.

detachObject(key)

Detaches a previously created child object from the sheet.

If you call sheet.object(key) again with the same key, the object's values of the object's props WILL NOT be reset to their initial values.

getActiveSequenceVariant()Returns the currently active sequence variant name.
getObjects()

Returns all currently attached objects on this sheet.

Use with ISheet.detachObject() to detach individual objects.

getSequenceMode()Whether the sequence uses wall-clock time (default) or page-scroll percent units. Page mode is runtime-only and not persisted in project state.
object(key, props, options)

Creates a child object for the sheet

**Docs: https://backstage.unseen.co/docs/guide/manual/objects\*\*

props(config, options)

Declares props scoped to the sheet (not a scene object). The returned handle behaves like a sheet object for props, value, onValuesChange, and Studio editing, but is hidden from ISheet.getObjects() and the outline.

Sheet props are shared across all sequence variants (static and sequenced).

setActiveSequenceVariant(variant)Sets which sequence variant is currently active. The active variant determines which sequence's keyframes are used when computing prop values, and which sequence sheet.sequence refers to.
setOutlineNamespaceCollapsed(namespacePath, collapsed)

Sets whether a namespace folder in the Studio outline panel is collapsed.

Call this on load to force a folder closed every time your app starts. Unlike declareOutlineNamespace(), this overrides any previous user preference for the current session's initial render.

setPageScrollDriver(driver)Overrides the scroll driver used in page mode (e.g. Lenis). Pass undefined to restore native document scroll. Re-attaches the scroll → playhead listener.
setSequenceMode(mode)Switches sequence units: time (seconds) or page (0–100 = scroll percent). In page mode, length is fixed at 100 and snap grid uses 0.1% steps.
unload()

Unloads this sheet instance from memory: detaches all objects, pauses sequences, and removes the sheet from the project.

Runtime-only: persisted prop overrides and sequence data are kept. Calling project.sheet again with the same id recreates the sheet.