Component Organization
The Adosa Real Estate website is built with reusable Astro components organized into two main categories:Core Components
Core layout and navigation components located insrc/components/:
- Navigation - Fixed header with language switcher and mobile menu
- Footer - Site footer with links and contact information
- Loader - Initial page loading animation
- GlobalBackground - Background styling wrapper
- ScrollGallery - Image gallery with scroll effects
- ShareButtons - Social media sharing buttons
- EmptySection - Placeholder section component
Property Components
Specialized components for property listings and details located insrc/components/properties/:
- PropertyGrid - Property listing grid with filters and sorting
- PropertyDesktop - Desktop property detail view with zipper layout
- PropertyMobile - Mobile property detail view with drawer
- PropertyMap - Interactive Leaflet map component
- ContactProperty - Property contact form
- FloatingContactBtn - Floating contact button (desktop only)
- PropertyPrint - Print-friendly property view
Importing Components
All components are Astro components (.astro files) and can be imported using standard ES module syntax:
Component Props
Most components accept props for customization. Common patterns:- Language Support
- Property Data
Styling Approach
Components use scoped styles with CSS custom properties:Design Tokens
--font-heading- Heading font (titles, navigation)--font-body- Body text font--color-1- Primary background (beige/cream)--color-2- Secondary color--color-3- Accent color (gold)--color-4- Text color (dark)--height-nav- Navigation height (90px)--spacing-container- Container padding
Interactive Features
Many components include client-side interactivity:- GSAP animations - Smooth scroll and entrance animations
- Leaflet maps - Interactive property location maps
- Custom dropdowns - Styled select components with glassmorphism
- Form handling - Contact form submission with validation
- Responsive behavior - Mobile-first design with breakpoints
Responsive Design
Components are designed mobile-first with responsive breakpoints:768px- Tablet/mobile transition900px- Desktop features1023px- Navigation mobile menu
Next Steps
Navigation Component
Learn about the header navigation and language switcher
Property Components
Explore property listing and detail components
Footer Component
Customize the site footer
Loader Component
Configure the loading animation