Let's talk

Frontend

Hire HTML/CSS Developers

Front-end engineers who turn design into accessible, responsive markup that survives the next redesign.

Markup and styling are the least glamorous part of a product and the part users touch first. The interfaces behind Sazinga AdBoard, Field and Comply are dense, operational and used for whole shifts, which is precisely where a shaky CSS foundation shows up — as a table that will not scroll on a tablet, a modal that traps focus, a design system that quietly forks into three variants.

Front-end markup work is the discipline of making a layout hold its shape under content the designer never drew: a customer name three times longer than the placeholder, a table with two columns or with forty, a browser zoomed to 175% by somebody who needs it that way.

The bugs that survive code review

Layout defects are hard to catch in review because each line reads correctly on its own. Three from this site’s own build are representative of the whole category.

A page hero sat roughly 300px further left than the content beneath it, because a max-width had been put on the element that already carried the centring wrapper. That wrapper sets a 1280px maximum and margin-inline: auto, so narrowing the same element centres the narrow box in the viewport instead of aligning it inside the column. The fix was to constrain its children. Nothing about the declaration looked wrong where it was written.

A brand mark rendered 470px down the page after being swapped for a shared component. An absolutely positioned child resolves against its nearest positioned ancestor, and the wrapper it had moved into carried a load animation. An active transform, filter or will-change on an ancestor silently becomes the origin for everything absolutely positioned inside it, which is why the element needed its own decorative slot rather than a different top value.

A footer column stretched to 780px tall while three beside it ended halfway up. repeat(auto-fit, minmax(10rem, 1fr)) derives the column count from a minimum width, so the grid flipped between four columns and three across a few pixels of viewport. The earlier attempt had nudged that minimum from 10.5rem to 10rem, which moved the cliff rather than removing it. Two stated breakpoints removed it.

The most instructive one was invisible. clamp(2rem,1.2rem+2.6vw,3.2rem) is invalid, because inside a CSS math function + requires whitespace on both sides — so the browser drops the whole declaration and the element quietly inherits. It surfaced when a figure meant to render at 51px rendered at 17.8px. CSS fails silently by design, which means a stylesheet needs a scanner as much as a linter: parsing every clamp, calc, min and max in the tree found five occurrences, four of which had been live on other pages for weeks.

Why layouts get measured rather than looked at

Eyeballing a layout finds the failures and misses the drift. A privacy link that sat 13px below the copyright beside it was not visible as a bug; it was two flex halves of different heights with align-items left at its default. It was found by reading computed positions, not by squinting.

The same habit is what makes a shared component provable. When ten landing pages were moved onto one hero component, the check was that the gap above the h1 was 127px on all ten and its left edge matched each page’s dominant content edge on all ten — not that they looked similar in a screenshot.

Automated checks get the same scepticism. A reduced-motion audit reported 118 of 132 cards as hidden, which turned out to be the page’s own pagination behaving identically in both modes. A layout assertion you have not seen fail on purpose is not yet evidence.

What accessibility has to mean before anyone claims it

A linter finds missing alternative text and a colour contrast ratio. It does not find a focus order that jumps from a filter bar to a footer, a dialog that can be scrolled behind, a custom select that announces nothing, or a data table whose header association exists only visually.

So the bar is behavioural: every interactive surface driven from the keyboard alone, and the ones that matter checked with an actual screen reader. Dense operational tools raise the stakes, because a keyboard user in a warehouse is not choosing to avoid the mouse — the mouse is not there.

Where hand-written CSS is the wrong choice

If the surface is a marketing page assembled by non-engineers, a design system is overhead somebody will route around within a month. If the product is a small internal tool with a short life, an off-the-shelf component library will beat bespoke markup on both cost and accessibility, because the library’s dialog has been tested against assistive technology and yours has not.

The honest dividing line is longevity and density. Custom foundations pay for themselves in software with hundreds of screens maintained over years. They rarely pay for themselves in anything smaller, and an engineer who cannot say that is selling their own preference.

What we interview for

Not framework names. We ask what happens to a component when its text doubles, how they would make a forty-column table usable at 320px without hiding data the user came for, and what they changed in a codebase where the same button existed four times.

Then one diagnostic question: something is overlapping and the z-index is already 9999 — what do you look at first. Engineers who understand stacking contexts answer with the ancestor. Everybody else answers with a bigger number.

Teams are built for companies in the United States and the Gulf — the UAE, Saudi Arabia, Qatar, Kuwait, Bahrain and Oman. The engineers are in Pune, which matters mostly for the clock. Dubai is ninety minutes behind us and Riyadh two and a half hours, so a Gulf team shares almost the whole working day. New York is nine and a half hours behind, so American engagements run on a written handover and one fixed overlap window rather than on a standing call — a real constraint, and better stated than discovered.

What these engineers do

  • Semantic HTML and WCAG 2.2 AA conformance checked with a screen reader, not only a linter
  • Modern CSS - grid, container queries, cascade layers and custom properties
  • Design tokens and component libraries in Tailwind or plain CSS, kept consistent
  • Dense operational layouts, print stylesheets and genuinely responsive tables
  • Cross-browser behaviour and Core Web Vitals measured on mid-range hardware

Delivered AI-first

AI assistance is used to convert designs into a first pass of markup, to generate responsive variants and token scales, and to migrate older stylesheets towards grid and custom properties. Accessibility is where the human work concentrates, because a generated component will look correct and still be unusable with a keyboard. Every interface is checked against real assistive technology before it ships. Review discipline is unchanged. The measurable effect is throughput per engineer, not fewer reviews.

Built with HTML/CSS at Sazinga

These are our own production applications, not client references — which is why the engineers have operated them, not just written them.

Tell us what the HTML/CSS work is.

Roughly what it involves, the seniority you need, and when it has to start. We will say what it takes to staff it, or say honestly that we are not the right people for it.

A person reads every enquiry and replies within one working day.