News
Club Championship 2025 Results
John Smith retained his title in a dramatic final day at Binny, finishing two clear of the field with a course record 67.
Read moreDesign System
Components, design tokens, and patterns for a fast, accessible, and consistently branded web presence. Each component has 2–3 layout variations documented below.
A golf-inspired palette rooted in parkland greens and estate gold. All text/UI colour pairs meet WCAG 2.1 AA (4.5:1 minimum for normal text; 3:1 for large text and UI components).
Green 900
#0c1f14
On white: 17.1:1 ✓
Green 800
#1a3826
On white: 12.4:1 ✓
Green 700
#26543a
On white: 8.2:1 ✓
Green 600
#326e4c
On white: 5.4:1 ✓
Green 500
#469664
On white: 3.6:1 (large only)
Green 100
#ddeee5
Tint background
Gold 600
#b8831e
On white: 4.8:1 ✓
Gold 500
#cc9628
On #1a3826: 5.5:1 ✓
Gold 400
#dda840
Focus ring colour
Gold 100
#f9edcc
Notice background
Neutral 900
#1a1714
On cream: 15.9:1 ✓
Neutral 700
#44403b
On cream: 7.8:1 ✓
Neutral 500
#78736c
On cream: 4.7:1 ✓
Neutral 200
#d8d3ca
Border colour
Neutral 100
#ede8e0
Subtle background
Neutral 50
#f5f2ec
Page background
Cormorant Garamond (serif, display) for headings — heritage and authority. DM Sans (humanist sans) for body text — readable at any size. Minimum body size 16px. Line height 1.6 for body text.
Lead paragraph — used after a section heading for introductory text with generous line height.
Body text — the default paragraph size. Binny Golf Club was founded in 2002 and officially opened by Bernard Gallacher on a beautiful day in West Lothian.
Small text — used for card excerpts, labels, and supporting copy.
Text link — underlined, transitions to a lighter green on hover. Always has visible focus indicator.
4px base unit. Consistent spacing tokens used throughout all components via CSS custom properties.
Plain semantic HTML. Desktop: logo + horizontal nav + CTA. Mobile: logo + hamburger → slide-out drawer. Full keyboard navigation and focus management handled by js/main.js. Copy the canonical markup from includes/site-header.html when adding a new page.
.site-header--sticky .site-header--compact to <header>
.header-cta-strip block before <header>
Course Open — Good to Excellent · 01506 000000
Full-width section at the top of a page. Use a <section> element with the appropriate class. Scroll-triggered animation is handled by js/main.js.
West Lothian's Hidden Gem
Nine holes of parkland perfection in the historic Binny Estate, Ecclesmachan. Open to visitors every day.
Membership Open
Full, junior, senior, and season ticket options. Transparent pricing. Apply online today.
The Course
Parkland setting with mature trees, natural hazards, and two sets of tees making it suitable for all levels.
Content cards for news, hole guides, and feature content. Use a semantic <article> element. Whole-card clickability via data-href is handled by js/main.js.
News
John Smith retained his title in a dramatic final day at Binny, finishing two clear of the field with a course record 67.
Read moreThe Course
Par 4, 378 yards. A demanding tee shot over the burn requires accuracy before a tight approach to a well-protected green.
Hole guideMembership
Friendly atmosphere, competitive green fees, and a course that rewards every level of golfer. See what membership means.
Explore benefitsAbout Us
Founded in 2002 and officially opened by Ryder Cup legend Bernard Gallacher, Binny Golf Club sits in the historic grounds of Binny Estate — a story no competitor tells quite like we can.
Read our storyAll buttons use class .binny-btn plus a variant modifier. Minimum touch target 44×44px. Works on <a>, <button>, and within <binny-button>.
Structured text section with eyebrow label, title, gold rule, optional lead, body copy, and action buttons. Use a <div class="binny-text-block"> element. Fade-in animation handled by js/main.js.
The Course
Nine holes set within the historic Binny Estate, with mature trees, natural hazards, and stunning views across the Lothians.
Built in 2002, the course was designed to make the most of the natural contours and woodland of Binny Estate. Every hole presents a different challenge, rewarding both accuracy and length.
Latest News
Competitions, course updates, and club announcements — all in one place.
Bernard Gallacher
When Bernard Gallacher officially opened Binny Golf Club in 2002, he called it "one of the most beautifully situated courses in Scotland." We haven't stopped proving him right.
The Binny Estate has a history stretching back centuries, and the course is designed to complement — never overwhelm — its surroundings.
Three list styles. Use the inner <ul> or <dl> directly — no outer wrapper element needed.
Use <div class="binny-form"> wrapping a standard <form>. Live validation with ARIA error messaging is handled by js/main.js. All inputs have visible labels and 44px touch targets. Three layout variants.
Used for green fees, scorecard data, and competition results. Wrap the <table> in <div class="binny-table-wrapper"> for horizontal-scroll support. The scroll hint is added automatically by js/main.js. Three variants.
| Category | Weekday | Weekend | Twilight |
|---|---|---|---|
| Visitor (18 holes) | £20.00 | £24.00 | £14.00 after 4pm |
| Junior (under 18) | £10.00 | £12.00 | £8.00 |
| Senior (65+) | £16.00 | £20.00 | £12.00 |
| Society (per head) | £28.00 includes catering | £32.00 | — |
| Buggy hire | £18.00 | £18.00 | £12.00 |
| Membership Type | Annual Fee | Joining Fee | Notes |
|---|---|---|---|
| Full membership | £680 | £100 | All competitions included |
| Senior (65+) | £560 | £100 | All competitions included |
| Junior (under 18) | £195 | None | Under 12: £120 |
| Season ticket | £320 | None | Casual play, no competitions |
| Country (50+ miles) | £380 | £100 | Proof of residence required |
| Hole | Yards (Yellow) | Yards (Red) | Par | SI |
|---|---|---|---|---|
| 1 | 356 | 301 | 4 | 7 |
| 2 | 148 | 118 | 3 | 17 |
| 3 | 378 | 330 | 4 | 5 |
| 4 | 436 | 380 | 4 | 1 |
| 5 | 165 | 130 | 3 | 15 |
| Out (1–5) | 1483 | 1259 | 18 |
Use <div class="binny-map"> with a nested <div class="binny-map__frame">. Use data-src instead of src on the iframe — lazy-loading is handled automatically by js/main.js when the map scrolls into view.