A modern, responsive landing page for Taxipoint, a taxi service operating 24/7 across the Netherlands. Built with vanilla HTML, CSS, and JavaScript β optimized for GitHub Pages deployment.
- Multi-language Support β Dutch (NL), English (EN), and Spanish (ES) with instant language switching
- Dark/Light Theme β Toggleable theme with system preference detection and localStorage persistence
- Responsive Design β Mobile-first layout with hamburger menu for smaller screens
- Booking Form β Contact form with car preference pre-selection from vehicle cards
- Zero Dependencies β Pure HTML, CSS, and vanilla JavaScript
- Optimized Loading β Minimal assets, no external frameworks
- SEO Ready β Complete meta tags, Open Graph, Twitter Cards, and JSON-LD structured data
- Accessible β Semantic HTML, ARIA labels, and reduced-motion support
- Sticky Header β Navigation stays visible with blur effect
- Smooth Interactions β CSS transitions for theme changes and hover states
- Print Styles β Optimized layout for printing contact information
- Custom 404 Page β Branded error page for GitHub Pages
getataxi/
βββ index.html # Main landing page
βββ 404.html # Custom 404 error page
βββ README.md # Project documentation
βββ script/
β βββ script.js # Language switching, theme toggle, form handling
βββ style/
βββ styles.css # All styles including dark theme and print styles
| Technology | Purpose |
|---|---|
| HTML5 | Semantic markup |
| CSS3 | Styling, CSS variables, Grid, Flexbox |
| JavaScript (ES6+) | Interactivity, i18n, theme management |
| GitHub Pages | Hosting |
- A modern web browser
- Git (for cloning)
- A code editor (VS Code recommended)
-
Clone the repository
git clone https://github.com/robinslevel/getataxi.git cd getataxi -
Open in browser
Simply open
index.htmlin your browser, or use a local server:# Using Python python -m http.server 8000 # Using Node.js (npx) npx serve # Using VS Code # Install "Live Server" extension and click "Go Live"
-
View the site
Navigate to
http://localhost:8000(or the port shown)
- Push your code to GitHub
- Go to your repository β Settings β Pages
- Under "Source", select Deploy from a branch
- Choose
mainbranch and/ (root)folder - Click Save
- Your site will be live at
https://<username>.github.io/getataxi/
The site works out of the box with GitHub Pages. No build step required.
Edit the CSS variables in style/styles.css:
:root {
--primary: #2563eb; /* Main brand color */
--primary2: #22c55e; /* Secondary/accent color */
--bg: #f6f7fb; /* Light theme background */
--surface: #ffffff; /* Card backgrounds */
--text: #0f172a; /* Main text color */
}
:root[data-theme="dark"] {
--bg: #0b1220; /* Dark theme background */
--surface: #0f1a30; /* Dark card backgrounds */
--text: #e5e7eb; /* Dark theme text */
}Edit the translations object in script/script.js:
const translations = {
nl: {
hero_title: "Taxi in Nederland",
// ... add more keys
},
en: {
hero_title: "Taxi in the Netherlands",
// ... add more keys
},
// Add new language
de: {
hero_title: "Taxi in den Niederlanden",
// ...
}
};Then add the language button in index.html:
<button class="lang__btn" type="button" data-lang="de" aria-label="Deutsch">DE</button>Search and replace these values in index.html:
- Phone:
+31203586204 - Email:
info@taxipoint.nl - WhatsApp:
wa.me/31203586204
Also update the JSON-LD structured data in the <head> section.
Replace the placeholder in the hero section:
<!-- Before -->
<div class="media-card" role="img" aria-label="Taxi afbeelding placeholder">
<p>Jouw hero afbeelding komt hier</p>
</div>
<!-- After -->
<img
src="images/hero.jpg"
alt="Taxipoint taxi service"
class="hero__image"
loading="lazy"
/>| Browser | Supported |
|---|---|
| Chrome | β Latest 2 versions |
| Firefox | β Latest 2 versions |
| Safari | β Latest 2 versions |
| Edge | β Latest 2 versions |
| IE11 | β Not supported |
This site follows WCAG 2.1 guidelines:
- Semantic HTML structure
- ARIA labels on interactive elements
- Keyboard navigation support
- Focus visible indicators
- Reduced motion support (
prefers-reduced-motion) - Sufficient color contrast ratios
- Skip links and logical heading hierarchy
Main landing page containing:
- Top bar with contact info and language switcher
- Sticky header with navigation
- Hero section with CTAs
- Service cards
- Vehicle showcase
- Popular routes
- FAQ accordion
- Contact form with direct contact card
- Footer
Custom error page for GitHub Pages with:
- Branded design matching main site
- Dark mode support via CSS media query
- Quick links to contact options
JavaScript functionality:
translationsobject β All UI strings in NL/EN/ESapplyLanguage()β Switches language and updates DOM- Theme toggle with localStorage persistence
- Mobile menu toggle
- Car pre-selection for booking form
- Form submission handler (placeholder)
Complete styling including:
- CSS custom properties (variables) for theming
- Light and dark theme definitions
- Component styles (cards, buttons, forms)
- Responsive breakpoints
- Print stylesheet
- Accessibility enhancements
The booking form currently shows an alert on submission. To integrate with a backend:
<form action="https://formspree.io/f/YOUR_FORM_ID" method="POST">bookingForm.addEventListener("submit", (e) => {
e.preventDefault();
const data = new FormData(bookingForm);
const text = `Nieuwe aanvraag:\nNaam: ${data.get('name')}\nTel: ${data.get('phone')}\nVan: ${data.get('pickup')}\nNaar: ${data.get('destination')}\nDatum: ${data.get('date')} ${data.get('time')}`;
window.open(`https://wa.me/31203586204?text=${encodeURIComponent(text)}`);
});bookingForm.addEventListener("submit", (e) => {
e.preventDefault();
const data = new FormData(bookingForm);
const subject = `Taxi aanvraag - ${data.get('name')}`;
const body = `Van: ${data.get('pickup')}\nNaar: ${data.get('destination')}\nDatum: ${data.get('date')} om ${data.get('time')}`;
window.location.href = `mailto:info@taxipoint.nl?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;
});This project is licensed under the MIT License β see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Taxipoint
- π Phone: +31 20 358 6204
- π¬ WhatsApp: wa.me/31203586204
- βοΈ Email: info@taxipoint.nl
Made with β€οΈ for reliable taxi service in the Netherlands