website update

This commit is contained in:
EthanShoeDev
2025-10-10 02:30:15 -04:00
parent 247a67aa60
commit f3c6992b0a
31 changed files with 984 additions and 836 deletions

View File

@@ -10,15 +10,21 @@ simple while supporting powerful features.
### Features ### Features
- **Secure connection history**: Securely store previous connections - **Secure connection history**: Securely store previous connections
- **Command presets**: Configurable preset command buttons
- **Theming**: Configurable theme - **Theming**: Configurable theme
- **xterm fidelity**: Fully accurate xterm emulation
### Coming soon ### Coming soon
- ~~**xterm fidelity**: Fully accurate xterm emulation~~ Done! - **Command presets**: Configurable preset command buttons
- **On-device AI**: On-device LLM for command completion and output - **On-device AI**: On-device LLM for command completion and output
summarization summarization
### Screenshots
![Hosts tab](./packages/assets/mobile-screenshots/hosts-tab.png)
![Shell detail](./packages/assets/mobile-screenshots/shell-detail.png)
### Architecture ### Architecture
The app is a monorepo with three main parts: The app is a monorepo with three main parts:

View File

@@ -15,7 +15,7 @@ const config: ExpoConfig = {
slug: 'fressh', slug: 'fressh',
version: packageJson.version, version: packageJson.version,
orientation: 'portrait', orientation: 'portrait',
icon: '../../packages/assets/ios-dark-2.png', icon: '../../packages/assets/mobile-app-icon-dark.png',
scheme: 'fressh', scheme: 'fressh',
userInterfaceStyle: 'automatic', userInterfaceStyle: 'automatic',
newArchEnabled: true, newArchEnabled: true,
@@ -24,34 +24,36 @@ const config: ExpoConfig = {
config: { usesNonExemptEncryption: false }, config: { usesNonExemptEncryption: false },
bundleIdentifier: 'dev.fressh.app', bundleIdentifier: 'dev.fressh.app',
buildNumber: String(versionCode), buildNumber: String(versionCode),
// TODO: Add ios specific icons
// icon: {
// dark: '',
// light: '',
// tinted: '',
// }
}, },
android: { android: {
package: 'dev.fressh.app', package: 'dev.fressh.app',
versionCode, versionCode,
adaptiveIcon: { adaptiveIcon: {
foregroundImage: '../../packages/assets/adaptive-icon.png', foregroundImage: '../../packages/assets/android-adaptive-icon.png',
backgroundColor: '#151718', backgroundColor: '#151718',
}, },
edgeToEdgeEnabled: true, edgeToEdgeEnabled: true,
predictiveBackGestureEnabled: false, predictiveBackGestureEnabled: false,
softwareKeyboardLayoutMode: 'pan', softwareKeyboardLayoutMode: 'pan',
}, },
web: {
output: 'static',
favicon: '../../packages/assets/favicon.png',
},
plugins: [ plugins: [
'expo-router', 'expo-router',
[ [
'expo-splash-screen', 'expo-splash-screen',
{ {
image: '../../packages/assets/splash-icon-light.png', image: '../../packages/assets/splash-icon-light.png',
backgroundColor: '#ECEDEE',
dark: { dark: {
image: '../../packages/assets/splash-icon-dark.png', image: '../../packages/assets/splash-icon-dark.png',
backgroundColor: '#151718', backgroundColor: '#151718',
}, },
imageWidth: 200, imageWidth: 200,
backgroundColor: '#ECEDEE',
}, },
], ],
'expo-secure-store', 'expo-secure-store',

View File

@@ -21,7 +21,7 @@
"prebuild": "expo prebuild", "prebuild": "expo prebuild",
"prebuild:clean": "expo prebuild --clean", "prebuild:clean": "expo prebuild --clean",
"expo:dep:check": "expo install --fix", "expo:dep:check": "expo install --fix",
"expo:doctor": "pnpm dlx expo-doctor@latest", "expo:doctor": "pnpm dlx expo-doctor@latest || true",
"test:e2e": "maestro test test/e2e/", "test:e2e": "maestro test test/e2e/",
"adb:logs": "while ! adb logcat --pid=$(adb shell pidof -s dev.fressh.app); do sleep 1; done", "adb:logs": "while ! adb logcat --pid=$(adb shell pidof -s dev.fressh.app); do sleep 1; done",
"release": "GITHUB_TOKEN=$(gh auth token) release-it", "release": "GITHUB_TOKEN=$(gh auth token) release-it",
@@ -40,19 +40,19 @@
"@tanstack/react-form": "^1.20.0", "@tanstack/react-form": "^1.20.0",
"@tanstack/react-query": "^5.89.0", "@tanstack/react-query": "^5.89.0",
"date-fns": "^4.1.0", "date-fns": "^4.1.0",
"expo": "54.0.12", "expo": "54.0.13",
"expo-clipboard": "~8.0.7", "expo-clipboard": "~8.0.7",
"expo-constants": "~18.0.9", "expo-constants": "~18.0.9",
"expo-crypto": "~15.0.7", "expo-crypto": "~15.0.7",
"expo-dev-client": "~6.0.13", "expo-dev-client": "~6.0.14",
"expo-document-picker": "~14.0.7", "expo-document-picker": "~14.0.7",
"expo-file-system": "~19.0.16", "expo-file-system": "~19.0.17",
"expo-font": "~14.0.8", "expo-font": "~14.0.9",
"expo-glass-effect": "^0.1.4", "expo-glass-effect": "^0.1.4",
"expo-haptics": "~15.0.7", "expo-haptics": "~15.0.7",
"expo-image": "~3.0.9", "expo-image": "~3.0.9",
"expo-linking": "~8.0.8", "expo-linking": "~8.0.8",
"expo-router": "6.0.10", "expo-router": "6.0.11",
"expo-secure-store": "~15.0.7", "expo-secure-store": "~15.0.7",
"expo-splash-screen": "~31.0.10", "expo-splash-screen": "~31.0.10",
"expo-status-bar": "~3.0.8", "expo-status-bar": "~3.0.8",

View File

@@ -14,11 +14,12 @@
"preview": "astro preview" "preview": "astro preview"
}, },
"dependencies": { "dependencies": {
"@astrojs/vercel": "^8.2.7", "@astrojs/vercel": "^8.2.9",
"@fressh/assets": "workspace:*", "@fressh/assets": "workspace:*",
"@tailwindcss/vite": "4.1.9", "@tailwindcss/vite": "4.1.9",
"@vercel/analytics": "^1.5.0", "@vercel/analytics": "^1.5.0",
"astro": "^5.13.7", "astro": "^5.14.3",
"sharp": "^0.34.4",
"tailwindcss": "4.1.10" "tailwindcss": "4.1.10"
}, },
"devDependencies": { "devDependencies": {

View File

@@ -1,11 +1,17 @@
--- ---
import Layout from '../layouts/Layout.astro'; import Layout from '../layouts/Layout.astro';
import iosDarkAppIcon from '@fressh/assets/ios-dark-2.png'; import mobileAppIconDark from '@fressh/assets/mobile-app-icon-dark.png';
import hostsTabAndroidScreenshot from '@fressh/assets/mobile-screenshots/hosts-tab.png';
import shellDetailAndroidScreenshot from '@fressh/assets/mobile-screenshots/shell-detail.png';
import GithubMark from '@fressh/assets/third-party-brands/github-mark/github-mark.svg';
import GooglePlayBadge from '@fressh/assets/third-party-brands/google-play/GetItOnGooglePlay_Badge_Web_color_English.svg';
import AppStoreBadge from '@fressh/assets/third-party-brands/apple-app-store/Black_lockup/SVG/Download_on_the_App_Store_Badge_US-UK_RGB_blk_092917.svg';
import npmLogoRed from '@fressh/assets/third-party-brands/npm-js/npm-logo-red.png';
const title = 'Fressh — Mobile SSH Client'; const title = 'Fressh — Mobile SSH Client';
const description = const description =
'A clean, powerful mobile SSH client. Built with React Native, powered by Russh (Rust-based SSH), and planned to be open source.'; 'A clean, powerful open-source mobile SSH client. Built with React Native and powered by Russh (Rust-based SSH).';
const image = iosDarkAppIcon.src; const image = mobileAppIconDark.src;
--- ---
<Layout> <Layout>
@@ -21,86 +27,181 @@ const image = iosDarkAppIcon.src;
<meta name="twitter:image" content={image} /> <meta name="twitter:image" content={image} />
</Fragment> </Fragment>
<section <section
class="flex min-h-screen flex-col items-center justify-center bg-gradient-to-b from-gray-50 to-white px-6 dark:from-gray-900 dark:to-black" class="bg-gradient-to-b from-gray-50 via-white to-white dark:from-gray-950 dark:via-gray-950 dark:to-black"
>
<img
src={iosDarkAppIcon.src}
alt="Fressh app icon"
class="mb-6 h-20 w-20 rounded-2xl shadow-md"
/>
<h1
class="text-5xl font-extrabold tracking-tight text-gray-900 sm:text-6xl dark:text-white"
>
Fressh
</h1>
<p class="mt-3 text-lg text-gray-600 dark:text-gray-300">
A clean, powerful mobile SSH client.
</p>
<span
class="mt-4 inline-flex items-center gap-2 rounded-full border border-dashed border-gray-300 px-3 py-1 text-sm text-gray-600 dark:border-gray-700 dark:text-gray-300"
>Coming soon</span
> >
<div <div
class="mt-10 grid w-full max-w-3xl gap-6 text-left sm:grid-cols-2 lg:grid-cols-3" class="mx-auto flex min-h-screen w-full max-w-6xl flex-col justify-center gap-16 px-6 py-24"
>
<div class="grid gap-16 lg:max-w-4xl">
<div class="space-y-8">
<div class="flex items-start gap-4">
<img
src={mobileAppIconDark.src}
alt="Fressh app icon"
class="h-20 w-20 shrink-0 rounded-3xl border border-white/30 shadow-xl shadow-emerald-500/10 dark:border-white/10"
loading="eager"
/>
<div class="flex flex-col items-start gap-2">
<span
class="inline-flex items-center gap-2 rounded-full border border-emerald-300/70 bg-emerald-50 px-3 py-1 text-xs font-medium text-emerald-900 dark:border-emerald-500/50 dark:bg-emerald-500/15 dark:text-emerald-200"
>
<span class="inline-block h-2 w-2 rounded-full bg-emerald-500"
></span>
Coming soon
</span>
<span
class="text-sm font-semibold tracking-[0.3em] text-gray-500 uppercase dark:text-gray-400"
>
Mobile SSH Client
</span>
</div>
</div>
<h1
class="text-4xl font-black tracking-tight text-gray-900 sm:text-5xl lg:text-6xl dark:text-white"
>
Fressh — Mobile SSH Client
</h1>
<p
class="max-w-xl text-lg leading-relaxed text-gray-600 dark:text-gray-300"
>
A clean, powerful open-source mobile SSH client. Built with React
Native and powered by Russh (Rust-based SSH).
</p>
<div class="flex flex-wrap items-center gap-4">
<a
href="https://github.com/EthanShoeDev/fressh"
target="_blank"
rel="noopener noreferrer"
class="group inline-flex items-center gap-3 rounded-full border border-gray-200 bg-white/70 px-5 py-3 text-sm font-medium text-gray-900 shadow-sm backdrop-blur transition hover:border-gray-300 hover:bg-white dark:border-white/10 dark:bg-white/5 dark:text-white dark:hover:border-white/20 dark:hover:bg-white/10"
>
<GithubMark
class="h-5 w-5"
viewBox="0 0 98 96"
preserveAspectRatio="xMidYMid meet"
aria-hidden="true"
/>
<span>View the source on GitHub</span>
</a>
<div
class="flex flex-col gap-2 text-xs text-gray-500 dark:text-gray-400"
>
<div class="flex items-center gap-6">
<div class="flex flex-col items-start gap-2">
<GooglePlayBadge
class="h-12 w-auto select-none"
role="img"
aria-label="Get it on Google Play badge"
/>
<span
class="inline-flex items-center gap-2 rounded-full border border-dashed border-gray-300 px-2 py-0.5 text-[11px] font-medium tracking-wider text-gray-500 uppercase dark:border-gray-700 dark:text-gray-400"
>Coming soon</span
>
</div>
<div class="flex flex-col items-start gap-2">
<div class="flex h-12 items-center rounded-lg">
<AppStoreBadge
class="h-9 w-auto select-none"
role="img"
aria-label="Download on the App Store badge"
/>
</div>
<span
class="inline-flex items-center gap-2 rounded-full border border-dashed border-gray-300 px-2 py-0.5 text-[11px] font-medium tracking-wider text-gray-500 uppercase dark:border-gray-700 dark:text-gray-400"
>Coming soon</span
>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="grid gap-6 lg:grid-cols-3">
<article
class="rounded-3xl border border-gray-200/80 bg-white/80 p-8 backdrop-blur-sm transition hover:border-emerald-200 dark:border-white/10 dark:bg-white/5 dark:hover:border-emerald-500/30"
> >
<div class="rounded-xl border border-gray-200 p-6 dark:border-gray-800">
<h2 <h2
class="text-base font-semibold tracking-wide text-gray-900 dark:text-gray-100" class="text-sm font-semibold tracking-wider text-emerald-600 uppercase dark:text-emerald-300"
> >
Features Features
</h2> </h2>
<ul class="mt-3 space-y-2 text-gray-700 dark:text-gray-300"> <ul
<li class="flex items-start gap-3"> class="mt-4 space-y-3 text-sm leading-relaxed text-gray-700 dark:text-gray-300"
<span class="text-emerald-500">✓</span><span
>Securely storing previous connections</span
> >
<li class="flex items-start gap-3">
<span
class="mt-1 inline-flex h-5 w-5 items-center justify-center rounded-full bg-emerald-500/10 text-sm font-semibold text-emerald-600 dark:text-emerald-300"
>✓</span
>
<span>Securely store previous connections</span>
</li> </li>
<li class="flex items-start gap-3"> <li class="flex items-start gap-3">
<span class="text-emerald-500">✓</span><span <span
>Configurable preset command buttons</span class="mt-1 inline-flex h-5 w-5 items-center justify-center rounded-full bg-emerald-500/10 text-sm font-semibold text-emerald-600 dark:text-emerald-300"
>✓</span
> >
<span>Configurable theme for approachable ergonomics</span>
</li> </li>
<li class="flex items-start gap-3"> <li class="flex items-start gap-3">
<span class="text-emerald-500">✓</span><span <span
>Configurable theme</span class="mt-1 inline-flex h-5 w-5 items-center justify-center rounded-full bg-emerald-500/10 text-sm font-semibold text-emerald-600 dark:text-emerald-300"
>✓</span
> >
<span>Fully accurate xterm emulation</span>
</li> </li>
<ul></ul>
</ul> </ul>
</div> </article>
<div class="rounded-xl border border-gray-200 p-6 dark:border-gray-800"> <article
class="rounded-3xl border border-gray-200/80 bg-white/80 p-8 backdrop-blur-sm transition hover:border-amber-200 dark:border-white/10 dark:bg-white/5 dark:hover:border-amber-400/30"
>
<h2 <h2
class="text-base font-semibold tracking-wide text-gray-900 dark:text-gray-100" class="text-sm font-semibold tracking-wider text-amber-600 uppercase dark:text-amber-300"
> >
Coming soon Coming soon
</h2> </h2>
<ul class="mt-3 space-y-2 text-gray-700 dark:text-gray-300"> <ul
<li class="flex items-start gap-3"> class="mt-4 space-y-3 text-sm leading-relaxed text-gray-700 dark:text-gray-300"
<span class="text-amber-500">•</span><span
>Fully accurate xterm emulation</span
> >
</li>
<li class="flex items-start gap-3"> <li class="flex items-start gap-3">
<span class="text-amber-500">•</span><span <span
class="mt-1 inline-flex h-5 w-5 items-center justify-center rounded-full bg-amber-500/10 text-sm font-semibold text-amber-600 dark:text-amber-300"
>•</span
>
<span
>On-device LLM for command completion and output summarization</span >On-device LLM for command completion and output summarization</span
> >
</li> </li>
<ul></ul> <li class="flex items-start gap-3">
<span
class="mt-1 inline-flex h-5 w-5 items-center justify-center rounded-full bg-amber-500/10 text-sm font-semibold text-amber-600 dark:text-amber-300"
>•</span
>
<span>Configurable preset command buttons</span>
</li>
</ul> </ul>
</div> </article>
<div class="rounded-xl border border-gray-200 p-6 dark:border-gray-800"> <article
class="rounded-3xl border border-gray-200/80 bg-white/80 p-8 backdrop-blur-sm transition hover:border-blue-200 dark:border-white/10 dark:bg-white/5 dark:hover:border-blue-400/30"
>
<h2 <h2
class="text-base font-semibold tracking-wide text-gray-900 dark:text-gray-100" class="text-sm font-semibold tracking-wider text-blue-600 uppercase dark:text-blue-300"
> >
Technical specs Technical specs
</h2> </h2>
<ul class="mt-3 space-y-2 text-gray-700 dark:text-gray-300"> <ul
class="mt-4 space-y-3 text-sm leading-relaxed text-gray-700 dark:text-gray-300"
>
<li class="flex items-start gap-3"> <li class="flex items-start gap-3">
<span class="text-blue-500">•</span> <span
class="mt-1 inline-flex h-5 w-5 items-center justify-center rounded-full bg-blue-500/10 text-sm font-semibold text-blue-600 dark:text-blue-300"
>•</span
>
<span>UI built with React Native</span> <span>UI built with React Native</span>
</li> </li>
<li class="flex items-start gap-3"> <li class="flex items-start gap-3">
<span class="text-blue-500">•</span> <span
class="mt-1 inline-flex h-5 w-5 items-center justify-center rounded-full bg-blue-500/10 text-sm font-semibold text-blue-600 dark:text-blue-300"
>•</span
>
<span> <span>
SSH core powered by SSH core powered by
<a <a
@@ -115,10 +216,96 @@ const image = iosDarkAppIcon.src;
</span> </span>
</li> </li>
<li class="flex items-start gap-3"> <li class="flex items-start gap-3">
<span class="text-blue-500">•</span> <span
<span>Planned to be open source</span> class="mt-1 inline-flex h-5 w-5 items-center justify-center rounded-full bg-blue-500/10 text-sm font-semibold text-blue-600 dark:text-blue-300"
>•</span
>
<span>
Open source on
<a
href="https://github.com/EthanShoeDev/fressh"
target="_blank"
rel="noopener noreferrer"
class="text-blue-600 underline decoration-dotted hover:decoration-solid dark:text-blue-400"
>
GitHub
</a>
</span>
</li> </li>
</ul> </ul>
</article>
</div>
<div class="grid gap-6 lg:grid-cols-2">
<a
href="https://www.npmjs.com/package/@fressh/react-native-uniffi-russh"
target="_blank"
rel="noopener noreferrer"
class="group relative overflow-hidden rounded-3xl border border-gray-200 bg-white/80 p-8 backdrop-blur-sm transition hover:-translate-y-1 hover:border-emerald-200 hover:shadow-xl dark:border-white/10 dark:bg-white/5 dark:hover:border-emerald-500/30"
>
<img
src={npmLogoRed.src}
alt="npm"
class="absolute top-5 right-5 h-4 w-auto opacity-80"
loading="lazy"
/>
<h3
class="pr-12 text-lg font-semibold text-gray-900 transition group-hover:text-emerald-600 dark:text-gray-100 dark:group-hover:text-emerald-300"
>
@fressh/react-native-uniffi-russh
</h3>
<p
class="mt-3 text-sm leading-relaxed text-gray-600 dark:text-gray-300"
>
React Native bindings (via uniffi) exposing a native Rust module for
the Russh SSH library.
</p>
</a>
<a
href="https://www.npmjs.com/package/@fressh/react-native-xtermjs-webview"
target="_blank"
rel="noopener noreferrer"
class="group relative overflow-hidden rounded-3xl border border-gray-200 bg-white/80 p-8 backdrop-blur-sm transition hover:-translate-y-1 hover:border-blue-200 hover:shadow-xl dark:border-white/10 dark:bg-white/5 dark:hover:border-blue-400/30"
>
<img
src={npmLogoRed.src}
alt="npm"
class="absolute top-5 right-5 h-4 w-auto opacity-80"
loading="lazy"
/>
<h3
class="pr-12 text-lg font-semibold text-gray-900 transition group-hover:text-blue-600 dark:text-gray-100 dark:group-hover:text-blue-300"
>
@fressh/react-native-xtermjs-webview
</h3>
<p
class="mt-3 text-sm leading-relaxed text-gray-600 dark:text-gray-300"
>
An Expo WebView preloaded with xterm.js for terminal rendering on
iOS and Android.
</p>
</a>
</div>
<div class="mt-16">
<div
class="mx-auto max-w-5xl rounded-[2.5rem] border border-gray-200/70 bg-white/80 px-8 py-12 shadow-xl shadow-emerald-500/5 backdrop-blur dark:border-white/10 dark:bg-white/5 dark:shadow-emerald-500/10"
>
<div
class="flex flex-col items-center gap-8 lg:flex-row lg:justify-center"
>
<img
src={hostsTabAndroidScreenshot.src}
alt="Hosts tab screenshot"
class="w-full max-w-xs rounded-3xl border border-white/60 shadow-xl ring-1 shadow-emerald-500/15 ring-emerald-500/10 dark:border-white/10 dark:ring-white/10"
loading="lazy"
/>
<img
src={shellDetailAndroidScreenshot.src}
alt="Shell detail screenshot"
class="w-full max-w-xs rounded-3xl border border-white/60 shadow-xl ring-1 shadow-slate-900/10 ring-slate-900/10 dark:border-white/10 dark:ring-white/10"
loading="lazy"
/>
</div>
</div>
</div> </div>
</div> </div>
</section> </section>

View File

@@ -8,8 +8,8 @@
<p>Effective date: October 9, 2025</p> <p>Effective date: October 9, 2025</p>
<p> <p>
Fressh ("the App") is provided by an individual developer ("we", "us"). Fressh ("the App") is provided by an individual developer ("we", "us"). This
This policy explains how the App handles information. policy explains how the App handles information.
</p> </p>
<h2>Summary</h2> <h2>Summary</h2>
@@ -36,16 +36,32 @@
<h2>Permissions</h2> <h2>Permissions</h2>
<ul> <ul>
<li><strong>Network access</strong>: required to connect to SSH servers you choose.</li> <li>
<li><strong>Local storage</strong>: used to save SSH profiles/keys if you opt to store them.</li> <strong>Network access</strong>: required to connect to SSH servers you
<li><strong>Clipboard</strong> (optional): used only when you copy/paste text during a session.</li> choose.
</li>
<li>
<strong>Local storage</strong>: used to save SSH profiles/keys if you opt
to store them.
</li>
<li>
<strong>Clipboard</strong> (optional): used only when you copy/paste text during
a session.
</li>
</ul> </ul>
<h2>Collection, sharing, and retention</h2> <h2>Collection, sharing, and retention</h2>
<ul> <ul>
<li><strong>Collection</strong>: We do not collect or process personal data.</li> <li>
<li><strong>Sharing</strong>: We do not sell or share data with third parties.</li> <strong>Collection</strong>: We do not collect or process personal data.
<li><strong>Retention</strong>: Data you save remains on your device until you delete it or uninstall the App.</li> </li>
<li>
<strong>Sharing</strong>: We do not sell or share data with third parties.
</li>
<li>
<strong>Retention</strong>: Data you save remains on your device until you
delete it or uninstall the App.
</li>
</ul> </ul>
<h2>Childrens privacy</h2> <h2>Childrens privacy</h2>
@@ -77,5 +93,3 @@
<a href="mailto:ethanshoedev@gmail.com">ethanshoedev@gmail.com</a>. <a href="mailto:ethanshoedev@gmail.com">ethanshoedev@gmail.com</a>.
</p> </p>
</main> </main>

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

View File

Before

Width:  |  Height:  |  Size: 827 KiB

After

Width:  |  Height:  |  Size: 827 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 148 KiB

View File

@@ -0,0 +1,46 @@
<svg id="livetype" xmlns="http://www.w3.org/2000/svg" width="119.66407" height="40" viewBox="0 0 119.66407 40">
<title>Download_on_the_App_Store_Badge_US-UK_RGB_blk_4SVG_092917</title>
<g>
<g>
<g>
<path d="M110.13477,0H9.53468c-.3667,0-.729,0-1.09473.002-.30615.002-.60986.00781-.91895.0127A13.21476,13.21476,0,0,0,5.5171.19141a6.66509,6.66509,0,0,0-1.90088.627A6.43779,6.43779,0,0,0,1.99757,1.99707,6.25844,6.25844,0,0,0,.81935,3.61816a6.60119,6.60119,0,0,0-.625,1.90332,12.993,12.993,0,0,0-.1792,2.002C.00587,7.83008.00489,8.1377,0,8.44434V31.5586c.00489.3105.00587.6113.01515.9219a12.99232,12.99232,0,0,0,.1792,2.0019,6.58756,6.58756,0,0,0,.625,1.9043A6.20778,6.20778,0,0,0,1.99757,38.001a6.27445,6.27445,0,0,0,1.61865,1.1787,6.70082,6.70082,0,0,0,1.90088.6308,13.45514,13.45514,0,0,0,2.0039.1768c.30909.0068.6128.0107.91895.0107C8.80567,40,9.168,40,9.53468,40H110.13477c.3594,0,.7246,0,1.084-.002.3047,0,.6172-.0039.9219-.0107a13.279,13.279,0,0,0,2-.1768,6.80432,6.80432,0,0,0,1.9082-.6308,6.27742,6.27742,0,0,0,1.6172-1.1787,6.39482,6.39482,0,0,0,1.1816-1.6143,6.60413,6.60413,0,0,0,.6191-1.9043,13.50643,13.50643,0,0,0,.1856-2.0019c.0039-.3106.0039-.6114.0039-.9219.0078-.3633.0078-.7246.0078-1.0938V9.53613c0-.36621,0-.72949-.0078-1.09179,0-.30664,0-.61426-.0039-.9209a13.5071,13.5071,0,0,0-.1856-2.002,6.6177,6.6177,0,0,0-.6191-1.90332,6.46619,6.46619,0,0,0-2.7988-2.7998,6.76754,6.76754,0,0,0-1.9082-.627,13.04394,13.04394,0,0,0-2-.17676c-.3047-.00488-.6172-.01074-.9219-.01269-.3594-.002-.7246-.002-1.084-.002Z" style="fill: #a6a6a6"/>
<path d="M8.44483,39.125c-.30468,0-.602-.0039-.90429-.0107a12.68714,12.68714,0,0,1-1.86914-.1631,5.88381,5.88381,0,0,1-1.65674-.5479,5.40573,5.40573,0,0,1-1.397-1.0166,5.32082,5.32082,0,0,1-1.02051-1.3965,5.72186,5.72186,0,0,1-.543-1.6572,12.41351,12.41351,0,0,1-.1665-1.875c-.00634-.2109-.01464-.9131-.01464-.9131V8.44434S.88185,7.75293.8877,7.5498a12.37039,12.37039,0,0,1,.16553-1.87207,5.7555,5.7555,0,0,1,.54346-1.6621A5.37349,5.37349,0,0,1,2.61183,2.61768,5.56543,5.56543,0,0,1,4.01417,1.59521a5.82309,5.82309,0,0,1,1.65332-.54394A12.58589,12.58589,0,0,1,7.543.88721L8.44532.875H111.21387l.9131.0127a12.38493,12.38493,0,0,1,1.8584.16259,5.93833,5.93833,0,0,1,1.6709.54785,5.59374,5.59374,0,0,1,2.415,2.41993,5.76267,5.76267,0,0,1,.5352,1.64892,12.995,12.995,0,0,1,.1738,1.88721c.0029.2832.0029.5874.0029.89014.0079.375.0079.73193.0079,1.09179V30.4648c0,.3633,0,.7178-.0079,1.0752,0,.3252,0,.6231-.0039.9297a12.73126,12.73126,0,0,1-.1709,1.8535,5.739,5.739,0,0,1-.54,1.67,5.48029,5.48029,0,0,1-1.0156,1.3857,5.4129,5.4129,0,0,1-1.3994,1.0225,5.86168,5.86168,0,0,1-1.668.5498,12.54218,12.54218,0,0,1-1.8692.1631c-.2929.0068-.5996.0107-.8974.0107l-1.084.002Z"/>
</g>
<g id="_Group_" data-name="&lt;Group&gt;">
<g id="_Group_2" data-name="&lt;Group&gt;">
<g id="_Group_3" data-name="&lt;Group&gt;">
<path id="_Path_" data-name="&lt;Path&gt;" d="M24.76888,20.30068a4.94881,4.94881,0,0,1,2.35656-4.15206,5.06566,5.06566,0,0,0-3.99116-2.15768c-1.67924-.17626-3.30719,1.00483-4.1629,1.00483-.87227,0-2.18977-.98733-3.6085-.95814a5.31529,5.31529,0,0,0-4.47292,2.72787c-1.934,3.34842-.49141,8.26947,1.3612,10.97608.9269,1.32535,2.01018,2.8058,3.42763,2.7533,1.38706-.05753,1.9051-.88448,3.5794-.88448,1.65876,0,2.14479.88448,3.591.8511,1.48838-.02416,2.42613-1.33124,3.32051-2.66914a10.962,10.962,0,0,0,1.51842-3.09251A4.78205,4.78205,0,0,1,24.76888,20.30068Z" style="fill: #fff"/>
<path id="_Path_2" data-name="&lt;Path&gt;" d="M22.03725,12.21089a4.87248,4.87248,0,0,0,1.11452-3.49062,4.95746,4.95746,0,0,0-3.20758,1.65961,4.63634,4.63634,0,0,0-1.14371,3.36139A4.09905,4.09905,0,0,0,22.03725,12.21089Z" style="fill: #fff"/>
</g>
</g>
<g>
<path d="M42.30227,27.13965h-4.7334l-1.13672,3.35645H34.42727l4.4834-12.418h2.083l4.4834,12.418H43.438ZM38.0591,25.59082h3.752l-1.84961-5.44727h-.05176Z" style="fill: #fff"/>
<path d="M55.15969,25.96973c0,2.81348-1.50586,4.62109-3.77832,4.62109a3.0693,3.0693,0,0,1-2.84863-1.584h-.043v4.48438h-1.8584V21.44238H48.4302v1.50586h.03418a3.21162,3.21162,0,0,1,2.88281-1.60059C53.645,21.34766,55.15969,23.16406,55.15969,25.96973Zm-1.91016,0c0-1.833-.94727-3.03809-2.39258-3.03809-1.41992,0-2.375,1.23047-2.375,3.03809,0,1.82422.95508,3.0459,2.375,3.0459C52.30227,29.01563,53.24953,27.81934,53.24953,25.96973Z" style="fill: #fff"/>
<path d="M65.12453,25.96973c0,2.81348-1.50586,4.62109-3.77832,4.62109a3.0693,3.0693,0,0,1-2.84863-1.584h-.043v4.48438h-1.8584V21.44238H58.395v1.50586h.03418A3.21162,3.21162,0,0,1,61.312,21.34766C63.60988,21.34766,65.12453,23.16406,65.12453,25.96973Zm-1.91016,0c0-1.833-.94727-3.03809-2.39258-3.03809-1.41992,0-2.375,1.23047-2.375,3.03809,0,1.82422.95508,3.0459,2.375,3.0459C62.26711,29.01563,63.21438,27.81934,63.21438,25.96973Z" style="fill: #fff"/>
<path d="M71.71047,27.03613c.1377,1.23145,1.334,2.04,2.96875,2.04,1.56641,0,2.69336-.80859,2.69336-1.91895,0-.96387-.67969-1.541-2.28906-1.93652l-1.60937-.3877c-2.28027-.55078-3.33887-1.61719-3.33887-3.34766,0-2.14258,1.86719-3.61426,4.51855-3.61426,2.624,0,4.42285,1.47168,4.4834,3.61426h-1.876c-.1123-1.23926-1.13672-1.9873-2.63379-1.9873s-2.52148.75684-2.52148,1.8584c0,.87793.6543,1.39453,2.25488,1.79l1.36816.33594c2.54785.60254,3.60645,1.626,3.60645,3.44238,0,2.32324-1.85059,3.77832-4.79395,3.77832-2.75391,0-4.61328-1.4209-4.7334-3.667Z" style="fill: #fff"/>
<path d="M83.34621,19.2998v2.14258h1.72168v1.47168H83.34621v4.99121c0,.77539.34473,1.13672,1.10156,1.13672a5.80752,5.80752,0,0,0,.61133-.043v1.46289a5.10351,5.10351,0,0,1-1.03223.08594c-1.833,0-2.54785-.68848-2.54785-2.44434V22.91406H80.16262V21.44238H81.479V19.2998Z" style="fill: #fff"/>
<path d="M86.065,25.96973c0-2.84863,1.67773-4.63867,4.29395-4.63867,2.625,0,4.29492,1.79,4.29492,4.63867,0,2.85645-1.66113,4.63867-4.29492,4.63867C87.72609,30.6084,86.065,28.82617,86.065,25.96973Zm6.69531,0c0-1.9541-.89551-3.10742-2.40137-3.10742s-2.40039,1.16211-2.40039,3.10742c0,1.96191.89453,3.10645,2.40039,3.10645S92.76027,27.93164,92.76027,25.96973Z" style="fill: #fff"/>
<path d="M96.18606,21.44238h1.77246v1.541h.043a2.1594,2.1594,0,0,1,2.17773-1.63574,2.86616,2.86616,0,0,1,.63672.06934v1.73828a2.59794,2.59794,0,0,0-.835-.1123,1.87264,1.87264,0,0,0-1.93652,2.083v5.37012h-1.8584Z" style="fill: #fff"/>
<path d="M109.3843,27.83691c-.25,1.64355-1.85059,2.77148-3.89844,2.77148-2.63379,0-4.26855-1.76465-4.26855-4.5957,0-2.83984,1.64355-4.68164,4.19043-4.68164,2.50488,0,4.08008,1.7207,4.08008,4.46582v.63672h-6.39453v.1123a2.358,2.358,0,0,0,2.43555,2.56445,2.04834,2.04834,0,0,0,2.09082-1.27344Zm-6.28223-2.70215h4.52637a2.1773,2.1773,0,0,0-2.2207-2.29785A2.292,2.292,0,0,0,103.10207,25.13477Z" style="fill: #fff"/>
</g>
</g>
</g>
<g id="_Group_4" data-name="&lt;Group&gt;">
<g>
<path d="M37.82619,8.731a2.63964,2.63964,0,0,1,2.80762,2.96484c0,1.90625-1.03027,3.002-2.80762,3.002H35.67092V8.731Zm-1.22852,5.123h1.125a1.87588,1.87588,0,0,0,1.96777-2.146,1.881,1.881,0,0,0-1.96777-2.13379h-1.125Z" style="fill: #fff"/>
<path d="M41.68068,12.44434a2.13323,2.13323,0,1,1,4.24707,0,2.13358,2.13358,0,1,1-4.24707,0Zm3.333,0c0-.97607-.43848-1.54687-1.208-1.54687-.77246,0-1.207.5708-1.207,1.54688,0,.98389.43457,1.55029,1.207,1.55029C44.57522,13.99463,45.01369,13.42432,45.01369,12.44434Z" style="fill: #fff"/>
<path d="M51.57326,14.69775h-.92187l-.93066-3.31641h-.07031l-.92676,3.31641h-.91309l-1.24121-4.50293h.90137l.80664,3.436h.06641l.92578-3.436h.85254l.92578,3.436h.07031l.80273-3.436h.88867Z" style="fill: #fff"/>
<path d="M53.85354,10.19482H54.709v.71533h.06641a1.348,1.348,0,0,1,1.34375-.80225,1.46456,1.46456,0,0,1,1.55859,1.6748v2.915h-.88867V12.00586c0-.72363-.31445-1.0835-.97168-1.0835a1.03294,1.03294,0,0,0-1.0752,1.14111v2.63428h-.88867Z" style="fill: #fff"/>
<path d="M59.09377,8.437h.88867v6.26074h-.88867Z" style="fill: #fff"/>
<path d="M61.21779,12.44434a2.13346,2.13346,0,1,1,4.24756,0,2.1338,2.1338,0,1,1-4.24756,0Zm3.333,0c0-.97607-.43848-1.54687-1.208-1.54687-.77246,0-1.207.5708-1.207,1.54688,0,.98389.43457,1.55029,1.207,1.55029C64.11232,13.99463,64.5508,13.42432,64.5508,12.44434Z" style="fill: #fff"/>
<path d="M66.4009,13.42432c0-.81055.60352-1.27783,1.6748-1.34424l1.21973-.07031v-.38867c0-.47559-.31445-.74414-.92187-.74414-.49609,0-.83984.18213-.93848.50049h-.86035c.09082-.77344.81836-1.26953,1.83984-1.26953,1.12891,0,1.76563.562,1.76563,1.51318v3.07666h-.85547v-.63281h-.07031a1.515,1.515,0,0,1-1.35254.707A1.36026,1.36026,0,0,1,66.4009,13.42432Zm2.89453-.38477v-.37646l-1.09961.07031c-.62012.0415-.90137.25244-.90137.64941,0,.40527.35156.64111.835.64111A1.0615,1.0615,0,0,0,69.29543,13.03955Z" style="fill: #fff"/>
<path d="M71.34816,12.44434c0-1.42285.73145-2.32422,1.86914-2.32422a1.484,1.484,0,0,1,1.38086.79h.06641V8.437h.88867v6.26074h-.85156v-.71143h-.07031a1.56284,1.56284,0,0,1-1.41406.78564C72.0718,14.772,71.34816,13.87061,71.34816,12.44434Zm.918,0c0,.95508.4502,1.52979,1.20313,1.52979.749,0,1.21191-.583,1.21191-1.52588,0-.93848-.46777-1.52979-1.21191-1.52979C72.72121,10.91846,72.26613,11.49707,72.26613,12.44434Z" style="fill: #fff"/>
<path d="M79.23,12.44434a2.13323,2.13323,0,1,1,4.24707,0,2.13358,2.13358,0,1,1-4.24707,0Zm3.333,0c0-.97607-.43848-1.54687-1.208-1.54687-.77246,0-1.207.5708-1.207,1.54688,0,.98389.43457,1.55029,1.207,1.55029C82.12453,13.99463,82.563,13.42432,82.563,12.44434Z" style="fill: #fff"/>
<path d="M84.66945,10.19482h.85547v.71533h.06641a1.348,1.348,0,0,1,1.34375-.80225,1.46456,1.46456,0,0,1,1.55859,1.6748v2.915H87.605V12.00586c0-.72363-.31445-1.0835-.97168-1.0835a1.03294,1.03294,0,0,0-1.0752,1.14111v2.63428h-.88867Z" style="fill: #fff"/>
<path d="M93.51516,9.07373v1.1416h.97559v.74854h-.97559V13.2793c0,.47168.19434.67822.63672.67822a2.96657,2.96657,0,0,0,.33887-.02051v.74023a2.9155,2.9155,0,0,1-.4834.04541c-.98828,0-1.38184-.34766-1.38184-1.21582v-2.543h-.71484v-.74854h.71484V9.07373Z" style="fill: #fff"/>
<path d="M95.70461,8.437h.88086v2.48145h.07031a1.3856,1.3856,0,0,1,1.373-.80664,1.48339,1.48339,0,0,1,1.55078,1.67871v2.90723H98.69v-2.688c0-.71924-.335-1.0835-.96289-1.0835a1.05194,1.05194,0,0,0-1.13379,1.1416v2.62988h-.88867Z" style="fill: #fff"/>
<path d="M104.76125,13.48193a1.828,1.828,0,0,1-1.95117,1.30273A2.04531,2.04531,0,0,1,100.73,12.46045a2.07685,2.07685,0,0,1,2.07617-2.35254c1.25293,0,2.00879.856,2.00879,2.27V12.688h-3.17969v.0498a1.1902,1.1902,0,0,0,1.19922,1.29,1.07934,1.07934,0,0,0,1.07129-.5459Zm-3.126-1.45117h2.27441a1.08647,1.08647,0,0,0-1.1084-1.1665A1.15162,1.15162,0,0,0,101.63527,12.03076Z" style="fill: #fff"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -0,0 +1,46 @@
<svg id="livetype" xmlns="http://www.w3.org/2000/svg" width="119.66407" height="40" viewBox="0 0 119.66407 40">
<title>Download_on_the_App_Store_Badge_US-UK_RGB_wht_092917</title>
<g>
<g>
<g>
<path d="M110.13477,0H9.53468c-.3667,0-.729,0-1.09473.002-.30615.002-.60986.00781-.91895.0127A13.21476,13.21476,0,0,0,5.5171.19141a6.66509,6.66509,0,0,0-1.90088.627A6.43779,6.43779,0,0,0,1.99757,1.99707,6.25844,6.25844,0,0,0,.81935,3.61816a6.60119,6.60119,0,0,0-.625,1.90332,12.993,12.993,0,0,0-.1792,2.002C.00587,7.83008.00489,8.1377,0,8.44434V31.5586c.00489.3105.00587.6113.01515.9219a12.99232,12.99232,0,0,0,.1792,2.0019,6.58756,6.58756,0,0,0,.625,1.9043A6.20778,6.20778,0,0,0,1.99757,38.001a6.27445,6.27445,0,0,0,1.61865,1.1787,6.70082,6.70082,0,0,0,1.90088.6308,13.45514,13.45514,0,0,0,2.0039.1768c.30909.0068.6128.0107.91895.0107C8.80567,40,9.168,40,9.53468,40H110.13477c.3594,0,.7246,0,1.084-.002.3047,0,.6172-.0039.9219-.0107a13.279,13.279,0,0,0,2-.1768,6.80432,6.80432,0,0,0,1.9082-.6308,6.27742,6.27742,0,0,0,1.6172-1.1787,6.39482,6.39482,0,0,0,1.1816-1.6143,6.60413,6.60413,0,0,0,.6191-1.9043,13.50643,13.50643,0,0,0,.1856-2.0019c.0039-.3106.0039-.6114.0039-.9219.0078-.3633.0078-.7246.0078-1.0938V9.53613c0-.36621,0-.72949-.0078-1.09179,0-.30664,0-.61426-.0039-.9209a13.5071,13.5071,0,0,0-.1856-2.002,6.6177,6.6177,0,0,0-.6191-1.90332,6.46619,6.46619,0,0,0-2.7988-2.7998,6.76754,6.76754,0,0,0-1.9082-.627,13.04394,13.04394,0,0,0-2-.17676c-.3047-.00488-.6172-.01074-.9219-.01269-.3594-.002-.7246-.002-1.084-.002Z"/>
<path d="M8.44483,39.125c-.30468,0-.602-.0039-.90429-.0107a12.68714,12.68714,0,0,1-1.86914-.1631,5.88381,5.88381,0,0,1-1.65674-.5479,5.40573,5.40573,0,0,1-1.397-1.0166,5.32082,5.32082,0,0,1-1.02051-1.3965,5.72186,5.72186,0,0,1-.543-1.6572,12.41351,12.41351,0,0,1-.1665-1.875c-.00634-.2109-.01464-.9131-.01464-.9131V8.44434S.88185,7.75293.8877,7.5498a12.37039,12.37039,0,0,1,.16553-1.87207,5.7555,5.7555,0,0,1,.54346-1.6621A5.37349,5.37349,0,0,1,2.61183,2.61768,5.56543,5.56543,0,0,1,4.01417,1.59521a5.82309,5.82309,0,0,1,1.65332-.54394A12.58589,12.58589,0,0,1,7.543.88721L8.44532.875H111.21387l.9131.0127a12.38493,12.38493,0,0,1,1.8584.16259,5.93833,5.93833,0,0,1,1.6709.54785,5.59374,5.59374,0,0,1,2.415,2.41993,5.76267,5.76267,0,0,1,.5352,1.64892,12.995,12.995,0,0,1,.1738,1.88721c.0029.2832.0029.5874.0029.89014.0079.375.0079.73193.0079,1.09179V30.4648c0,.3633,0,.7178-.0079,1.0752,0,.3252,0,.6231-.0039.9297a12.73126,12.73126,0,0,1-.1709,1.8535,5.739,5.739,0,0,1-.54,1.67,5.48029,5.48029,0,0,1-1.0156,1.3857,5.4129,5.4129,0,0,1-1.3994,1.0225,5.86168,5.86168,0,0,1-1.668.5498,12.54218,12.54218,0,0,1-1.8692.1631c-.2929.0068-.5996.0107-.8974.0107l-1.084.002Z" style="fill: #fff"/>
</g>
<g id="_Group_" data-name="&lt;Group&gt;">
<g id="_Group_2" data-name="&lt;Group&gt;">
<g id="_Group_3" data-name="&lt;Group&gt;">
<path id="_Path_" data-name="&lt;Path&gt;" d="M24.99671,19.88935a5.14625,5.14625,0,0,1,2.45058-4.31771,5.26776,5.26776,0,0,0-4.15039-2.24376c-1.74624-.1833-3.43913,1.04492-4.329,1.04492-.90707,0-2.27713-1.02672-3.75247-.99637a5.52735,5.52735,0,0,0-4.65137,2.8367c-2.01111,3.482-.511,8.59939,1.41551,11.414.96388,1.37823,2.09037,2.91774,3.56438,2.86315,1.4424-.05983,1.98111-.91977,3.7222-.91977,1.72494,0,2.23035.91977,3.73427.88506,1.54777-.02512,2.52292-1.38435,3.453-2.77563a11.39931,11.39931,0,0,0,1.579-3.21589A4.97284,4.97284,0,0,1,24.99671,19.88935Z"/>
<path id="_Path_2" data-name="&lt;Path&gt;" d="M22.15611,11.47681a5.06687,5.06687,0,0,0,1.159-3.62989,5.15524,5.15524,0,0,0-3.33555,1.72582,4.82131,4.82131,0,0,0-1.18934,3.4955A4.26259,4.26259,0,0,0,22.15611,11.47681Z"/>
</g>
</g>
<g>
<path d="M42.30178,27.13965h-4.7334l-1.13672,3.35645H34.42678l4.4834-12.418h2.083l4.4834,12.418H43.43752Zm-4.24316-1.54883h3.752L39.961,20.14355H39.9092Z"/>
<path d="M55.1592,25.96973c0,2.81348-1.50586,4.62109-3.77832,4.62109a3.0693,3.0693,0,0,1-2.84863-1.584h-.043v4.48438h-1.8584V21.44238h1.79883v1.50586h.03418a3.21162,3.21162,0,0,1,2.88281-1.60059C53.64455,21.34766,55.1592,23.16406,55.1592,25.96973Zm-1.91016,0c0-1.833-.94727-3.03809-2.39258-3.03809-1.41992,0-2.375,1.23047-2.375,3.03809,0,1.82422.95508,3.0459,2.375,3.0459C52.30178,29.01563,53.249,27.81934,53.249,25.96973Z"/>
<path d="M65.12453,25.96973c0,2.81348-1.50635,4.62109-3.77881,4.62109a3.0693,3.0693,0,0,1-2.84863-1.584h-.043v4.48438h-1.8584V21.44238h1.79883v1.50586h.03418a3.21162,3.21162,0,0,1,2.88281-1.60059C63.6094,21.34766,65.12453,23.16406,65.12453,25.96973Zm-1.91064,0c0-1.833-.94727-3.03809-2.39258-3.03809-1.41992,0-2.375,1.23047-2.375,3.03809,0,1.82422.95508,3.0459,2.375,3.0459C62.26662,29.01563,63.21389,27.81934,63.21389,25.96973Z"/>
<path d="M71.70949,27.03613c.1377,1.23145,1.334,2.04,2.96875,2.04,1.56641,0,2.69336-.80859,2.69336-1.91895,0-.96387-.67969-1.541-2.28906-1.93652l-1.60937-.3877c-2.28027-.55078-3.33887-1.61719-3.33887-3.34766,0-2.14258,1.86719-3.61426,4.51758-3.61426,2.625,0,4.42383,1.47168,4.48438,3.61426h-1.876c-.1123-1.23926-1.13672-1.9873-2.63379-1.9873s-2.52148.75684-2.52148,1.8584c0,.87793.6543,1.39453,2.25488,1.79l1.36816.33594c2.54785.60254,3.60547,1.626,3.60547,3.44238,0,2.32324-1.84961,3.77832-4.793,3.77832-2.75391,0-4.61328-1.4209-4.7334-3.667Z"/>
<path d="M83.34621,19.2998v2.14258h1.72168v1.47168H83.34621v4.99121c0,.77539.34473,1.13672,1.10156,1.13672a5.80752,5.80752,0,0,0,.61133-.043v1.46289a5.10351,5.10351,0,0,1-1.03223.08594c-1.833,0-2.54785-.68848-2.54785-2.44434V22.91406H80.16262V21.44238H81.479V19.2998Z"/>
<path d="M86.064,25.96973c0-2.84863,1.67773-4.63867,4.29395-4.63867,2.625,0,4.29492,1.79,4.29492,4.63867,0,2.85645-1.66113,4.63867-4.29492,4.63867C87.72512,30.6084,86.064,28.82617,86.064,25.96973Zm6.69531,0c0-1.9541-.89551-3.10742-2.40137-3.10742s-2.40137,1.16211-2.40137,3.10742c0,1.96191.89551,3.10645,2.40137,3.10645S92.7593,27.93164,92.7593,25.96973Z"/>
<path d="M96.18508,21.44238h1.77246v1.541h.043a2.1594,2.1594,0,0,1,2.17773-1.63574,2.86616,2.86616,0,0,1,.63672.06934v1.73828a2.59794,2.59794,0,0,0-.835-.1123,1.87264,1.87264,0,0,0-1.93652,2.083v5.37012h-1.8584Z"/>
<path d="M109.38332,27.83691c-.25,1.64355-1.85059,2.77148-3.89844,2.77148-2.63379,0-4.26855-1.76465-4.26855-4.5957,0-2.83984,1.64355-4.68164,4.19043-4.68164,2.50488,0,4.08008,1.7207,4.08008,4.46582v.63672h-6.39453v.1123a2.358,2.358,0,0,0,2.43555,2.56445,2.04834,2.04834,0,0,0,2.09082-1.27344Zm-6.28223-2.70215h4.52637a2.1773,2.1773,0,0,0-2.2207-2.29785A2.292,2.292,0,0,0,103.10109,25.13477Z"/>
</g>
</g>
</g>
<g id="_Group_4" data-name="&lt;Group&gt;">
<g>
<path d="M37.82619,8.731a2.63964,2.63964,0,0,1,2.80762,2.96484c0,1.90625-1.03027,3.002-2.80762,3.002H35.67092V8.731Zm-1.22852,5.123h1.125a1.87588,1.87588,0,0,0,1.96777-2.146,1.881,1.881,0,0,0-1.96777-2.13379h-1.125Z"/>
<path d="M41.68068,12.44434a2.13323,2.13323,0,1,1,4.24707,0,2.13358,2.13358,0,1,1-4.24707,0Zm3.333,0c0-.97607-.43848-1.54687-1.208-1.54687-.77246,0-1.207.5708-1.207,1.54688,0,.98389.43457,1.55029,1.207,1.55029C44.57522,13.99463,45.01369,13.42432,45.01369,12.44434Z"/>
<path d="M51.57326,14.69775h-.92187l-.93066-3.31641h-.07031l-.92676,3.31641h-.91309l-1.24121-4.50293h.90137l.80664,3.436h.06641l.92578-3.436h.85254l.92578,3.436h.07031l.80273-3.436h.88867Z"/>
<path d="M53.85354,10.19482H54.709v.71533h.06641a1.348,1.348,0,0,1,1.34375-.80225,1.46456,1.46456,0,0,1,1.55859,1.6748v2.915h-.88867V12.00586c0-.72363-.31445-1.0835-.97168-1.0835a1.03294,1.03294,0,0,0-1.0752,1.14111v2.63428h-.88867Z"/>
<path d="M59.09377,8.437h.88867v6.26074h-.88867Z"/>
<path d="M61.21779,12.44434a2.13346,2.13346,0,1,1,4.24756,0,2.1338,2.1338,0,1,1-4.24756,0Zm3.333,0c0-.97607-.43848-1.54687-1.208-1.54687-.77246,0-1.207.5708-1.207,1.54688,0,.98389.43457,1.55029,1.207,1.55029C64.11232,13.99463,64.5508,13.42432,64.5508,12.44434Z"/>
<path d="M66.4009,13.42432c0-.81055.60352-1.27783,1.6748-1.34424l1.21973-.07031v-.38867c0-.47559-.31445-.74414-.92187-.74414-.49609,0-.83984.18213-.93848.50049h-.86035c.09082-.77344.81836-1.26953,1.83984-1.26953,1.12891,0,1.76563.562,1.76563,1.51318v3.07666h-.85547v-.63281h-.07031a1.515,1.515,0,0,1-1.35254.707A1.36026,1.36026,0,0,1,66.4009,13.42432Zm2.89453-.38477v-.37646l-1.09961.07031c-.62012.0415-.90137.25244-.90137.64941,0,.40527.35156.64111.835.64111A1.0615,1.0615,0,0,0,69.29543,13.03955Z"/>
<path d="M71.34816,12.44434c0-1.42285.73145-2.32422,1.86914-2.32422a1.484,1.484,0,0,1,1.38086.79h.06641V8.437h.88867v6.26074h-.85156v-.71143h-.07031a1.56284,1.56284,0,0,1-1.41406.78564C72.0718,14.772,71.34816,13.87061,71.34816,12.44434Zm.918,0c0,.95508.4502,1.52979,1.20313,1.52979.749,0,1.21191-.583,1.21191-1.52588,0-.93848-.46777-1.52979-1.21191-1.52979C72.72121,10.91846,72.26613,11.49707,72.26613,12.44434Z"/>
<path d="M79.23,12.44434a2.13323,2.13323,0,1,1,4.24707,0,2.13358,2.13358,0,1,1-4.24707,0Zm3.333,0c0-.97607-.43848-1.54687-1.208-1.54687-.77246,0-1.207.5708-1.207,1.54688,0,.98389.43457,1.55029,1.207,1.55029C82.12453,13.99463,82.563,13.42432,82.563,12.44434Z"/>
<path d="M84.66945,10.19482h.85547v.71533h.06641a1.348,1.348,0,0,1,1.34375-.80225,1.46456,1.46456,0,0,1,1.55859,1.6748v2.915H87.605V12.00586c0-.72363-.31445-1.0835-.97168-1.0835a1.03294,1.03294,0,0,0-1.0752,1.14111v2.63428h-.88867Z"/>
<path d="M93.51516,9.07373v1.1416h.97559v.74854h-.97559V13.2793c0,.47168.19434.67822.63672.67822a2.96657,2.96657,0,0,0,.33887-.02051v.74023a2.9155,2.9155,0,0,1-.4834.04541c-.98828,0-1.38184-.34766-1.38184-1.21582v-2.543h-.71484v-.74854h.71484V9.07373Z"/>
<path d="M95.70461,8.437h.88086v2.48145h.07031a1.3856,1.3856,0,0,1,1.373-.80664,1.48339,1.48339,0,0,1,1.55078,1.67871v2.90723H98.69v-2.688c0-.71924-.335-1.0835-.96289-1.0835a1.05194,1.05194,0,0,0-1.13379,1.1416v2.62988h-.88867Z"/>
<path d="M104.76125,13.48193a1.828,1.828,0,0,1-1.95117,1.30273A2.04531,2.04531,0,0,1,100.73,12.46045a2.07685,2.07685,0,0,1,2.07617-2.35254c1.25293,0,2.00879.856,2.00879,2.27V12.688h-3.17969v.0498a1.1902,1.1902,0,0,0,1.19922,1.29,1.07934,1.07934,0,0,0,1.07129-.5459Zm-3.126-1.45117h2.27441a1.08647,1.08647,0,0,0-1.1084-1.1665A1.15162,1.15162,0,0,0,101.63527,12.03076Z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@@ -0,0 +1 @@
<svg width="98" height="96" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 960 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@@ -0,0 +1 @@
<svg width="98" height="96" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z" fill="#24292f"/></svg>

After

Width:  |  Height:  |  Size: 963 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="artwork" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 155 60">
<!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 141) -->
<defs>
<style>
.st0 {
fill: #4285f4;
}
.st1 {
fill: #a6a6a6;
}
.st2 {
stroke: #fff;
stroke-miterlimit: 10;
stroke-width: .2px;
}
.st2, .st3, .st4 {
fill: #fff;
}
.st5 {
fill: #34a853;
}
.st6 {
fill: #fbbc04;
}
.st4 {
fill-opacity: 0;
}
.st7 {
fill: #ea4335;
}
</style>
</defs>
<rect class="st4" width="155" height="60"/>
<rect x="10" y="10" width="135" height="40" rx="5" ry="5"/>
<path class="st1" d="M140,10.8c2.316,0,4.2,1.884,4.2,4.2v30c0,2.316-1.884,4.2-4.2,4.2H15c-2.316,0-4.2-1.884-4.2-4.2V15c0-2.316,1.884-4.2,4.2-4.2h125M140,10H15c-2.75,0-5,2.25-5,5v30c0,2.75,2.25,5,5,5h125c2.75,0,5-2.25,5-5V15c0-2.75-2.25-5-5-5h0Z"/>
<g>
<path class="st2" d="M57.418,20.243c0,.838-.248,1.505-.745,2.003-.564.592-1.3.888-2.204.888-.866,0-1.602-.3-2.208-.9-.606-.601-.909-1.345-.909-2.233s.303-1.633.909-2.233c.605-.601,1.342-.901,2.208-.901.43,0,.841.084,1.232.251.391.168.704.391.938.67l-.527.528c-.397-.475-.944-.712-1.643-.712-.632,0-1.178.222-1.639.666-.461.444-.691,1.021-.691,1.73s.23,1.286.691,1.73c.461.444,1.007.666,1.639.666.67,0,1.229-.223,1.676-.67.29-.291.458-.696.503-1.215h-2.179v-.721h2.907c.028.157.042.307.042.453Z"/>
<path class="st2" d="M62.028,17.737h-2.732v1.902h2.464v.721h-2.464v1.902h2.732v.737h-3.503v-6h3.503v.737Z"/>
<path class="st2" d="M65.279,23h-.771v-5.263h-1.676v-.737h4.123v.737h-1.676v5.263Z"/>
<path class="st2" d="M69.938,23v-6h.77v6h-.77Z"/>
<path class="st2" d="M74.128,23h-.771v-5.263h-1.676v-.737h4.123v.737h-1.676v5.263Z"/>
<path class="st2" d="M83.609,22.225c-.59.607-1.323.909-2.2.909s-1.61-.303-2.199-.909c-.59-.606-.884-1.348-.884-2.225s.294-1.619.884-2.225c.589-.607,1.322-.91,2.199-.91.872,0,1.603.305,2.196.914.592.609.888,1.349.888,2.221,0,.877-.295,1.619-.884,2.225ZM79.779,21.722c.444.45.987.674,1.63.674s1.186-.225,1.63-.674c.444-.45.667-1.024.667-1.722s-.223-1.273-.667-1.722c-.443-.45-.987-.674-1.63-.674s-1.186.225-1.63.674c-.443.45-.666,1.024-.666,1.722s.223,1.273.666,1.722Z"/>
<path class="st2" d="M85.575,23v-6h.939l2.916,4.667h.033l-.033-1.156v-3.511h.771v6h-.805l-3.051-4.894h-.033l.033,1.156v3.737h-.771Z"/>
</g>
<path class="st3" d="M78.136,31.752c-2.352,0-4.269,1.788-4.269,4.253,0,2.449,1.917,4.253,4.269,4.253s4.269-1.804,4.269-4.253c0-2.465-1.917-4.253-4.269-4.253ZM78.136,38.582c-1.289,0-2.4-1.063-2.4-2.578,0-1.531,1.112-2.578,2.4-2.578s2.4,1.047,2.4,2.578c0,1.514-1.112,2.578-2.4,2.578ZM68.823,31.752c-2.352,0-4.269,1.788-4.269,4.253,0,2.449,1.917,4.253,4.269,4.253s4.269-1.804,4.269-4.253c0-2.465-1.917-4.253-4.269-4.253ZM68.823,38.582c-1.289,0-2.401-1.063-2.401-2.578,0-1.531,1.112-2.578,2.401-2.578s2.4,1.047,2.4,2.578c0,1.514-1.112,2.578-2.4,2.578ZM57.744,33.057v1.804h4.318c-.129,1.015-.467,1.756-.983,2.272-.628.628-1.611,1.321-3.335,1.321-2.658,0-4.736-2.143-4.736-4.801s2.078-4.801,4.736-4.801c1.434,0,2.481.564,3.254,1.289l1.273-1.273c-1.079-1.031-2.513-1.82-4.527-1.82-3.641,0-6.702,2.964-6.702,6.605s3.061,6.605,6.702,6.605c1.966,0,3.448-.644,4.608-1.853,1.192-1.192,1.563-2.868,1.563-4.221,0-.419-.032-.805-.097-1.128h-6.074ZM103.052,34.458c-.354-.95-1.434-2.707-3.641-2.707-2.191,0-4.011,1.724-4.011,4.253,0,2.384,1.804,4.253,4.221,4.253,1.949,0,3.077-1.192,3.544-1.885l-1.45-.967c-.483.709-1.144,1.176-2.094,1.176s-1.627-.435-2.062-1.289l5.687-2.352-.193-.483ZM97.252,35.876c-.048-1.643,1.273-2.481,2.223-2.481.741,0,1.369.37,1.579.902l-3.802,1.579ZM92.629,40h1.869v-12.502h-1.869v12.502ZM89.567,32.702h-.064c-.419-.499-1.224-.951-2.239-.951-2.127,0-4.076,1.869-4.076,4.269,0,2.384,1.949,4.237,4.076,4.237,1.015,0,1.82-.451,2.239-.967h.064v.612c0,1.627-.87,2.497-2.272,2.497-1.144,0-1.853-.822-2.143-1.514l-1.627.677c.467,1.128,1.708,2.513,3.77,2.513,2.191,0,4.044-1.289,4.044-4.43v-7.636h-1.772v.693ZM87.425,38.582c-1.289,0-2.368-1.079-2.368-2.562,0-1.498,1.079-2.594,2.368-2.594,1.273,0,2.272,1.096,2.272,2.594,0,1.482-.999,2.562-2.272,2.562ZM111.806,27.499h-4.471v12.501h1.866v-4.736h2.605c2.068,0,4.101-1.497,4.101-3.883s-2.033-3.882-4.101-3.882ZM111.854,33.524h-2.654v-4.285h2.654c1.395,0,2.187,1.155,2.187,2.143,0,.969-.792,2.143-2.187,2.143ZM123.386,31.729c-1.351,0-2.75.595-3.329,1.914l1.657.692c.354-.692,1.013-.917,1.705-.917.965,0,1.946.579,1.962,1.608v.129c-.338-.193-1.061-.483-1.946-.483-1.785,0-3.603.981-3.603,2.815,0,1.673,1.463,2.75,3.104,2.75,1.254,0,1.946-.563,2.38-1.222h.064v.965h1.801v-4.793c0-2.22-1.657-3.458-3.796-3.458ZM123.161,38.58c-.611,0-1.464-.305-1.464-1.061,0-.965,1.061-1.335,1.978-1.335.82,0,1.206.177,1.705.418-.145,1.158-1.142,1.978-2.219,1.978ZM133.743,32.002l-2.139,5.42h-.064l-2.219-5.42h-2.01l3.329,7.575-1.898,4.214h1.946l5.131-11.789h-2.075ZM116.936,40h1.866v-12.501h-1.866v12.501Z"/>
<g>
<path class="st7" d="M30.717,29.424l-10.647,11.3s.001.005.002.007c.327,1.227,1.447,2.13,2.777,2.13.531,0,1.031-.144,1.459-.396l.034-.02,11.984-6.915-5.609-6.106Z"/>
<path class="st6" d="M41.488,27.5l-.01-.007-5.174-3-5.829,5.187,5.849,5.848,5.146-2.969c.902-.487,1.515-1.438,1.515-2.535,0-1.09-.604-2.036-1.498-2.525Z"/>
<path class="st0" d="M20.07,19.277c-.064.236-.098.484-.098.74v19.968c0,.256.033.504.098.739l11.013-11.011-11.013-10.436Z"/>
<path class="st5" d="M30.796,30.001l5.51-5.509-11.97-6.94c-.435-.261-.943-.411-1.486-.411-1.33,0-2.452.905-2.779,2.134,0,0,0,.002,0,.003l10.726,10.724Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 827 KiB

View File

Before

Width:  |  Height:  |  Size: 828 KiB

After

Width:  |  Height:  |  Size: 828 KiB

View File

Before

Width:  |  Height:  |  Size: 886 KiB

After

Width:  |  Height:  |  Size: 886 KiB

View File

Before

Width:  |  Height:  |  Size: 882 KiB

After

Width:  |  Height:  |  Size: 882 KiB

1098
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff