npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@hypit/caption-travel

v0.1.0

Published

Travel: tightly tracked uppercase reading rows in stationary pages for Hypit.

Downloads

267

Readme

Travel captions for Hypit

Tightly tracked yellow uppercase rows appear together, accumulate into stationary two-row pages and replace the previous page. Complete page geometry is reserved before reveal: adding the second row never moves the first. Single-row pages are centered by their own height.

Travel with new copy

Motion preview uses new copy and authored demonstration timing, without 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-travel

Requires Hypit 0.3.1 or a compatible release and Node 22.15 or later. The Source import @hypit/caption-travel@1 identifies the logical module ABI; npm version 0.1.0 identifies this implementation.

Install and connect

This independent author package owns its activation, Style, schedule and renderer. It consumes the existing CaptionDocument, CaptionTiming, finite Timeline, Frame and explicit fonts and produces an ordinary VisualTrack. Authors do not prepare a new subtitle data format.

The exported recipe is @hypit/caption-travel/recipes/travel. The following is an integration fragment: its surrounding Source supplies story.caption, resolved caption-time, speech.timeline and caption-frame.

<import from="@hypit/caption-travel@1" as="travel"/>
<import source="@hypit/caption-travel/recipes/travel" as="look"/>
<import from="@hypit/media@1" as="asset"/>
<asset:Font id="font" src="./assets/fonts/THEBOLDFONT-FREEVERSION.ttf"
  weight="700" style="normal"/>
<travel:Style id="style" recipe={look.caption.travel} font={font}/>
<travel:Track id="captions" document={story.caption} timing={caption-time}
  timeline={speech.timeline} within={caption-frame}>
  <travel:Use style={style}/>
</travel:Track>

Include captions.track in Film. Script speech uses the host's Narrative Caption adapter before this Track:

<import from="@hypit/narrative-caption@1" as="caption-time"/>
<caption-time:Timing id="caption-time" document={story.caption}
  binding={story.caption-binding} projection={story-time.projection}/>

Use accepts an optional named Window through during, plus an optional speaker role. An omitted Window covers all matching Cues. Later Uses take precedence, including Hidden, without restarting the Cue clock.

Style accepts an exact Font or an ordered FontStack. <travel:Fallback font={fallback}/> children append exact faces or stacks. The final visual study selected the newer The Bold Font, 700 normal, after comparing it with the older file, Lemon Milk Bold, Clash Display Bold and Poppins ExtraBold. The newer R and neighboring letter shapes matched better in actual browser rendering. Exact source font identity remains unproven. The font is an explicit author-supplied resource; it is not bundled, downloaded during rendering or replaced with an implicit system font.

Script attributes

<passage><HOST>
Ordinary text works without attributes. ||
Follow{group=thought} through{group=thought} with your idea. ||
Pause and let{break-before} it breathe.
</passage>

| Attribute | Meaning | | --- | --- | | group=name | Consecutive units with the same nonempty name stay together while wrapping. An oversized group fits down as one row. | | break-before | Boolean; start a new visual row before this unit. It also splits an otherwise continuous group at that point. |

All attributes are optional. || separates cues, never internal lines. Cue changes restart paging. Normal rows wrap from loaded-font measurements and the width budget. With break-on-punctuation, common trailing clause punctuation also finishes a row. Indivisible Script units preserve internal displayed words/separators; each display Word retains its own attributes. Unrelated attributes are ignored. This family does not implement per-word emphasis colors or size roles.

Rows reveal at their first unit's original time and remain until the next page or cue end. Internal word times stay in CaptionTiming, even though all words in the row appear together. The page is horizontally centered by actual glyph bounds and vertically centered by its final height. There are no word-specific positions or animation offsets.

Style parameters

Component defaults are below. The exported recipe is a 1080 px portrait starting point: size96, y.748, line-width8.4 and line-gap.46. Adjust size/placement for the target Frame; the comparison preview uses y.5 to show the typography centrally.

| Parameter | Default | Meaning | | --- | --- | --- | | x / y | .5 / .514 | Page center as Frame width/height fractions. | | width | .94 | Maximum width as a Frame fraction. | | size | 192 | Font size in pixels. | | tracking | -.06 | Letter spacing in font-size em, including the separator's normal spacing behavior. | | word-spacing | .06 | Additional spacing on separators, in font-size em; changes word gaps without changing letters within a word. | | uppercase | true | Uppercase displayed text. | | line-width | 9 | Reading width in font-size em; the smaller of this and viewport width is used, with shadow allowance removed. | | lines-per-page | 2 | Positive integer row count before replacing the page. | | break-on-punctuation | true | Finish a row after common clause/sentence punctuation at the end of a group. | | line-gap | .23 | Vertical gap after actual row ink, in base-font em before row fitting. | | color | #efff3b | Text paint, six/eight-digit hex or transparent. | | fade-duration | .045 | Whole-row entrance in seconds; zero disables the fade. | | shadow-color | #00000080 | Shadow paint. | | shadow-blur / shadow-y | .12 / .04 | Blur and vertical offset in font-size em. | | tail-frames | 0 | Optional cue extension capped by the next same-role cue. | | stack-order | 70 | Composition paint order. |

The font input, actual word widths, grouping and explicit breaks determine layout. Enlarging the font or tightening the width can change page composition; line-gap changes vertical spacing without changing row membership. Changing speech timing changes reveals without requiring new word styling. All animation evaluates from the requested frame and is independent of playback history.

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.