Skip to content
All work
StandardMedical & dental equipment distribution

Crizma — Medical & Dental Equipment Distributor Website

Framework-free corporate site with a canvas cursor field and scroll-choreographed storytelling.

Visit the live site
A short film for this project, built from its own palette, type and interaction detail.

Overview

A hand-coded rebuild replacing a template-driven site, combining a canvas-driven interactive cursor field and a scroll-choreographed hero with a lightbox gallery of completed clinical installations — every animation written from scratch, no libraries.

What this proves

That we can write original real-time graphics rather than dropping in a library — and that a zero-dependency build can still feel expensive.

Key features

Interactive canvas cursor field

A full-viewport canvas renders a grid of brand-coloured dots pushed outward from the cursor by an inverse-square falloff. A radial gradient composited with destination-in reveals dots only within a travelling halo; a second destination-out pass punches the field out of the navbar, every card and the map, so the dots visibly flow around interface elements.

Velocity-driven engagement

Displacement is scaled by an engagement value that lags cursor speed through a low-pass filter, so the field responds to how the visitor moves rather than only where. A baseline floor keeps a visible void around a stationary cursor so the effect never looks dead, and a hard radial clamp guarantees a perfect circular void regardless of grid alignment.

Scroll-choreographed sticky hero

A 250vh scroll container holds a 100vh sticky stage while the headline, supporting copy, call-to-action pair and a partner logo marquee reveal in sequence — and reverse when the visitor scrolls back up. Show and hide thresholds are deliberately asymmetric, creating hysteresis so content cannot flicker at a boundary.

Masonry gallery with custom lightbox

Thirty-one installation photographs in a CSS multi-column masonry grid stepping four to one column across breakpoints, with zero layout JavaScript. The lightbox indexes sources by resolved image path rather than DOM position, so navigation and the counter stay correct even when the image set changes size at runtime.

Accordion with height-auto handoff

CSS cannot transition to or from height auto, yet the content must reflow freely once open. On open the height is pinned to zero, a reflow is forced, the measured height is animated to, and afterwards the height is swapped to auto. On close the sequence runs in reverse, with the open attribute removed only after the animation completes so the element never snaps shut mid-transition.

The experience

A visitor arrives to a moving field of brand-coloured dots that follows their cursor, parting around the navigation and content cards, revealed only inside a soft travelling halo. As they scroll, the hero holds its position while the company’s proposition assembles itself in three timed beats, closing with an endlessly scrolling band of manufacturer partner logos.

Further down, services expand from animated accordions and a second marquee presents institutional customers. Team members appear as glass cards that lift and take an accent stripe on hover. From there visitors enter a dedicated gallery of installation photography in a responsive masonry grid — clicking any image opens a full-screen lightbox navigable by arrow keys or on-screen controls, with a running counter and wrap-around paging.

Design

A restrained, clinical palette — white and near-white surfaces, near-black type — that concentrates all visual energy in a single crimson accent applied to section eyebrows, headings, hover states, button fills and the particle field itself. The result reads as clean and medical without feeling sterile.

The detail that makes it cohere is a single shared easing curve governing essentially every transition on the site, in a tight 0.3–0.8 second band. Across a dozen distinct animated behaviours everything decelerates the same way, which is why a page with this much motion still reads as calm rather than restless.

Engineering

The cursor field’s difficulty is not drawing dots but compositing them. All dots are batched into a single path and filled once per frame with one shared gradient — one fill call per frame instead of thousands. Exclusion rectangles for the navbar, cards and map are cached and recomputed only on scroll and resize, never per frame, avoiding thousands of layout-thrashing measurements per second. Device pixel ratio is capped at two, bounding the pixel budget on high-density displays.

The particle field is disabled on touch devices twice over: once by a pointer-capability media query, and again by a JavaScript guard that prevents the canvas from ever being inserted into the document. That belt-and-braces approach saves the entire animation frame budget on mobile rather than merely hiding the result.

Six of the gallery photographs are Apple HEIC files, which most browsers cannot decode. Those items ship hidden with an error handler, and a load listener reveals them and rebuilds the lightbox source array if the browser turns out to support the format — which is why the lightbox indexes by resolved source rather than DOM position.

Responsive experience

Three breakpoints reshape the site. At 1200px the gallery steps from four columns to three. At 768px the transformation is comprehensive: the inline navigation gives way to a morphing hamburger and a blurred full-screen panel, the hero scroll container shortens and its phase sequencing is bypassed so nothing can strand off-screen, buttons stack full-width, every card grid becomes a single column, and hover-lift is disabled because it has no meaning on touch.

Not demonstrated by this project

Stated plainly, because a portfolio is more useful when it is precise about its limits.

  • No backend, database, authentication or CMS
  • No multilingual support
  • No 3D or WebGL — the canvas work is 2D
  • SEO is titles and meta descriptions only — no structured data, sitemap or canonicals
  • No prefers-reduced-motion handling, despite the project being motion-dense
  • The forms do not submit anywhere — this project does not evidence lead generation

Portfolio assessment

Visual design
7.0 / 10
Technical complexity
5.0 / 10
Interactivity
7.0 / 10
Business value
6.0 / 10
Portfolio appeal
7.0 / 10
Overall6.4 / 10