← The library

Trelane

One-page site for a freight forwarding and supply-chain group

Full template Free Open the demo Download
Preview of the Trelane template: a dark full-screen hero with a luminous dotted globe, freight routes, country labels and the heading “Every leg of the journey”.

What it is

A complete one-page site for a freight forwarder: a rotating dotted globe and fourteen destinations, a promise backed by counters, a loading yard where a reach stacker places a container, a truck crossing the screen, a road seen from above, a container ship, six services, testimonials, partner marks, insights, an FAQ and a full contact footer.

The page is deliberately cinematic without becoming a black box. The globe is drawn on a 2D canvas, the long loading sequence is driven by one scroll progress value, and the service rail remains a native scroll-snap carousel. There is no framework, no CDN and no build step: open index.html and the whole experience runs locally.

Every source stays readable and commented. It is a template to study, rename and reshape, not a compressed demo that only works on its original host.

What you change first

The colours — seven lines

Right at the top of assets/css/style.css:

--ink:        #111111;  /* text and dark panels */
--paper:      #ffffff;  /* light sections */
--surface:    #f4f4f4;  /* raised light surfaces */
--brand:      #3a00cc;  /* accent on white */
--brand-deep: #2a0099;  /* hover on white */
--brand-lift: #8a6bff;  /* accent on dark */
--signal:     #ff8a00;  /* globe routes and pins */

The accent comes in three values because one colour cannot keep enough contrast on white, black and photography at once. Change the trio together; --signal is separate because the amber routes must remain legible against the blue globe.

The name

Search for “Trelane” in index.html. No CSS class carries the brand name, and the logotype is type rather than a bitmap: a find-and-replace cannot break the layout.

The sizes

The complete type scale lives in the token block and is rebalanced only at the main breakpoints. Change --h2 once and every section heading follows; individual headings do not carry one-off media queries.

The fourteen effects, and how they’re built

The original timings and easing curves were measured, then rebuilt with small browser primitives. The long scenes share a single progress coordinate, so the crane, container, road, truck and ship stay aligned at every viewport size.

EffectWhereHow
Masked title entranceheroeach line rises from its own overflow mask, staggered by 90 ms
Rotating globeheroorthographic projection on canvas, redrawn at 30 fps with no 3D library
Atmospheric rim and routesherocached amber and blue light passes, with routes and pins layered above the land dots
Scroll revealsthroughoutIntersectionObserver, triggered 15% up from the bottom of the viewport
Text sweeplarge headingsan animatable custom property moves a clipped gradient across each line
Countersintroone requestAnimationFrame loop with a cubic ease-out
Image openingintroclip-path and scale share the original exponential easing
Reach stacker loadingservicesthe machine, hook and container use one measured coordinate system
Truck crossingservicesa viewport-independent translate course tied to scroll progress
Service railservicesnative scroll-snap, also advanced from the pinned scene progress
Speed indicatorservicessmoothed derivative of the truck’s progress, capped at 92 km/h
Road and top-view truckmilestonesCSS variables grow the road and move the vehicle on the same vertical axis
Container shipwhy Trelanethe ship travels through a blue sea-mist gradient as the section progresses
Marquees and FAQheader, footer, FAQCSS keyframes for the loops; native <details> for the questions

What you should know

  • No external requests. Fonts, images, scripts and the globe data all live inside the template folder.
  • Scroll reveals can't hide the content. The hidden state only exists after the enhancement script has run. With JavaScript removed, all 23 headings remain visible and all eight questions can still be opened.
  • Zero inline styles, zero inline scripts. Verified by serving the folder with the strict policy from _headers, not assumed.
  • The long scenes are measured. Automated checks verify that the globe stays inside the frame, the load touches the hook and stack, and the truck and ship remain visible across landscape, portrait and mobile formats.
  • The body text is readable. It was raised to 16 px instead of reproducing the source’s 13.3 px body copy.
  • Accessibility: skip link, announced menu state, native FAQ, keyboard-ready rail, visible focus, decorative scenes hidden from screen readers, and a complete reduced-motion state.
  • Responsive checked at 390, 1440 and 2560 px, on load and after scrolling all the way down, with no horizontal overflow.

What isn't perfect

Better said here than left for you to find out.

  • The reach stacker arm is fixed. The container follows a measured arc from the hook to the stack, but the hydraulic arm itself does not articulate frame by frame.
  • The globe is 2D canvas rather than WebGL. It rotates, lights its rim and keeps every route aligned, but it does not simulate volumetric atmosphere or physical sunlight.
  • The ocean is a gradient. The ship moves through blue mist, but there is no fluid simulation or generated wake behind it.
  • The vehicle wheels do not spin independently. Each truck is a single transparent image, so the crossing reads clearly without extra layered assets.
  • The page is intentionally long. The pinned sequences trade scroll distance for readable motion; reduced-motion mode collapses them to their final states.

Download it. Open it. Make it yours.

Trelane is free to download, with the complete source and every local asset included.

Complete source · No account · No framework