4. Design and Build
Transform your plans into a working website
Design System Setup
A design system ensures consistency across your website. Key elements include:
- Typography scale
- Color palette
- Spacing units
- Component library
Example with Tailwind CSS:
// tailwind.config.ts
export default {
theme: {
extend: {
colors: {
primary: {
50: '#f0f9ff',
500: '#0ea5e9',
900: '#0c4a6e',
},
// ... other colors
}
}
}
}Component Development
Break down your design into reusable components. Common components include:
- Navigation bars
- Cards and content containers
- Forms and input fields
- Buttons and interactive elements
Example Component:
// ServiceCard.tsx
interface ServiceCardProps {
title: string
description: string
price: string
imageUrl: string
}
export function ServiceCard({
title,
description,
price,
imageUrl
}: ServiceCardProps) {
return (
<div className="rounded-lg border p-4 space-y-4">
<img
src={imageUrl}
alt={title}
className="w-full h-48 object-cover rounded"
/>
<h3 className="text-xl font-bold">{title}</h3>
<p className="text-gray-600">{description}</p>
<p className="text-lg font-bold">{price}</p>
<button className="w-full bg-primary-500 text-white py-2 rounded">
Book Now
</button>
</div>
)
}Responsive Design
Ensure your website works well on all devices using:
- Flexible grids
- Media queries
- Fluid typography
- Mobile-first approach
Example Grid Layout:
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
{services.map(service => (
<ServiceCard key={service.id} {...service} />
))}
</div>Test Your Knowledge
Complete the quiz to track your progress
What is the main benefit of using a design system?