Shumiland/src/components/blocks/FeaturesBlockComponent.tsx
Vadym Samoilenko cca4ea1d55
Some checks are pending
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
feat: implement full frontend — all sections, components, Figma Code Connect
- All 8 home page sections: Hero, Locations slider, WhyParents accordion,
  Birthday pricing cards, Video, Gallery, Reviews slider, News
- UI components: NavLink, BtnPrimary, BtnGradient, BtnDetails, AccordionItem
- Layout: sticky Header (NavLink + BtnPrimary), Footer with logo
- Figma Code Connect: 5 components published (.figma.tsx + figma.config.json)
- Public assets: all Figma images and SVGs exported
- Pages: /kvytky, /lokatsii, /blog, /dni-narodzhennia, /grupovi-vidviduvannia
- Tests: Vitest unit/api suites, Playwright e2e screenshots
- Payload CMS: blocks, collections, seed data updates
- Hero negative-margin to extend behind sticky header
- Custom Tailwind breakpoints: lg=1440px, xl=1920px
- Fix ESLint config: drop FlatCompat, use eslint-config-next flat export
- Add tsconfig.tsbuildinfo, test-results/, agentdb.rvf* to .gitignore

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-10 16:40:56 +01:00

47 lines
1.6 KiB
TypeScript

interface FeatureItem {
icon?: string | null
title: string
description?: string | null
}
interface FeaturesBlockProps {
title?: string | null
items?: FeatureItem[] | null
}
export function FeaturesBlockComponent({ title, items }: FeaturesBlockProps) {
if (!items?.length) return null
return (
<section className="py-[20px] md:py-[60px] lg:py-[40px]">
<div className="max-w-[1204px] mx-auto px-8">
{title && (
<h2
className="font-bold text-[24px] md:text-[32px] text-[#272727] uppercase mb-[40px] md:mb-[60px]"
style={{ fontFamily: 'var(--font-montserrat, Montserrat), sans-serif' }}
>
{title}
</h2>
)}
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6">
{items.map((item, i) => (
<div key={i} className="bg-[#fdf2e8] rounded-[20px] p-8 shadow-[0_4px_60px_0_rgba(242,139,74,0.25)]">
{item.icon && <div className="text-[40px] mb-4">{item.icon}</div>}
<h3
className="font-bold text-[20px] text-[#272727] mb-2"
style={{ fontFamily: 'var(--font-montserrat, Montserrat), sans-serif' }}
>
{item.title}
</h3>
{item.description && (
<p className="text-[#272727] text-[16px] leading-[1.6]" style={{ fontFamily: 'var(--font-poppins, Poppins), sans-serif' }}>
{item.description}
</p>
)}
</div>
))}
</div>
</div>
</section>
)
}