-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
351 lines (330 loc) · 18.4 KB
/
Copy pathindex.html
File metadata and controls
351 lines (330 loc) · 18.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Magnify.Snap — fast screen magnifier for Windows & Linux</title>
<meta name="description" content="Free screen magnifier that lives in your system tray. One press of the middle mouse button zooms the screen to 200% — and the screen stays fully interactive.">
<link rel="canonical" href="https://violet2code.github.io/">
<link rel="icon" type="image/png" href="icon.png">
<meta property="og:type" content="website">
<meta property="og:url" content="https://violet2code.github.io/">
<meta property="og:title" content="Magnify.Snap — fast screen magnifier for Windows & Linux">
<meta property="og:description" content="Middle-click to zoom your screen to 200% — and keep clicking, typing and working as usual. Free & open source.">
<meta property="og:image" content="https://violet2code.github.io/og.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Magnify.Snap — fast screen magnifier for Windows & Linux">
<meta name="twitter:description" content="Middle-click to zoom your screen to 200% — and keep clicking, typing and working as usual. Free & open source.">
<meta name="twitter:image" content="https://violet2code.github.io/og.png">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Magnify.Snap",
"operatingSystem": "Windows, Linux",
"applicationCategory": "UtilitiesApplication",
"description": "Fast screen magnifier that lives in the system tray. Middle-click zooms the screen to 200% while it stays fully interactive.",
"offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" },
"url": "https://violet2code.github.io/",
"downloadUrl": "https://github.com/violet2code/magnify-snap/releases/latest",
"license": "https://github.com/violet2code/magnify-snap/blob/master/LICENSE",
"image": "https://violet2code.github.io/og.png"
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Is Magnify.Snap really free?",
"acceptedAnswer": { "@type": "Answer", "text": "Yes. Magnify.Snap is free and open source under the MIT license, with no ads, no telemetry and no paid tiers. It's a single portable file — no installer. The only network request it makes is an optional daily update check against GitHub, which you can turn off in settings." }
},
{
"@type": "Question",
"name": "How is it different from the built-in Windows Magnifier?",
"acceptedAnswer": { "@type": "Answer", "text": "The built-in magnifier needs key combos to start, zoom and quit, and keeps a toolbar on screen. Magnify.Snap is one mouse button: middle-click zooms to 200%, another click snaps back, and holding the button peeks even closer. Nothing else appears on your screen." }
},
{
"@type": "Question",
"name": "Can I still click and type while the screen is zoomed?",
"acceptedAnswer": { "@type": "Answer", "text": "Yes. Magnification happens at the OS compositor level, so the screen stays fully interactive — click buttons, type text, drag windows as usual." }
},
{
"@type": "Question",
"name": "Can I use a different button or key?",
"acceptedAnswer": { "@type": "Answer", "text": "Yes. Any mouse button, keyboard key or combination with Ctrl, Alt, Shift or Win can be the trigger — you assign it by physically pressing it in the settings." }
},
{
"@type": "Question",
"name": "Does Magnify.Snap work on Linux?",
"acceptedAnswer": { "@type": "Answer", "text": "Yes. On GNOME it drives the built-in magnifier and on KDE Plasma the KWin Zoom effect. Global input capture works best on X11 sessions." }
}
]
}
</script>
<style>
:root {
--blue: #4f8dfd;
--blue-dark: #3a76e0;
--green: #3ddc97;
--bg: #0e1117;
--card: #171c26;
--card-border: #232a38;
--text: #e8ecf4;
--dim: #96a0b3;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: "Segoe UI", Inter, system-ui, Arial, sans-serif;
background: var(--bg); color: var(--text); line-height: 1.6;
}
.wrap { max-width: 1000px; margin: 0 auto; padding: 0 24px; }
header { padding: 26px 0; }
.brand { display: flex; align-items: center; gap: 12px; font-size: 22px; font-weight: 700; }
.brand img { height: 40px; }
.brand .m { color: var(--blue); } .brand .s { color: var(--green); }
.hero { text-align: center; padding: 56px 0 40px; }
.hero h1 { font-size: clamp(32px, 6vw, 54px); line-height: 1.15; font-weight: 800; }
.hero h1 .zoom { color: var(--blue); }
.hero h1 .snap { color: var(--green); }
.hero p.sub { max-width: 620px; margin: 18px auto 0; color: var(--dim); font-size: 19px; }
.dl-row { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; margin-top: 36px; }
.btn {
display: inline-flex; align-items: center; gap: 10px;
padding: 15px 28px; border-radius: 14px; text-decoration: none;
font-size: 17px; font-weight: 700; color: #fff; transition: transform .15s, box-shadow .15s;
}
.btn svg { width: 22px; height: 22px; fill: currentColor; }
.btn small { display: block; font-weight: 400; font-size: 12px; opacity: .85; }
.btn:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(0,0,0,.45); }
.btn.win { background: linear-gradient(135deg, var(--blue), var(--blue-dark)); }
.btn.linux { background: linear-gradient(135deg, #35c98a, #23a06c); }
.hero .note { margin-top: 14px; color: var(--dim); font-size: 13px; }
.hero .note a { color: var(--dim); }
.demo {
margin: 44px auto 0; max-width: 720px; border-radius: 18px;
background: linear-gradient(160deg, #161c28, #101521);
border: 1px solid var(--card-border); padding: 34px; text-align: center;
}
.keycap {
display: inline-block; padding: 8px 18px; border-radius: 10px;
background: #202736; border: 1px solid #2e3748; border-bottom-width: 3px;
font-weight: 700; color: var(--text);
}
.demo .arrow { color: var(--green); font-size: 22px; margin: 0 14px; }
.demo .zoomtxt { font-size: 30px; font-weight: 800; color: var(--blue); }
section.features { padding: 64px 0 20px; }
h2 { text-align: center; font-size: 32px; margin-bottom: 36px; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; }
.card {
background: var(--card); border: 1px solid var(--card-border);
border-radius: 16px; padding: 24px;
}
.card .ic {
width: 44px; height: 44px; border-radius: 12px; display: flex;
align-items: center; justify-content: center; margin-bottom: 14px;
background: rgba(79,141,253,.12);
}
.card .ic svg { width: 24px; height: 24px; stroke: var(--blue); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.card:nth-child(even) .ic { background: rgba(61,220,151,.10); }
.card:nth-child(even) .ic svg { stroke: var(--green); }
.card h3 { font-size: 17px; margin-bottom: 6px; }
.card p { color: var(--dim); font-size: 14.5px; }
section.how { padding: 56px 0 12px; }
.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 18px; counter-reset: step; }
.step { background: var(--card); border: 1px solid var(--card-border); border-radius: 16px; padding: 22px; }
.step::before {
counter-increment: step; content: counter(step);
display: inline-flex; width: 30px; height: 30px; border-radius: 50%;
background: var(--blue); color: #fff; font-weight: 700;
align-items: center; justify-content: center; margin-bottom: 12px;
}
.step p { color: var(--dim); font-size: 14.5px; }
.step b { color: var(--text); }
.shot { max-width: 100%; border-radius: 16px; border: 1px solid var(--card-border); }
.shot.wide { margin-top: 40px; }
section.why { padding: 40px 0 0; }
.why blockquote {
max-width: 760px; margin: 0 auto; padding: 28px 34px;
background: var(--card); border: 1px solid var(--card-border);
border-left: 4px solid var(--green); border-radius: 14px;
}
.why blockquote p { color: var(--text); font-size: 17px; }
.why blockquote em { color: var(--green); font-style: normal; }
.why blockquote footer { padding: 10px 0 0; text-align: left; font-size: 14px; color: var(--dim); }
section.shots { padding: 56px 0 8px; }
.shots-row { display: flex; gap: 30px; align-items: center; flex-wrap: wrap; }
.shots-row .shot { flex: 1 1 340px; max-width: 500px; margin: 0 auto; }
.shots-text { flex: 1 1 320px; color: var(--dim); font-size: 16px; }
.shots-text p { margin-bottom: 14px; }
.shots-text p:first-child { color: var(--text); font-size: 17px; }
section.faq { padding: 48px 0 8px; }
.faq-list { max-width: 760px; margin: 0 auto; }
.faq-list details {
background: var(--card); border: 1px solid var(--card-border);
border-radius: 12px; padding: 16px 20px; margin-bottom: 10px;
}
.faq-list summary { cursor: pointer; font-weight: 600; font-size: 16px; }
.faq-list details p { color: var(--dim); font-size: 14.5px; padding-top: 10px; }
footer { padding: 48px 0 40px; text-align: center; color: var(--dim); font-size: 14px; }
footer a { color: var(--blue); text-decoration: none; }
</style>
</head>
<body>
<header class="wrap">
<div class="brand">
<img src="logo-mark.svg" alt="Magnify.Snap logo">
<span><span class="m">Magnify</span><span class="s">.Snap</span></span>
</div>
</header>
<main>
<div class="hero wrap">
<h1><span class="zoom">Click — zoom.</span><br><span class="snap">Click — back.</span> ⚡</h1>
<p class="sub"><b style="color:var(--text)">One mouse button is the whole interface.</b>
Middle click — the screen zooms to 200%. Middle click again — you're back.
No key combos, no toolbars, no widgets. And while zoomed, the screen stays fully
interactive: click, type and work as usual. Free, for Windows and Linux.</p>
<div class="dl-row">
<a class="btn win" id="dl-win" href="https://github.com/violet2code/magnify-snap/releases/latest">
<svg viewBox="0 0 24 24"><path d="M3 5.5 10.5 4.4V11.5H3V5.5ZM3 12.5H10.5V19.6L3 18.5V12.5ZM11.5 4.2 21 3V11.5H11.5V4.2ZM11.5 12.5H21V21L11.5 19.8V12.5Z"/></svg>
<span>Download for Windows<small id="win-size">64-bit · free</small></span>
</a>
<a class="btn linux" id="dl-linux" href="https://github.com/violet2code/magnify-snap/releases/latest">
<svg viewBox="0 0 24 24"><path d="M12 2c-2.2 0-3.6 1.6-3.6 3.9 0 1.3.2 2.3-.4 3.5-.9 1.6-2.5 3.2-3 5.3-.3 1.3-.1 2.6.6 3.6.3-.6.9-1 1.5-1.2-.2.7-.1 1.3.2 1.9.5.9 1.5 1.5 2.7 1.5.6 0 1.3.3 2 .3s1.4-.3 2-.3c1.2 0 2.2-.6 2.7-1.5.3-.6.4-1.2.2-1.9.6.2 1.2.6 1.5 1.2.7-1 .9-2.3.6-3.6-.5-2.1-2.1-3.7-3-5.3-.6-1.2-.4-2.2-.4-3.5C15.6 3.6 14.2 2 12 2Zm-1.5 5a.9.9 0 1 1 0 1.8.9.9 0 0 1 0-1.8Zm3 0a.9.9 0 1 1 0 1.8.9.9 0 0 1 0-1.8Zm-3.4 3.1c.6.5 1.5.8 2.4.8s1.8-.3 2.4-.8c.3.6.8 1.4 1.3 2.3-.9 1-2.2 1.6-3.7 1.6s-2.8-.6-3.7-1.6c.5-.9 1-1.7 1.3-2.3Z"/></svg>
<span>Download for Linux<small id="linux-size">x86-64 · tar.gz</small></span>
</a>
</div>
<p class="note">Open source · no ads · <a href="https://github.com/violet2code/magnify-snap" target="_blank">view on GitHub</a></p>
<div class="demo">
<span class="keycap">Middle click</span><span class="arrow">→</span><span class="zoomtxt">200%</span><span class="arrow">→</span><span class="keycap">Middle click</span><span class="arrow">→</span><span class="zoomtxt" style="color:var(--green)">100%</span>
<p style="margin-top:14px;color:var(--dim);font-size:14px">While zoomed, move the cursor to a screen edge — the view glides along.</p>
</div>
<img class="shot wide" src="demo-zoom.png" alt="Screen at 100%, middle click, screen at 200%" loading="lazy">
</div>
<section class="why wrap">
<blockquote>
<p>“I just wanted to <em>look closer and keep working</em>. The built-in magnifiers
demand key combos to start, more combos to zoom, and park a toolbar on the screen.
Third-party tools were heavy, fiddly or both. I searched for something truly fast
and convenient — and found nothing. So I built it.”</p>
<footer>— the author of Magnify.Snap</footer>
</blockquote>
</section>
<section class="features wrap">
<h2>Why Magnify.Snap</h2>
<div class="grid">
<div class="card">
<div class="ic"><svg viewBox="0 0 24 24"><circle cx="10" cy="10" r="6"/><path d="m15 15 5 5"/><path d="M10 7.5v5M7.5 10h5"/></svg></div>
<h3>Instant toggle</h3>
<p>One press zooms in, another snaps back. Hold the button to peek even closer for a moment — release and it settles. Rebind to any button, key or combination.</p>
</div>
<div class="card">
<div class="ic"><svg viewBox="0 0 24 24"><path d="M13 2 4 14h6l-1 8 9-12h-6l1-8Z"/></svg></div>
<h3>Zero friction</h3>
<p>The screen stays fully interactive while zoomed — click buttons, type text, drag windows. It's your desktop, just bigger.</p>
</div>
<div class="card">
<div class="ic"><svg viewBox="0 0 24 24"><path d="M12 3v18M3 12h18M7 8l-4 4 4 4M17 8l4 4-4 4M8 7l4-4 4 4M8 17l4 4 4-4"/></svg></div>
<h3>Smart panning</h3>
<p>The view follows your cursor only when it reaches a screen edge — smooth, predictable, configurable speed.</p>
</div>
<div class="card">
<div class="ic"><svg viewBox="0 0 24 24"><rect x="3" y="4" width="18" height="14" rx="2"/><path d="M8 21h8M12 18v3"/></svg></div>
<h3>Native zoom engine</h3>
<p>Windows Magnification API, GNOME magnifier or KWin Zoom — hardware-accelerated magnification, no overlays or lag.</p>
</div>
<div class="card">
<div class="ic"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M12 2v3M12 19v3M2 12h3M19 12h3M4.9 4.9l2.1 2.1M17 17l2.1 2.1M19.1 4.9 17 7M7 17l-2.1 2.1"/></svg></div>
<h3>Your look</h3>
<p>Follows the system theme out of the box, with Light and Dark modes one click away. Zoom level from 125% to 800%.</p>
</div>
<div class="card">
<div class="ic"><svg viewBox="0 0 24 24"><path d="M12 2 4 6v6c0 5 3.4 8.4 8 10 4.6-1.6 8-5 8-10V6l-8-4Z"/><path d="m9 12 2 2 4-4"/></svg></div>
<h3>Tiny and honest</h3>
<p>A single portable file. No installer, no ads, no telemetry. Open source — inspect every line on GitHub.</p>
</div>
</div>
</section>
<section class="shots wrap">
<h2>Simple on the surface, tunable underneath</h2>
<div class="shots-row">
<img class="shot" src="screenshot-settings.png" alt="Magnify.Snap settings window" loading="lazy">
<div class="shots-text">
<p>Magnify.Snap works out of the box — install nothing, configure nothing,
middle click and go.</p>
<p>When you want more, the settings are one tray-click away: zoom level
from 125% to 800%, a hold-to-peek boost level, any mouse button / key /
combination as the trigger, cursor-follow speed, light & dark
themes, autostart.</p>
<p>No installer. No ads. No telemetry. A single portable file.</p>
</div>
</div>
</section>
<section class="faq wrap">
<h2>Questions people ask</h2>
<div class="faq-list">
<details>
<summary>Is Magnify.Snap really free?</summary>
<p>Yes. Free and open source (MIT license), no ads, no telemetry, no paid tiers. A single portable file — no installer. The only network request it makes is an optional daily update check against GitHub — one click updates in place, and the check can be turned off in settings.</p>
</details>
<details>
<summary>How is it different from the built-in Windows Magnifier?</summary>
<p>The built-in magnifier wants key combos to start, zoom and quit, and parks a toolbar on your screen. Magnify.Snap is one mouse button: middle-click zooms to 200%, another click snaps back, holding the button peeks even closer. Nothing else appears on screen.</p>
</details>
<details>
<summary>Can I still click and type while zoomed?</summary>
<p>Yes — magnification happens at the OS compositor level, so the screen stays fully interactive: click, type, drag windows as usual.</p>
</details>
<details>
<summary>Can I use a different button or key?</summary>
<p>Any mouse button, key, or combination with Ctrl/Alt/Shift/Win. Assign it by physically pressing it in the settings.</p>
</details>
<details>
<summary>Does it work on Linux?</summary>
<p>Yes — GNOME (built-in magnifier) and KDE Plasma (KWin Zoom). Global input capture works best on X11.</p>
</details>
</div>
</section>
<section class="how wrap">
<h2>Up and running in a minute</h2>
<div class="steps">
<div class="step"><p><b>Download</b> the file for your OS with the buttons above.</p></div>
<div class="step"><p><b>Run it.</b> The app minimizes straight to the system tray — look for the blue magnifier icon.</p></div>
<div class="step"><p><b>Middle-click</b> anywhere to zoom. Click the tray icon to open settings and make it yours.</p></div>
</div>
</section>
</main>
<footer>
<p>Magnify.Snap · free & open source ·
<a href="https://github.com/violet2code/magnify-snap" target="_blank">GitHub</a> ·
<a href="https://github.com/violet2code/magnify-snap/releases" target="_blank">all releases</a></p>
</footer>
<script>
// Подставляем прямые ссылки последнего релиза в кнопки скачивания
fetch("https://api.github.com/repos/violet2code/magnify-snap/releases/latest")
.then(r => r.json())
.then(rel => {
const fmt = b => (b / 1048576).toFixed(1) + " MB";
for (const a of rel.assets || []) {
if (a.name.includes("windows")) {
document.getElementById("dl-win").href = a.browser_download_url;
document.getElementById("win-size").textContent = "64-bit · " + fmt(a.size);
} else if (a.name.includes("linux")) {
document.getElementById("dl-linux").href = a.browser_download_url;
document.getElementById("linux-size").textContent = "x86-64 · " + fmt(a.size);
}
}
})
.catch(() => {});
</script>
<!-- Invisible visit counter: aggregate integer only, no cookies, no account, nothing shown -->
<script>
if (location.hostname.endsWith("github.io")) {
fetch("https://abacus.jasoncameron.dev/hit/violet2code-magnifysnap/home")
.catch(() => {});
}
</script>
</body>
</html>