All work

Ksenia Hairs

The stylist wanted a site that shows real work and leads to an enquiry, without the look of a salon chain. We built a first version on her own photographs; services and prices wait for her data and are marked as placeholders.

Client
Ksenia Hairs, beauty stylist, Sochi
Type
A one-page site
Our part
Concept, design and front end
Year
2026
Ksenia Hairs

The brief

The brief put the goal plainly: get enquiries and show the portfolio. The client described the mood as authentic yet clear at first glance. There was no site and no logo before, so the name is set in type with no invented mark.

What we built

The first screen is dark, with a portrait, the name and two buttons: discuss a booking and see the works. Below it the page turns to a warm light background with large Cormorant headings and Onest for body text. The works section shows one large frame with a list of thumbnails; on a phone the thumbnails run in a strip under the frame. The price list is laid out as a printed sheet with dotted leaders to the price, and the contacts lead to Telegram and WhatsApp and offer an enquiry form with a topic: services or training.

Every photograph belongs to the stylist. Smooth scrolling and transitions between blocks switch off when the system asks for reduced motion.

Waiting for data

The service list, the prices and the stylist’s own story are still placeholders. We did not invent prices, years of experience or certificates; the fields fill in when the client sends the details.

Under the hood

  • React 19, TypeScript and Vite; the Cormorant, Prata and Onest fonts are bundled locally.
  • Smooth scrolling with Lenis and View Transitions; both switch off under reduced motion.
  • The enquiry form posts to the address in the VITE_LEAD_ENDPOINT environment variable; Telegram and WhatsApp open by direct link.
  • The build is about 3.5 MB including 17 photographs.

React · TypeScript · Vite · Lenis

Shall we talk about your project?

Discuss your project