@hypit/caption-citadelle
v0.1.0
Published
Citadelle: sliding rows with independently timed word highlights and size/paint roles.
Readme
Citadelle captions for Hypit
Narrow uppercase typography, rows sliding in from the right, and independently timed rounded word highlights. Font, size hierarchy and static accent paint are independent of highlight timing.
Watch the original-copy preview (26 seconds, authored timing, no audio).
Install
Install in your video project and retain its package.json and lockfile:
npm install --save-exact @hypit/[email protected]
hypit vocabulary @hypit/caption-citadelleRequires Hypit 0.3.1 or a compatible release and Node 22.15 or later. The Source import @hypit/caption-citadelle@1 identifies the logical module ABI; npm version 0.1.0 identifies this implementation.
Install
Author inputs
Use the ordinary CaptionDocument, CaptionTiming, Timeline and Frame. Script timing adaptation remains outside the family. Style accepts an exact Font or FontStack, with optional Fallback children. No additional author-written subtitle data type is required. The family schedule is internal.
The closest researched font is the 2014 Bebas Neue Bold by Fontfabric, available in the designer's repository. Its identity as the exact reference font is not proven. Supply your font resource explicitly; the package contains no fonts.
The exported recipes/citadelle recipe is a starting point for a1080×1920 Canvas. See examples/citadelle.svml for an integration fragment using existing story.caption, caption-time, speech.timeline and caption-frame. Include captions.track in your Film.
| Optional Script property | Meaning | | --- | --- | | group=phrase | Adjacent units with the same name share a page. Names separated by other groups do not reconnect. | | size=normal or large | Chooses base size or large-scale; never changes paint or grouping. | | paint=normal or accent | Chooses the static text color; never changes highlight timing or size. | | break-before | Starts a row inside the page, without creating a new cue. |
Make{group=idea} your{group=idea} idea{group=idea,paint=accent} clear.{group=idea} ||
Build{size=large} something{paint=accent} beautiful.{size=large,paint=accent}Ungrouped units have individual pages. Each row enters at its first unit's time, then stays until the next page or cue end. Highlight opacity follows each unit's own start/end, so it may disappear while its text remains. || separates cues only. An indivisible alignment unit preserves all its displayed words and separators; each display Word keeps its own attributes. Other attributes are ignored.
Loaded-font widths determine automatic wrapping. Each line then scales uniformly to available width, preserving aspect ratio and relative word sizes; long indivisible words fit by scaling. Independent line fitting allows a longer line to be smaller than a short adjacent line. A page never reflows as speech advances. Highlight geometry is fixed at the final text position, while text slides into it.
Style parameters
| Parameter | Meaning | | --- | --- | | x / y | Page line-box origin as Frame fractions. | | width | Maximum final line width as a Frame fraction. | | size / large-scale | Base pixel font size and large-role multiplier. | | line-width | Automatic wrapping threshold in base-font em, before line fitting. | | line-height / line-gap | Minimum per-word line-box height multiplier and extra inter-row gap in base em. | | tracking / word-spacing | Letter spacing in each word's em; additional separator spacing in base em. | | color / accent-color | Static normal and accent text paints. | | highlight-color | Speaking-word background paint. | | padding-x / padding-y / radius | Highlight padding and corner radius in base em. | | highlight-fade | Highlight edge fade in seconds, limited for short units. | | slide-distance | Signed horizontal text entrance offset in Frame-width fractions. | | slide-duration / fade-duration | Independent row slide and opacity durations in seconds; zero disables that transition. | | outline-width / outline-color | Text stroke width in base em and its paint. | | shadow-y / shadow-blur / shadow-color | Text shadow offset/blur in base em and its paint. | | tail-frames | Cue display extension, capped at the next cue of the same role. Does not extend word highlights. | | stack-order | Composition paint order. |
The selected font controls weight. Color values accept six/eight-digit hex or transparent. Width is positive and at most1; font size, line width, line height and large scale are positive. Durations, padding, radius, blur and line gap are nonnegative. Tail is a nonnegative integer. All animation uses absolute frame time, including direct seeks and Uses beginning inside a cue. Later matching Uses win; Hidden suppresses visibility without restarting clocks.
Integration and license
CaptionDocument supplies authored Cues, Words and Units; CaptionTiming supplies each Unit’s absolute boundaries. Track consumes document, timing, timeline and within. Its Studio Companion displays Cue Items and exposes Style Uses in the Inspector.
Fonts are explicit inputs supplied by the consuming project, either from licensed files or installed font packages. Font binaries and research footage are not distributed here. Choose fonts licensed for your intended use; availability of a local or free font file does not establish commercial usage rights. Preview media illustrates the treatment; actual layout depends on your text, timing, frame and font metrics. Check the result in the languages and sizes used by your video.
Code is distributed under the Hypit license, the same license used by @hypit/ranking. It is Apache-2.0-based with additional conditions; consult the full text for hosted services and commercial redistribution. Fonts and supplied media retain their own licenses.
