diff --git a/src/components/ServiceCard.module.css b/src/components/ServiceCard.module.css index 1e10c6c..8d7c7f1 100644 --- a/src/components/ServiceCard.module.css +++ b/src/components/ServiceCard.module.css @@ -13,3 +13,16 @@ .card:hover { transform: translateY(-6px) rotateX(2deg); } + +.image { + width: 100%; + aspect-ratio: 4 / 3; + object-fit: cover; + border-radius: 3px; + margin-bottom: var(--space-sm); + transition: transform 0.3s ease; +} + +.card:hover .image { + transform: scale(1.05); +} diff --git a/src/components/ServiceCard.test.tsx b/src/components/ServiceCard.test.tsx index 9e2d8c4..5ca8772 100644 --- a/src/components/ServiceCard.test.tsx +++ b/src/components/ServiceCard.test.tsx @@ -15,6 +15,7 @@ describe('ServiceCard', () => { expect(screen.getByText('Knotless Braids')).toBeInTheDocument() expect(screen.getByText(/from \$150/i)).toBeInTheDocument() expect(screen.getByText('4h')).toBeInTheDocument() + expect(screen.getByRole('img', { name: 'Knotless Braids' })).toHaveAttribute('src', '/x.jpg') }) it('calls onSelect with the service id when clicked', async () => { diff --git a/src/components/ServiceCard.tsx b/src/components/ServiceCard.tsx index 8ffeb90..de3e6de 100644 --- a/src/components/ServiceCard.tsx +++ b/src/components/ServiceCard.tsx @@ -15,6 +15,7 @@ function formatDuration(minutes: number): string { function ServiceCard({ service, onSelect }: ServiceCardProps) { return (