Stayin' Classy IT service

Website design and modernization

You do not need a six-month agency process to get a website that looks coherent, loads quickly, and explains what you do. We start with the useful version, review it together, and iterate quickly against an agreed scope until the design and message feel right.

This site is the demo

You are looking at the portfolio piece.

This is not a screenshot or a list of hypothetical features. Use the page: each example below is the real browser feature.

Live demo 01

Change the actual page theme

Click the control and watch the whole page respond.

One accessible button drives CSS custom properties, OKLCH color, color-mix(), and a native View Transition when supported.

Live demo 02

Resize the component, not the window

Drag the demo's right edge left or right. Only its width changes.

A CSS container query lets the component react to the space it actually receives. The edge also works with touch and arrow keys.

This card watches itself. Wide layout

Its own inline size—not the browser width—changes this composition.

Card width measuring…

Live demo 03

Open a real native disclosure

Open the disclosure in this demo.

Semantic HTML works without JavaScript. Newer CSS adds a smooth transition while older browsers keep the useful fallback.

What works before enhancement?

The disclosure, keyboard behavior, and meaning come from HTML. It works without JavaScript; modern CSS only improves the reveal.

Live demo 04

Let the browser pick the image

Resize the card from its right edge and watch the live width and image format.

Picture and srcset offer AVIF and WebP at multiple sizes; the browser chooses an efficient source for the card.

Communication Hill at sunset
Live source detecting…

Card width measuring…

Live demo 05

Mix a perceptual color system

Move the hue control and remake the palette live.

OKLCH keeps perceived lightness coherent while a registered CSS property makes the color change smoothly.

Ink Core Lift Glow

oklch(72% 0.16 148)

Live demo 06

Switch a real View Transition

Choose a project phase or use the arrow keys.

Accessible tabs update immediately; supporting browsers animate the panel with the native View Transition API.

01 Find the one useful job.

Audience, message, proof, and next action before decoration.

Live demo 07

Let the parent understand its fields

Check the task and enter a valid email address.

Pure CSS :has() styles the whole card from native child state. There is no JavaScript listener behind this demo.

Launch checklist Needs input Ready

CSS reads the native checked and valid states from these fields.

Live demo 08

Make progress follow the scroll

Scroll inside the demo, not the page.

A contained CSS scroll timeline drives the progress meter and tile reveals without an animation loop.

Scroll inside One story, paced by your position.
01 Clear structure

Useful landmarks before motion.

02 Measured enhancement

The timeline only decorates content already present.

03 No animation loop

Your scroll position is the clock.

You drove the whole sequence.
Live demo 09

Ask this browser what it can do

Read the live capability results from your browser.

Small standards-based probes support progressive enhancement: use the modern path when available and keep a useful fallback.

  • OKLCH colorChecking…
  • Container queriesChecking…
  • :has() selectorChecking…
  • Scroll timelinesChecking…
  • View TransitionsChecking…
  • Anchor positioningChecking…

Faster than the agency ritual.

We start with the clearest useful version, review it together, and work in short, scoped loops until the design and message feel coherent. You see progress early, and revisions stay practical.

Talk through your site