#118 Transition owns one-time visual interpolation between semantic states. The Consumer owns the semantic state itself. The single normal-use HTML Functional Class is bf-transition. The 21 Public API methods are not converted into 21 HTML classes. This guide explains what HTML to write, which attributes are required, and how the Consumer invokes ENTER / EXIT on the mounted Runtime instance.
2Responsibility boundary
Consumer: owns semantic state such as open / closed / hidden / selected and decides when the target becomes displayable or hidden.
#118: owns only ENTER / EXIT visual interpolation on the Target Part.
#118 does not absorb #117 Animation, #116 Effect, State, Trigger, or Timeline responsibilities.
The element carrying bf-transition is the real Transition Target Part. No duplicate visual target is created.
3Load order
Load BoneTransition v1.0.3 first, then BoneTransitionFunctionalClass v1.0.4.
However, bf-transition requires the three relation attributes to be explicitly present in HTML. Do not omit them merely because Runtime defaults exist.
823 Transitions
fade / slide / slide-fade / scale / scale-fade / zoom / zoom-fade / dissolve / wipe / reveal / expand / drop / pop / flip-x / flip-y / curtain-horizontal / curtain-vertical / shutter-horizontal / shutter-vertical / fold / rise / teleport-up / iris. Direction is used by slide, slide-fade, wipe, reveal, expand, shutter-horizontal, shutter-vertical, and fold.
9Direction / Speed
Direction values: up / down / left / right. Not all transitions consume Direction. Speed values: slow / normal / fast and are converted by Runtime into duration.
10Running the HTML Class
bf-transition mounts the target; it does not automatically infer ENTER / EXIT from HTML. The Consumer obtains the mounted instance and calls the existing Runtime API.
Do not confuse Consumer semantic state with #118 motion state.
12Mount state
After mount:
data-bf-transition-mounted="true"
data-bf-transition-runtime="1.0.3"
Relation Key is transitionUiNo::targetUiNo::targetPart. Use getInstance(host) rather than double-mounting the same host.
13Dynamic elements
The bridge scans the document on DOMContentLoaded. For elements added later, explicitly call BoneTransitionFunctionalClass.scan(root) or mount(host). No MutationObserver repair mechanism is used.
14Reduced Motion
With data-respect-reduced-motion="true", Runtime respects prefers-reduced-motion: reduce and applies the required final state without forcing long motion.
15Security
Blocked input includes non-object, Symbol key, accessor/getter/setter, ASCII control, nested object, unknown Transition, unknown Direction, and unknown Speed. Accessor getters are never evaluated.
16Property Editor mapping
The test-page Property fields correspond to the formal HTML/Runtime fields: Transition UI Number, Target UI Number, Target Part KEY, Transition, Direction, Speed, and Respect Reduced Motion. Demo-only Preview properties must not be promoted into the formal #118 HTML contract.
17Functional Class bridge API
readOptions(host), mount(host), unmount(host), scan(root), getInstance(host). Metadata: className=bf-transition, bridge version 1.0.4, Runtime version 1.0.3.
18Public API
The 21 Public API methods remain a separate advanced JavaScript interface: defaults, normalizeOptions, inspectUntrustedInput, create, destroy, isInstance, attach, detach, getOptions, setOptions, getState, getOutput, getRelationKey, getTarget, buildPlan, play, enter, exit, cancel, finish, validate.
19Errors / Troubleshooting
TRANSITION_FUNCTIONAL_CLASS_RUNTIME_MISSING: check script order and Runtime version.
TRANSITION_FUNCTIONAL_CLASS_RELATION_REQUIRED: check the three required relation attributes.
RELATION_REQUIRED: Runtime relation fields are empty.
TARGET_UI_NOT_FOUND: no target is attached to the instance.
ENTER is invisible: ensure the Consumer made the target displayable and that the target has visible content and dimensions.
Target remains after EXIT: #118 does not own semantic hidden; the Consumer must apply hidden/closed after EXIT.
20Smoke Test / Validation
Smoke verifies Runtime identity, 23 Transitions, real ENTER/EXIT, target attach, and related contracts. Validation independently verifies Security, Relation, Functional Class, abnormal cases, and re-ENTER. Smoke alone never becomes ALL PASS.
21Completion
Completion requires Smoke + Validation success and visual ENTER / EXIT confirmation for all 23 Transitions. Status remains Development until user localhost confirmation.
22Dependencies / Boundary / Version
Runtime: BoneTransition v1.0.3. HTML Functional Class: bf-transition v1.0.4. #118 Runtime does not depend on #117 Animation Runtime or #002 Joint Runtime. The #046 Consumer on the test page is an example and not a Runtime dependency. Consumers such as #040 ColorPicker may use #118 when required, but #118 does not depend on #040. Status: Development until user localhost confirmation.