Files
zeekayandGitHub 3df66c3990 i18n: /m* through /r* and the product kits draw their words through t (#70)
Pages from /machines to /risk, the model pages, and the kits they are made of
(page-kit, ProductLanding, LayerPage, Stack, the models kit, band's Head) mark
authored copy where it is written and draw it in the reader's language. A server
page marks a literal phrase('…') or wraps it in <T>; a client page calls t. The
kits translate a string prop through useSay (components/marketing/say), so a
page passes phrase('…') and markup passes as written. An arrow that points
turns over right to left (data-i18n-mirror).

Rebased on main: the fold-based heroes (Fold, PageHero, MachinesHero, the
product and layer pages) keep main's structure and copy, with their label,
title and lede marked phrase. /platform is main's CloudLanding; the deleted
/platform/layers and the old referral components stay deleted.

Claude-Session: https://claude.ai/code/session_015XYKLjZtDTJEnMo4eK3AFH
2026-10-30 00:18:44 -07:00

27 lines
878 B
TypeScript

import { YStack } from '@/components/ui'
import { Eyebrow } from '@hanzo/ui/marketing'
import { PartnerLogoRow } from '@/components/shared'
import { backerLogos } from '@/lib/constants/partner-logos'
import { phrase } from '@hanzo/i18n'
import { T } from '@hanzo/i18n/react'
/**
* Who backs Hanzo: Techstars and every partner that backed it with investment
* or credits, one row (lib/constants/partner-logos.ts). The marks invert on
* the dark theme only, so they stay legible when a reader picks light.
*/
const ROWS = [{ label: phrase('Backed by'), logos: backerLogos }]
export function Trust() {
return (
<YStack gap={24}>
{ROWS.map((row) => (
<div key={row.label}>
<Eyebrow mb={16}><T>{row.label}</T></Eyebrow>
<PartnerLogoRow logos={row.logos} justify="flex-start" invert="dark" />
</div>
))}
</YStack>
)
}