feat(site): rewrite the landing page around verified facts and accessible controls
- 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.
This commit is contained in:
parent
ad6bb70c20
commit
e689683b72
44 changed files with 2198 additions and 3782 deletions
|
|
@ -9,6 +9,8 @@ export default {
|
|||
blue: '#3b82f6',
|
||||
'blue-light': '#60a5fa',
|
||||
'blue-dark': '#2563eb',
|
||||
// 버튼 hover. 흰 글자 대비 6.7:1 (blue-dark 5.2:1, blue 3.7:1 은 본문 버튼에 부족)
|
||||
'blue-deep': '#1d4ed8',
|
||||
'blue-glow': 'rgba(59,130,246,0.5)',
|
||||
'blue-dim': 'rgba(59,130,246,0.14)',
|
||||
'blue-muted': 'rgba(59,130,246,0.08)',
|
||||
|
|
@ -101,36 +103,16 @@ export default {
|
|||
'3card': '24px',
|
||||
},
|
||||
boxShadow: {
|
||||
'inset-panel': 'inset 0 1px 3px rgba(0,0,0,0.6), inset 0 1px 0 rgba(255,255,255,0.06)',
|
||||
'chassis': '0 4px 20px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.06)',
|
||||
'glow-sm': '0 0 12px rgba(59,130,246,0.3)',
|
||||
'glow-md': '0 0 24px rgba(59,130,246,0.25), 0 0 48px rgba(59,130,246,0.1)',
|
||||
'glow-lg': '0 0 36px rgba(59,130,246,0.35), 0 0 72px rgba(59,130,246,0.15)',
|
||||
'glass-card': '0 12px 32px -4px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.08)',
|
||||
},
|
||||
animation: {
|
||||
'glow-pulse': 'glow-pulse 2s ease-in-out infinite',
|
||||
'scan': 'scan 8s linear infinite',
|
||||
'blink': 'blink 1.4s ease-in-out infinite',
|
||||
'fade-in-up': 'fade-in-up 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards',
|
||||
},
|
||||
keyframes: {
|
||||
'glow-pulse': {
|
||||
'0%, 100%': { opacity: '0.4' },
|
||||
'50%': { opacity: '1' },
|
||||
},
|
||||
'scan': {
|
||||
'0%': { transform: 'translateY(-100%)' },
|
||||
'100%': { transform: 'translateY(100%)' },
|
||||
},
|
||||
'blink': {
|
||||
'0%, 100%': { opacity: '1' },
|
||||
'50%': { opacity: '0.3' },
|
||||
},
|
||||
'fade-in-up': {
|
||||
'0%': { opacity: '0', transform: 'translateY(16px)' },
|
||||
'100%': { opacity: '1', transform: 'translateY(0)' },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue