- Replace claims that contradicted the app: the default hotkey is Right Alt (hold to talk), local features are free with no daily cap, there is no 14-day trial, Team/SSO/SCIM/ZDR are not offered, and the repository is not public. Remove invented metrics, status badges, the competitor table, the ad-mediation changelog, the hash calculator and the duplicate demo. - Seven sections: hero with one labelled example, features, how it works, privacy, pricing (Free / Pro 2,900 / Pro+ 8,900 KRW a month), download, FAQ. Footer links the privacy policy, terms and account deletion pages. - All copy moves into i18n and every one of the 10 locales is translated. Pricing and cloud quotas come from site/src/pricing.ts. - Accessibility: skip link, labelled sections, aria-expanded with Esc and focus return for the menu, language list and FAQ, live status for the example, reduced-motion support, 44px targets, AA contrast on the primary button. Korean keep-all line breaking is scoped to :lang(ko) because Tailwind's break-keep blocked wrapping in Japanese and Chinese. - JS 111 -> 98 KB gzip, CSS 7.8 -> 5.2 KB gzip.
20 lines
579 B
TypeScript
20 lines
579 B
TypeScript
interface SectionHeadingProps {
|
|
id: string
|
|
title: string
|
|
subtitle?: string
|
|
className?: string
|
|
}
|
|
|
|
/** 섹션 제목. `id`는 섹션의 aria-labelledby 대상이다. */
|
|
export function SectionHeading({ id, title, subtitle, className = '' }: SectionHeadingProps) {
|
|
return (
|
|
<div className={className}>
|
|
<h2 id={id} className="keep-ko text-balance text-h2 font-medium text-neutral-50">
|
|
{title}
|
|
</h2>
|
|
{subtitle && (
|
|
<p className="mt-4 max-w-xl keep-ko text-base leading-relaxed text-neutral-300">{subtitle}</p>
|
|
)}
|
|
</div>
|
|
)
|
|
}
|