← Northline Strata

Build guide · Generative Assets · Industry Demos XXV

Northline Strata Management — how this demo was built

A strata-management landing page for Perth's northern suburbs, with one job: a proposal request that already carries the scheme's type, size and service level, priced.

Concept

Northline is a fictional Joondalup strata manager pitched at three people: the council chair fed up with a manager who doesn't answer, the developer handing over a new scheme, and the owner who ended up doing it all. It's a B2B page — calmer than the trade demos, still one CTA. The direction is a well-run lobby at 8am: pale-concrete ground, midnight-navy ink, verdigris-teal action, brushed-steel linework. The signature is the Scheme Ledger: an isometric block-plan of the scheme beside a levy notice that prices itself as you describe the scheme.

Palette — measured, not assumed

Lobby concrete#F3F5F8 · page ground
Midnight navy#1B2433 · body ink, 14.3:1 on the ground
Verdigris teal#1F7A6E · CTAs (white on teal 5.2:1), links (4.7:1)
Brushed steel#9AA6B8 · lot outlines, hatching, rules — lines only (2.3:1)
Deep teal#176154 · button hover, lit lot shadow face (white 7.3:1)
Teal ink#145448 · eyebrows, links, prices — 8.0:1 on the ground
Steel ink#5A6779 · captions, small copy — 5.3:1 on the ground, 5.8:1 on white
Lit lot#8FCBBF · lit roof/ledge tint on the plan (marks only)

The spec's contrast figures were hypotheses; these are WCAG-arithmetic measurements from the shipped tokens. Base teal cleared 4.5:1 for both button labels and links, so the pre-minted pair (#176154 / #145448) is used for hover and for accent-coloured type rather than as a remedy. Steel is never a text colour — small steel-coloured copy uses steel-ink. Body text on the navy proposal band is #C9D2DE (10.2:1); the stamp and lot fills carry the argued teal as marks.

Type

Sora 700 for display — a plan-drawing geometric with a manager's clarity; it sets the wordmark, headings, the huge lot count and the badge figure. Inter for everything a council member has to read: body at 16.5px, the ledger at 13px with tabular numerals so the levy notice's right column lines up like a real one. The display moment is the lot count set huge and in words — "SIXTEEN LOTS, ONE PHONE NUMBER" — with the number word swapping live from the stepper (four → forty-eight, all in words).

The Scheme Ledger

Techniques

Pricing model (per lot, per year, GST inclusive)

LineRateRule
Villas & townhouses (survey-strata)$260 / lot / yrManagement fee = billed lots × rate. Billed lots = max(actual, 6): a 4-lot scheme prints "billed at the 6-lot minimum"; at 6 lots no note. The minimum applies to the management line only.
Low-rise apartments (walk-up)$320 / lot / yr
Mid-rise apartments (lift & pool)$380 / lot / yr
After-hours emergency line+$8 / lot / yr× actual lots, never the billed minimum (4 lots = $32).
10-year maintenance plan+$1,100 one-offLocked ON at ≥10 lots (WA Strata Titles Act). Live below 10, default off. Stepping back under 10 restores the owner's prior choice.
Building insurance valuation+$550 one-offLive at every combination.
Extra meetings, by-law reviews, disputesPriced by the hourly schedule in the agreement — no figure printed (a designed price-less line, shown wherever the total is).

Worked examples — measured from the running page against an independent oracle

ScenarioAnnualOne-offNotes
Rest: low-rise, 16 lots, plan (locked), emergency on$5,248$1,10016×320 + 16×8; badge shows both lines
Mid-rise, 24 lots, emergency + valuation$9,312$1,6509,120 + 192; 1,100 + 550
Villas, 8 lots, nothing on$2,080badge line 2 absent; plan live → step to 10 locks ON ($2,600 + $1,100) → back to 8 restores OFF
Villas, 4 lots$1,560billed at 6 + note; 6 lots = $1,560, no note; + emergency at 4 lots = $1,592
Grid floor$1,560"villa schemes from $1,560 a year ($260 a lot, 6-lot minimum)"

The verification harness sets the full control vector for every scenario, then sweeps every scheme × {4, 6, 8, 10, 12, 24, 48} lots × every toggle state (168 cells) against the oracle, plus stepper bounds, keyboard radio navigation, a rapid-fire 24-click drive with no settle, the stamp's opacity floor, and the settled lit-lot count. 250+ asserts, zero spec corrections — every worked figure landed exactly.

Conversion decisions

Local SEO we'd implement for the real business

The demo page ships only WebPage/WebSite/BreadcrumbList schema naming it a demonstration — fictional business data must not enter a real index. For a real strata firm we'd ship ProfessionalService (the exact schema.org organisation subtype for a management firm — not bare LocalBusiness, and not a specialty enumeration) with genuine NAP, hours, area served, the offer catalogue and real, consented reviews:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ProfessionalService",
  "name": "Northline Strata Management",
  "url": "https://www.example-strata.com.au/",
  "telephone": "+61 8 9000 0338",
  "email": "hello@example-strata.com.au",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "[real street address]",
    "addressLocality": "Joondalup",
    "addressRegion": "WA",
    "postalCode": "6027",
    "addressCountry": "AU"
  },
  "geo": { "@type": "GeoCoordinates", "latitude": -31.745, "longitude": 115.766 },
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
    "opens": "08:30", "closes": "17:00"
  }],
  "areaServed": ["Joondalup","Currambine","Clarkson","Butler","Alkimos","Kingsley","Hillarys","Wanneroo","Perth"],
  "priceRange": "$$",
  "memberOf": { "@type": "Organization", "name": "Strata Community Association (WA)" },
  "hasOfferCatalog": {
    "@type": "OfferCatalog",
    "name": "Strata management services",
    "itemListElement": [
      { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Villa & townhouse scheme management" }, "priceSpecification": { "@type": "UnitPriceSpecification", "price": "260", "priceCurrency": "AUD", "unitText": "per lot per year" } },
      { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Low-rise apartment scheme management" }, "priceSpecification": { "@type": "UnitPriceSpecification", "price": "320", "priceCurrency": "AUD", "unitText": "per lot per year" } },
      { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "10-year maintenance plan" }, "price": "1100", "priceCurrency": "AUD" }
    ]
  },
  "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.9", "reviewCount": "[real count]" },
  "review": [{
    "@type": "Review",
    "author": { "@type": "Person", "name": "[real, consented reviewer]" },
    "reviewRating": { "@type": "Rating", "ratingValue": "5" },
    "reviewBody": "[real review text]"
  }]
}
</script>

Alongside: a Google Business Profile at the real office, suburb-level service pages for the corridor (Joondalup, Clarkson, Alkimos), the "changing strata managers in WA" explainer as a ranking page, and FAQPage markup on the real FAQ.

What changes for the real client

Iteration log

Pass 1 — Craft

  • The first render fitted the plan to its bounding box including the world-unit text labels (default 16-unit glyphs), which shrank the scheme to a thumbnail with all labels piled at the centre. Fit now uses geometry only; labels are appended after the transform at 10.5 px-equivalent world size.
  • The levy notice's header rules (.n-head b/span {display:block}) leaked into the price badge's <b>/<span> and stacked "$5,248 / a year / + / $1,100 / one-off" on five lines. Scoped the title styles to .n-title; badge reads two lines as specified.
  • Badge moved from absolute-over-the-header (it covered the notice title in the narrow desktop column) into the header row as a flex item, with a 1.5° tilt so it reads as a sticker on the notice, and the notice title shortened to "Levy notice · Proposal · Northline Strata, Joondalup".
  • Hero tightened (h1 max 2.3rem, wider sub measure) so the plan and badge sit inside the first 750px at 1200 — measured: SVG top and badge top both under 750.
  • Contrast measured for every token pair (table above); base teal cleared 4.5:1 for buttons and links, so the pre-minted pair is used for hover/accent type only.

Pass 2 — Depth

  • Villas at 40–48 lots drew as two 24-unit rows — a thin sliver with the entry labels colliding. Rewrote the villa layout as blocks of up to sixteen (two rows of eight facing a shared drive), extra blocks stacking behind with a tree between; the "shared drive" label moved to the drive mouth, letterboxes and bin store to the entry end.
  • Added the second-read detail: at eight lots the stepper note says "Two more lots and the 10-year plan becomes a legal requirement" — and at ten the toggle locks with the Act quoted; stepping back restores whatever the owner had chosen (both restore directions asserted).
  • Scheme chips gained arrow-key radio navigation; the toggle switch tracks got a proper 44×26 thumb; the lot count in words swaps as a live region.
  • Stamp copy tightened to fit inside the inner ring ("MANAGED / NORTHLINE · WA"), and the low-rise letterbox label moved off the letterbox box.

Pass 3 — Hardening

  • 375 masthead checked first: wordmark right edge vs the call link's left edge, no collision; the "Strata Management" descriptor hides under 640px. Above the fold at 375: eyebrow, h1, sub, both CTAs and the trust chips.
  • Label-collision sweep at native resolution: the stamp sat over the notice's "Total" and includes lines in the stacked mobile layout — the includes paragraph now reserves a 92 px right gutter and the stamp lives in that corner at every width. The badge is asserted not to overlap the plan SVG at 375 (tight variant under 480px).
  • 375 controls: the add-on rows squeezed their labels into a four-word column beside a nowrap price; under 560px the price now drops beneath the label (switch · label · price on two rows), and the low-rise "letterboxes" label that clipped at the plan's left edge was re-anchored to the right of its box.
  • Reduced motion: lots render lit immediately, the stamp is pressed and still, entrance transitions off; asserted under an emulated media feature. Stamp loop clamps dt at zero and 50 ms and pauses when hidden.
  • Rapid-fire drive (24 dispatched clicks in one evaluate, three rounds) settles to a plan whose lit count equals the state's lot count and whose figure matches the oracle — the handler-side token bump holds.
  • No backdrop-filter anywhere; header, sticky bar and cards are solid. Guide tables sit in .table-scroll; both pages measured at 375 with no horizontal overflow; one h1 each; zero console errors on both.
  • Chanel rule: removed a hint "ridge" polygon on the villa roofs that was drawing a stray zero-area shape, and cut the notice's phone/address block from the header (it's in the footer NAP) so the header holds only title + badge.