A state-of-the-art, premium bilingual (English & Greek) website for Dr. Angelo Moshopoulos' Dental Implants & Aesthetics Clinic located in Paleo Faliro, Greece. Built on vanilla HTML, vanilla Javascript, and a modern compiled Tailwind CSS v4 design system.
- Refined Aesthetics: The entire website features a soothing, premium medical-grade slight green-teal tint (
mist) at the top of each page that fades smoothly down into an elegant, warm-white off-white canvas. - Glow Gradients: Visual highlights and headers start with a soft light-cream glow at the top, transitioning down into the sage-green page bodies.
- Porcelain Veneers & Teeth Whitening: Clean, split-column presentation blocks featuring premium typography, Dynamic Badges, and high-quality imagery.
- Clear Aligners: High-impact, copy-writer approved intro section detailing invisible orthodontics.
- Responsive Layouts: Interactive links and buttons are rigidly sized to prevent layout shift when toggling languages.
- Fully centralized dictionary-based i18n manager that dynamically renders Greek (EL) and English (EN) variants on-click with zero page reloads.
- Uses standard
data-i18nattributes on target DOM elements for immediate visual updates.
- Before/After Image Sliders: Slide handle dragging for comparative clinical outcomes.
- FAQ Accordions: Smooth, custom animated drop-down question modules.
- Responsive Navigation: Mobile sidebar drawer menus and dedicated appointment modal overlays.
- Social Footers: Unified modern vector (SVG) social icons that scale beautifully on hover.
- 100% WebP Media: All clinical photos, blog graphics, and brand assets are optimized in
.webpformat, dramatically accelerating page load speeds. - Optimized Assets: The entire public site footprint is reduced to just 9.6 MB, ensuring minimal resource consumption and compatibility with lightweight hosting plans.
- Bilingual Assistant: Integrates an interactive patient assistant widget that answers clinical, booking, and contact inquiries in both Greek and English.
- Secure Backend API Proxy: Employs a PHP proxy script (
api/chat.php) to route requests securely to the Google Gemini API, protecting secrets and injecting customized system instructions.
βββ about.html # Doctor profile page
βββ aesthetics.html # Cosmetic dentistry page (Whitening & Veneers)
βββ clear-aligners.html # Invisible orthodontics page
βββ implants.html # Premium dental implants page
βββ oral-surgery.html # Advance oral surgery page
βββ index.html # Homepage
βββ blog.html # Blog hub
βββ booking.html # Booking success & tracking page
βββ contact.html # Contact details & MAP
βββ article-*.html # Six full-page dental learning resources
βββ article/ # Standalone news articles generated by the blog bot
β βββ news-*.html
βββ api/
β βββ chat.php # PHP backend proxy securely routing to Gemini API
βββ css/
β βββ input.css # Source styles & Tailwind v4 theme variables
β βββ output.css # Compiled style utilities
βββ js/
β βββ i18n.js # Central bilingual dictionary and switch logic
β βββ main.js # Interactive core layout & navbar triggers
β βββ chatbot.js # Gemini-powered interactive patient assistant
β βββ blog.js # Dynamic blog rendering pipeline
β βββ booking.js # Appointment modal orchestration
βββ assets/images/ # Core brand media, SVGs, and visuals
βββ images/ # Media assets
β βββ blog/ # Localized and WebP-optimized blog images
βββ data/posts.json # Blog post database
βββ package.json # Compile scripts and dev dependencies
βββ .gitignore # Local workspace clean rulesTo compile style sheets locally, ensure you have Node.js installed, then follow these commands:
npm installTo automatically compile and bundle all utility styles from css/input.css into css/output.css:
npm run build:cssAll copy on the site is centralized in js/i18n.js.
To add or update text:
- Locate the dictionary in
js/i18n.js. - Add your translation key and value in the Greek section (
el: { ... }) and the English section (en: { ... }). - Bind the key to the HTML markup using the
data-i18nattribute:
<span data-i18n="your_translation_key">Default Greek fallback text</span>The blog posts and their corresponding media assets are managed by the sibling dental-blog-bot agent pipeline.
- Bilingual Post Drafts: Scrapes dental news journals, generating high-quality clinical translations (Greek/English).
- Local Image Localization & WebP Optimization: External hotlinked images are automatically downloaded, optimized to
.webpformat at quality85usingPillow, saved toimages/blog/, and converted to clean local paths. - Structured SEO & JSON-LD: Automatically injects OpenGraph headers, Twitter cards, canonical tags, dynamic multilingual title switches, and schema.org
BlogPostingJSON-LD data to every generated standalone page.