Global Texture - Noise Background
Global Texture - Noise Background
    uxproof on two phones: the empty chat, and a chat that lists the uploaded reports and generates a deck
    uxproof on two phones: the empty chat, and a chat that lists the uploaded reports and generates a deck
Client
Dom-Meszna
Role
Art direction, UX and frontend development
Scope
Art direction, UX, interaction design and frontend engineering
Year
2026
Tools
Next.jsReact 19TypeScriptTailwind CSSGSAPNetlifyFigma

Context

Selling the property without making it feel like a listing.

Dom-Meszna is a 402 m² house in the Beskid Śląski, and its owner is selling it directly, without an agency.

On a property portal it would be one listing among hundreds, a row of thumbnails and a spec table competing with every other house on the page. The goal was to give it the presentation you’d expect from a premium agency and still have buyers talk to the owner directly.

So the house and its view of the mountains had to make the first impression, and the facts a buyer needs had to stay easy to find. The one thing the site asks visitors to do is arrange a viewing with the owner.

The hero on desktop — the house photographed against the Beskidy sky

Approach

Let the property make the first impression.

Portal listings open with a grid of thumbnails and a specification table. This site opens on a full-width photograph of the house, with the key figures in one line under the headline. The facts get a section of their own just below it, so nobody has to scroll through photos to find the floor area or the size of the plot.

After that the sections run in this order: the house in its landscape, its condition and the work it needs, the three floors, the location and what’s nearby, the interiors, the architect’s plans and the price. The page ends with the form for arranging a viewing. Each section is numbered, so it’s easy to tell where you are on a long page.

There’s no menu. The header holds one link, “Umów oglądanie” (arrange a viewing), and it stays on screen all the way down the page, on phones too.

The buyer journey on dom-meszna.pl: ten sections in page order, from the hero to the viewing request form, with the header’s one link, Umów oglądanie, on screen the whole way down
Key facts in the light theme — six data cells beneath the running marquee of highlights
The same key facts in dark mode
Three floors as three cards — the layout section in the light theme
The floor layout in dark mode
The offer — price, rate per square metre and status, light theme
The offer in dark mode

UX engineering

The interaction layer supports the experience rather than becoming the experience.

I designed the site and built the frontend in Next.js, React and TypeScript, with Tailwind CSS for styling and GSAP for the animation. Every figure on the site, from the floor area to the price, comes from one data file, so the hero, the key facts, the data for search engines and the social preview image can’t disagree with each other.

The page works without the animation. The price is the clearest example: when you scroll to it, it counts down from the figure agencies had listed the house at to the direct-sale price, and a note underneath explains the difference. With reduced motion turned on, none of this runs and the page simply shows the asking price. The heavier scroll effects only run on large screens.

I designed the phone layouts separately. On a portrait screen the landscape hero photograph crops down to mostly gutter and roof, so phones get a different photograph, taken in portrait, that shows the whole front of the house.

The site targets WCAG 2.2 AA. A Playwright and axe test suite checks it in light and dark mode, at five screen widths from 320px, with reduced motion on and off, and with JavaScript switched off.

Floor layout and offer on portrait tablets, in both themes
The mobile hero and key facts, in both themes
Mobile screens — the house’s condition, the offer, the viewing request form and the owner’s contact details
Location on mobile — the mountain panorama and the distances that matter

Design system

A design system built on tokens that Figma and the code share.

I set the design system up in Figma as variables in five collections: primitives, colour, spacing, layout and typography. Primitives hold the raw values and are hidden from the pickers. Components only use semantic tokens such as text/accent or border/focus, and each token shows the CSS custom property or Tailwind class it maps to.

The two things the site varies on are built in as modes. Colour has a light and a dark mode, the same switch the site makes. Layout and typography have desktop, tablet and mobile modes, so a Figma frame picks up the gutters, section padding and type sizes of each breakpoint.

Each token also says why it has its value. Text colours list their contrast in both themes, and form fields have a border token of their own that keeps 3:1 on both backgrounds. Every standalone control is at least 44px, where WCAG asks for 24.

Dom-Meszna colour tokens: the primitive colours, and each semantic token with its light and dark values, CSS variable, role and contrast
Dom-Meszna typography: the three font families and the full type ramp, with sizes for desktop, tablet and mobile
Dom-Meszna spacing: the base spacing scale and the responsive layout spacing for desktop, tablet and mobile
Dom-Meszna sizing tokens: touch targets, icons, the page container and text measures
Dom-Meszna borders: the width, style and colour token for each kind of border on the site
Dom-Meszna grid and layout: breakpoints, column spans and how the card grids reflow
Dom-Meszna design tokens: token hierarchy, the five collections and their modes, colour aliases, dimension tokens, styles, motion values and naming rules

Outcome

A direct-sales experience built around the property, not the platform.

The site is live at dom-meszna.pl. The house has a site to itself, with no other listings around it, and the way to the owner is one tap away from anywhere on the page.

The idea was for the page to do the work of a first viewing, so the people who come to see the house already know its size, its layout, its condition and its price.

It treats the house as the product, and the website as the place where a buyer gets to know it before visiting.

The contact section in the light theme — a direct conversation, without intermediaries
The contact section in dark mode