Skills on AI 459 skills

Active theme: Light

Front End Design

Use when asked to design the client-side/UI layer of a software system — component structure, layout and responsiveness, state management, accessibility, performance — as the client-facing counterpart to back-end-design, and distinct from visual/UX design (see user-centred-design).

Front-end design is the discipline of structuring a software system's client-side layer — the part users directly see and interact with — so it's maintainable, responsive, accessible, and performant, independent of any single framework or visual style.

Core concerns

  • Component structure — decomposing an interface into reusable, well-scoped components with clear responsibilities and props/state boundaries, echoing the same decomposition discipline Software Architecture applies at a whole-system level.
  • Layout and responsiveness — structuring content so it adapts correctly across screen sizes and devices, rather than being designed for one viewport and patched for others afterward.
  • State management — deciding what state lives where (component- local, shared/global, server-derived) and how it flows through the application; a common source of front-end complexity when handled inconsistently.
  • Accessibility — semantic markup, keyboard navigability, and screen-reader support built in from the start rather than retrofitted (see Accessibility Testing, Screen Reader Testing).
  • Performance — bundle size, render efficiency, and perceived load time, all of which directly affect user experience.

Front-end vs. back-end design

Front-end design concerns what runs in the client (browser, mobile app) and how it presents and collects data; Back End Design concerns what runs on the server and how it stores, processes, and serves that data. The two are designed together — a front-end's component and state structure is shaped by the API contracts a back-end exposes, and vice versa — but each has its own distinct set of design concerns and failure modes.

Front-end design vs. UX/visual design

Front-end design is about structure and implementation (how the client layer is built); User Centred Design is about the user-facing experience the interface delivers (what it feels like to use). The two inform each other constantly, but a well-structured front-end can still deliver a poor user experience, and a well-designed user experience can still be built on a poorly structured front-end — they're complementary, not substitutes for one another.

Common pitfalls

  • Component boundaries drawn around visual layout rather than responsibility — components that split along "what it looks like" rather than "what it does" tend to accumulate duplicated logic and become harder to reuse.
  • Ungoverned state sprawl — state duplicated across components with no single source of truth leads to inconsistent UI and hard-to-trace bugs.
  • Accessibility treated as a final pass — retrofitting semantic markup and keyboard support after the interface is built is far more costly than designing with them from the start.
  • No performance budget — without an explicit target (bundle size, time-to-interactive), performance tends to degrade gradually as features accumulate.

Learn more

View front-end-design/SKILL.md on GitHub