fix: always create release on every build
swadhinbiswas committed 9 months ago
92a9dfd
1 parent b20e79e
commit 92a9dfd
4 files changed
+1187 -101
Showing 4 changed files+1187-100
βΌ.github/workflows/build.yml
+12-5
| @@ -69,11 +69,18 @@ jobs: | ||
69 | 69 | TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} |
70 | 70 | TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} |
71 | 71 | with: |
72 | - tagName: v__VERSION__ | |
73 | - releaseName: 'ChanDesk Pro v__VERSION__' | |
74 | - releaseBody: 'See the assets to download and install this version.' | |
75 | - releaseDraft: true | |
76 | - prerelease: false | |
72 | + tagName: v${{ github.run_number }}-${{ github.sha }} | |
73 | + releaseName: 'ChanDesk Pro Build #${{ github.run_number }}' | |
74 | + releaseBody: | | |
75 | + ## π ChanDesk Pro - Automated Build | |
76 | + | |
77 | + **Commit:** ${{ github.sha }} | |
78 | + **Branch:** ${{ github.ref_name }} | |
79 | + | |
80 | + Download the installer for your platform below. | |
81 | + releaseDraft: false | |
82 | + prerelease: true | |
83 | + includeRelease: true | |
77 | 84 | args: ${{ matrix.args }} |
78 | 85 | |
79 | 86 | - name: Upload artifacts |
80 | 87 | |
βΌREADME.md
+151-95
| @@ -1,158 +1,213 @@ | ||
1 | 1 | <div align="center"> |
2 | 2 | <img src="src-tauri/icons/128x128.png" alt="ChanDesk Pro Logo" width="128" height="128" /> |
3 | 3 | <h1>π₯οΈ ChanDesk Pro</h1> |
4 | - <p><strong>The Ultimate Desktop Client for Imageboards</strong></p> | |
5 | - <p>A blazing-fast, modern desktop app for browsing 4chan, 7chan, and more β with premium UI and powerful features.</p> | |
4 | + <h3>The Ultimate Desktop Client for Imageboards</h3> | |
5 | + <p>A blazing-fast, privacy-focused desktop app for browsing 4chan with a premium UI and powerful features.</p> | |
6 | + | |
6 | 7 | <p> |
7 | 8 | <a href="https://github.com/swadhinbiswas/ChanDeskPro/releases/latest"> |
8 | - <img src="https://img.shields.io/badge/version-0.1.0-blue?style=for-the-badge&logo=github" alt="Version" /> | |
9 | + <img src="https://img.shields.io/github/v/release/swadhinbiswas/ChanDeskPro?style=for-the-badge&logo=github&color=7c3aed" alt="Release" /> | |
10 | + </a> | |
11 | + <a href="https://github.com/swadhinbiswas/ChanDeskPro/releases"> | |
12 | + <img src="https://img.shields.io/github/downloads/swadhinbiswas/ChanDeskPro/total?style=for-the-badge&logo=github&color=10b981" alt="Downloads" /> | |
9 | 13 | </a> |
10 | - <a href="https://gitlab.com/swadhinbiswas/chandeskpro"> | |
11 | - <img src="https://img.shields.io/badge/GitLab-Mirror-orange?style=for-the-badge&logo=gitlab" alt="GitLab" /> | |
14 | + <a href="https://github.com/swadhinbiswas/ChanDeskPro/stargazers"> | |
15 | + <img src="https://img.shields.io/github/stars/swadhinbiswas/ChanDeskPro?style=for-the-badge&logo=github&color=f59e0b" alt="Stars" /> | |
12 | 16 | </a> |
13 | 17 | <a href="LICENSE"> |
14 | - <img src="https://img.shields.io/badge/license-MIT-green?style=for-the-badge" alt="License" /> | |
18 | + <img src="https://img.shields.io/badge/license-MIT-blue?style=for-the-badge" alt="License" /> | |
15 | 19 | </a> |
16 | - <img src="https://img.shields.io/badge/tauri-2.0-orange?style=for-the-badge&logo=tauri" alt="Tauri" /> | |
17 | - <img src="https://img.shields.io/badge/platforms-linux%20|%20windows%20|%20macos%20|%20android%20|%20ios-purple?style=for-the-badge" alt="Platforms" /> | |
20 | + </p> | |
21 | + | |
22 | + <p> | |
23 | + <img src="https://img.shields.io/badge/Tauri-2.0-FFC131?style=flat-square&logo=tauri&logoColor=white" alt="Tauri" /> | |
24 | + <img src="https://img.shields.io/badge/Rust-000000?style=flat-square&logo=rust&logoColor=white" alt="Rust" /> | |
25 | + <img src="https://img.shields.io/badge/TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript" /> | |
26 | + <img src="https://img.shields.io/badge/React-61DAFB?style=flat-square&logo=react&logoColor=black" alt="React" /> | |
27 | + </p> | |
28 | + | |
29 | + <p> | |
30 | + <a href="https://swadhinbiswas.github.io/ChanDeskPro/">π Website</a> β’ | |
31 | + <a href="#-quick-start">β‘ Quick Start</a> β’ | |
32 | + <a href="#-features">β¨ Features</a> β’ | |
33 | + <a href="#-downloads">π₯ Downloads</a> β’ | |
34 | + <a href="https://github.com/swadhinbiswas/ChanDeskPro/discussions">π¬ Community</a> | |
18 | 35 | </p> |
19 | 36 | </div> |
20 | 37 | |
21 | 38 | --- |
22 | 39 | |
40 | +<div align="center"> | |
41 | + <table> | |
42 | + <tr> | |
43 | + <td align="center" width="400"> | |
44 | + <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/palette/macchiato.png" width="400" alt="Theme Preview" /> | |
45 | + <br /> | |
46 | + <sub><b>π¨ Beautiful Themes</b></sub> | |
47 | + </td> | |
48 | + <td align="center" width="400"> | |
49 | + <img src="https://img.shields.io/badge/β‘_Blazing_Fast-Rust_Powered-orange?style=for-the-badge" height="60" alt="Fast" /> | |
50 | + <br /> | |
51 | + <sub><b>π Native Performance</b></sub> | |
52 | + </td> | |
53 | + </tr> | |
54 | + </table> | |
55 | +</div> | |
56 | + | |
57 | +--- | |
58 | + | |
23 | 59 | > [!IMPORTANT] |
24 | -> **DISCLAIMER & CONTENT WARNING** | |
25 | -> | |
26 | -> 1. **Unofficial Client**: This application is an unofficial 3rd-party client. It is not affiliated with, endorsed by, or connected to 4chan.org or any other imageboard. | |
27 | -> 2. **User Responsibility**: By using this software, you agree to abide by the Terms of Service and Rules of the respective imageboards you browse. | |
28 | -> 3. **18+ Content**: Some boards may contain content suitable only for adults. Accessing such content is strictly for users 18 years of age or older (or the legal age of majority in your jurisdiction). The developer assumes no liability for content accessed through this application. | |
60 | +> **DISCLAIMER**: This is an unofficial third-party client. Not affiliated with 4chan.org. | |
61 | +> Some boards contain 18+ content β user discretion is advised. | |
29 | 62 | |
30 | 63 | --- |
31 | 64 | |
32 | 65 | ## β¨ Features |
33 | 66 | |
67 | +<table> | |
68 | +<tr> | |
69 | +<td width="50%"> | |
70 | + | |
34 | 71 | ### π¨ Premium Experience |
35 | -- **Modern UI**: Sleek dark interface inspired by Discord, built with **shadcn/ui**. | |
36 | -- **Theming**: Choose from Nord, Dracula, Catppuccin, and more, or create custom themes. | |
37 | -- **Smooth Animations**: Powered by Framer Motion for a fluid feel. | |
72 | +- **Modern Dark UI** β Sleek interface built with shadcn/ui | |
73 | +- **10+ Themes** β Nord, Dracula, Catppuccin, and more | |
74 | +- **Smooth Animations** β Framer Motion powered transitions | |
38 | 75 | |
39 | -### π Powerful Browsing | |
40 | -- **Grid Catalog**: Visualize threads with high-res thumbnails. | |
41 | -- **Global Search**: Instantly find boards and threads. | |
42 | -- **Smart Filtering**: Filter posts by keywords, tripcodes, or Regex. | |
43 | -- **Multi-Tab**: Browse multiple threads and catalogs simultaneously like a web browser. | |
76 | +### π Power Browsing | |
77 | +- **Grid Catalog** β Visual thread browsing with thumbnails | |
78 | +- **Global Search** β Find boards and threads instantly | |
79 | +- **Smart Filtering** β Keywords, tripcodes, regex support | |
80 | +- **Multi-Tab** β Browser-style tabbed interface | |
81 | + | |
82 | +</td> | |
83 | +<td width="50%"> | |
44 | 84 | |
45 | 85 | ### π¬ Media & Tools |
46 | -- **Immersive Lightbox**: Double-click visuals for a deep-zoom fullscreen experience. | |
47 | -- **Video Player**: Custom controls, loop, and speed settings. | |
48 | -- **Offline Caching**: Automatically caches visited threads for offline reading. | |
49 | -- **Thread Watcher**: Get desktop notifications when watched threads update. | |
86 | +- **Immersive Lightbox** β Fullscreen zoom experience | |
87 | +- **Video Player** β Custom controls, loop, speed | |
88 | +- **Offline Cache** β Browse threads without internet | |
89 | +- **Thread Watcher** β Desktop notifications for updates | |
90 | + | |
91 | +### π Privacy First | |
92 | +- **No Tracking** β Zero analytics or telemetry | |
93 | +- **No Account** β Completely anonymous browsing | |
94 | +- **Open Source** β Fully auditable codebase | |
95 | +- **Direct Connection** β No third-party servers | |
96 | + | |
97 | +</td> | |
98 | +</tr> | |
99 | +</table> | |
50 | 100 | |
51 | 101 | --- |
52 | 102 | |
53 | -## π Security & Privacy | |
103 | +## π₯ Downloads | |
54 | 104 | |
55 | -We take your privacy seriously. Here is how ChanDesk Pro protects you: | |
105 | +<div align="center"> | |
106 | + | |
107 | +| Platform | Download | Architecture | | |
108 | +|:--------:|:--------:|:------------:| | |
109 | +| **πͺ Windows** | [**Download .exe**](https://github.com/swadhinbiswas/ChanDeskPro/releases/latest) | x64, ARM64 | | |
110 | +| **π macOS** | [**Download .dmg**](https://github.com/swadhinbiswas/ChanDeskPro/releases/latest) | Intel, Apple Silicon | | |
111 | +| **π§ Linux** | [**Download**](https://github.com/swadhinbiswas/ChanDeskPro/releases/latest) | .deb, .AppImage, .rpm | | |
56 | 112 | |
57 | -### π‘οΈ Built-in Proxy | |
58 | -We use a local Rust-based proxy to route image and video requests. | |
59 | -- **Function**: Bypasses CORS restrictions enforced by browsers. | |
60 | -- **Privacy**: Your IP address is sent to the imageboard servers (standard behavior), but headers are stripped of tracking referrers. | |
61 | -- **Safety**: No data is ever routed through 3rd-party intermediate servers. It goes strictly `You -> Imageboard`. | |
113 | +</div> | |
62 | 114 | |
63 | -### π No Tokens Required | |
64 | -- **Anonymous**: 4chan and most supported imageboards are anonymous. You do **not** need an account or API token. | |
65 | -- **Recaptcha**: Posting uses the native Captcha v2 widget when required. No specialized "pass" is needed (though 4chan Pass support is planned). | |
115 | +> [!TIP] | |
116 | +> **Linux Users**: If using AppImage, make it executable first: `chmod +x ChanDesk*.AppImage` | |
66 | 117 | |
67 | 118 | --- |
68 | 119 | |
69 | -## π¦ Downloads | |
120 | +## β‘ Quick Start | |
70 | 121 | |
71 | -| Platform | Installer | Portable | | |
72 | -|----------|-----------|----------| | |
73 | -| **Windows** | [`ChanDesk-Setup-x64.exe`](../../releases/latest) | [`ChanDesk-x64.nsis.zip`](../../releases/latest) | | |
74 | -| **macOS** | [`ChanDesk-x64.dmg`](../../releases/latest) | [`ChanDesk.app.tar.gz`](../../releases/latest) | | |
75 | -| **Linux** | [`ChanDesk_amd64.deb`](../../releases/latest) | [`ChanDesk.AppImage`](../../releases/latest) | | |
76 | -| **Android** | [`ChanDesk.apk`](../../releases/latest) | - | | |
122 | +### Install & Run | |
123 | +1. Download the installer for your OS from [**Releases**](https://github.com/swadhinbiswas/ChanDeskPro/releases/latest) | |
124 | +2. Run the installer | |
125 | +3. Launch ChanDesk Pro and start browsing! | |
126 | + | |
127 | +### β¨οΈ Keyboard Shortcuts | |
128 | + | |
129 | +| Action | Shortcut | | |
130 | +|--------|----------| | |
131 | +| Scroll posts | `J` / `K` | | |
132 | +| Fullscreen image | `Alt+F` or `Double Click` | | |
133 | +| Close modals | `Esc` | | |
134 | +| New tab | `Ctrl+T` | | |
77 | 135 | |
78 | 136 | --- |
79 | 137 | |
80 | -## π Quick Start | |
138 | +## π οΈ Build from Source | |
81 | 139 | |
82 | -### Installation | |
83 | -1. Download the installer for your OS from the [Releases](../../releases/latest) page. | |
84 | -2. Run the installer. | |
85 | -3. (Linux) If using AppImage, allow execution: `chmod +x ChanDesk.AppImage`. | |
140 | +**Prerequisites:** [Bun](https://bun.sh), [Rust](https://rustup.rs) | |
86 | 141 | |
87 | -### Usage | |
88 | -- **Navigation**: Use the sidebar to switch boards. Click the "Star" to favorite. | |
89 | -- **Shortcuts**: | |
90 | - - `J` / `K`: Scroll posts | |
91 | - - `Alt+F` / `Double Click`: Fullscreen Image | |
92 | - - `Esc`: Close modals | |
93 | - - `Ctrl+T`: New Tab | |
142 | +```bash | |
143 | +# Clone the repository | |
144 | +git clone https://github.com/swadhinbiswas/ChanDeskPro.git | |
145 | +cd ChanDeskPro | |
94 | 146 | |
147 | +# Install dependencies | |
148 | +bun install | |
95 | 149 | |
96 | -## πΊοΈ Roadmap | |
150 | +# Run in development mode | |
151 | +bun run tauri:dev | |
97 | 152 | |
98 | -We are constantly improving ChanDesk Pro. Here is what's coming next: | |
153 | +# Build for production | |
154 | +bun run tauri:build | |
155 | +``` | |
99 | 156 | |
100 | -- [ ] **Advanced Replying**: Image uploading, rich text tools, and saved replies. | |
101 | -- [ ] **Expanded Video Support**: Native support for more video platforms (YouTube, Twitch, Streamable) and direct file streaming from other archives. | |
102 | -- [ ] **4chan Pass**: Login support for bypassing captchas. | |
103 | -- [ ] **Plugin System**: Community-created extensions. | |
157 | +See [BUILD.md](BUILD.md) for detailed build instructions and troubleshooting. | |
104 | 158 | |
105 | 159 | --- |
106 | 160 | |
107 | -## π€ Community & Support | |
108 | - | |
109 | -### Finding Other Users | |
110 | -The best place to discuss ChanDesk Pro: | |
111 | -- **GitHub Discussions**: [Ask questions & share feedback](../../discussions) | |
112 | -- **Issue Tracker**: [Report bugs here](../../issues) | |
161 | +## πΊοΈ Roadmap | |
113 | 162 | |
114 | -### Contributing | |
115 | -We welcome contributions! | |
116 | -1. Fork the repository. | |
117 | -2. Create a feature branch (`git checkout -b feature/amazing-feature`). | |
118 | -3. Commit your changes. | |
119 | -4. Open a Pull Request. | |
163 | +- [ ] π€ **Advanced Replying** β Image upload, rich text | |
164 | +- [ ] π₯ **Expanded Video** β YouTube, Twitch embeds | |
165 | +- [ ] π **4chan Pass** β Captcha bypass support | |
166 | +- [ ] π **Plugin System** β Community extensions | |
120 | 167 | |
121 | 168 | --- |
122 | 169 | |
123 | -## π οΈ Build From Source | |
170 | +## π€ Contributing | |
124 | 171 | |
125 | -**Prerequisites:** [Bun](https://bun.sh), [Rust](https://rustup.rs), and OS build tools. | |
172 | +We welcome contributions! Here's how to get involved: | |
126 | 173 | |
127 | -```bash | |
128 | -# 1. Clone (GitHub) | |
129 | -git clone https://github.com/swadhinbiswas/ChanDeskPro.git | |
130 | -# OR (GitLab) | |
131 | -git clone https://gitlab.com/swadhinbiswas/chandeskpro.git | |
174 | +1. **Fork** the repository | |
175 | +2. **Create** a feature branch (`git checkout -b feature/amazing-feature`) | |
176 | +3. **Commit** your changes | |
177 | +4. **Push** to the branch | |
178 | +5. **Open** a Pull Request | |
132 | 179 | |
133 | -cd ChanDeskPro | |
180 | +See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. | |
134 | 181 | |
135 | -# 2. Install | |
136 | -bun install | |
182 | +--- | |
137 | 183 | |
138 | -# 3. Develop | |
139 | -bun run tauri:dev | |
184 | +## π Security & Privacy | |
140 | 185 | |
141 | -# 4. Build Production | |
142 | -bun run tauri:build | |
143 | -``` | |
186 | +| Feature | Description | | |
187 | +|---------|-------------| | |
188 | +| π‘οΈ **Built-in CORS Proxy** | Routes requests through local Rust proxy, strips tracking headers | | |
189 | +| π **No API Tokens** | Anonymous by design, no accounts needed | | |
190 | +| π **No Telemetry** | Zero data collection or analytics | | |
191 | +| π **Direct Connection** | `You β Imageboard` β no intermediaries | | |
144 | 192 | |
145 | 193 | --- |
146 | 194 | |
147 | -<div align="center"> | |
148 | - <p>Made with β€οΈ for the community.</p> | |
149 | - <p>If you like this project, please give it a β!</p> | |
150 | -</div> | |
195 | +## π License | |
196 | + | |
197 | +This project is licensed under the **MIT License** β see the [LICENSE](LICENSE) file for details. | |
151 | 198 | |
152 | 199 | --- |
153 | 200 | |
154 | -<p align="center"> | |
155 | - <a href="https://github.com/swadhinbiswas/ChanDeskPro">GitHub</a> β’ | |
156 | - <a href="https://gitlab.com/swadhinbiswas/chandeskpro">GitLab Mirror</a> | |
157 | -</p> | |
201 | +<div align="center"> | |
202 | + <p> | |
203 | + <b>If you find ChanDesk Pro useful, please consider giving it a β!</b> | |
204 | + </p> | |
205 | + <p> | |
206 | + <a href="https://github.com/swadhinbiswas/ChanDeskPro">GitHub</a> β’ | |
207 | + <a href="https://gitlab.com/swadhinbiswas/chandeskpro">GitLab Mirror</a> β’ | |
208 | + <a href="https://swadhinbiswas.github.io/ChanDeskPro/">Website</a> | |
209 | + </p> | |
210 | + <p> | |
211 | + <sub>Made with β€οΈ by the community</sub> | |
212 | + </p> | |
213 | +</div> | |
158 | 214 | |
βΌdocs/favicon.png
+0-0
Binary file not shown.
βΌdocs/index.html
+1024-0
| @@ -0,0 +1,1024 @@ | ||
1 | +<!DOCTYPE html> | |
2 | +<html lang="en"> | |
3 | + | |
4 | +<head> | |
5 | + <meta charset="UTF-8"> | |
6 | + <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
7 | + <title>ChanDesk Pro - The Ultimate Imageboard Desktop Client</title> | |
8 | + <meta name="description" | |
9 | + content="A blazing-fast, modern desktop app for browsing 4chan with premium UI, powerful features, and privacy-first design. Available for Windows, macOS, and Linux."> | |
10 | + <meta name="keywords" content="4chan, desktop client, imageboard browser, tauri, rust, privacy, anonymous"> | |
11 | + <meta property="og:title" content="ChanDesk Pro - The Ultimate Imageboard Desktop Client"> | |
12 | + <meta property="og:description" content="Blazing-fast desktop app for 4chan with premium UI and powerful features."> | |
13 | + <meta property="og:type" content="website"> | |
14 | + <meta property="og:url" content="https://swadhinbiswas.github.io/ChanDeskPro/"> | |
15 | + <link rel="icon" type="image/png" href="favicon.png"> | |
16 | + <link rel="preconnect" href="https://fonts.googleapis.com"> | |
17 | + <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> | |
18 | + <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap" | |
19 | + rel="stylesheet"> | |
20 | + <style> | |
21 | + :root { | |
22 | + --bg-primary: #0a0a0f; | |
23 | + --bg-secondary: #12121a; | |
24 | + --bg-card: #1a1a24; | |
25 | + --bg-glass: rgba(26, 26, 36, 0.7); | |
26 | + --text-primary: #ffffff; | |
27 | + --text-secondary: #a0a0b0; | |
28 | + --text-muted: #6b6b7b; | |
29 | + --accent-primary: #7c3aed; | |
30 | + --accent-secondary: #a855f7; | |
31 | + --accent-gradient: linear-gradient(135deg, #7c3aed 0%, #a855f7 50%, #ec4899 100%); | |
32 | + --accent-glow: rgba(124, 58, 237, 0.4); | |
33 | + --success: #10b981; | |
34 | + --border: rgba(255, 255, 255, 0.08); | |
35 | + --border-hover: rgba(255, 255, 255, 0.15); | |
36 | + } | |
37 | + | |
38 | + * { | |
39 | + margin: 0; | |
40 | + padding: 0; | |
41 | + box-sizing: border-box; | |
42 | + } | |
43 | + | |
44 | + html { | |
45 | + scroll-behavior: smooth; | |
46 | + } | |
47 | + | |
48 | + body { | |
49 | + font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; | |
50 | + background: var(--bg-primary); | |
51 | + color: var(--text-primary); | |
52 | + line-height: 1.6; | |
53 | + overflow-x: hidden; | |
54 | + } | |
55 | + | |
56 | + /* Background Effects */ | |
57 | + .bg-grid { | |
58 | + position: fixed; | |
59 | + inset: 0; | |
60 | + background-image: | |
61 | + linear-gradient(rgba(124, 58, 237, 0.03) 1px, transparent 1px), | |
62 | + linear-gradient(90deg, rgba(124, 58, 237, 0.03) 1px, transparent 1px); | |
63 | + background-size: 60px 60px; | |
64 | + pointer-events: none; | |
65 | + z-index: -1; | |
66 | + } | |
67 | + | |
68 | + .bg-glow { | |
69 | + position: fixed; | |
70 | + width: 600px; | |
71 | + height: 600px; | |
72 | + border-radius: 50%; | |
73 | + filter: blur(120px); | |
74 | + opacity: 0.4; | |
75 | + pointer-events: none; | |
76 | + z-index: -1; | |
77 | + } | |
78 | + | |
79 | + .bg-glow-1 { | |
80 | + top: -200px; | |
81 | + left: -100px; | |
82 | + background: var(--accent-primary); | |
83 | + } | |
84 | + | |
85 | + .bg-glow-2 { | |
86 | + bottom: 20%; | |
87 | + right: -200px; | |
88 | + background: #ec4899; | |
89 | + opacity: 0.25; | |
90 | + } | |
91 | + | |
92 | + /* Navigation */ | |
93 | + nav { | |
94 | + position: fixed; | |
95 | + top: 0; | |
96 | + left: 0; | |
97 | + right: 0; | |
98 | + z-index: 1000; | |
99 | + padding: 1rem 2rem; | |
100 | + backdrop-filter: blur(20px); | |
101 | + background: rgba(10, 10, 15, 0.8); | |
102 | + border-bottom: 1px solid var(--border); | |
103 | + } | |
104 | + | |
105 | + .nav-container { | |
106 | + max-width: 1200px; | |
107 | + margin: 0 auto; | |
108 | + display: flex; | |
109 | + justify-content: space-between; | |
110 | + align-items: center; | |
111 | + } | |
112 | + | |
113 | + .logo { | |
114 | + display: flex; | |
115 | + align-items: center; | |
116 | + gap: 0.75rem; | |
117 | + font-weight: 700; | |
118 | + font-size: 1.25rem; | |
119 | + text-decoration: none; | |
120 | + color: var(--text-primary); | |
121 | + } | |
122 | + | |
123 | + .logo-icon { | |
124 | + width: 36px; | |
125 | + height: 36px; | |
126 | + background: var(--accent-gradient); | |
127 | + border-radius: 10px; | |
128 | + display: flex; | |
129 | + align-items: center; | |
130 | + justify-content: center; | |
131 | + font-size: 1.2rem; | |
132 | + } | |
133 | + | |
134 | + .nav-links { | |
135 | + display: flex; | |
136 | + gap: 2rem; | |
137 | + list-style: none; | |
138 | + } | |
139 | + | |
140 | + .nav-links a { | |
141 | + color: var(--text-secondary); | |
142 | + text-decoration: none; | |
143 | + font-weight: 500; | |
144 | + font-size: 0.95rem; | |
145 | + transition: color 0.2s; | |
146 | + } | |
147 | + | |
148 | + .nav-links a:hover { | |
149 | + color: var(--text-primary); | |
150 | + } | |
151 | + | |
152 | + .nav-cta { | |
153 | + display: flex; | |
154 | + gap: 1rem; | |
155 | + } | |
156 | + | |
157 | + /* Buttons */ | |
158 | + .btn { | |
159 | + display: inline-flex; | |
160 | + align-items: center; | |
161 | + justify-content: center; | |
162 | + gap: 0.5rem; | |
163 | + padding: 0.75rem 1.5rem; | |
164 | + border-radius: 12px; | |
165 | + font-weight: 600; | |
166 | + font-size: 0.95rem; | |
167 | + text-decoration: none; | |
168 | + transition: all 0.3s ease; | |
169 | + cursor: pointer; | |
170 | + border: none; | |
171 | + } | |
172 | + | |
173 | + .btn-primary { | |
174 | + background: var(--accent-gradient); | |
175 | + color: white; | |
176 | + box-shadow: 0 4px 20px var(--accent-glow); | |
177 | + } | |
178 | + | |
179 | + .btn-primary:hover { | |
180 | + transform: translateY(-2px); | |
181 | + box-shadow: 0 8px 30px var(--accent-glow); | |
182 | + } | |
183 | + | |
184 | + .btn-secondary { | |
185 | + background: var(--bg-card); | |
186 | + color: var(--text-primary); | |
187 | + border: 1px solid var(--border); | |
188 | + } | |
189 | + | |
190 | + .btn-secondary:hover { | |
191 | + background: var(--bg-secondary); | |
192 | + border-color: var(--border-hover); | |
193 | + } | |
194 | + | |
195 | + .btn-lg { | |
196 | + padding: 1rem 2rem; | |
197 | + font-size: 1.1rem; | |
198 | + border-radius: 14px; | |
199 | + } | |
200 | + | |
201 | + /* Hero Section */ | |
202 | + .hero { | |
203 | + min-height: 100vh; | |
204 | + display: flex; | |
205 | + align-items: center; | |
206 | + padding: 8rem 2rem 4rem; | |
207 | + position: relative; | |
208 | + } | |
209 | + | |
210 | + .hero-container { | |
211 | + max-width: 1200px; | |
212 | + margin: 0 auto; | |
213 | + display: grid; | |
214 | + grid-template-columns: 1fr 1.2fr; | |
215 | + gap: 4rem; | |
216 | + align-items: center; | |
217 | + } | |
218 | + | |
219 | + .hero-content { | |
220 | + z-index: 1; | |
221 | + } | |
222 | + | |
223 | + .badge { | |
224 | + display: inline-flex; | |
225 | + align-items: center; | |
226 | + gap: 0.5rem; | |
227 | + padding: 0.5rem 1rem; | |
228 | + background: var(--bg-glass); | |
229 | + border: 1px solid var(--border); | |
230 | + border-radius: 100px; | |
231 | + font-size: 0.85rem; | |
232 | + color: var(--text-secondary); | |
233 | + margin-bottom: 1.5rem; | |
234 | + backdrop-filter: blur(10px); | |
235 | + } | |
236 | + | |
237 | + .badge-dot { | |
238 | + width: 8px; | |
239 | + height: 8px; | |
240 | + background: var(--success); | |
241 | + border-radius: 50%; | |
242 | + animation: pulse 2s infinite; | |
243 | + } | |
244 | + | |
245 | + @keyframes pulse { | |
246 | + | |
247 | + 0%, | |
248 | + 100% { | |
249 | + opacity: 1; | |
250 | + } | |
251 | + | |
252 | + 50% { | |
253 | + opacity: 0.5; | |
254 | + } | |
255 | + } | |
256 | + | |
257 | + .hero h1 { | |
258 | + font-size: clamp(2.5rem, 5vw, 4rem); | |
259 | + font-weight: 800; | |
260 | + line-height: 1.1; | |
261 | + margin-bottom: 1.5rem; | |
262 | + background: linear-gradient(135deg, #fff 0%, #a0a0b0 100%); | |
263 | + -webkit-background-clip: text; | |
264 | + -webkit-text-fill-color: transparent; | |
265 | + background-clip: text; | |
266 | + } | |
267 | + | |
268 | + .hero h1 span { | |
269 | + background: var(--accent-gradient); | |
270 | + -webkit-background-clip: text; | |
271 | + background-clip: text; | |
272 | + } | |
273 | + | |
274 | + .hero-description { | |
275 | + font-size: 1.2rem; | |
276 | + color: var(--text-secondary); | |
277 | + margin-bottom: 2rem; | |
278 | + max-width: 500px; | |
279 | + } | |
280 | + | |
281 | + .hero-buttons { | |
282 | + display: flex; | |
283 | + gap: 1rem; | |
284 | + flex-wrap: wrap; | |
285 | + margin-bottom: 3rem; | |
286 | + } | |
287 | + | |
288 | + .hero-stats { | |
289 | + display: flex; | |
290 | + gap: 3rem; | |
291 | + } | |
292 | + | |
293 | + .stat { | |
294 | + text-align: left; | |
295 | + } | |
296 | + | |
297 | + .stat-value { | |
298 | + font-size: 1.75rem; | |
299 | + font-weight: 700; | |
300 | + color: var(--text-primary); | |
301 | + } | |
302 | + | |
303 | + .stat-label { | |
304 | + font-size: 0.9rem; | |
305 | + color: var(--text-muted); | |
306 | + } | |
307 | + | |
308 | + /* Hero Image */ | |
309 | + .hero-visual { | |
310 | + position: relative; | |
311 | + } | |
312 | + | |
313 | + .app-preview { | |
314 | + width: 100%; | |
315 | + border-radius: 16px; | |
316 | + box-shadow: | |
317 | + 0 25px 50px -12px rgba(0, 0, 0, 0.5), | |
318 | + 0 0 0 1px var(--border); | |
319 | + background: var(--bg-card); | |
320 | + overflow: hidden; | |
321 | + } | |
322 | + | |
323 | + .app-preview-header { | |
324 | + padding: 1rem; | |
325 | + background: var(--bg-secondary); | |
326 | + border-bottom: 1px solid var(--border); | |
327 | + display: flex; | |
328 | + gap: 0.5rem; | |
329 | + } | |
330 | + | |
331 | + .app-preview-dot { | |
332 | + width: 12px; | |
333 | + height: 12px; | |
334 | + border-radius: 50%; | |
335 | + } | |
336 | + | |
337 | + .dot-red { | |
338 | + background: #ff5f57; | |
339 | + } | |
340 | + | |
341 | + .dot-yellow { | |
342 | + background: #ffbd2e; | |
343 | + } | |
344 | + | |
345 | + .dot-green { | |
346 | + background: #28c840; | |
347 | + } | |
348 | + | |
349 | + .app-preview-content { | |
350 | + height: 400px; | |
351 | + background: linear-gradient(180deg, var(--bg-card) 0%, var(--bg-secondary) 100%); | |
352 | + display: flex; | |
353 | + align-items: center; | |
354 | + justify-content: center; | |
355 | + position: relative; | |
356 | + overflow: hidden; | |
357 | + } | |
358 | + | |
359 | + .app-preview-content::before { | |
360 | + content: ''; | |
361 | + position: absolute; | |
362 | + inset: 0; | |
363 | + background: | |
364 | + linear-gradient(90deg, transparent 0%, rgba(124, 58, 237, 0.1) 50%, transparent 100%); | |
365 | + animation: shimmer 3s infinite; | |
366 | + } | |
367 | + | |
368 | + @keyframes shimmer { | |
369 | + 0% { | |
370 | + transform: translateX(-100%); | |
371 | + } | |
372 | + | |
373 | + 100% { | |
374 | + transform: translateX(100%); | |
375 | + } | |
376 | + } | |
377 | + | |
378 | + .app-mockup { | |
379 | + display: grid; | |
380 | + grid-template-columns: 60px 1fr; | |
381 | + gap: 1px; | |
382 | + width: 90%; | |
383 | + height: 85%; | |
384 | + background: var(--border); | |
385 | + border-radius: 8px; | |
386 | + overflow: hidden; | |
387 | + } | |
388 | + | |
389 | + .mockup-sidebar { | |
390 | + background: var(--bg-secondary); | |
391 | + padding: 1rem 0.5rem; | |
392 | + display: flex; | |
393 | + flex-direction: column; | |
394 | + gap: 0.5rem; | |
395 | + align-items: center; | |
396 | + } | |
397 | + | |
398 | + .mockup-sidebar-item { | |
399 | + width: 40px; | |
400 | + height: 40px; | |
401 | + background: var(--bg-card); | |
402 | + border-radius: 8px; | |
403 | + opacity: 0.6; | |
404 | + } | |
405 | + | |
406 | + .mockup-sidebar-item.active { | |
407 | + background: var(--accent-primary); | |
408 | + opacity: 1; | |
409 | + } | |
410 | + | |
411 | + .mockup-main { | |
412 | + background: var(--bg-primary); | |
413 | + padding: 1rem; | |
414 | + display: grid; | |
415 | + grid-template-columns: repeat(3, 1fr); | |
416 | + gap: 0.75rem; | |
417 | + overflow: hidden; | |
418 | + } | |
419 | + | |
420 | + .mockup-card { | |
421 | + background: var(--bg-card); | |
422 | + border-radius: 6px; | |
423 | + aspect-ratio: 1; | |
424 | + opacity: 0.8; | |
425 | + } | |
426 | + | |
427 | + /* Features Section */ | |
428 | + .features { | |
429 | + padding: 6rem 2rem; | |
430 | + position: relative; | |
431 | + } | |
432 | + | |
433 | + .section-header { | |
434 | + text-align: center; | |
435 | + max-width: 700px; | |
436 | + margin: 0 auto 4rem; | |
437 | + } | |
438 | + | |
439 | + .section-label { | |
440 | + display: inline-block; | |
441 | + padding: 0.4rem 1rem; | |
442 | + background: rgba(124, 58, 237, 0.15); | |
443 | + border: 1px solid rgba(124, 58, 237, 0.3); | |
444 | + border-radius: 100px; | |
445 | + font-size: 0.85rem; | |
446 | + font-weight: 600; | |
447 | + color: var(--accent-secondary); | |
448 | + margin-bottom: 1rem; | |
449 | + } | |
450 | + | |
451 | + .section-header h2 { | |
452 | + font-size: clamp(2rem, 4vw, 3rem); | |
453 | + font-weight: 700; | |
454 | + margin-bottom: 1rem; | |
455 | + } | |
456 | + | |
457 | + .section-header p { | |
458 | + font-size: 1.1rem; | |
459 | + color: var(--text-secondary); | |
460 | + } | |
461 | + | |
462 | + .features-grid { | |
463 | + max-width: 1200px; | |
464 | + margin: 0 auto; | |
465 | + display: grid; | |
466 | + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); | |
467 | + gap: 1.5rem; | |
468 | + } | |
469 | + | |
470 | + .feature-card { | |
471 | + padding: 2rem; | |
472 | + background: var(--bg-glass); | |
473 | + border: 1px solid var(--border); | |
474 | + border-radius: 20px; | |
475 | + backdrop-filter: blur(10px); | |
476 | + transition: all 0.3s ease; | |
477 | + } | |
478 | + | |
479 | + .feature-card:hover { | |
480 | + border-color: var(--border-hover); | |
481 | + transform: translateY(-4px); | |
482 | + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3); | |
483 | + } | |
484 | + | |
485 | + .feature-icon { | |
486 | + width: 56px; | |
487 | + height: 56px; | |
488 | + background: var(--accent-gradient); | |
489 | + border-radius: 14px; | |
490 | + display: flex; | |
491 | + align-items: center; | |
492 | + justify-content: center; | |
493 | + font-size: 1.5rem; | |
494 | + margin-bottom: 1.25rem; | |
495 | + } | |
496 | + | |
497 | + .feature-card h3 { | |
498 | + font-size: 1.25rem; | |
499 | + font-weight: 600; | |
500 | + margin-bottom: 0.75rem; | |
501 | + } | |
502 | + | |
503 | + .feature-card p { | |
504 | + color: var(--text-secondary); | |
505 | + font-size: 0.95rem; | |
506 | + } | |
507 | + | |
508 | + /* Platforms Section */ | |
509 | + .platforms { | |
510 | + padding: 6rem 2rem; | |
511 | + background: var(--bg-secondary); | |
512 | + } | |
513 | + | |
514 | + .platforms-grid { | |
515 | + max-width: 900px; | |
516 | + margin: 0 auto; | |
517 | + display: grid; | |
518 | + grid-template-columns: repeat(3, 1fr); | |
519 | + gap: 2rem; | |
520 | + } | |
521 | + | |
522 | + .platform-card { | |
523 | + padding: 2.5rem 2rem; | |
524 | + background: var(--bg-card); | |
525 | + border: 1px solid var(--border); | |
526 | + border-radius: 20px; | |
527 | + text-align: center; | |
528 | + transition: all 0.3s ease; | |
529 | + } | |
530 | + | |
531 | + .platform-card:hover { | |
532 | + border-color: var(--accent-primary); | |
533 | + transform: translateY(-4px); | |
534 | + } | |
535 | + | |
536 | + .platform-icon { | |
537 | + font-size: 3rem; | |
538 | + margin-bottom: 1rem; | |
539 | + } | |
540 | + | |
541 | + .platform-card h3 { | |
542 | + font-size: 1.2rem; | |
543 | + font-weight: 600; | |
544 | + margin-bottom: 0.5rem; | |
545 | + } | |
546 | + | |
547 | + .platform-card p { | |
548 | + font-size: 0.9rem; | |
549 | + color: var(--text-muted); | |
550 | + margin-bottom: 1.5rem; | |
551 | + } | |
552 | + | |
553 | + /* Privacy Section */ | |
554 | + .privacy { | |
555 | + padding: 6rem 2rem; | |
556 | + } | |
557 | + | |
558 | + .privacy-container { | |
559 | + max-width: 1000px; | |
560 | + margin: 0 auto; | |
561 | + display: grid; | |
562 | + grid-template-columns: 1fr 1fr; | |
563 | + gap: 4rem; | |
564 | + align-items: center; | |
565 | + } | |
566 | + | |
567 | + .privacy-content h2 { | |
568 | + font-size: 2.5rem; | |
569 | + font-weight: 700; | |
570 | + margin-bottom: 1.5rem; | |
571 | + } | |
572 | + | |
573 | + .privacy-content p { | |
574 | + font-size: 1.1rem; | |
575 | + color: var(--text-secondary); | |
576 | + margin-bottom: 2rem; | |
577 | + } | |
578 | + | |
579 | + .privacy-features { | |
580 | + display: flex; | |
581 | + flex-direction: column; | |
582 | + gap: 1rem; | |
583 | + } | |
584 | + | |
585 | + .privacy-feature { | |
586 | + display: flex; | |
587 | + align-items: center; | |
588 | + gap: 1rem; | |
589 | + } | |
590 | + | |
591 | + .privacy-check { | |
592 | + width: 32px; | |
593 | + height: 32px; | |
594 | + background: rgba(16, 185, 129, 0.15); | |
595 | + border-radius: 8px; | |
596 | + display: flex; | |
597 | + align-items: center; | |
598 | + justify-content: center; | |
599 | + color: var(--success); | |
600 | + font-size: 1.1rem; | |
601 | + } | |
602 | + | |
603 | + .privacy-visual { | |
604 | + display: flex; | |
605 | + justify-content: center; | |
606 | + align-items: center; | |
607 | + } | |
608 | + | |
609 | + .shield-icon { | |
610 | + width: 250px; | |
611 | + height: 250px; | |
612 | + background: var(--accent-gradient); | |
613 | + border-radius: 50%; | |
614 | + display: flex; | |
615 | + align-items: center; | |
616 | + justify-content: center; | |
617 | + font-size: 6rem; | |
618 | + box-shadow: 0 0 100px var(--accent-glow); | |
619 | + } | |
620 | + | |
621 | + /* CTA Section */ | |
622 | + .cta { | |
623 | + padding: 6rem 2rem; | |
624 | + text-align: center; | |
625 | + position: relative; | |
626 | + } | |
627 | + | |
628 | + .cta-container { | |
629 | + max-width: 800px; | |
630 | + margin: 0 auto; | |
631 | + padding: 4rem; | |
632 | + background: var(--bg-glass); | |
633 | + border: 1px solid var(--border); | |
634 | + border-radius: 32px; | |
635 | + backdrop-filter: blur(20px); | |
636 | + position: relative; | |
637 | + overflow: hidden; | |
638 | + } | |
639 | + | |
640 | + .cta-container::before { | |
641 | + content: ''; | |
642 | + position: absolute; | |
643 | + top: 0; | |
644 | + left: 50%; | |
645 | + transform: translateX(-50%); | |
646 | + width: 80%; | |
647 | + height: 1px; | |
648 | + background: var(--accent-gradient); | |
649 | + } | |
650 | + | |
651 | + .cta h2 { | |
652 | + font-size: clamp(2rem, 4vw, 2.5rem); | |
653 | + font-weight: 700; | |
654 | + margin-bottom: 1rem; | |
655 | + } | |
656 | + | |
657 | + .cta p { | |
658 | + font-size: 1.1rem; | |
659 | + color: var(--text-secondary); | |
660 | + margin-bottom: 2rem; | |
661 | + } | |
662 | + | |
663 | + .cta-buttons { | |
664 | + display: flex; | |
665 | + justify-content: center; | |
666 | + gap: 1rem; | |
667 | + flex-wrap: wrap; | |
668 | + } | |
669 | + | |
670 | + /* Footer */ | |
671 | + footer { | |
672 | + padding: 4rem 2rem 2rem; | |
673 | + border-top: 1px solid var(--border); | |
674 | + } | |
675 | + | |
676 | + .footer-container { | |
677 | + max-width: 1200px; | |
678 | + margin: 0 auto; | |
679 | + display: flex; | |
680 | + justify-content: space-between; | |
681 | + align-items: center; | |
682 | + flex-wrap: wrap; | |
683 | + gap: 2rem; | |
684 | + } | |
685 | + | |
686 | + .footer-links { | |
687 | + display: flex; | |
688 | + gap: 2rem; | |
689 | + } | |
690 | + | |
691 | + .footer-links a { | |
692 | + color: var(--text-secondary); | |
693 | + text-decoration: none; | |
694 | + font-size: 0.95rem; | |
695 | + transition: color 0.2s; | |
696 | + } | |
697 | + | |
698 | + .footer-links a:hover { | |
699 | + color: var(--text-primary); | |
700 | + } | |
701 | + | |
702 | + .footer-copy { | |
703 | + color: var(--text-muted); | |
704 | + font-size: 0.9rem; | |
705 | + } | |
706 | + | |
707 | + /* Responsive */ | |
708 | + @media (max-width: 1024px) { | |
709 | + .hero-container { | |
710 | + grid-template-columns: 1fr; | |
711 | + text-align: center; | |
712 | + } | |
713 | + | |
714 | + .hero-content { | |
715 | + order: 1; | |
716 | + } | |
717 | + | |
718 | + .hero-visual { | |
719 | + order: 2; | |
720 | + } | |
721 | + | |
722 | + .hero-description { | |
723 | + margin: 0 auto 2rem; | |
724 | + } | |
725 | + | |
726 | + .hero-buttons { | |
727 | + justify-content: center; | |
728 | + } | |
729 | + | |
730 | + .hero-stats { | |
731 | + justify-content: center; | |
732 | + } | |
733 | + | |
734 | + .privacy-container { | |
735 | + grid-template-columns: 1fr; | |
736 | + text-align: center; | |
737 | + } | |
738 | + | |
739 | + .privacy-features { | |
740 | + align-items: center; | |
741 | + } | |
742 | + } | |
743 | + | |
744 | + @media (max-width: 768px) { | |
745 | + .nav-links { | |
746 | + display: none; | |
747 | + } | |
748 | + | |
749 | + .platforms-grid { | |
750 | + grid-template-columns: 1fr; | |
751 | + } | |
752 | + | |
753 | + .features-grid { | |
754 | + grid-template-columns: 1fr; | |
755 | + } | |
756 | + | |
757 | + .hero-stats { | |
758 | + flex-direction: column; | |
759 | + gap: 1.5rem; | |
760 | + } | |
761 | + | |
762 | + .footer-container { | |
763 | + flex-direction: column; | |
764 | + text-align: center; | |
765 | + } | |
766 | + } | |
767 | + </style> | |
768 | +</head> | |
769 | + | |
770 | +<body> | |
771 | + <div class="bg-grid"></div> | |
772 | + <div class="bg-glow bg-glow-1"></div> | |
773 | + <div class="bg-glow bg-glow-2"></div> | |
774 | + | |
775 | + <!-- Navigation --> | |
776 | + <nav> | |
777 | + <div class="nav-container"> | |
778 | + <a href="#" class="logo"> | |
779 | + <div class="logo-icon">πΊ</div> | |
780 | + <span>ChanDesk Pro</span> | |
781 | + </a> | |
782 | + <ul class="nav-links"> | |
783 | + <li><a href="#features">Features</a></li> | |
784 | + <li><a href="#platforms">Platforms</a></li> | |
785 | + <li><a href="#privacy">Privacy</a></li> | |
786 | + <li><a href="https://github.com/swadhinbiswas/ChanDeskPro">GitHub</a></li> | |
787 | + </ul> | |
788 | + <div class="nav-cta"> | |
789 | + <a href="https://github.com/swadhinbiswas/ChanDeskPro/releases/latest" class="btn btn-primary">Download | |
790 | + Now</a> | |
791 | + </div> | |
792 | + </div> | |
793 | + </nav> | |
794 | + | |
795 | + <!-- Hero Section --> | |
796 | + <section class="hero"> | |
797 | + <div class="hero-container"> | |
798 | + <div class="hero-content"> | |
799 | + <div class="badge"> | |
800 | + <span class="badge-dot"></span> | |
801 | + <span>v0.1.0 Now Available for All Platforms</span> | |
802 | + </div> | |
803 | + <h1>The <span>Ultimate</span> Imageboard Desktop Client</h1> | |
804 | + <p class="hero-description"> | |
805 | + A blazing-fast, privacy-focused desktop app for browsing 4chan with a premium UI, | |
806 | + powerful features, and native performance. No ads, no tracking, just pure browsing. | |
807 | + </p> | |
808 | + <div class="hero-buttons"> | |
809 | + <a href="https://github.com/swadhinbiswas/ChanDeskPro/releases/latest" | |
810 | + class="btn btn-primary btn-lg"> | |
811 | + β¬οΈ Download Free | |
812 | + </a> | |
813 | + <a href="https://github.com/swadhinbiswas/ChanDeskPro" class="btn btn-secondary btn-lg"> | |
814 | + β Star on GitHub | |
815 | + </a> | |
816 | + </div> | |
817 | + <div class="hero-stats"> | |
818 | + <div class="stat"> | |
819 | + <div class="stat-value">3</div> | |
820 | + <div class="stat-label">Platforms</div> | |
821 | + </div> | |
822 | + <div class="stat"> | |
823 | + <div class="stat-value">10+</div> | |
824 | + <div class="stat-label">Themes</div> | |
825 | + </div> | |
826 | + <div class="stat"> | |
827 | + <div class="stat-value">100%</div> | |
828 | + <div class="stat-label">Free & Open Source</div> | |
829 | + </div> | |
830 | + </div> | |
831 | + </div> | |
832 | + <div class="hero-visual"> | |
833 | + <div class="app-preview"> | |
834 | + <div class="app-preview-header"> | |
835 | + <div class="app-preview-dot dot-red"></div> | |
836 | + <div class="app-preview-dot dot-yellow"></div> | |
837 | + <div class="app-preview-dot dot-green"></div> | |
838 | + </div> | |
839 | + <div class="app-preview-content"> | |
840 | + <div class="app-mockup"> | |
841 | + <div class="mockup-sidebar"> | |
842 | + <div class="mockup-sidebar-item active"></div> | |
843 | + <div class="mockup-sidebar-item"></div> | |
844 | + <div class="mockup-sidebar-item"></div> | |
845 | + <div class="mockup-sidebar-item"></div> | |
846 | + <div class="mockup-sidebar-item"></div> | |
847 | + </div> | |
848 | + <div class="mockup-main"> | |
849 | + <div class="mockup-card"></div> | |
850 | + <div class="mockup-card"></div> | |
851 | + <div class="mockup-card"></div> | |
852 | + <div class="mockup-card"></div> | |
853 | + <div class="mockup-card"></div> | |
854 | + <div class="mockup-card"></div> | |
855 | + <div class="mockup-card"></div> | |
856 | + <div class="mockup-card"></div> | |
857 | + <div class="mockup-card"></div> | |
858 | + </div> | |
859 | + </div> | |
860 | + </div> | |
861 | + </div> | |
862 | + </div> | |
863 | + </div> | |
864 | + </section> | |
865 | + | |
866 | + <!-- Features Section --> | |
867 | + <section class="features" id="features"> | |
868 | + <div class="section-header"> | |
869 | + <span class="section-label">β¨ FEATURES</span> | |
870 | + <h2>Everything You Need for the Ultimate Experience</h2> | |
871 | + <p>Designed for power users who demand speed, privacy, and flexibility.</p> | |
872 | + </div> | |
873 | + <div class="features-grid"> | |
874 | + <div class="feature-card"> | |
875 | + <div class="feature-icon">π¨</div> | |
876 | + <h3>Premium Dark UI</h3> | |
877 | + <p>Sleek, modern interface inspired by Discord with 10+ beautiful themes including Nord, Dracula, and | |
878 | + Catppuccin.</p> | |
879 | + </div> | |
880 | + <div class="feature-card"> | |
881 | + <div class="feature-icon">β‘</div> | |
882 | + <h3>Blazing Fast</h3> | |
883 | + <p>Built with Tauri and Rust for native performance. Instant load times and silky-smooth scrolling.</p> | |
884 | + </div> | |
885 | + <div class="feature-card"> | |
886 | + <div class="feature-icon">πΌοΈ</div> | |
887 | + <h3>Grid Catalog View</h3> | |
888 | + <p>Visualize threads with high-resolution thumbnails in a beautiful, responsive grid layout.</p> | |
889 | + </div> | |
890 | + <div class="feature-card"> | |
891 | + <div class="feature-icon">π</div> | |
892 | + <h3>Smart Search & Filter</h3> | |
893 | + <p>Instantly find boards and threads. Filter by keywords, tripcodes, or regex patterns.</p> | |
894 | + </div> | |
895 | + <div class="feature-card"> | |
896 | + <div class="feature-icon">π</div> | |
897 | + <h3>Multi-Tab Browsing</h3> | |
898 | + <p>Browse multiple threads and catalogs simultaneously with a familiar tabbed interface.</p> | |
899 | + </div> | |
900 | + <div class="feature-card"> | |
901 | + <div class="feature-icon">π¬</div> | |
902 | + <h3>Enhanced Media Viewer</h3> | |
903 | + <p>Immersive lightbox with zoom, video player with custom controls, looping, and speed settings.</p> | |
904 | + </div> | |
905 | + <div class="feature-card"> | |
906 | + <div class="feature-icon">π΄</div> | |
907 | + <h3>Offline Mode</h3> | |
908 | + <p>Automatic caching of visited threads for offline reading. Never lose a thread again.</p> | |
909 | + </div> | |
910 | + <div class="feature-card"> | |
911 | + <div class="feature-icon">π</div> | |
912 | + <h3>Thread Watcher</h3> | |
913 | + <p>Desktop notifications when your watched threads get new replies. Never miss an update.</p> | |
914 | + </div> | |
915 | + <div class="feature-card"> | |
916 | + <div class="feature-icon">β¨οΈ</div> | |
917 | + <h3>Keyboard Shortcuts</h3> | |
918 | + <p>Navigate like a pro with intuitive shortcuts. J/K to scroll, Esc to close, and more.</p> | |
919 | + </div> | |
920 | + </div> | |
921 | + </section> | |
922 | + | |
923 | + <!-- Platforms Section --> | |
924 | + <section class="platforms" id="platforms"> | |
925 | + <div class="section-header"> | |
926 | + <span class="section-label">π» PLATFORMS</span> | |
927 | + <h2>Available Everywhere You Are</h2> | |
928 | + <p>Native apps for all major desktop operating systems.</p> | |
929 | + </div> | |
930 | + <div class="platforms-grid"> | |
931 | + <div class="platform-card"> | |
932 | + <div class="platform-icon">πͺ</div> | |
933 | + <h3>Windows</h3> | |
934 | + <p>Windows 10 & 11</p> | |
935 | + <a href="https://github.com/swadhinbiswas/ChanDeskPro/releases/latest" | |
936 | + class="btn btn-secondary">Download .exe</a> | |
937 | + </div> | |
938 | + <div class="platform-card"> | |
939 | + <div class="platform-icon">π</div> | |
940 | + <h3>macOS</h3> | |
941 | + <p>Intel & Apple Silicon</p> | |
942 | + <a href="https://github.com/swadhinbiswas/ChanDeskPro/releases/latest" | |
943 | + class="btn btn-secondary">Download .dmg</a> | |
944 | + </div> | |
945 | + <div class="platform-card"> | |
946 | + <div class="platform-icon">π§</div> | |
947 | + <h3>Linux</h3> | |
948 | + <p>.deb, .AppImage, .rpm</p> | |
949 | + <a href="https://github.com/swadhinbiswas/ChanDeskPro/releases/latest" | |
950 | + class="btn btn-secondary">Download</a> | |
951 | + </div> | |
952 | + </div> | |
953 | + </section> | |
954 | + | |
955 | + <!-- Privacy Section --> | |
956 | + <section class="privacy" id="privacy"> | |
957 | + <div class="privacy-container"> | |
958 | + <div class="privacy-content"> | |
959 | + <h2>π Privacy First</h2> | |
960 | + <p>We believe in respecting your privacy. ChanDesk Pro is designed with security at its core.</p> | |
961 | + <div class="privacy-features"> | |
962 | + <div class="privacy-feature"> | |
963 | + <div class="privacy-check">β</div> | |
964 | + <span>No tracking or analytics</span> | |
965 | + </div> | |
966 | + <div class="privacy-feature"> | |
967 | + <div class="privacy-check">β</div> | |
968 | + <span>No accounts required</span> | |
969 | + </div> | |
970 | + <div class="privacy-feature"> | |
971 | + <div class="privacy-check">β</div> | |
972 | + <span>Direct connection to imageboards</span> | |
973 | + </div> | |
974 | + <div class="privacy-feature"> | |
975 | + <div class="privacy-check">β</div> | |
976 | + <span>Built-in CORS proxy strips tracking headers</span> | |
977 | + </div> | |
978 | + <div class="privacy-feature"> | |
979 | + <div class="privacy-check">β</div> | |
980 | + <span>100% open source & auditable</span> | |
981 | + </div> | |
982 | + </div> | |
983 | + </div> | |
984 | + <div class="privacy-visual"> | |
985 | + <div class="shield-icon">π‘οΈ</div> | |
986 | + </div> | |
987 | + </div> | |
988 | + </section> | |
989 | + | |
990 | + <!-- CTA Section --> | |
991 | + <section class="cta"> | |
992 | + <div class="cta-container"> | |
993 | + <h2>Ready to Experience the Best?</h2> | |
994 | + <p>Download ChanDesk Pro now and transform how you browse imageboards. It's free, forever.</p> | |
995 | + <div class="cta-buttons"> | |
996 | + <a href="https://github.com/swadhinbiswas/ChanDeskPro/releases/latest" class="btn btn-primary btn-lg"> | |
997 | + β¬οΈ Download Now β It's Free | |
998 | + </a> | |
999 | + <a href="https://github.com/swadhinbiswas/ChanDeskPro" class="btn btn-secondary btn-lg"> | |
1000 | + π View Source Code | |
1001 | + </a> | |
1002 | + </div> | |
1003 | + </div> | |
1004 | + </section> | |
1005 | + | |
1006 | + <!-- Footer --> | |
1007 | + <footer> | |
1008 | + <div class="footer-container"> | |
1009 | + <a href="#" class="logo"> | |
1010 | + <div class="logo-icon">πΊ</div> | |
1011 | + <span>ChanDesk Pro</span> | |
1012 | + </a> | |
1013 | + <div class="footer-links"> | |
1014 | + <a href="https://github.com/swadhinbiswas/ChanDeskPro">GitHub</a> | |
1015 | + <a href="https://gitlab.com/swadhinbiswas/chandeskpro">GitLab Mirror</a> | |
1016 | + <a href="https://github.com/swadhinbiswas/ChanDeskPro/issues">Report Issue</a> | |
1017 | + <a href="https://github.com/swadhinbiswas/ChanDeskPro/discussions">Community</a> | |
1018 | + </div> | |
1019 | + <p class="footer-copy">Β© 2026 ChanDesk Pro. Open source under MIT License.</p> | |
1020 | + </div> | |
1021 | + </footer> | |
1022 | +</body> | |
1023 | + | |
1024 | +</html> | |
0 | 1025 | |