Updated 2025-09-19
- Newsletter submits via fetch without navigation; onsubmit guard prevents accidental redirects if JS fails
- Scrollβspy active nav highlighting implemented (hero, details, applications, 2024-recap, contact)
- Deployment: Live at https://ableorg.ca/ (flyer slider + link) and https://ableorg.ca/gala2025/ (promo site). No separate production folder; deploy directly from this projectβs files.
- Live OG/Twitter URLs point to https://ableorg.ca/gala2025
- Tickets links use the official Membee deep link
- Navigation: Home, Event, Tickets, Applications, Newsletter, EN | FR
- Hero redesigned: three-logo row (Toronto Police, ABLE, TPA) with subtle rings; centered date block
This is a professional landing page for The Association of Black Law Enforcers (A.B.L.E.) 2025 Annual Gala, featuring a bilingual (English/French) design with integrated ticket sales functionality.
- Navigation on the primary site uses [Home, About Us, Membership, Events, Contact].
- βEventsβ is a dropdown with:
- Calendar β /events/index.html
- Career Fair β https://ableorg.local/events/index.html#id=113&cid=1852&wid=801
- Gala β /gala2025/index.html
- New page: /events/index.html embeds the Membee calendar (see Docs/Membee Embedded.md).
- Shared JS: /assets/site.js powers the primary siteβs mobile menu (do not include gala2025/assets/app.js on primary pages).
- Homepage: hero slider shows thankβyou posters and the CTA is βExplore Eventsβ linking to /events/index.html.
- Legacy URL bridge: /index.php/event-calendar redirects to /events/index.html and preserves the hash via JS; keeps previously shared short links working.
Event Details:
- Event: A.B.L.E 33rd Annual Scholarship and Awards Gala
- Theme: "Strength Through Struggle: A Journey of Perseverance and Endurance"
- Date: Saturday, November 1, 2025 (6:00pm β 1:00am)
- Location: Automotive Building β Exhibition Place, 105 Princes' Blvd, Toronto
- Tickets: $150; Table of Ten: $1,500; Cocktails: 6:00pm
- Hashtags: #ABLEGala2025 #Unity #Strength #Excellence
- β Responsive Design - Mobile-first approach with Tailwind CSS
- β Bilingual Support - Functional EN/FR language toggle
- β Ticket Sales Integration - Ready for Eventbrite or custom ticketing
- β Professional Branding - ABLE logo integration and gold/black theme
- β Accessibility - WCAG compliant with proper focus states and alt text
- Header - Logo, nav (Home, Event, Tickets, Applications, Newsletter), language toggle (desktop) + mobile hamburger menu
- Hero - Event branding with three logos row (Toronto Police, ABLE, TPA), centered βNov 1, 2025 / Save the Dateβ in a subtle gold card, primary CTAs
- Event Details - Bilingual event information incl. pricing/time/venue
- Applications - Awards and Scholarship application CTAs and links
- 2024 Recap - Video player with bilingual copy and stats
- Newsletter - Email signup and contact links
- Footer - Organization info and legal details
- All public CTAs point to Membee deep link: tickets.html#id=112&display=list&cid=1852&wid=801
- Pricing/tiers are managed within Membee; remove this section if not needed in the static site
- Framework: Vanilla HTML/CSS/JavaScript (no build process)
- Styling: Tailwind CSS (via CDN)
- Fonts: Google Fonts (Inter + Playfair Display)
- Hosting: MAMP local server (port 80)
- Assets: /assets for images, video, JS (app.js, site.js) and CSS (app.css)
tailwind.config = {
theme: {
extend: {
colors: {
'ablegold': '#D4AF37',
'abledark': '#0B0F19'
},
fontFamily: {
'sans': ['Inter', 'ui-sans-serif', 'system-ui'],
'display': ['Playfair Display', 'ui-serif', 'Georgia']
}
}
}
}/Users/anthony/Sites/ableorg.ca/
βββ index.html # Main landing page
βββ index.php # Legacy redirect shim (/index.php/event-calendar β /events/index.html)
βββ awards.html # Awards application page
βββ scholarship.html # Scholarship application page
βββ tickets.html # Tickets page (Membee embed)
βββ newsletter.php # Newsletter backend
βββ assets/ # All media and app code
βΒ Β βββ able_logo.png
βΒ Β βββ hero_bg.jpeg
βΒ Β βββ Toronto-Police.png
βΒ Β βββ Toronto-Police-Association.png
βΒ Β βββ re-cap_32nd_awards_gala.mp4
βΒ Β βββ event_flyer_en.jpeg
βΒ Β βββ event_flyer_fr.jpeg
βΒ Β βββ app.js # Gala app JS (language toggle, video, newsletter, scrollβspy)
βΒ Β βββ site.js # Primary site mobile menu behavior (shared)
βΒ Β βββ app.css # Optional overrides
βββ events/ # Primary site Events page (Membee calendar)
βΒ Β βββ index.html
βββ Docs/ # Project docs
βββ _backup/ # Local snapshots (ignored by Git)
- Primary Gold:
#D4AF37(ablegold) - Dark Background:
#0B0F19(abledark) - Neutral Grays: Tailwind gray palette
- Accent Colors: Amber variations for hover states
- Headings: Playfair Display (serif, elegant)
- Body Text: Inter (sans-serif, readable)
- UI Elements: Inter with appropriate weights
- Container: max-w-7xl with responsive padding
- Sections: Consistent py-16 sm:py-20 spacing
- Grid: CSS Grid and Flexbox for layouts
- On small screens, the horizontal nav is replaced with a hamburger button.
- Tapping the button reveals a slide-down panel with nav links and EN/FR language toggle.
- The panel animates (opacity/translate) and auto-closes when a link is tapped or on Escape.
- On desktop (sm and up), the full horizontal nav and EN/FR toggle are visible in the header.
The site includes a functional bilingual toggle:
// Language switching functionality
function setLanguage(lang) {
// Updates button states and content visibility
// Supports 'en' and 'fr' language codes
}- Default language: English
- French content marked with
lang-fr-contentclass - English content marked with
lang-en-contentclass - Both languages shown by default, hidden based on selection
- Membee deep link integrated throughout:
tickets.html#id=112&display=list&cid=1852&wid=801 - To change the destination, update the hrefs in index.html and any secondary pages.
- MAMP or similar local server
- Modern web browser
- Ensure MAMP is configured to serve from
/Users/anthony/Sites - Start MAMP on port 80
- Visit
http://localhost/ableorg.ca
The project uses:
- Tailwind CSS from CDN (no build process)
- Google Fonts from CDN
- Local assets from /assets (logo, flyers, video, JS/CSS)
- Live URLs:
- Main site: https://ableorg.ca/ (home page shows bilingual flyer slider linking to gala site)
- Gala site: https://ableorg.ca/gala2025/
- Deployment model: Upload files from this repositoryβs root (no separate production folder). Keep
_backup/local-only and excluded from Git.
- Verify Open Graph/Twitter image URLs point to
https://ableorg.ca/gala2025/assets/og-image.svg - Add analytics (optional)
- Test cross-browser compatibility
- Optimize images for web
- Email newsletter signup integration
- SEO meta tags optimization
- Open Graph image creation
- Sponsorship section
- Event program/schedule section
- Speaker/honoree profiles
- Location: Contact/Newsletter section on index
- Frontend: JavaScript fetch POST prevents navigation; form has
onsubmit="return false"as a guard - Backend:
newsletter.php(PHPMailer if available, else PHPmail()) - CSV backup:
storage/newsletter.csv(auto-created) - Optional reCAPTCHA v3 support (server env
RECAPTCHA_SECRET, clientwindow.RECAPTCHA_SITE_KEY)
- General:
info@ableorg.ca - Tickets:
tickets@ableorg.ca
- Mobile-first responsive design
- Semantic HTML structure
- Proper heading hierarchy
- Alt text for images
- Meta descriptions and titles
- Clean URL structure
- CDN-based assets (Tailwind, Google Fonts)
- Optimized images
- Minimal JavaScript
- Single HTML file architecture
- Hero section (Save the Date, theme, details)
- Event information section
- Contact section headers
- Ticket section headers
Most content can be updated by editing the HTML directly:
- Event date and location
- Ticket pricing and details
- Contact information
- Organization details
- Review and update event details
- Monitor ticket sales integration
- Update contact information as needed
- Refresh social media links and hashtags
- Modern browsers (Chrome, Firefox, Safari, Edge)
- Mobile devices (iOS Safari, Android Chrome)
- Progressive enhancement approach
Project Created: September 7, 2025 Status: Ready for client review and production deployment Next Steps: Client feedback, real content integration, production hosting setup