style(site): unify platform download badges

Give App Store and macOS downloads matching dimensions and two-line typography so platform choice stays clear without extra labels.
This commit is contained in:
Rocky
2026-07-30 13:12:55 +08:00
parent 1f4f3e695e
commit fcc9c4155a
8 changed files with 54 additions and 32 deletions
+2 -2
View File
@@ -8,9 +8,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
### Added ### Added
- **macOS direct download**: bilingual README and GitHub Pages download areas now offer a signed, notarized macOS DMG alongside the iPhone / iPad App Store badge, using distinct badge designs. / **macOS 直接下载**:中英文 README 与 GitHub Pages 下载区在 iPhone / iPad App Store 徽章旁新增已签名、公证的 macOS DMG,并通过不同徽章样式区分平台 - **macOS direct download**: bilingual README and GitHub Pages download areas now offer a signed, notarized macOS DMG alongside the iPhone / iPad App Store badge, using matching two-line badge designs. / **macOS 直接下载**:中英文 README 与 GitHub Pages 下载区在 iPhone / iPad App Store 徽章旁新增已签名、公证的 macOS DMG,并统一采用双行徽章样式
- **Beams hero**: radiant noise-warped beam array (React Bitsstyle, vanilla Three.js) with the shared demo preset (26 beams, 208° rotation) and OSG green light. / **Beams Hero**:放射状噪声光束阵列(React Bits 风格,原生 Three.js),采用分享的演示预设(26 束、208° 旋转)与 OSG 绿色灯光。 - **Beams hero**: radiant noise-warped beam array (React Bitsstyle, vanilla Three.js) with the shared demo preset (26 beams, 208° rotation) and OSG green light. / **Beams Hero**:放射状噪声光束阵列(React Bits 风格,原生 Three.js),采用分享的演示预设(26 束、208° 旋转)与 OSG 绿色灯光。
- **App Store download badges**: official badges on bilingual READMEs (hero + Get sections) and the website, with China-store `/cn/` links for Chinese and regionless App Store links for English. / **App Store 下载徽章**:中英文 README(顶部与获取区)与官网挂载官方徽章;中文链 `/cn/`,英文用无地区链接。 - **Platform download badges**: matching App Store and macOS badges on bilingual READMEs and the website, with localized copy and platform-specific links. / **平台下载徽章**:中英文 README 与官网采用统一样式的 App Store、macOS 徽章,并提供本地化文案与平台专属链接。
- **Website SEO & AI discovery**: richer meta/JSON-LD/FAQ, `llms.txt`, sitemap, and bilingual single-page landing. / **官网 SEO 与 AI 发现**:强化 meta/JSON-LD/FAQ、`llms.txt`、sitemap,以及双语单页落地站。 - **Website SEO & AI discovery**: richer meta/JSON-LD/FAQ, `llms.txt`, sitemap, and bilingual single-page landing. / **官网 SEO 与 AI 发现**:强化 meta/JSON-LD/FAQ、`llms.txt`、sitemap,以及双语单页落地站。
- **Context-aware polish safeguards**: polish can use a redacted cursor-neighborhood snapshot for natural continuation, validates protected terms and identifiers, retries once, and falls back to a conservative local cleanup when needed. / **上下文润色护栏**:润色可使用经截断脱敏的光标附近文字自然衔接,并校验受保护词与标识符;失败时重试一次,仍不合格则降级为本地保守清理。 - **Context-aware polish safeguards**: polish can use a redacted cursor-neighborhood snapshot for natural continuation, validates protected terms and identifiers, retries once, and falls back to a conservative local cleanup when needed. / **上下文润色护栏**:润色可使用经截断脱敏的光标附近文字自然衔接,并校验受保护词与标识符;失败时重试一次,仍不合格则降级为本地保守清理。
- **Pause-aware chunk polish**: chunked ASR carries detected silence boundaries into the polish request while keeping previews and final output marker-free. / **分块停顿感知润色**:分块 ASR 将检测到的静音边界传入润色请求,实时预览与最终输出均不会显示内部标记。 - **Pause-aware chunk polish**: chunked ASR carries detected silence boundaries into the polish request while keeping previews and final output marker-free. / **分块停顿感知润色**:分块 ASR 将检测到的静音边界传入润色请求,实时预览与最终输出均不会显示内部标记。
+4 -4
View File
@@ -14,11 +14,11 @@ Voice input for iPhone, iPad, and Mac. Speak in any app — polished text lands
<p align="center"> <p align="center">
<a href="https://apps.apple.com/app/osgkeyboard/id6781553267"> <a href="https://apps.apple.com/app/osgkeyboard/id6781553267">
<img src="docs/assets/badges/appstore-en.svg" alt="Download for iPhone and iPad" height="40"> <img src="docs/assets/badges/ios-en.svg" alt="Download now from the App Store" height="40">
</a> </a>
&nbsp; &nbsp;
<a href="https://github.com/hkgood/OSGKeyboard/releases/download/v1.1-mac/OSGKeyboard-1.1.dmg"> <a href="https://github.com/hkgood/OSGKeyboard/releases/download/v1.1-mac/OSGKeyboard-1.1.dmg">
<img src="docs/assets/badges/macos-en.svg" alt="Download for macOS" height="40"> <img src="docs/assets/badges/macos-en.svg" alt="Download now — macOS version" height="40">
</a> </a>
</p> </p>
@@ -67,13 +67,13 @@ Speech is transcribed on-device by default. Polish sends **text only** — the t
**iPhone / iPad (App Store)** **iPhone / iPad (App Store)**
<a href="https://apps.apple.com/app/osgkeyboard/id6781553267"> <a href="https://apps.apple.com/app/osgkeyboard/id6781553267">
<img src="docs/assets/badges/appstore-en.svg" alt="Download for iPhone and iPad" height="40"> <img src="docs/assets/badges/ios-en.svg" alt="Download now from the App Store" height="40">
</a> </a>
**Mac (Developer ID signed and notarized)** **Mac (Developer ID signed and notarized)**
<a href="https://github.com/hkgood/OSGKeyboard/releases/download/v1.1-mac/OSGKeyboard-1.1.dmg"> <a href="https://github.com/hkgood/OSGKeyboard/releases/download/v1.1-mac/OSGKeyboard-1.1.dmg">
<img src="docs/assets/badges/macos-en.svg" alt="Download for macOS" height="40"> <img src="docs/assets/badges/macos-en.svg" alt="Download now — macOS version" height="40">
</a> </a>
## Build from source ## Build from source
+4 -4
View File
@@ -14,11 +14,11 @@
<p align="center"> <p align="center">
<a href="https://apps.apple.com/cn/app/osgkeyboard/id6781553267"> <a href="https://apps.apple.com/cn/app/osgkeyboard/id6781553267">
<img src="docs/assets/badges/appstore-zh.svg" alt="下载 iPhone / iPad 版" height="40"> <img src="docs/assets/badges/ios-zh.svg" alt="立即下载 App Store 版" height="40">
</a> </a>
&nbsp; &nbsp;
<a href="https://github.com/hkgood/OSGKeyboard/releases/download/v1.1-mac/OSGKeyboard-1.1.dmg"> <a href="https://github.com/hkgood/OSGKeyboard/releases/download/v1.1-mac/OSGKeyboard-1.1.dmg">
<img src="docs/assets/badges/macos-zh.svg" alt="直接下载 macOS 版" height="40"> <img src="docs/assets/badges/macos-zh.svg" alt="立即下载 macOS 版" height="40">
</a> </a>
</p> </p>
@@ -72,13 +72,13 @@
**iPhone / iPadApp Store** **iPhone / iPadApp Store**
<a href="https://apps.apple.com/cn/app/osgkeyboard/id6781553267"> <a href="https://apps.apple.com/cn/app/osgkeyboard/id6781553267">
<img src="docs/assets/badges/appstore-zh.svg" alt="下载 iPhone / iPad 版" height="40"> <img src="docs/assets/badges/ios-zh.svg" alt="立即下载 App Store 版" height="40">
</a> </a>
**MacDeveloper ID 签名并公证)** **MacDeveloper ID 签名并公证)**
<a href="https://github.com/hkgood/OSGKeyboard/releases/download/v1.1-mac/OSGKeyboard-1.1.dmg"> <a href="https://github.com/hkgood/OSGKeyboard/releases/download/v1.1-mac/OSGKeyboard-1.1.dmg">
<img src="docs/assets/badges/macos-zh.svg" alt="直接下载 macOS 版" height="40"> <img src="docs/assets/badges/macos-zh.svg" alt="立即下载 macOS 版" height="40">
</a> </a>
**从源码构建**(需 macOS + Xcode 26): **从源码构建**(需 macOS + Xcode 26):
+11
View File
@@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="144" height="40" viewBox="0 0 144 40" role="img" aria-labelledby="title">
<title id="title">Download now - App Store</title>
<rect width="144" height="40" rx="7" fill="#000"/>
<rect x=".75" y=".75" width="142.5" height="38.5" rx="6.25" fill="none" stroke="#a6a6a6" stroke-width="1.5"/>
<g fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.7">
<rect x="15" y="6.5" width="13" height="26.5" rx="3"/>
<path d="M19 9.5h5M19.5 29.5h4"/>
</g>
<text x="40" y="14" fill="#fff" font-family="-apple-system, BlinkMacSystemFont, sans-serif" font-size="7.2">DOWNLOAD NOW</text>
<text x="40" y="29" fill="#fff" font-family="-apple-system, BlinkMacSystemFont, sans-serif" font-size="15.5" font-weight="600">App Store</text>
</svg>

After

Width:  |  Height:  |  Size: 824 B

+11
View File
@@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="144" height="40" viewBox="0 0 144 40" role="img" aria-labelledby="title">
<title id="title">&#31435;&#21363;&#19979;&#36733; App Store</title>
<rect width="144" height="40" rx="7" fill="#000"/>
<rect x=".75" y=".75" width="142.5" height="38.5" rx="6.25" fill="none" stroke="#a6a6a6" stroke-width="1.5"/>
<g fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.7">
<rect x="15" y="6.5" width="13" height="26.5" rx="3"/>
<path d="M19 9.5h5M19.5 29.5h4"/>
</g>
<text x="40" y="14" fill="#fff" font-family="-apple-system, BlinkMacSystemFont, sans-serif" font-size="7.2">&#31435;&#21363;&#19979;&#36733;</text>
<text x="40" y="29" fill="#fff" font-family="-apple-system, BlinkMacSystemFont, sans-serif" font-size="15.5" font-weight="600">App Store</text>
</svg>

After

Width:  |  Height:  |  Size: 862 B

+6 -6
View File
@@ -1,11 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="40" viewBox="0 0 128 40" role="img" aria-labelledby="title"> <svg xmlns="http://www.w3.org/2000/svg" width="144" height="40" viewBox="0 0 144 40" role="img" aria-labelledby="title">
<title id="title">Download for macOS</title> <title id="title">Download now — macOS version</title>
<rect width="128" height="40" rx="7" fill="#000"/> <rect width="144" height="40" rx="7" fill="#000"/>
<rect x=".75" y=".75" width="126.5" height="38.5" rx="6.25" fill="none" stroke="#a6a6a6" stroke-width="1.5"/> <rect x=".75" y=".75" width="142.5" height="38.5" rx="6.25" fill="none" stroke="#a6a6a6" stroke-width="1.5"/>
<g fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.7"> <g fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.7">
<rect x="10.5" y="8.5" width="22" height="15.5" rx="2"/> <rect x="10.5" y="8.5" width="22" height="15.5" rx="2"/>
<path d="M17.5 29.5h8M21.5 24v5.5M17.5 20.5h8"/> <path d="M17.5 29.5h8M21.5 24v5.5M17.5 20.5h8"/>
</g> </g>
<text x="40" y="14" fill="#fff" font-family="-apple-system, BlinkMacSystemFont, sans-serif" font-size="6.6">DIRECT DOWNLOAD</text> <text x="40" y="14" fill="#fff" font-family="-apple-system, BlinkMacSystemFont, sans-serif" font-size="7.2">DOWNLOAD NOW</text>
<text x="40" y="29" fill="#fff" font-family="-apple-system, BlinkMacSystemFont, sans-serif" font-size="16" font-weight="600">macOS</text> <text x="40" y="29" fill="#fff" font-family="-apple-system, BlinkMacSystemFont, sans-serif" font-size="15.5" font-weight="600">macOS version</text>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 832 B

After

Width:  |  Height:  |  Size: 851 B

+6 -6
View File
@@ -1,11 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="120" height="40" viewBox="0 0 120 40" role="img" aria-labelledby="title"> <svg xmlns="http://www.w3.org/2000/svg" width="144" height="40" viewBox="0 0 144 40" role="img" aria-labelledby="title">
<title id="title">&#30452;&#25509;&#19979;&#36733; macOS &#29256;</title> <title id="title">&#31435;&#21363;&#19979;&#36733; macOS &#29256;&#26412;</title>
<rect width="120" height="40" rx="7" fill="#000"/> <rect width="144" height="40" rx="7" fill="#000"/>
<rect x=".75" y=".75" width="118.5" height="38.5" rx="6.25" fill="none" stroke="#a6a6a6" stroke-width="1.5"/> <rect x=".75" y=".75" width="142.5" height="38.5" rx="6.25" fill="none" stroke="#a6a6a6" stroke-width="1.5"/>
<g fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.7"> <g fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.7">
<rect x="10.5" y="8.5" width="22" height="15.5" rx="2"/> <rect x="10.5" y="8.5" width="22" height="15.5" rx="2"/>
<path d="M17.5 29.5h8M21.5 24v5.5M17.5 20.5h8"/> <path d="M17.5 29.5h8M21.5 24v5.5M17.5 20.5h8"/>
</g> </g>
<text x="40" y="14" fill="#fff" font-family="-apple-system, BlinkMacSystemFont, sans-serif" font-size="7.2">&#30452;&#25509;&#19979;&#36733;</text> <text x="40" y="14" fill="#fff" font-family="-apple-system, BlinkMacSystemFont, sans-serif" font-size="7.2">&#31435;&#21363;&#19979;&#36733;</text>
<text x="40" y="29" fill="#fff" font-family="-apple-system, BlinkMacSystemFont, sans-serif" font-size="15.5" font-weight="600">macOS &#29256;</text> <text x="40" y="29" fill="#fff" font-family="-apple-system, BlinkMacSystemFont, sans-serif" font-size="15.5" font-weight="600">macOS &#29256;&#26412;</text>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 889 B

After

Width:  |  Height:  |  Size: 905 B

+10 -10
View File
@@ -931,10 +931,10 @@
<p class="lead" data-i18n="hero.lead">免费开源的跨端语音输入。本地识别,自带 API Key 润色,避免重复订阅。iPhone、iPad、Mac — 说完即落字。</p> <p class="lead" data-i18n="hero.lead">免费开源的跨端语音输入。本地识别,自带 API Key 润色,避免重复订阅。iPhone、iPad、Mac — 说完即落字。</p>
<div class="hero-cta"> <div class="hero-cta">
<a class="store-badge" id="heroStoreBadge" href="https://apps.apple.com/cn/app/osgkeyboard/id6781553267" rel="noopener" aria-label="Download for iPhone and iPad"> <a class="store-badge" id="heroStoreBadge" href="https://apps.apple.com/cn/app/osgkeyboard/id6781553267" rel="noopener" aria-label="Download for iPhone and iPad">
<img id="heroStoreBadgeImg" src="assets/badges/appstore-zh.svg" width="109" height="40" alt="下载 iPhone / iPad 版"> <img id="heroStoreBadgeImg" src="assets/badges/ios-zh.svg" width="144" height="40" alt="立即下载 App Store 版">
</a> </a>
<a class="store-badge" href="https://github.com/hkgood/OSGKeyboard/releases/download/v1.1-mac/OSGKeyboard-1.1.dmg" rel="noopener" aria-label="Download for macOS"> <a class="store-badge" href="https://github.com/hkgood/OSGKeyboard/releases/download/v1.1-mac/OSGKeyboard-1.1.dmg" rel="noopener" aria-label="Download for macOS">
<img class="macos-badge-img" src="assets/badges/macos-zh.svg" width="120" height="40" alt="直接下载 macOS 版"> <img class="macos-badge-img" src="assets/badges/macos-zh.svg" width="144" height="40" alt="立即下载 macOS 版">
</a> </a>
<a class="btn btn-ghost" href="https://github.com/hkgood/OSGKeyboard" rel="noopener"> <a class="btn btn-ghost" href="https://github.com/hkgood/OSGKeyboard" rel="noopener">
<span class="material-symbols-outlined" aria-hidden="true">terminal</span> <span class="material-symbols-outlined" aria-hidden="true">terminal</span>
@@ -1261,10 +1261,10 @@
</div> </div>
<div class="platform-downloads"> <div class="platform-downloads">
<a class="store-badge" id="footerStoreBadge" href="https://apps.apple.com/cn/app/osgkeyboard/id6781553267" rel="noopener" aria-label="Download for iPhone and iPad"> <a class="store-badge" id="footerStoreBadge" href="https://apps.apple.com/cn/app/osgkeyboard/id6781553267" rel="noopener" aria-label="Download for iPhone and iPad">
<img id="footerStoreBadgeImg" src="assets/badges/appstore-zh.svg" width="109" height="40" alt="下载 iPhone / iPad 版"> <img id="footerStoreBadgeImg" src="assets/badges/ios-zh.svg" width="144" height="40" alt="立即下载 App Store 版">
</a> </a>
<a class="store-badge" href="https://github.com/hkgood/OSGKeyboard/releases/download/v1.1-mac/OSGKeyboard-1.1.dmg" rel="noopener" aria-label="Download for macOS"> <a class="store-badge" href="https://github.com/hkgood/OSGKeyboard/releases/download/v1.1-mac/OSGKeyboard-1.1.dmg" rel="noopener" aria-label="Download for macOS">
<img class="macos-badge-img" src="assets/badges/macos-zh.svg" width="120" height="40" alt="直接下载 macOS 版"> <img class="macos-badge-img" src="assets/badges/macos-zh.svg" width="144" height="40" alt="立即下载 macOS 版">
</a> </a>
</div> </div>
<div class="hero-cta" style="margin-bottom:0"> <div class="hero-cta" style="margin-bottom:0">
@@ -1529,17 +1529,17 @@
const STORE = { const STORE = {
zh: { zh: {
href: "https://apps.apple.com/cn/app/osgkeyboard/id6781553267", href: "https://apps.apple.com/cn/app/osgkeyboard/id6781553267",
src: "assets/badges/appstore-zh.svg", src: "assets/badges/ios-zh.svg",
alt: "下载 iPhone / iPad 版", alt: "立即下载 App Store 版",
macSrc: "assets/badges/macos-zh.svg", macSrc: "assets/badges/macos-zh.svg",
macAlt: "直接下载 macOS 版" macAlt: "立即下载 macOS 版"
}, },
en: { en: {
href: "https://apps.apple.com/app/osgkeyboard/id6781553267", href: "https://apps.apple.com/app/osgkeyboard/id6781553267",
src: "assets/badges/appstore-en.svg", src: "assets/badges/ios-en.svg",
alt: "Download for iPhone and iPad", alt: "Download now from the App Store",
macSrc: "assets/badges/macos-en.svg", macSrc: "assets/badges/macos-en.svg",
macAlt: "Download for macOS" macAlt: "Download now — macOS version"
} }
}; };