# Assets Directory
This directory contains all static assets for the Xpeditis frontend application.
## Directory Structure
```
public/assets/
├── images/ # General images (hero banners, backgrounds, photos)
├── logos/ # Company logos and branding assets
└── icons/ # UI icons and small graphics
```
## Usage in Components
### Next.js Image Component (Recommended)
```tsx
import Image from 'next/image';
export function Hero() {
return (
);
}
```
### Logo Usage
```tsx
import Image from 'next/image';
export function Header() {
return (
);
}
```
### Icons
```tsx
// SVG icons can be imported directly
import ShippingIcon from '@/public/assets/icons/shipping-icon.svg';
export function FeatureCard() {
return (
Fast Shipping
);
}
// Or use Image component
import Image from 'next/image';
export function IconButton() {
return (
);
}
```
## File Naming Conventions
### Images
- Use kebab-case: `hero-banner.jpg`, `shipping-container.png`
- Include descriptive names: `maritime-port-sunset.jpg`
- Use appropriate formats:
- Photos: `.jpg` (compressed, smaller file size)
- Graphics with transparency: `.png`
- Simple graphics/illustrations: `.svg`
### Logos
- Main logo: `xpeditis-logo.svg`
- Dark mode variant: `xpeditis-logo-dark.svg`
- Light mode variant: `xpeditis-logo-light.svg`
- Icon only: `xpeditis-icon.svg`
- Favicon sizes: `favicon-16x16.png`, `favicon-32x32.png`
### Icons
- Use `.svg` format for scalability
- Name by function: `tracking-icon.svg`, `dashboard-icon.svg`
- Keep icons monochrome (colorize via CSS)
## Optimization Guidelines
### Image Optimization
1. **Compress images** before adding to repository
- Use tools like TinyPNG, ImageOptim, or Squoosh
- Target: < 200KB for hero images, < 50KB for thumbnails
2. **Use appropriate dimensions**
- Hero banners: 1920x1080px
- Thumbnails: 400x300px
- Profile images: 200x200px
3. **Leverage Next.js Image Optimization**
- Always use `` component instead of `
`
- Specify `width` and `height` props
- Use `priority` for above-the-fold images
- Use `loading="lazy"` for below-the-fold images
### SVG Optimization
- Remove unnecessary metadata with SVGO
- Keep viewBox attribute for proper scaling
- Use currentColor for icons to inherit text color
## Example Assets for Xpeditis
### Recommended Images
- `hero-container-ship.jpg` - Homepage hero banner
- `tracking-dashboard.png` - Dashboard screenshot
- `team-photo.jpg` - About us page
- `port-operations.jpg` - Services page
- `global-map.svg` - Shipping routes visualization
### Recommended Icons
- `container-icon.svg` - Container/booking icon
- `ship-icon.svg` - Shipping/tracking icon
- `document-icon.svg` - Documentation icon
- `clock-icon.svg` - Transit time icon
- `location-icon.svg` - Port location icon
- `notification-icon.svg` - Alerts/notifications
- `user-icon.svg` - User profile
- `settings-icon.svg` - Settings/preferences
## Adding New Assets
1. **Check file size** - Ensure images are optimized
2. **Use correct directory** - images/ for photos, logos/ for branding, icons/ for UI
3. **Follow naming convention** - kebab-case, descriptive names
4. **Update this README** - Document any special assets or usage patterns
5. **Test responsiveness** - Verify assets look good on mobile and desktop
## CDN Considerations (Future)
For production, consider moving to a CDN:
- AWS S3 + CloudFront
- Cloudinary
- Vercel Image Optimization (automatic with Next.js)
Current setup serves from `/public` which is fine for development and small-scale production.
## License & Attribution
Ensure all assets have proper licensing:
- Company logos: Internal use approved
- Stock photos: Properly licensed (e.g., Unsplash, Pexels)
- Icons: Open source (e.g., Heroicons, Lucide) or purchased license
Document attributions in `/public/assets/ATTRIBUTIONS.md` if required.