// Home page \u2014 hero, trust strip, find your branch, seven characters, Nordic approach, programmes, tour CTA.
function Home({ navigate, openTour, tweaks }) {
return (
);
}
// ---------------- Hero ----------------
function Hero({ navigate, openTour, variant }) {
// variants: 'classic' (split with empty-classroom photo), 'clover' (heart-masked photo), 'editorial' (full-bleed sand)
return (
Nordic early-learning, in the UAE since 2014
Nurturing confidence , independence,
and an “I can” mindset — the Scandinavian way.
An authentic Norwegian curriculum, taught through play, in five Dubai branches and one in Abu Dhabi.
We’ve got space, time, and a big heart.
Book a tour
navigate({ name: 'branches' })}>Find your nearest branch
{variant !== 'editorial' && (
{variant === 'clover' ? (
) : (
)}
)}
{variant === 'editorial' && (
Empty classroom \u2014 The Sustainable City
)}
);
}
function HeroClassic() {
return (
{/* Floating quote card */}
“When we play, we learn.”
One of three Dibber learning principles.
{/* Heart motif bubble */}
);
}
function HeroClover() {
// Use SVG clip-path to mask the empty-classroom hero into a soft clover/heart silhouette
return (
);
}
function Tile({ label, value }) {
return (
);
}
// ---------------- Trust strip ----------------
function TrustStrip() {
const items = [
{ k: 'Curriculum', v: 'Authentic Norwegian Rammeplan' },
{ k: 'Regulator', v: 'KHDA-licensed ECCs in Dubai' },
{ k: 'In the UAE', v: 'Since 2014 (formerly CreaKids)' },
{ k: 'Ages', v: '45 days to 6 years' },
{ k: 'Branches', v: '5 Dubai \u00b7 1 Abu Dhabi' },
];
return (
{items.map(({ k, v }) => (
))}
);
}
// ---------------- Find your branch (interactive map-style picker) ----------------
function FindBranch({ navigate, openTour, variant }) {
const [hover, setHover] = useState(BRANCHES[0].id);
const active = BRANCHES.find(b => b.id === hover) || BRANCHES[0];
return (
Six UAE nurseries. Find the one nearest you.}
lead="Each branch has its own personality, its own outdoor spaces, and its own team \u2014 but the same Nordic curriculum, the same Heart Culture, and the same toll-free line."/>
navigate({ name: 'branches' })}>See all branches
{variant === 'list' ? (
) : (
{/* Branch list */}
{BRANCHES.map((b, i) => (
setHover(b.id)}
onClick={() => navigate({ name: 'branch', id: b.id })}
style={{
textAlign: 'left',
padding: '20px 22px',
background: hover === b.id ? 'var(--cream)' : 'transparent',
border: '1.5px solid ' + (hover === b.id ? 'var(--dibber-green)' : 'var(--line)'),
borderRadius: 16,
transition: 'all .15s ease',
display: 'grid', gridTemplateColumns: 'auto 1fr auto', alignItems: 'center', gap: 18,
}}>
{String(i + 1).padStart(2, '0')}
{b.name}
{b.area} \u00b7 {b.city}
{hover === b.id ? 'Visit \u2192' : ''}
))}
Khalifa City A \u2014 Abu Dhabi
Our largest UAE campus \u2014 ADEK-regulated.
navigate({ name: 'branches' })}>See group
{/* Preview card */}
)}
);
}
function BranchListView({ navigate }) {
return (
{BRANCHES.map(b => (
navigate({ name: 'branch', id: b.id })}
style={{ textAlign: 'left', borderRadius: 18, overflow: 'hidden', background: 'var(--cream)', border: '1px solid var(--line)', cursor: 'pointer', transition: 'transform .15s' }}
onMouseEnter={e => e.currentTarget.style.transform = 'translateY(-3px)'}
onMouseLeave={e => e.currentTarget.style.transform = 'none'}>
{b.city}
{b.name}
{b.area}
{b.features.slice(0, 2).map(f => {f} )}
))}
);
}
function BranchPreview({ branch: b, openTour, navigate }) {
return (
{b.name}
{b.blurb}
{b.features.slice(0, 4).map(f => (
{f}
))}
{ openTour({ branch: b.id }); }}>Book a tour here
navigate({ name: 'branch', id: b.id })}>Visit page
);
}
// ---------------- Seven characters teaser ----------------
function SevenCharactersTeaser({ navigate, variant }) {
return (
{variant === 'grid' ? : variant === 'tiles' ? : }
navigate({ name: 'approach' })}>Meet all seven characters
);
}
function CharacterGrid() {
return (
{CHARACTERS.map((c, i) => (
{c.domain}
{c.name}
{c.focus}
))}
{/* Eighth tile: an info card matching the 7-grid */}
Underpinning all seven
Four child-development domains
{['Social','Emotional','Cognitive','Physical'].map(t => (
{t}
))}
);
}
function CharacterTiles() {
return (
{CHARACTERS.map((c, i) => (
{c.name}
{c.domain}
{c.focus}
))}
);
}
function CharacterPills() {
return (
{CHARACTERS.map(c => (
))}
);
}
// ---------------- Approach pillars ----------------
function ApproachPillars({ navigate }) {
return (
Three principles. One curriculum.}
lead="Dibber's curriculum follows Norway's Rammeplan \u2014 the national early-years framework \u2014 organised around three plain-language ideas." />
{PILLARS.map((p, i) => (
))}
navigate({ name: 'approach' })}>Read the full approach
Heart culture
“Space, time, and a big heart.”
);
}
// ---------------- Dibber Meal block ----------------
function DibberMealBlock() {
return (
The Dibber Meal
Mealtimes, as curriculum.
The Dibber Meal is taught \u2014 not just eaten. Children learn to wait, to share, to pour, to name what's on the plate,
to thank the cook. It's where Heart Culture shows up most clearly, three times a day.
{[
['Wait', 'patience and turn-taking'],
['Share', 'serving, passing, asking'],
['Name', 'language built on the plate'],
].map(([k, v]) => (
))}
);
}
// ---------------- Programmes teaser ----------------
function ProgrammesTeaser({ navigate }) {
return (
From 45 days to school-ready.}
lead="Four age bands, three attendance patterns, three seasonal camps. Each room is led by qualified educators meeting KHDA requirements."/>
navigate({ name: 'programmes' })}>See programmes
{AGE_BANDS.map(a => (
{a.label}
{a.range}
{a.desc}
))}
);
}
// ---------------- Parents / testimonials placeholder ----------------
function ParentsBlock() {
return (
{[1,2,3].map(i => (
Awaiting parental consent
“Permissioned testimonial will appear here.”
Parent name
Branch \u2014 child age
))}
We only publish named testimonials with documented parental consent. The client will supply these before launch.
);
}
// ---------------- CTA band ----------------
function CtaBand({ openTour }) {
return (
Book a tour
Come and meet us.
The best way to know if Dibber is right for your family is to walk through one of our nurseries.
Tours take 45 minutes \u2014 bring your child if you can.
);
}
Object.assign(window, { Home });