Skip to content
KR.

Warren Bowie & Smith

2026

Warren Bowie & Smith

One folder per section, each with its own scoped stylesheet — and a third-party signup flow absorbed as templates rather than an iframe.

Design · Front-end · MotionOffline

Delivered to

Retail brokerage

Warren Bowie & Smith

Framework

Astro

Styling: Scoped stylesheet modules, one per component

Techniques

2

2 constants, formulas and guards

The main marketing site for a brokerage brand, and the largest component set in this section. Its organising decision is strict co-location: every section is a folder containing its markup and its own scoped stylesheet, so a section can be lifted out or dropped in without touching a global file. It also absorbs an external registration flow, which is the part of a brokerage site nobody designs and everybody inherits.

Offline

The brand's main site. Not linked from this page, and the tournament sub-page built for the same client is a separate entry. Claims are made against the source.

A section is a folder, and the third-party signup wears the site's own clothes.

Hero/Hero.astroHero.module.scss
AssetSlider/AssetSlider.astroAssetSlider.module.scss
CheckBoxGrid/CheckBoxGrid.astroCheckBoxGrid.module.scss
Faq/Faq.astroFaq.module.scss
Footer/Footer.astroFooter.module.scss
A section is a folder, not a file. Styles are locally scoped, so deleting a retired section is deleting a directory — its rules cannot outlive it because nothing else can reach them.
Marketing siteProvider screensas in-repo templatesiframerejectedSite stylinginherited
The registration flow is carried in-repo as templates rather than framed in, so the screens take the site's own type and colour. The seam between marketing site and provider stops being visible at the exact moment a visitor decides to trust one.

What was built, and for whom.

  • Warren Bowie & Smith

    Retail brokerage

    en

    Full marketing site with an embedded third-party registration flow and a shared section library.

Each one starts with something that was broken.

  1. 01

    A section is a folder, not a file

    The failure

    Marketing sites accumulate one enormous stylesheet where every section's rules sit beside every other section's, and deleting a retired section becomes archaeology — nobody can tell which rules were only ever used by it.

    The decision

    Pair every component with its own scoped stylesheet in its own folder. Deleting a section is deleting a directory; its styles cannot outlive it because nothing else can reach them. The cost is more files, which is the cheapest thing a repository can spend.

    • constantsrc/components/
      Each section is a folder of Component.astro + Component.module.scss
  2. 02

    The signup flow is absorbed, not framed

    The failure

    Brokerage registration is provider software, and the default integration is an iframe — which cannot inherit the brand's type or colour, breaks the page's responsive behaviour at its own breakpoints, and looks like a different company at the exact moment a visitor is deciding to trust one.

    The decision

    Carry the provider's screens — signup, loading, activation — as templates inside the site so they render as part of the document and take the site's own styling. The seam between the marketing site and the provider stops being visible to the person signing up.

    • constantsrc/components/Nxreg/
      SignUp, Loader and SignUpActivation carried as in-repo templates

    What it cost

    The templates have to be re-synchronised when the provider changes them, which an iframe would have handled automatically. For the screen where a brokerage either earns a signup or loses it, that maintenance is worth paying.

Every animation, with what it does when asked for less.

The last column is the one worth reading. “Respects reduced motion” is easy to assert and easy to skip, so where it is not true here, it says so.

Asset slider

Continuous marquee

Linear

Not gated in source — recorded because the table reports the unflattering rows too.

Section reveal

On intersection

Ease-out

Not gated in source.

What it was built on, what is claimed, and what is not.

Framework

Astro

Static pages assembled from a section library.

Styling

Scoped stylesheet modules, one per component

Class names are locally scoped by the module system, so two sections cannot collide even if both call something `.card`.

Registration

Embedded provider templates

The signup, loader and activation screens are carried as templates in the repository rather than framed in — see the technique.

Claimed — and how to check it

  • Every section component has its own scoped stylesheet

    The paired .astro / .module.scss files throughout src/components/.

  • The registration flow is carried in-repo as templates

    The Nxreg template files in the component tree.

Not claimed

  • No traffic, signup or conversion figure.
  • No claim over the registration provider's software. Its screens were styled and embedded, not written.
  • No performance measurement.
  • The tournament sub-page built for this same brand is a separate entry and its claims are not shared with this one.

Structure read from the repository's component tree. This repository's README is the framework's unmodified starter text, so nothing on this page is taken from it.