From f4048fda9f49fde91940d06eac05dece5b9a220b Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:29:54 +0200 Subject: [PATCH 01/46] Add canonical SightAdapt site brand asset Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/assets/sightadapt-mark.svg | 38 +++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 site/assets/sightadapt-mark.svg diff --git a/site/assets/sightadapt-mark.svg b/site/assets/sightadapt-mark.svg new file mode 100644 index 00000000..55269ec9 --- /dev/null +++ b/site/assets/sightadapt-mark.svg @@ -0,0 +1,38 @@ + + + SightAdapt product mark + A stylized eye on a rounded dark-blue square with a blue and violet iris. + Copyright 2026 KeyffMS / aiteracja.pl. SightAdapt is distributed under the repository license. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From c7b345d6f052d660b61e4079d295bbffe1a0d950 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:29:57 +0200 Subject: [PATCH 02/46] Add canonical SightAdapt site brand asset Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/assets/sightadapt-lockup-dark.svg | 34 ++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 site/assets/sightadapt-lockup-dark.svg diff --git a/site/assets/sightadapt-lockup-dark.svg b/site/assets/sightadapt-lockup-dark.svg new file mode 100644 index 00000000..2b210230 --- /dev/null +++ b/site/assets/sightadapt-lockup-dark.svg @@ -0,0 +1,34 @@ + + + SightAdapt trademarked product logo for light backgrounds + The SightAdapt eye mark followed by the word SightAdapt and an unregistered trademark symbol. + Copyright 2026 KeyffMS / aiteracja.pl. SightAdapt™ is an unregistered product mark. + + + + + + + + + + + + + + + + + + + + + + + + + + + SightAdapt + ™ + From ba90628bf0425a943de96da26f35e97ac741000d Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:30:00 +0200 Subject: [PATCH 03/46] Add canonical SightAdapt site brand asset Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/assets/sightadapt-lockup-light.svg | 34 +++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 site/assets/sightadapt-lockup-light.svg diff --git a/site/assets/sightadapt-lockup-light.svg b/site/assets/sightadapt-lockup-light.svg new file mode 100644 index 00000000..23156a2b --- /dev/null +++ b/site/assets/sightadapt-lockup-light.svg @@ -0,0 +1,34 @@ + + + SightAdapt trademarked product logo for dark backgrounds + The SightAdapt eye mark followed by the word SightAdapt and an unregistered trademark symbol. + Copyright 2026 KeyffMS / aiteracja.pl. SightAdapt™ is an unregistered product mark. + + + + + + + + + + + + + + + + + + + + + + + + + + + SightAdapt + ™ + From 67cc1a45892d40fcf947ce2517c83e3925f328f2 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:30:02 +0200 Subject: [PATCH 04/46] Add accessible static-site stylesheet Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/assets/site.css | 437 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 437 insertions(+) create mode 100644 site/assets/site.css diff --git a/site/assets/site.css b/site/assets/site.css new file mode 100644 index 00000000..2471c778 --- /dev/null +++ b/site/assets/site.css @@ -0,0 +1,437 @@ +:root { + color-scheme: light; + --ink: #0f172a; + --muted: #475569; + --paper: #ffffff; + --surface: #f8fafc; + --surface-strong: #eef2ff; + --line: #cbd5e1; + --brand: #243b83; + --brand-strong: #172554; + --accent: #075985; + --focus: #f59e0b; + --success: #166534; + --warning-bg: #fff7ed; + --warning-line: #c2410c; + --max: 74rem; + font-family: "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif; +} + +* { box-sizing: border-box; } + +html { scroll-behavior: smooth; } + +body { + margin: 0; + color: var(--ink); + background: var(--paper); + font-size: 1rem; + line-height: 1.65; +} + +img { max-width: 100%; height: auto; } + +a { + color: var(--accent); + text-underline-offset: .18em; +} + +a:hover { text-decoration-thickness: .16em; } + +a:focus-visible, +button:focus-visible, +summary:focus-visible { + outline: .2rem solid var(--focus); + outline-offset: .2rem; + border-radius: .2rem; +} + +.skip-link { + position: absolute; + left: .75rem; + top: -5rem; + z-index: 100; + background: var(--ink); + color: #fff; + padding: .75rem 1rem; + border-radius: .35rem; +} + +.skip-link:focus { top: .75rem; } + +.container { + width: min(calc(100% - 2rem), var(--max)); + margin-inline: auto; +} + +.site-header { + border-bottom: 1px solid var(--line); + background: rgba(255,255,255,.98); +} + +.header-inner { + min-height: 4.75rem; + display: flex; + align-items: center; + justify-content: space-between; + gap: 1.25rem; +} + +.brand img { width: 13rem; display: block; } + +.desktop-nav { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: .85rem; +} + +.desktop-nav a, +.mobile-nav a { + color: var(--ink); + font-weight: 600; + text-decoration: none; +} + +.desktop-nav a[aria-current="page"], +.mobile-nav a[aria-current="page"] { + text-decoration: underline; + text-decoration-thickness: .16em; +} + +.mobile-menu { display: none; } +.mobile-menu summary { font-weight: 700; cursor: pointer; } +.mobile-nav { display: grid; gap: .65rem; padding: .75rem 0 1rem; } + +.button { + display: inline-block; + padding: .72rem 1rem; + border: 2px solid var(--brand); + border-radius: .5rem; + background: var(--brand); + color: #fff !important; + font-weight: 700; + text-decoration: none; +} + +.button.secondary { + background: transparent; + color: var(--brand) !important; +} + +.button.light { + border-color: #fff; + background: #fff; + color: var(--brand-strong) !important; +} + +.button.light.secondary { + background: transparent; + color: #fff !important; +} + +.alpha-banner { + border-bottom: 1px solid #fed7aa; + background: var(--warning-bg); + padding: .7rem 0; +} + +.alpha-banner p { margin: 0; } + +.hero { + background: linear-gradient(145deg, #111a36, #27366d 70%, #3b3b78); + color: #fff; + padding: clamp(3rem, 7vw, 6rem) 0; +} + +.hero a { color: #fff; } + +.hero-grid { + display: grid; + grid-template-columns: minmax(0, 1.35fr) minmax(17rem, .65fr); + gap: clamp(2rem, 5vw, 5rem); + align-items: center; +} + +.eyebrow { + font-weight: 700; + letter-spacing: .04em; + text-transform: uppercase; + font-size: .85rem; +} + +.hero h1, +.page-hero h1 { + font-size: clamp(2.4rem, 6vw, 4.8rem); + line-height: 1.05; + letter-spacing: -.035em; + max-width: 16ch; + margin: .45rem 0 1.25rem; +} + +.lead { + font-size: clamp(1.1rem, 2vw, 1.35rem); + max-width: 44rem; +} + +.actions { + display: flex; + flex-wrap: wrap; + gap: .75rem; + margin-top: 1.5rem; +} + +.release-card, +.card, +.callout, +.diagram, +.table-wrap { + border: 1px solid var(--line); + border-radius: .75rem; + background: var(--paper); +} + +.release-card { + color: var(--ink); + padding: 1.35rem; + box-shadow: 0 1rem 2.5rem rgba(3, 7, 18, .22); +} + +.release-card h2 { margin-top: 0; font-size: 1.25rem; } + +.meta-list { + list-style: none; + padding: 0; + margin: 1rem 0; +} + +.meta-list li { margin: .35rem 0; } + +.trust-strip { + background: var(--surface-strong); + border-bottom: 1px solid #c7d2fe; +} + +.trust-grid { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 1px; +} + +.trust-grid a { + display: block; + padding: 1rem; + color: var(--ink); + font-weight: 700; + text-align: center; +} + +main section, +.page-hero { + padding: clamp(2.5rem, 5vw, 4.5rem) 0; +} + +.page-hero { + background: var(--surface); + border-bottom: 1px solid var(--line); +} + +.page-hero h1 { max-width: 22ch; font-size: clamp(2.25rem, 5vw, 4rem); } + +.section-heading { + max-width: 48rem; + margin-bottom: 1.8rem; +} + +.section-heading h2 { + font-size: clamp(1.7rem, 3vw, 2.4rem); + line-height: 1.15; + margin-bottom: .65rem; +} + +.grid-2, +.grid-3 { + display: grid; + gap: 1rem; +} + +.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } +.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } + +.card { padding: 1.3rem; } +.card h2, .card h3 { margin-top: 0; } + +.steps { + counter-reset: steps; + list-style: none; + padding: 0; + display: grid; + gap: 1rem; +} + +.steps li { + counter-increment: steps; + position: relative; + padding: 1.1rem 1.1rem 1.1rem 4rem; + border-left: .3rem solid var(--brand); + background: var(--surface); +} + +.steps li::before { + content: counter(steps); + position: absolute; + left: 1.1rem; + top: 1rem; + width: 2rem; + height: 2rem; + border-radius: 50%; + display: grid; + place-items: center; + background: var(--brand); + color: #fff; + font-weight: 800; +} + +.callout { + padding: 1.2rem 1.35rem; + background: var(--surface); +} + +.callout.warning { + border-color: #fdba74; + background: var(--warning-bg); +} + +.callout strong { color: var(--ink); } + +.diagram { padding: 1rem; background: var(--surface); } + +.diagram-flow { + display: grid; + grid-template-columns: repeat(4, minmax(0,1fr)); + gap: .75rem; + align-items: stretch; +} + +.diagram-node { + position: relative; + padding: 1rem; + border: 2px solid #a5b4fc; + border-radius: .6rem; + background: #fff; + text-align: center; + font-weight: 700; +} + +.diagram-node:not(:last-child)::after { + content: "→"; + position: absolute; + right: -.75rem; + top: 50%; + transform: translate(50%, -50%); + color: var(--brand); + font-size: 1.4rem; + font-weight: 800; + background: var(--surface); + padding: 0 .15rem; +} + +.code { + overflow-x: auto; + border-radius: .55rem; + padding: 1rem; + background: #111827; + color: #f8fafc; + font-family: Consolas, "SFMono-Regular", monospace; + font-size: .92rem; +} + +table { + width: 100%; + border-collapse: collapse; +} + +th, td { + padding: .7rem; + border-bottom: 1px solid var(--line); + text-align: left; + vertical-align: top; +} + +th { background: var(--surface); } + +.table-wrap { overflow-x: auto; } + +.definition-list { + display: grid; + grid-template-columns: minmax(10rem, .35fr) 1fr; + gap: .6rem 1rem; +} +.definition-list dt { font-weight: 700; } +.definition-list dd { margin: 0; } + +.site-footer { + background: #0f172a; + color: #e2e8f0; + padding: 3rem 0 2rem; +} + +.site-footer a { color: #e0f2fe; } + +.footer-grid { + display: grid; + grid-template-columns: 1.4fr repeat(3, 1fr); + gap: 2rem; +} + +.footer-brand img { width: 13rem; } +.footer-links { list-style: none; padding: 0; margin: 0; } +.footer-links li { margin: .45rem 0; } + +.small-print { + margin-top: 2rem; + padding-top: 1.5rem; + border-top: 1px solid #334155; + font-size: .9rem; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + border: 0; +} + +@media (max-width: 56rem) { + .desktop-nav { display: none; } + .mobile-menu { display: block; } + .header-inner { align-items: flex-start; padding-block: .85rem; } + .hero-grid, + .grid-3, + .footer-grid { grid-template-columns: 1fr; } + .trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } + .diagram-flow { grid-template-columns: 1fr; } + .diagram-node:not(:last-child)::after { + content: "↓"; + right: 50%; + top: auto; + bottom: -.75rem; + transform: translate(50%, 50%); + } +} + +@media (max-width: 40rem) { + .grid-2, + .trust-grid, + .definition-list { grid-template-columns: 1fr; } + .brand img { width: 10rem; } +} + +@media (prefers-reduced-motion: reduce) { + html { scroll-behavior: auto; } +} From 5d38a66b0065635b446d4031301f7ea0080fc8a4 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:30:04 +0200 Subject: [PATCH 05/46] Configure GitHub Pages static publishing Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/.nojekyll | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 site/.nojekyll diff --git a/site/.nojekyll b/site/.nojekyll new file mode 100644 index 00000000..e69de29b From 33f9391f3ff3cc9abf21cf861e5b2648eec971ed Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:31:25 +0200 Subject: [PATCH 06/46] Add index.html page Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/index.html | 193 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 site/index.html diff --git a/site/index.html b/site/index.html new file mode 100644 index 00000000..06bef644 --- /dev/null +++ b/site/index.html @@ -0,0 +1,193 @@ + + + + + + SightAdapt™ — per-application visual accessibility for Windows | Aiteracja + + + + + + + + + +
+
+
+
+

Free and open source · Windows 10 and 11 · Alpha

+

Adapt the application in front of you.

+

SightAdapt™ applies configurable color correction to individual Windows application windows. Keep the rest of the desktop unchanged, assign profiles per application and stop every overlay immediately when needed.

+ +
+ +
+
+
+ +
+
+
+

Change one application, not your entire desktop.

System-wide display filters can affect every monitor, application and notification. SightAdapt targets the active application through a separate overlay, allowing different applications to use different visual profiles while unrelated windows remain unchanged.

+
+

Profiles per application

Assign a saved color profile to an application and let SightAdapt activate it when that application becomes active.

+

Separate native-menu correction

Use the application profile for native popup menus or assign a different menu profile when menu contrast needs separate treatment.

+

Flexible overlay scope

Choose the client area, full window, current screen or all screens according to the application and display setup.

+

Editable visual profiles

Adjust output black and white levels, brightness, contrast, saturation and hue, then preview the result before assigning it.

+

Manual and automatic controls

Toggle the active window temporarily or save an automatic application assignment.

+

Immediate shutdown

Remove active overlays from the notification-area menu through the emergency-disable command.

+
+
+
+
+
+

Three steps to a per-application profile.

+
    +
  1. Select or activate an application.
  2. +
  3. Choose or create a visual profile.
  4. +
  5. Enable the assignment or use the temporary shortcut.
  6. +
+

See the complete quick start.

+
+
+
+
+

Built-in starting points, editable when appropriate.

+
+

None

Leave the application unchanged.

+

Exact invert

Apply a fixed full inversion.

+

Soft invert

Use an editable lower-intensity starting profile.

+

Custom profiles

Duplicate and adjust a profile for a particular application or display.

+
+

Individual preferences: Visual preferences are individual. SightAdapt does not choose a medically appropriate profile and does not replace professional advice.

+
+
+
+
+
+

Local settings. No screen-content upload.

+

SightAdapt stores its configuration locally. The current alpha does not transmit captured screen content, does not inject code into target applications and does not install a kernel driver. Application assignments may include executable paths and file metadata stored in the local settings file.

+

Read privacy details · Review security boundaries

+
+
+

Built in public.

+

SightAdapt is developed in a public GitHub repository and distributed under the MIT License. Source code, architecture documentation, test results, issues and release history are available for inspection.

+

Browse the source · Report an issue · Read the license

+
+
+
+
+
+

Current alpha limitations

+
    +
  • Only one foreground application session is corrected at a time.
  • +
  • Native menu-specific handling applies only to Win32 #32768 popup menus.
  • +
  • Protected or digital-rights-management (DRM) controlled content may not be capturable.
  • +
  • Elevated applications may require a compatible integrity level.
  • +
  • Remote desktop and some graphics drivers may behave differently.
  • +
  • Broad compatibility and endurance testing are incomplete.
  • +
+

Read all known limitations.

+
+
+
+
+

Try SightAdapt™ and inspect every part of it.

+ +
+
+
+ + + From b43c74e8a9410118540f49fbe934e7b1cc01d9f8 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:31:27 +0200 Subject: [PATCH 07/46] Add features/index.html page Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/features/index.html | 111 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 site/features/index.html diff --git a/site/features/index.html b/site/features/index.html new file mode 100644 index 00000000..2352226a --- /dev/null +++ b/site/features/index.html @@ -0,0 +1,111 @@ + + + + + + SightAdapt™ features — profiles, overlays and Windows controls + + + + + + + + + +
+

Features

Features designed around individual applications.

SightAdapt keeps profile selection, overlay scope and automatic activation attached to the application you choose.

+
+

Application assignments

Persistent assignments are matched primarily by executable path. Each assignment stores its enabled state, application profile, optional native-menu profile and overlay scope. With automatic mode enabled, the saved assignment activates when its application becomes the supported foreground window.

+

Visual profile management

Built-in profiles provide fixed or editable starting points. User-defined profiles can be created, duplicated, renamed, edited, assigned and deleted. Deleting a user profile reassigns affected applications to the built-in Soft invert profile.

+

Available controls

Editable profiles expose output black, output white, brightness, contrast, saturation and hue shift. These are display-personalization controls; they are not a color-calibration or clinical measurement system.

+

Native popup menus

Supported native Win32 #32768 popup menus can inherit the application profile or use a separate profile. WPF, WinUI, Chromium/Electron, Qt and other custom-rendered menus are outside this separate-menu boundary.

+

Overlay scopes

Client area excludes the title bar and frame. Full window covers the visible window. Current screen covers the target monitor. All screens covers the Windows virtual desktop.

+

Shortcuts and notification-area controls

Ctrl+Alt+I toggles local correction without changing saved settings. Ctrl+Alt+Shift+I adds, disables or re-enables the persistent assignment for the active application. The tray menu also exposes automatic mode and emergency shutdown.

+

Multi-monitor and DPI behavior

The overlay geometry follows Windows window and monitor coordinates and the application is per-monitor DPI aware. Unusual display drivers, mixed display arrangements and remote sessions may still require testing.

+

Settings and migration

Configuration is stored locally as schema-versioned JSON at %LOCALAPPDATA%\SightAdapt\settings.json. Supported older settings are normalized and migrated; writes are committed atomically so a failed save does not replace the last committed configuration.

+
+
+

What SightAdapt does not do

+
    +
  • It does not modify another application's files.
  • +
  • It does not inject code into another process.
  • +
  • It does not install a driver.
  • +
  • It does not upload screen content.
  • +
  • It does not bypass DRM or other access controls.
  • +
  • It does not guarantee compatibility with every rendering framework.
  • +
  • It does not provide medical diagnosis or treatment.
  • +
+

Read how the overlay works or inspect the complete functionality document.

+
+
+ + + From 91b679da869292417bb5e4a95f450e1deb2be9d7 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:31:29 +0200 Subject: [PATCH 08/46] Add how-it-works/index.html page Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/how-it-works/index.html | 114 +++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 site/how-it-works/index.html diff --git a/site/how-it-works/index.html b/site/how-it-works/index.html new file mode 100644 index 00000000..5bcef06c --- /dev/null +++ b/site/how-it-works/index.html @@ -0,0 +1,114 @@ + + + + + + How SightAdapt™ works on Windows + + + + + + + + + +
+

How it works

A separate overlay, not a modification of the target application.

SightAdapt observes window metadata, resolves your saved assignment and renders correction through Windows display APIs.

+
+
    +
  1. SightAdapt observes the foreground window and resolves the corresponding application assignment.
  2. +
  3. It creates or retargets an input-transparent overlay.
  4. +
  5. The Windows Magnification API applies the selected color transform to the chosen source area.
  6. +
  7. Filtering prevents the overlay from recursively capturing itself.
  8. +
  9. Native popup menus may receive transient overlays when supported.
  10. +
  11. Emergency shutdown removes active overlays.
  12. +
+
+
+

Architecture at a glance

The diagram is built from text and HTML so its meaning remains available when images or styles are unavailable.

+
+ +
SightAdapt keeps the target application separate from the correction overlay; native popup menus may receive additional transient overlays.
+
+
+
+

Security boundary

SightAdapt does not inject DLLs, write target-process memory or modify target application files. It reads limited window and process metadata required to identify the selected application.

+

Read the full architecture documentation.

+
+
+ + + From 8c10b909ea8ba5bba7dbec054a847d23029a34eb Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:31:31 +0200 Subject: [PATCH 09/46] Add faq/index.html page Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/faq/index.html | 104 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 site/faq/index.html diff --git a/site/faq/index.html b/site/faq/index.html new file mode 100644 index 00000000..3e3c9bec --- /dev/null +++ b/site/faq/index.html @@ -0,0 +1,104 @@ + + + + + + SightAdapt™ FAQ + + + + + + + + + +
+

FAQ

Common questions about SightAdapt™.

+
+
+

Is SightAdapt free?

Yes. SightAdapt is free and open source under the MIT License.

+

Does SightAdapt change application files?

No. It uses a separate Windows overlay and does not modify the target application's installed files.

+

Does it inject code into other applications?

No. The current alpha does not use DLL injection or write another process's memory.

+

Does it record or upload my screen?

The current alpha does not save or transmit captured screen content. See privacy and security for the exact boundaries.

+

Why does it store executable paths?

Paths are used locally to identify saved application assignments. A path can contain a Windows account or organization name, so redact it from public bug reports when necessary.

+

Does it work with every application?

No guarantee is made. Framework, privilege level, protected content, remote sessions and graphics drivers can affect behavior.

+

Can it correct only menus?

For supported native Win32 popup menus, an application can use None while an explicit menu profile is assigned. Custom-rendered menus are not separately detected.

+

Is SightAdapt a medical device?

The current project is a general-purpose visual-accessibility and display-personalization utility. It does not diagnose or treat medical conditions.

+

Why might Windows show a warning?

New or unsigned binaries may have limited Microsoft Defender SmartScreen reputation. Download only from project-controlled sources and verify the published checksum.

+

How do I stop all overlays?

Use Emergency disable all overlays from the notification-area menu, or exit SightAdapt.

+ + +
+
+
+ + + From ce0c9506c5c10114f8e49a47898e963c62a6be01 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:33:04 +0200 Subject: [PATCH 10/46] Add download/index.html page Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/download/index.html | 95 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 site/download/index.html diff --git a/site/download/index.html b/site/download/index.html new file mode 100644 index 00000000..d0dcd3ee --- /dev/null +++ b/site/download/index.html @@ -0,0 +1,95 @@ + + + + + + Download SightAdapt™ for Windows + + + + + + + + + +
+

Download

Download the current SightAdapt™ release.

GitHub Releases are the authoritative source for official SightAdapt binaries. The website links to those immutable release assets instead of duplicating them.

+
+ +
+
+

System requirements

  • Windows 10 version 2004 or later, or Windows 11.
  • x64 processor.
  • User permission to start a desktop application.
  • Compatible desktop composition and graphics driver.
+

Install and start

  1. Download only from a project-controlled URL or approved package listing.
  2. Verify the checksum when practical.
  3. Extract the archive to a user-controlled directory.
  4. Start SightAdapt.exe.
  5. Use the notification-area icon to open configuration.
+
+
+

Verify the archive

Run the following in PowerShell from the directory containing the downloaded ZIP:

+
Get-FileHash .\SightAdapt-0.5.0.50-alpha-win-x64.zip -Algorithm SHA256
+

The resulting hash must equal:

+
c6dc5ba5c0356c84b32a74d298015d63158c57886b835e411da0b60f306fd711
+
+
+

Windows reputation warning

Unsigned or newly published open-source binaries may trigger Microsoft Defender SmartScreen. Do not disable system protection to run SightAdapt. Verify the source URL, release page and checksum before deciding whether to run a downloaded file.

+

Removal

Exit SightAdapt, then remove the extracted application files. To remove saved profiles and assignments as well, delete %LOCALAPPDATA%\SightAdapt\settings.json. Deleting that file permanently removes the local SightAdapt configuration.

+
+

Alpha use

This is an alpha release. Keep the emergency-disable command available and test the application with non-critical work before relying on it for extended sessions.

+
+ + + From c1651a0086cc7457f88d577e639301123fd2a7eb Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:33:07 +0200 Subject: [PATCH 11/46] Add docs/index.html page Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/docs/index.html | 80 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 site/docs/index.html diff --git a/site/docs/index.html b/site/docs/index.html new file mode 100644 index 00000000..11e87bdc --- /dev/null +++ b/site/docs/index.html @@ -0,0 +1,80 @@ + + + + + + SightAdapt™ documentation + + + + + + + + + +
+

Documentation

Set up SightAdapt and understand each control.

This hub covers day-to-day use. Developer and architecture documents remain maintained in the GitHub repository.

+
+ +

Applications

Add an application by activating it and using the persistent-assignment shortcut or configuration UI. Assignments can be enabled, disabled and removed. Executable identity and path information is stored locally for matching.

Automatic mode applies enabled assignments when their application is foreground.

+

Profiles

None leaves the application unchanged. Exact invert is fixed. Soft invert is editable. User-defined profiles can be created, duplicated, renamed, edited and deleted.

Preview behavior is intended to help tune a profile but does not guarantee how every application or display driver will render it.

+

Menus and scopes

Native Win32 #32768 popup menus can inherit the application profile or use a separate profile. Overlay scope can target client area, full window, current screen or all screens.

WPF, WinUI, Electron, Qt and other custom-rendered menus are not separately detected.

+

Keyboard and emergency controls

Ctrl+Alt+I toggles correction for the active supported window without changing saved settings.

Ctrl+Alt+Shift+I adds, disables or re-enables the active application's persistent assignment.

Emergency disable all overlays removes active overlays immediately and disables automatic mode.

+

Troubleshooting

  • For elevated target applications, use a compatible integrity level.
  • If the tray icon is missing, verify only one SightAdapt instance is running.
  • If an overlay does not appear, verify the assignment, automatic mode and target visibility.
  • If menu correction does not apply, check whether the menu is a native Win32 popup.
  • Mixed monitors, scaling, remote desktop and graphics drivers may change behavior.
  • For settings recovery, exit SightAdapt and back up or remove settings.json.
  • Protected content may remain unavailable or unfilterable.
+
+
+

Developer documentation

Authoritative technical documentation remains versioned with the source.

+ +
+
+ + + From bcce4fa0bdef6cb412fbf4916e18a11a6719f9aa Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:33:09 +0200 Subject: [PATCH 12/46] Add releases/index.html page Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/releases/index.html | 70 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 site/releases/index.html diff --git a/site/releases/index.html b/site/releases/index.html new file mode 100644 index 00000000..1e1707a6 --- /dev/null +++ b/site/releases/index.html @@ -0,0 +1,70 @@ + + + + + + SightAdapt™ release history + + + + + + + + + +
+

Releases

Public, dated SightAdapt releases.

GitHub Releases are the authoritative binary publication record. This page is a human-readable index and does not host divergent binaries.

+
+
+ + +
VersionDateStatusPlatformOfficial files
0.5.0.50-alpha24 September 2026Alpha / prereleaseWindows x64Windows ZIP · checksums · SBOM
+

Tag v0.5.0.50-alpha is immutable and points to the published release source. GitHub-generated source archives are source snapshots; the file named SightAdapt-0.5.0.50-alpha-win-x64.zip is the official Windows binary package.

+

Read the repository release-history record.

+
+

Withdrawal policy

A compromised or unsafe release is not silently replaced. The immutable release record remains identifiable and receives an explicit withdrawal notice; a corrected version is published under a new version and tag.

+
+ + + From 26a051cfe42f45e7caafe5176e2594de564c56eb Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:33:11 +0200 Subject: [PATCH 13/46] Add privacy/index.html page Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/privacy/index.html | 73 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 site/privacy/index.html diff --git a/site/privacy/index.html b/site/privacy/index.html new file mode 100644 index 00000000..d0296108 --- /dev/null +++ b/site/privacy/index.html @@ -0,0 +1,73 @@ + + + + + + SightAdapt™ privacy + + + + + + + + + +
+

Privacy

Local settings and explicit support sharing.

The current SightAdapt alpha stores configuration locally and does not transmit captured screen content or behavioral telemetry.

+
+

Data processed locally

To identify the active application and render the configured overlay, SightAdapt may read window handles, process and GUI thread identifiers, display names, executable names and paths, file-description metadata, window geometry and foreground state.

Saved settings can include assignments, enabled states, selected profiles, menu-profile references, overlay scopes and user-defined tuning values.

+

Local storage

Settings are stored at %LOCALAPPDATA%\SightAdapt\settings.json. The file is human-readable JSON and can contain executable paths. Those paths may contain a Windows account, organization or project name.

To reset local configuration, exit SightAdapt and remove the file. Starting SightAdapt again recreates defaults.

+

Screen content and network behavior

The current application does not intentionally save screenshots, record the screen, build a screen-content history, perform image recognition or transmit captured screen content.

It contains no telemetry, product analytics, advertising, remote crash reporting, automatic diagnostic upload, cloud synchronization or automatic update check.

+

Support information

Information reaches the project owner only when a person voluntarily sends it through GitHub or another support route. Before sharing logs, settings, screenshots or paths, remove usernames, organization names, private directory names, tokens and unrelated content.

+
+
+

Controller and contact for submitted support data

+

KeyffMS / aiteracja.pl. The current public contact route is the GitHub repository owner. For non-public material, request a private communication route before sending it.

+

Privately submitted support material is limited to people needed to investigate the report and is normally deleted no later than 90 days after the related support matter closes, except when a longer period is needed for an active security investigation, legal obligation, dispute or agreed follow-up.

+

Policy source: PRIVACY.md. Last updated in the repository: 29 July 2026.

+
+
+ + + From 1b8b07f0cfa681b1fe3a7760a590d4f7503f6e67 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:33:14 +0200 Subject: [PATCH 14/46] Add legal/index.html page Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/legal/index.html | 97 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 site/legal/index.html diff --git a/site/legal/index.html b/site/legal/index.html new file mode 100644 index 00000000..58490a67 --- /dev/null +++ b/site/legal/index.html @@ -0,0 +1,97 @@ + + + + + + SightAdapt™ license and legal notices + + + + + + + + + +
+

License and legal notices

SightAdapt™ license and legal notices.

SightAdapt is distributed under the MIT License. Release-specific legal and supply-chain files are published beside each official binary.

+
+

MIT License

+
MIT License
+
+Copyright (c) 2026 KeyffMS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+

Repository license source

+
+
+ +

Protected content and access controls

SightAdapt is not intended to circumvent, disable, avoid or interfere with digital-rights management (DRM), protected-content restrictions, authentication, licensing checks, encryption or other access controls. Protected content may remain unavailable, blank, excluded or unfilterable.

+
+
+

Names and trademarks

+

SightAdapt™ is an unregistered product mark used by KeyffMS / aiteracja.pl. The ™ notation identifies product branding and does not represent a registered trademark.

+

Third-party product names and trademarks are the property of their respective owners and are used only to identify user-selected applications. SightAdapt is not affiliated with or endorsed by those owners.

+

Microsoft, Windows and .NET are trademarks of the Microsoft group of companies. Their names identify the operating-system platform, runtime components or technical compatibility only.

+

Read the complete third-party names and protected-content notice.

+
+
+ + + From d2f3b5e8f034faad8efba4bc27ed9b9f6189acff Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:33:17 +0200 Subject: [PATCH 15/46] Add security/index.html page Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/security/index.html | 71 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 site/security/index.html diff --git a/site/security/index.html b/site/security/index.html new file mode 100644 index 00000000..60133866 --- /dev/null +++ b/site/security/index.html @@ -0,0 +1,71 @@ + + + + + + SightAdapt™ security and reporting + + + + + + + + + +
+

Security

SightAdapt™ security and reporting.

The current alpha has explicit process and display boundaries and has not completed a formal security review.

+
+

Current application boundaries

  • No DLL or code injection into target applications.
  • No kernel driver installation.
  • No saved or transmitted captured screen content.
  • Runs with the current user's privileges.
  • Uses a separate input-transparent overlay.
+

Elevated applications

Windows integrity boundaries can affect access to elevated target applications. A target may require SightAdapt to run at a compatible integrity level. Do not weaken operating-system security settings to force compatibility.

+

Emergency shutdown

The notification-area menu provides Emergency disable all overlays. It removes active overlays immediately and disables automatic mode before settings persistence is attempted.

+

Alpha review status

The current alpha has not completed a formal security review and must not be treated as production-ready assistive software. Compatibility and endurance testing remain incomplete.

+
+
+

Report a vulnerability privately

Do not disclose security-sensitive issues in a public GitHub issue. Until a dedicated private reporting channel is configured, contact the repository owner through GitHub and request a private communication channel.

Do not post passwords, tokens, private keys, confidential screenshots, unredacted executable paths or sensitive customer information.

+

Read SECURITY.md · Review current limitations

+
+
+ + + From 5135d2cab6693534aea7d82727773e44278e907c Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:33:19 +0200 Subject: [PATCH 16/46] Add support/index.html page Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/support/index.html | 73 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 site/support/index.html diff --git a/site/support/index.html b/site/support/index.html new file mode 100644 index 00000000..2b7501bc --- /dev/null +++ b/site/support/index.html @@ -0,0 +1,73 @@ + + + + + + SightAdapt™ support and contact + + + + + + + + + +
+

Support and contact

Get help or report a reproducible problem.

Use public issues for non-sensitive defects and feature requests. Ask for a private route before sending sensitive or security-related material.

+
+ + + + + +
+
+

Bug-report checklist

+
  • SightAdapt version.
  • Windows version.
  • Monitor arrangement and display scaling.
  • Target application and framework when known.
  • Target privilege level.
  • Exact reproduction steps.
  • Whether emergency disable remained available.
  • Sanitized logs or paths when relevant.
+

Privacy: Do not attach screenshots containing private information or publish unredacted paths, usernames, organization names or confidential application content.

+
+
+ + + From 80ec056abb130ec73293b9c9a55de401beeeaea8 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:34:10 +0200 Subject: [PATCH 17/46] Document static site architecture and preview Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/README.md | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 site/README.md diff --git a/site/README.md b/site/README.md new file mode 100644 index 00000000..93b562a3 --- /dev/null +++ b/site/README.md @@ -0,0 +1,74 @@ +# SightAdapt™ static product site + +This directory contains the dependency-free static implementation of the SightAdapt product site defined by issue #124 and implemented under #99. + +## Hosting model + +- canonical public product root: `https://aiteracja.pl/sightadapt/` +- GitHub Pages origin/fallback: `https://keyffms.github.io/SightAdapt/` +- optional convenience address: `https://sightadapt.aiteracja.pl/` (permanent redirect only; not a second canonical site) +- official binary authority: GitHub Releases + +The site intentionally uses relative asset and navigation paths so the same tree can be served below both `/SightAdapt/` and `/sightadapt/`. + +## Architecture + +The site is plain HTML and CSS: + +- no JavaScript framework; +- no build-time package manager; +- no cookies; +- no analytics; +- no tracking pixels; +- no remote font requests; +- no unsolicited third-party embeds. + +Canonical repository SVG assets are copied into `site/assets/` so the public pages do not depend on runtime requests to GitHub raw content. + +## Pages + +- `/` — product overview +- `/features/` +- `/download/` +- `/docs/` +- `/how-it-works/` +- `/faq/` +- `/releases/` +- `/privacy/` +- `/legal/` +- `/security/` +- `/support/` + +## Local preview + +From the repository root, run any local static HTTP server. With Python 3: + +```powershell +python -m http.server 8000 --directory .\site +``` + +Then open: + +```text +http://localhost:8000/ +``` + +The site does not require Python to build or deploy; Python is only one convenient local preview server. + +## Validation + +Run: + +```powershell +.\tools\test-site.ps1 +``` + +The validator checks the required page inventory, document structure, canonical URLs, accessibility basics, local link/assets, required trademark/footer wording and the absence of remote active content. + +## Deployment + +`.github/workflows/pages.yml` deploys the exact `site/` tree only after a successful `Build and test SightAdapt` run for a push to `main`. Manual dispatch is also available for maintainers. + +Repository Settings → Pages must use GitHub Actions as the Pages source. The repository `main` branch must also be protected according to issue #87 before the protected-default-branch acceptance criterion can be considered complete. + +SightAdapt™ is an unregistered product mark used by KeyffMS / aiteracja.pl. From 39bd3a1e4d9e9f96086c78d2408afbcd5601a629 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:34:12 +0200 Subject: [PATCH 18/46] Add static site validation gate Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- tools/test-site.ps1 | 175 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 tools/test-site.ps1 diff --git a/tools/test-site.ps1 b/tools/test-site.ps1 new file mode 100644 index 00000000..36d53469 --- /dev/null +++ b/tools/test-site.ps1 @@ -0,0 +1,175 @@ +param( + [string]$SiteRoot = (Join-Path $PSScriptRoot '..\site') +) + +$ErrorActionPreference = 'Stop' +Set-StrictMode -Version Latest + +$SiteRoot = (Resolve-Path $SiteRoot).Path + +$requiredPages = @( + '', + 'features', + 'download', + 'docs', + 'how-it-works', + 'faq', + 'releases', + 'privacy', + 'legal', + 'security', + 'support' +) + +$canonicalRoot = 'https://aiteracja.pl/sightadapt/' +$errors = New-Object System.Collections.Generic.List[string] + +function Add-Error([string]$Message) { + $errors.Add($Message) +} + +function Get-ExpectedCanonical([string]$PageName) { + if ([string]::IsNullOrWhiteSpace($PageName)) { + return $canonicalRoot + } + + return "$canonicalRoot$PageName/" +} + +function Resolve-LocalReference( + [System.IO.FileInfo]$HtmlFile, + [string]$Reference +) { + $clean = ($Reference -split '[?#]', 2)[0] + if ([string]::IsNullOrWhiteSpace($clean)) { + return $null + } + + if ($clean -match '^(?:https?:|mailto:|tel:|data:)') { + return $null + } + + if ($clean.StartsWith('/')) { + Add-Error "$($HtmlFile.FullName): root-relative URL '$Reference' breaks the dual /SightAdapt/ and /sightadapt/ hosting model." + return $null + } + + $candidate = [System.IO.Path]::GetFullPath((Join-Path $HtmlFile.DirectoryName $clean)) + if ($clean.EndsWith('/')) { + $candidate = Join-Path $candidate 'index.html' + } + + return $candidate +} + +foreach ($pageName in $requiredPages) { + $path = if ([string]::IsNullOrWhiteSpace($pageName)) { + Join-Path $SiteRoot 'index.html' + } + else { + Join-Path $SiteRoot "$pageName\index.html" + } + + if (-not (Test-Path $path -PathType Leaf)) { + Add-Error "Missing required page: $path" + continue + } + + $file = Get-Item $path + $html = Get-Content $path -Raw + + $titleMatches = [regex]::Matches($html, '[^<]+', 'IgnoreCase') + if ($titleMatches.Count -ne 1) { + Add-Error "$path: expected exactly one non-empty ; found $($titleMatches.Count)." + } + + $h1Matches = [regex]::Matches($html, '<h1(?:\s[^>]*)?>.*?</h1>', 'IgnoreCase,Singleline') + if ($h1Matches.Count -ne 1) { + Add-Error "$path: expected exactly one <h1>; found $($h1Matches.Count)." + } + + if ($html -notmatch '<html\s+lang="en"') { + Add-Error "$path: missing html lang=\"en\"." + } + + if ($html -notmatch '<meta\s+name="viewport"') { + Add-Error "$path: missing viewport metadata." + } + + if ($html -notmatch '<meta\s+name="description"\s+content="[^"]+"') { + Add-Error "$path: missing non-empty meta description." + } + + $expectedCanonical = [regex]::Escape((Get-ExpectedCanonical $pageName)) + if ($html -notmatch "<link\s+rel=\"canonical\"\s+href=\"$expectedCanonical\"") { + Add-Error "$path: canonical URL is missing or inconsistent." + } + + if ($html -notmatch 'class="skip-link"\s+href="#main"') { + Add-Error "$path: missing visible-on-focus skip navigation." + } + + if ($html -notmatch '<main\s+id="main"') { + Add-Error "$path: missing main landmark with id=\"main\"." + } + + if ($html -notmatch [regex]::Escape('SightAdapt™ is an unregistered product mark used by KeyffMS / aiteracja.pl.')) { + Add-Error "$path: missing required SightAdapt trademark footer notice." + } + + if ($html -notmatch [regex]::Escape('SightAdapt is free and open-source software distributed under the MIT License.')) { + Add-Error "$path: missing required open-source/license footer statement." + } + + if ($html -match '<(?:script|iframe)\b[^>]*(?:src)=["'']https?://') { + Add-Error "$path: remote active content is not permitted." + } + + foreach ($imageMatch in [regex]::Matches($html, '<img\b[^>]*>', 'IgnoreCase')) { + if ($imageMatch.Value -notmatch '\balt="[^"]*"') { + Add-Error "$path: image is missing an alt attribute: $($imageMatch.Value)" + } + } + + $references = New-Object System.Collections.Generic.List[string] + foreach ($match in [regex]::Matches($html, '\b(?:href|src)="([^"]+)"', 'IgnoreCase')) { + $references.Add($match.Groups[1].Value) + } + + foreach ($reference in $references) { + $resolved = Resolve-LocalReference -HtmlFile $file -Reference $reference + if ($null -ne $resolved -and -not (Test-Path $resolved)) { + Add-Error "$path: local reference '$reference' resolves to missing '$resolved'." + } + } +} + +$home = Get-Content (Join-Path $SiteRoot 'index.html') -Raw +foreach ($claim in @( + 'No code injection', + 'No driver installation', + 'No screen-content telemetry', + "Runs with the current user's privileges" +)) { + if ($home -notmatch [regex]::Escape($claim)) { + Add-Error "Home page is missing trust statement '$claim'." + } +} + +$download = Get-Content (Join-Path $SiteRoot 'download\index.html') -Raw +foreach ($requiredReleaseValue in @( + '0.5.0.50-alpha', + 'c6dc5ba5c0356c84b32a74d298015d63158c57886b835e411da0b60f306fd711', + 'SightAdapt-0.5.0.50-alpha-win-x64.zip' +)) { + if ($download -notmatch [regex]::Escape($requiredReleaseValue)) { + Add-Error "Download page is missing release authority value '$requiredReleaseValue'." + } +} + +if ($errors.Count -gt 0) { + $errors | ForEach-Object { Write-Error $_ } + throw "SightAdapt site validation failed with $($errors.Count) error(s)." +} + +Write-Host "SightAdapt site validation passed for $($requiredPages.Count) pages." From 005c0be2899e5fb68bd4150dabc050d0c557140a Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:35:31 +0200 Subject: [PATCH 19/46] Fix static site validator syntax and diagnostics Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- tools/test-site.ps1 | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/tools/test-site.ps1 b/tools/test-site.ps1 index 36d53469..69a13198 100644 --- a/tools/test-site.ps1 +++ b/tools/test-site.ps1 @@ -80,54 +80,55 @@ foreach ($pageName in $requiredPages) { $titleMatches = [regex]::Matches($html, '<title>[^<]+', 'IgnoreCase') if ($titleMatches.Count -ne 1) { - Add-Error "$path: expected exactly one non-empty ; found $($titleMatches.Count)." + Add-Error ($path + ": expected exactly one non-empty <title>; found $($titleMatches.Count).") } $h1Matches = [regex]::Matches($html, '<h1(?:\s[^>]*)?>.*?</h1>', 'IgnoreCase,Singleline') if ($h1Matches.Count -ne 1) { - Add-Error "$path: expected exactly one <h1>; found $($h1Matches.Count)." + Add-Error ($path + ": expected exactly one <h1>; found $($h1Matches.Count).") } if ($html -notmatch '<html\s+lang="en"') { - Add-Error "$path: missing html lang=\"en\"." + Add-Error ($path + ': missing html lang=en.') } if ($html -notmatch '<meta\s+name="viewport"') { - Add-Error "$path: missing viewport metadata." + Add-Error ($path + ': missing viewport metadata.') } if ($html -notmatch '<meta\s+name="description"\s+content="[^"]+"') { - Add-Error "$path: missing non-empty meta description." + Add-Error ($path + ': missing non-empty meta description.') } $expectedCanonical = [regex]::Escape((Get-ExpectedCanonical $pageName)) - if ($html -notmatch "<link\s+rel=\"canonical\"\s+href=\"$expectedCanonical\"") { - Add-Error "$path: canonical URL is missing or inconsistent." + $canonicalPattern = '<link\s+rel="canonical"\s+href="' + $expectedCanonical + '"' + if ($html -notmatch $canonicalPattern) { + Add-Error ($path + ': canonical URL is missing or inconsistent.') } if ($html -notmatch 'class="skip-link"\s+href="#main"') { - Add-Error "$path: missing visible-on-focus skip navigation." + Add-Error ($path + ': missing visible-on-focus skip navigation.') } if ($html -notmatch '<main\s+id="main"') { - Add-Error "$path: missing main landmark with id=\"main\"." + Add-Error ($path + ': missing main landmark with id=main.') } if ($html -notmatch [regex]::Escape('SightAdapt™ is an unregistered product mark used by KeyffMS / aiteracja.pl.')) { - Add-Error "$path: missing required SightAdapt trademark footer notice." + Add-Error ($path + ': missing required SightAdapt trademark footer notice.') } if ($html -notmatch [regex]::Escape('SightAdapt is free and open-source software distributed under the MIT License.')) { - Add-Error "$path: missing required open-source/license footer statement." + Add-Error ($path + ': missing required open-source/license footer statement.') } if ($html -match '<(?:script|iframe)\b[^>]*(?:src)=["'']https?://') { - Add-Error "$path: remote active content is not permitted." + Add-Error ($path + ': remote active content is not permitted.') } foreach ($imageMatch in [regex]::Matches($html, '<img\b[^>]*>', 'IgnoreCase')) { if ($imageMatch.Value -notmatch '\balt="[^"]*"') { - Add-Error "$path: image is missing an alt attribute: $($imageMatch.Value)" + Add-Error ($path + ": image is missing an alt attribute: $($imageMatch.Value)") } } @@ -139,7 +140,7 @@ foreach ($pageName in $requiredPages) { foreach ($reference in $references) { $resolved = Resolve-LocalReference -HtmlFile $file -Reference $reference if ($null -ne $resolved -and -not (Test-Path $resolved)) { - Add-Error "$path: local reference '$reference' resolves to missing '$resolved'." + Add-Error ($path + ": local reference '$reference' resolves to missing '$resolved'.") } } } @@ -168,7 +169,10 @@ foreach ($requiredReleaseValue in @( } if ($errors.Count -gt 0) { - $errors | ForEach-Object { Write-Error $_ } + foreach ($siteError in $errors) { + Write-Host "::error::$siteError" + } + throw "SightAdapt site validation failed with $($errors.Count) error(s)." } From 749a3ee440d2954e5252ea38c855a907af15a5bc Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:35:33 +0200 Subject: [PATCH 20/46] Add validated GitHub Pages deployment workflow Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- .github/workflows/pages.yml | 53 +++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .github/workflows/pages.yml diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 00000000..9b6dd099 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,53 @@ +name: Deploy SightAdapt Pages + +on: + workflow_dispatch: + workflow_run: + workflows: ["Build and test SightAdapt"] + types: [completed] + +concurrency: + group: sightadapt-pages + cancel-in-progress: false + +permissions: + contents: read + pages: write + id-token: write + +jobs: + package: + if: >- + github.event_name == 'workflow_dispatch' || + (github.event.workflow_run.conclusion == 'success' && + github.event.workflow_run.event == 'push' && + github.event.workflow_run.head_branch == 'main') + runs-on: ubuntu-latest + steps: + - name: Check out exact validated source + uses: actions/checkout@v4 + with: + ref: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.head_sha || github.sha }} + + - name: Validate static site + shell: pwsh + run: ./tools/test-site.ps1 + + - name: Configure GitHub Pages + uses: actions/configure-pages@v5 + + - name: Upload static site + uses: actions/upload-pages-artifact@v3 + with: + path: ./site + + deploy: + needs: package + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy exact validated site + id: deployment + uses: actions/deploy-pages@v4 From 27939b6fdb2cf6d2bccbef5bb369a917ab2f85e5 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:35:54 +0200 Subject: [PATCH 21/46] Run static site validation in main CI Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- .github/workflows/build.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bcec3896..11cdc1e0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -45,6 +45,10 @@ jobs: shell: pwsh run: .\tools\test-public-materials-negative.ps1 + - name: Verify static product site + shell: pwsh + run: .\tools\test-site.ps1 + - name: Restore application run: dotnet restore src/SightAdapt/SightAdapt.csproj From cb866945c28f254de6a5cf934d6120d66f81152a Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:38:07 +0200 Subject: [PATCH 22/46] Make Download alpha prominent in site navigation Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/index.html b/site/index.html index 06bef644..839b2df5 100644 --- a/site/index.html +++ b/site/index.html @@ -16,7 +16,7 @@ <a class="brand" href="" aria-label="SightAdapt home"><img src="assets/sightadapt-lockup-dark.svg" alt="SightAdapt home" width="820" height="200"></a> <nav class="desktop-nav" aria-label="Primary"> <a href="features/">Features</a> - <a href="download/">Download</a> + <a class="button" href="download/">Download alpha</a> <a href="docs/">Documentation</a> <a href="faq/">FAQ</a> <a href="releases/">Releases</a> @@ -28,7 +28,7 @@ <summary>Menu</summary> <nav class="mobile-nav" aria-label="Mobile"> <a href="features/">Features</a> - <a href="download/">Download</a> + <a class="button" href="download/">Download alpha</a> <a href="docs/">Documentation</a> <a href="faq/">FAQ</a> <a href="releases/">Releases</a> @@ -159,7 +159,7 @@ <h2>Built in public.</h2> <h2>Product</h2> <ul class="footer-links"> <li><a href="features/">Features</a></li> - <li><a href="download/">Download</a></li> + <li><a class="button" href="download/">Download alpha</a></li> <li><a href="docs/">Documentation</a></li> <li><a href="releases/">Releases</a></li> </ul> From 776ccc048d15c9815d1decc46b90c479f1519138 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:38:10 +0200 Subject: [PATCH 23/46] Make Download alpha prominent in site navigation Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/features/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/features/index.html b/site/features/index.html index 2352226a..0f93d3d8 100644 --- a/site/features/index.html +++ b/site/features/index.html @@ -16,7 +16,7 @@ <a class="brand" href="../" aria-label="SightAdapt home"><img src="../assets/sightadapt-lockup-dark.svg" alt="SightAdapt home" width="820" height="200"></a> <nav class="desktop-nav" aria-label="Primary"> <a href="../features/" aria-current="page">Features</a> - <a href="../download/">Download</a> + <a class="button" href="../download/">Download alpha</a> <a href="../docs/">Documentation</a> <a href="../faq/">FAQ</a> <a href="../releases/">Releases</a> @@ -28,7 +28,7 @@ <summary>Menu</summary> <nav class="mobile-nav" aria-label="Mobile"> <a href="../features/" aria-current="page">Features</a> - <a href="../download/">Download</a> + <a class="button" href="../download/">Download alpha</a> <a href="../docs/">Documentation</a> <a href="../faq/">FAQ</a> <a href="../releases/">Releases</a> @@ -77,7 +77,7 @@ <h2>Product</h2> <ul class="footer-links"> <li><a href="../features/">Features</a></li> - <li><a href="../download/">Download</a></li> + <li><a class="button" href="../download/">Download alpha</a></li> <li><a href="../docs/">Documentation</a></li> <li><a href="../releases/">Releases</a></li> </ul> From a4a3fe647fa0fa691ed74facd687f1c5d9b76749 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:38:13 +0200 Subject: [PATCH 24/46] Make Download alpha prominent in site navigation Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/download/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/download/index.html b/site/download/index.html index d0dcd3ee..810ab99b 100644 --- a/site/download/index.html +++ b/site/download/index.html @@ -16,7 +16,7 @@ <a class="brand" href="../" aria-label="SightAdapt home"><img src="../assets/sightadapt-lockup-dark.svg" alt="SightAdapt home" width="820" height="200"></a> <nav class="desktop-nav" aria-label="Primary"> <a href="../features/">Features</a> - <a href="../download/" aria-current="page">Download</a> + <a class="button" href="../download/" aria-current="page">Download alpha</a> <a href="../docs/">Documentation</a> <a href="../faq/">FAQ</a> <a href="../releases/">Releases</a> @@ -28,7 +28,7 @@ <summary>Menu</summary> <nav class="mobile-nav" aria-label="Mobile"> <a href="../features/">Features</a> - <a href="../download/" aria-current="page">Download</a> + <a class="button" href="../download/" aria-current="page">Download alpha</a> <a href="../docs/">Documentation</a> <a href="../faq/">FAQ</a> <a href="../releases/">Releases</a> @@ -84,7 +84,7 @@ <h2>SightAdapt™ 0.5.0.50-alpha</h2> <img src="../assets/sightadapt-lockup-light.svg" alt="SightAdapt" width="820" height="200"> <p>A SightAdapt project by <a href="https://github.com/KeyffMS">KeyffMS</a> / <a href="https://aiteracja.pl/">aiteracja.pl</a>.</p> </div> - <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a href="../download/">Download</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> + <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a class="button" href="../download/">Download alpha</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> <div><h2>Project</h2><ul class="footer-links"><li><a href="https://github.com/KeyffMS/SightAdapt">GitHub</a></li><li><a href="https://github.com/KeyffMS/SightAdapt/issues">Issue tracker</a></li><li><a href="../security/">Security</a></li><li><a href="../legal/">License</a></li></ul></div> <div><h2>Policies</h2><ul class="footer-links"><li><a href="../privacy/">Privacy</a></li><li><a href="../legal/#third-party">Third-party notices</a></li><li><a href="../legal/#trademarks">Trademark notice</a></li><li><a href="../support/">Support</a></li></ul></div> </div> From c4c8ebc3e0f4c0013703606f80a502576643f6e3 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:38:16 +0200 Subject: [PATCH 25/46] Make Download alpha prominent in site navigation Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/docs/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/docs/index.html b/site/docs/index.html index 11e87bdc..f2accae0 100644 --- a/site/docs/index.html +++ b/site/docs/index.html @@ -16,7 +16,7 @@ <a class="brand" href="../" aria-label="SightAdapt home"><img src="../assets/sightadapt-lockup-dark.svg" alt="SightAdapt home" width="820" height="200"></a> <nav class="desktop-nav" aria-label="Primary"> <a href="../features/">Features</a> - <a href="../download/">Download</a> + <a class="button" href="../download/">Download alpha</a> <a href="../docs/" aria-current="page">Documentation</a> <a href="../faq/">FAQ</a> <a href="../releases/">Releases</a> @@ -28,7 +28,7 @@ <summary>Menu</summary> <nav class="mobile-nav" aria-label="Mobile"> <a href="../features/">Features</a> - <a href="../download/">Download</a> + <a class="button" href="../download/">Download alpha</a> <a href="../docs/" aria-current="page">Documentation</a> <a href="../faq/">FAQ</a> <a href="../releases/">Releases</a> @@ -69,7 +69,7 @@ <img src="../assets/sightadapt-lockup-light.svg" alt="SightAdapt" width="820" height="200"> <p>A SightAdapt project by <a href="https://github.com/KeyffMS">KeyffMS</a> / <a href="https://aiteracja.pl/">aiteracja.pl</a>.</p> </div> - <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a href="../download/">Download</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> + <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a class="button" href="../download/">Download alpha</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> <div><h2>Project</h2><ul class="footer-links"><li><a href="https://github.com/KeyffMS/SightAdapt">GitHub</a></li><li><a href="https://github.com/KeyffMS/SightAdapt/issues">Issue tracker</a></li><li><a href="../security/">Security</a></li><li><a href="../legal/">License</a></li></ul></div> <div><h2>Policies</h2><ul class="footer-links"><li><a href="../privacy/">Privacy</a></li><li><a href="../legal/#third-party">Third-party notices</a></li><li><a href="../legal/#trademarks">Trademark notice</a></li><li><a href="../support/">Support</a></li></ul></div> </div> From 446712f5fa4319db03f1c70d9a857c77199405a2 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:38:19 +0200 Subject: [PATCH 26/46] Make Download alpha prominent in site navigation Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/how-it-works/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/how-it-works/index.html b/site/how-it-works/index.html index 5bcef06c..d11e5511 100644 --- a/site/how-it-works/index.html +++ b/site/how-it-works/index.html @@ -16,7 +16,7 @@ <a class="brand" href="../" aria-label="SightAdapt home"><img src="../assets/sightadapt-lockup-dark.svg" alt="SightAdapt home" width="820" height="200"></a> <nav class="desktop-nav" aria-label="Primary"> <a href="../features/">Features</a> - <a href="../download/">Download</a> + <a class="button" href="../download/">Download alpha</a> <a href="../docs/">Documentation</a> <a href="../faq/">FAQ</a> <a href="../releases/">Releases</a> @@ -28,7 +28,7 @@ <summary>Menu</summary> <nav class="mobile-nav" aria-label="Mobile"> <a href="../features/">Features</a> - <a href="../download/">Download</a> + <a class="button" href="../download/">Download alpha</a> <a href="../docs/">Documentation</a> <a href="../faq/">FAQ</a> <a href="../releases/">Releases</a> @@ -80,7 +80,7 @@ <h2>Product</h2> <ul class="footer-links"> <li><a href="../features/">Features</a></li> - <li><a href="../download/">Download</a></li> + <li><a class="button" href="../download/">Download alpha</a></li> <li><a href="../docs/">Documentation</a></li> <li><a href="../releases/">Releases</a></li> </ul> From c013baf591ae86cf61b02b5bb82d8082cf31b6fd Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:38:22 +0200 Subject: [PATCH 27/46] Make Download alpha prominent in site navigation Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/faq/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/faq/index.html b/site/faq/index.html index 3e3c9bec..c7379bfd 100644 --- a/site/faq/index.html +++ b/site/faq/index.html @@ -16,7 +16,7 @@ <a class="brand" href="../" aria-label="SightAdapt home"><img src="../assets/sightadapt-lockup-dark.svg" alt="SightAdapt home" width="820" height="200"></a> <nav class="desktop-nav" aria-label="Primary"> <a href="../features/">Features</a> - <a href="../download/">Download</a> + <a class="button" href="../download/">Download alpha</a> <a href="../docs/">Documentation</a> <a href="../faq/" aria-current="page">FAQ</a> <a href="../releases/">Releases</a> @@ -28,7 +28,7 @@ <summary>Menu</summary> <nav class="mobile-nav" aria-label="Mobile"> <a href="../features/">Features</a> - <a href="../download/">Download</a> + <a class="button" href="../download/">Download alpha</a> <a href="../docs/">Documentation</a> <a href="../faq/" aria-current="page">FAQ</a> <a href="../releases/">Releases</a> @@ -70,7 +70,7 @@ <h2>Product</h2> <ul class="footer-links"> <li><a href="../features/">Features</a></li> - <li><a href="../download/">Download</a></li> + <li><a class="button" href="../download/">Download alpha</a></li> <li><a href="../docs/">Documentation</a></li> <li><a href="../releases/">Releases</a></li> </ul> From 4a6f0ac239c4c4caecf30dd64632d07e627a4bf4 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:38:25 +0200 Subject: [PATCH 28/46] Make Download alpha prominent in site navigation Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/releases/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/releases/index.html b/site/releases/index.html index 1e1707a6..e30b85ec 100644 --- a/site/releases/index.html +++ b/site/releases/index.html @@ -16,7 +16,7 @@ <a class="brand" href="../" aria-label="SightAdapt home"><img src="../assets/sightadapt-lockup-dark.svg" alt="SightAdapt home" width="820" height="200"></a> <nav class="desktop-nav" aria-label="Primary"> <a href="../features/">Features</a> - <a href="../download/">Download</a> + <a class="button" href="../download/">Download alpha</a> <a href="../docs/">Documentation</a> <a href="../faq/">FAQ</a> <a href="../releases/" aria-current="page">Releases</a> @@ -28,7 +28,7 @@ <summary>Menu</summary> <nav class="mobile-nav" aria-label="Mobile"> <a href="../features/">Features</a> - <a href="../download/">Download</a> + <a class="button" href="../download/">Download alpha</a> <a href="../docs/">Documentation</a> <a href="../faq/">FAQ</a> <a href="../releases/" aria-current="page">Releases</a> @@ -59,7 +59,7 @@ <img src="../assets/sightadapt-lockup-light.svg" alt="SightAdapt" width="820" height="200"> <p>A SightAdapt project by <a href="https://github.com/KeyffMS">KeyffMS</a> / <a href="https://aiteracja.pl/">aiteracja.pl</a>.</p> </div> - <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a href="../download/">Download</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> + <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a class="button" href="../download/">Download alpha</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> <div><h2>Project</h2><ul class="footer-links"><li><a href="https://github.com/KeyffMS/SightAdapt">GitHub</a></li><li><a href="https://github.com/KeyffMS/SightAdapt/issues">Issue tracker</a></li><li><a href="../security/">Security</a></li><li><a href="../legal/">License</a></li></ul></div> <div><h2>Policies</h2><ul class="footer-links"><li><a href="../privacy/">Privacy</a></li><li><a href="../legal/#third-party">Third-party notices</a></li><li><a href="../legal/#trademarks">Trademark notice</a></li><li><a href="../support/">Support</a></li></ul></div> </div> From 7208e86ee62fe7d4c433b4605c49c8a830049ad7 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:38:27 +0200 Subject: [PATCH 29/46] Make Download alpha prominent in site navigation Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/privacy/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/privacy/index.html b/site/privacy/index.html index d0296108..69f3ce8b 100644 --- a/site/privacy/index.html +++ b/site/privacy/index.html @@ -16,7 +16,7 @@ <a class="brand" href="../" aria-label="SightAdapt home"><img src="../assets/sightadapt-lockup-dark.svg" alt="SightAdapt home" width="820" height="200"></a> <nav class="desktop-nav" aria-label="Primary"> <a href="../features/">Features</a> - <a href="../download/">Download</a> + <a class="button" href="../download/">Download alpha</a> <a href="../docs/">Documentation</a> <a href="../faq/">FAQ</a> <a href="../releases/">Releases</a> @@ -28,7 +28,7 @@ <summary>Menu</summary> <nav class="mobile-nav" aria-label="Mobile"> <a href="../features/">Features</a> - <a href="../download/">Download</a> + <a class="button" href="../download/">Download alpha</a> <a href="../docs/">Documentation</a> <a href="../faq/">FAQ</a> <a href="../releases/">Releases</a> @@ -62,7 +62,7 @@ <img src="../assets/sightadapt-lockup-light.svg" alt="SightAdapt" width="820" height="200"> <p>A SightAdapt project by <a href="https://github.com/KeyffMS">KeyffMS</a> / <a href="https://aiteracja.pl/">aiteracja.pl</a>.</p> </div> - <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a href="../download/">Download</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> + <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a class="button" href="../download/">Download alpha</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> <div><h2>Project</h2><ul class="footer-links"><li><a href="https://github.com/KeyffMS/SightAdapt">GitHub</a></li><li><a href="https://github.com/KeyffMS/SightAdapt/issues">Issue tracker</a></li><li><a href="../security/">Security</a></li><li><a href="../legal/">License</a></li></ul></div> <div><h2>Policies</h2><ul class="footer-links"><li><a href="../privacy/">Privacy</a></li><li><a href="../legal/#third-party">Third-party notices</a></li><li><a href="../legal/#trademarks">Trademark notice</a></li><li><a href="../support/">Support</a></li></ul></div> </div> From de1022b93c6835c78b5979b550891421bddcf2fb Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:38:30 +0200 Subject: [PATCH 30/46] Make Download alpha prominent in site navigation Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/legal/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/legal/index.html b/site/legal/index.html index 58490a67..5c7eb82a 100644 --- a/site/legal/index.html +++ b/site/legal/index.html @@ -16,7 +16,7 @@ <a class="brand" href="../" aria-label="SightAdapt home"><img src="../assets/sightadapt-lockup-dark.svg" alt="SightAdapt home" width="820" height="200"></a> <nav class="desktop-nav" aria-label="Primary"> <a href="../features/">Features</a> - <a href="../download/">Download</a> + <a class="button" href="../download/">Download alpha</a> <a href="../docs/">Documentation</a> <a href="../faq/">FAQ</a> <a href="../releases/">Releases</a> @@ -28,7 +28,7 @@ <summary>Menu</summary> <nav class="mobile-nav" aria-label="Mobile"> <a href="../features/">Features</a> - <a href="../download/">Download</a> + <a class="button" href="../download/">Download alpha</a> <a href="../docs/">Documentation</a> <a href="../faq/">FAQ</a> <a href="../releases/">Releases</a> @@ -86,7 +86,7 @@ <h2>Names and trademarks</h2> <img src="../assets/sightadapt-lockup-light.svg" alt="SightAdapt" width="820" height="200"> <p>A SightAdapt project by <a href="https://github.com/KeyffMS">KeyffMS</a> / <a href="https://aiteracja.pl/">aiteracja.pl</a>.</p> </div> - <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a href="../download/">Download</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> + <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a class="button" href="../download/">Download alpha</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> <div><h2>Project</h2><ul class="footer-links"><li><a href="https://github.com/KeyffMS/SightAdapt">GitHub</a></li><li><a href="https://github.com/KeyffMS/SightAdapt/issues">Issue tracker</a></li><li><a href="../security/">Security</a></li><li><a href="../legal/">License</a></li></ul></div> <div><h2>Policies</h2><ul class="footer-links"><li><a href="../privacy/">Privacy</a></li><li><a href="../legal/#third-party">Third-party notices</a></li><li><a href="../legal/#trademarks">Trademark notice</a></li><li><a href="../support/">Support</a></li></ul></div> </div> From 2b0cb5de3d84ab7ede9cf8b56907feb11e0c64de Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:38:32 +0200 Subject: [PATCH 31/46] Make Download alpha prominent in site navigation Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/security/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/security/index.html b/site/security/index.html index 60133866..a5da0947 100644 --- a/site/security/index.html +++ b/site/security/index.html @@ -16,7 +16,7 @@ <a class="brand" href="../" aria-label="SightAdapt home"><img src="../assets/sightadapt-lockup-dark.svg" alt="SightAdapt home" width="820" height="200"></a> <nav class="desktop-nav" aria-label="Primary"> <a href="../features/">Features</a> - <a href="../download/">Download</a> + <a class="button" href="../download/">Download alpha</a> <a href="../docs/">Documentation</a> <a href="../faq/">FAQ</a> <a href="../releases/">Releases</a> @@ -28,7 +28,7 @@ <summary>Menu</summary> <nav class="mobile-nav" aria-label="Mobile"> <a href="../features/">Features</a> - <a href="../download/">Download</a> + <a class="button" href="../download/">Download alpha</a> <a href="../docs/">Documentation</a> <a href="../faq/">FAQ</a> <a href="../releases/">Releases</a> @@ -60,7 +60,7 @@ <img src="../assets/sightadapt-lockup-light.svg" alt="SightAdapt" width="820" height="200"> <p>A SightAdapt project by <a href="https://github.com/KeyffMS">KeyffMS</a> / <a href="https://aiteracja.pl/">aiteracja.pl</a>.</p> </div> - <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a href="../download/">Download</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> + <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a class="button" href="../download/">Download alpha</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> <div><h2>Project</h2><ul class="footer-links"><li><a href="https://github.com/KeyffMS/SightAdapt">GitHub</a></li><li><a href="https://github.com/KeyffMS/SightAdapt/issues">Issue tracker</a></li><li><a href="../security/">Security</a></li><li><a href="../legal/">License</a></li></ul></div> <div><h2>Policies</h2><ul class="footer-links"><li><a href="../privacy/">Privacy</a></li><li><a href="../legal/#third-party">Third-party notices</a></li><li><a href="../legal/#trademarks">Trademark notice</a></li><li><a href="../support/">Support</a></li></ul></div> </div> From 80abacb4d7268307a133e4b47d56e74efcd6decb Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:39:09 +0200 Subject: [PATCH 32/46] Keep footer navigation compact Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/index.html b/site/index.html index 839b2df5..42fc3d00 100644 --- a/site/index.html +++ b/site/index.html @@ -159,7 +159,7 @@ <h2>Built in public.</h2> <h2>Product</h2> <ul class="footer-links"> <li><a href="features/">Features</a></li> - <li><a class="button" href="download/">Download alpha</a></li> + <li><a href="download/">Download</a></li> <li><a href="docs/">Documentation</a></li> <li><a href="releases/">Releases</a></li> </ul> From 544254025506fe039bbca9513112612315492e7a Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:39:12 +0200 Subject: [PATCH 33/46] Keep footer navigation compact Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/features/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/features/index.html b/site/features/index.html index 0f93d3d8..5ffa3779 100644 --- a/site/features/index.html +++ b/site/features/index.html @@ -77,7 +77,7 @@ <h2>Product</h2> <ul class="footer-links"> <li><a href="../features/">Features</a></li> - <li><a class="button" href="../download/">Download alpha</a></li> + <li><a href="../download/">Download</a></li> <li><a href="../docs/">Documentation</a></li> <li><a href="../releases/">Releases</a></li> </ul> From 288b1a89519a1b04797d8050a08bd7fe8141ddb2 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:39:15 +0200 Subject: [PATCH 34/46] Keep footer navigation compact Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/download/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/download/index.html b/site/download/index.html index 810ab99b..1c20c3d6 100644 --- a/site/download/index.html +++ b/site/download/index.html @@ -84,7 +84,7 @@ <h2>SightAdapt™ 0.5.0.50-alpha</h2> <img src="../assets/sightadapt-lockup-light.svg" alt="SightAdapt" width="820" height="200"> <p>A SightAdapt project by <a href="https://github.com/KeyffMS">KeyffMS</a> / <a href="https://aiteracja.pl/">aiteracja.pl</a>.</p> </div> - <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a class="button" href="../download/">Download alpha</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> + <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a href="../download/">Download</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> <div><h2>Project</h2><ul class="footer-links"><li><a href="https://github.com/KeyffMS/SightAdapt">GitHub</a></li><li><a href="https://github.com/KeyffMS/SightAdapt/issues">Issue tracker</a></li><li><a href="../security/">Security</a></li><li><a href="../legal/">License</a></li></ul></div> <div><h2>Policies</h2><ul class="footer-links"><li><a href="../privacy/">Privacy</a></li><li><a href="../legal/#third-party">Third-party notices</a></li><li><a href="../legal/#trademarks">Trademark notice</a></li><li><a href="../support/">Support</a></li></ul></div> </div> From 797a13996c8997c64d7b5e63f063232464e0f55a Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:39:19 +0200 Subject: [PATCH 35/46] Keep footer navigation compact Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/docs/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/index.html b/site/docs/index.html index f2accae0..2ee971a6 100644 --- a/site/docs/index.html +++ b/site/docs/index.html @@ -69,7 +69,7 @@ <img src="../assets/sightadapt-lockup-light.svg" alt="SightAdapt" width="820" height="200"> <p>A SightAdapt project by <a href="https://github.com/KeyffMS">KeyffMS</a> / <a href="https://aiteracja.pl/">aiteracja.pl</a>.</p> </div> - <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a class="button" href="../download/">Download alpha</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> + <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a href="../download/">Download</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> <div><h2>Project</h2><ul class="footer-links"><li><a href="https://github.com/KeyffMS/SightAdapt">GitHub</a></li><li><a href="https://github.com/KeyffMS/SightAdapt/issues">Issue tracker</a></li><li><a href="../security/">Security</a></li><li><a href="../legal/">License</a></li></ul></div> <div><h2>Policies</h2><ul class="footer-links"><li><a href="../privacy/">Privacy</a></li><li><a href="../legal/#third-party">Third-party notices</a></li><li><a href="../legal/#trademarks">Trademark notice</a></li><li><a href="../support/">Support</a></li></ul></div> </div> From f79def8cf800dcb857567b6025f768ccd8f8b624 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:39:21 +0200 Subject: [PATCH 36/46] Keep footer navigation compact Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/how-it-works/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/how-it-works/index.html b/site/how-it-works/index.html index d11e5511..8077aac7 100644 --- a/site/how-it-works/index.html +++ b/site/how-it-works/index.html @@ -80,7 +80,7 @@ <h2>Product</h2> <ul class="footer-links"> <li><a href="../features/">Features</a></li> - <li><a class="button" href="../download/">Download alpha</a></li> + <li><a href="../download/">Download</a></li> <li><a href="../docs/">Documentation</a></li> <li><a href="../releases/">Releases</a></li> </ul> From 3e1da0fa4ef0f391054679ae3974b935904eb497 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:39:24 +0200 Subject: [PATCH 37/46] Keep footer navigation compact Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/faq/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/faq/index.html b/site/faq/index.html index c7379bfd..2c8db92a 100644 --- a/site/faq/index.html +++ b/site/faq/index.html @@ -70,7 +70,7 @@ <h2>Product</h2> <ul class="footer-links"> <li><a href="../features/">Features</a></li> - <li><a class="button" href="../download/">Download alpha</a></li> + <li><a href="../download/">Download</a></li> <li><a href="../docs/">Documentation</a></li> <li><a href="../releases/">Releases</a></li> </ul> From 786630f391350da98dcede14ad0b03781cdd9c3b Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:39:46 +0200 Subject: [PATCH 38/46] Align prominent download navigation Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/releases/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/releases/index.html b/site/releases/index.html index e30b85ec..1b15bf18 100644 --- a/site/releases/index.html +++ b/site/releases/index.html @@ -59,7 +59,7 @@ <img src="../assets/sightadapt-lockup-light.svg" alt="SightAdapt" width="820" height="200"> <p>A SightAdapt project by <a href="https://github.com/KeyffMS">KeyffMS</a> / <a href="https://aiteracja.pl/">aiteracja.pl</a>.</p> </div> - <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a class="button" href="../download/">Download alpha</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> + <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a href="../download/">Download</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> <div><h2>Project</h2><ul class="footer-links"><li><a href="https://github.com/KeyffMS/SightAdapt">GitHub</a></li><li><a href="https://github.com/KeyffMS/SightAdapt/issues">Issue tracker</a></li><li><a href="../security/">Security</a></li><li><a href="../legal/">License</a></li></ul></div> <div><h2>Policies</h2><ul class="footer-links"><li><a href="../privacy/">Privacy</a></li><li><a href="../legal/#third-party">Third-party notices</a></li><li><a href="../legal/#trademarks">Trademark notice</a></li><li><a href="../support/">Support</a></li></ul></div> </div> From 1980cc863c53fb15f05d71174736a45a003165b3 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:39:49 +0200 Subject: [PATCH 39/46] Align prominent download navigation Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/privacy/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/privacy/index.html b/site/privacy/index.html index 69f3ce8b..63b0cb21 100644 --- a/site/privacy/index.html +++ b/site/privacy/index.html @@ -62,7 +62,7 @@ <img src="../assets/sightadapt-lockup-light.svg" alt="SightAdapt" width="820" height="200"> <p>A SightAdapt project by <a href="https://github.com/KeyffMS">KeyffMS</a> / <a href="https://aiteracja.pl/">aiteracja.pl</a>.</p> </div> - <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a class="button" href="../download/">Download alpha</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> + <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a href="../download/">Download</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> <div><h2>Project</h2><ul class="footer-links"><li><a href="https://github.com/KeyffMS/SightAdapt">GitHub</a></li><li><a href="https://github.com/KeyffMS/SightAdapt/issues">Issue tracker</a></li><li><a href="../security/">Security</a></li><li><a href="../legal/">License</a></li></ul></div> <div><h2>Policies</h2><ul class="footer-links"><li><a href="../privacy/">Privacy</a></li><li><a href="../legal/#third-party">Third-party notices</a></li><li><a href="../legal/#trademarks">Trademark notice</a></li><li><a href="../support/">Support</a></li></ul></div> </div> From cef077cd9d84b42346de878ca90fbd465727a06b Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:39:52 +0200 Subject: [PATCH 40/46] Align prominent download navigation Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/legal/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/legal/index.html b/site/legal/index.html index 5c7eb82a..2355c23b 100644 --- a/site/legal/index.html +++ b/site/legal/index.html @@ -86,7 +86,7 @@ <h2>Names and trademarks</h2> <img src="../assets/sightadapt-lockup-light.svg" alt="SightAdapt" width="820" height="200"> <p>A SightAdapt project by <a href="https://github.com/KeyffMS">KeyffMS</a> / <a href="https://aiteracja.pl/">aiteracja.pl</a>.</p> </div> - <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a class="button" href="../download/">Download alpha</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> + <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a href="../download/">Download</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> <div><h2>Project</h2><ul class="footer-links"><li><a href="https://github.com/KeyffMS/SightAdapt">GitHub</a></li><li><a href="https://github.com/KeyffMS/SightAdapt/issues">Issue tracker</a></li><li><a href="../security/">Security</a></li><li><a href="../legal/">License</a></li></ul></div> <div><h2>Policies</h2><ul class="footer-links"><li><a href="../privacy/">Privacy</a></li><li><a href="../legal/#third-party">Third-party notices</a></li><li><a href="../legal/#trademarks">Trademark notice</a></li><li><a href="../support/">Support</a></li></ul></div> </div> From c8b6a9fb1bc4f1e1b49efceac60318ccf1860bca Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:39:54 +0200 Subject: [PATCH 41/46] Align prominent download navigation Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/security/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/security/index.html b/site/security/index.html index a5da0947..60af28a6 100644 --- a/site/security/index.html +++ b/site/security/index.html @@ -60,7 +60,7 @@ <img src="../assets/sightadapt-lockup-light.svg" alt="SightAdapt" width="820" height="200"> <p>A SightAdapt project by <a href="https://github.com/KeyffMS">KeyffMS</a> / <a href="https://aiteracja.pl/">aiteracja.pl</a>.</p> </div> - <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a class="button" href="../download/">Download alpha</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> + <div><h2>Product</h2><ul class="footer-links"><li><a href="../features/">Features</a></li><li><a href="../download/">Download</a></li><li><a href="../docs/">Documentation</a></li><li><a href="../releases/">Releases</a></li></ul></div> <div><h2>Project</h2><ul class="footer-links"><li><a href="https://github.com/KeyffMS/SightAdapt">GitHub</a></li><li><a href="https://github.com/KeyffMS/SightAdapt/issues">Issue tracker</a></li><li><a href="../security/">Security</a></li><li><a href="../legal/">License</a></li></ul></div> <div><h2>Policies</h2><ul class="footer-links"><li><a href="../privacy/">Privacy</a></li><li><a href="../legal/#third-party">Third-party notices</a></li><li><a href="../legal/#trademarks">Trademark notice</a></li><li><a href="../support/">Support</a></li></ul></div> </div> From 228d03d638852cbfd9d33cf83fec65430013c1e2 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:39:57 +0200 Subject: [PATCH 42/46] Align prominent download navigation Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/support/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/support/index.html b/site/support/index.html index 2b7501bc..1aa5a9c8 100644 --- a/site/support/index.html +++ b/site/support/index.html @@ -16,7 +16,7 @@ <a class="brand" href="../" aria-label="SightAdapt home"><img src="../assets/sightadapt-lockup-dark.svg" alt="SightAdapt home" width="820" height="200"></a> <nav class="desktop-nav" aria-label="Primary"> <a href="../features/">Features</a> - <a href="../download/">Download</a> + <a class="button" href="../download/">Download alpha</a> <a href="../docs/">Documentation</a> <a href="../faq/">FAQ</a> <a href="../releases/">Releases</a> @@ -28,7 +28,7 @@ <summary>Menu</summary> <nav class="mobile-nav" aria-label="Mobile"> <a href="../features/">Features</a> - <a href="../download/">Download</a> + <a class="button" href="../download/">Download alpha</a> <a href="../docs/">Documentation</a> <a href="../faq/">FAQ</a> <a href="../releases/">Releases</a> From 14ecb0f0e10a94929699bd3448b163ddd3acd8c6 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:40:13 +0200 Subject: [PATCH 43/46] Keep mobile brand lockup within canonical usage rules Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/assets/site.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/site/assets/site.css b/site/assets/site.css index 2471c778..9b318759 100644 --- a/site/assets/site.css +++ b/site/assets/site.css @@ -429,7 +429,8 @@ th { background: var(--surface); } .grid-2, .trust-grid, .definition-list { grid-template-columns: 1fr; } - .brand img { width: 10rem; } + .brand img { width: 11.5rem; } + .mobile-nav .button { justify-self: start; } } @media (prefers-reduced-motion: reduce) { From ca84c8c41379a596df9563af2e089201600010d8 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:40:16 +0200 Subject: [PATCH 44/46] Document site visual provenance and screenshot boundary Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- site/README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/site/README.md b/site/README.md index 93b562a3..dd3c7771 100644 --- a/site/README.md +++ b/site/README.md @@ -39,6 +39,13 @@ Canonical repository SVG assets are copied into `site/assets/` so the public pag - `/security/` - `/support/` +## Visual provenance + +- Brand SVG files are byte-for-byte copies of the canonical repository assets in `assets/brand/`. +- The architecture diagram on `/how-it-works/` is project-owned HTML/CSS derived from `docs/ARCHITECTURE.md`; it contains no third-party imagery and exposes a full text alternative. +- No third-party product logos, screenshots or private user content are included. +- An authentic product screenshot for the home-page hero remains a content-production follow-up; a fabricated or generated screenshot must not be substituted for it. + ## Local preview From the repository root, run any local static HTTP server. With Python 3: From 53e205c88abf3caebd5421a6495dc8814296c3dd Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:41:44 +0200 Subject: [PATCH 45/46] Avoid reserved PowerShell HOME variable in site test Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- tools/test-site.ps1 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/test-site.ps1 b/tools/test-site.ps1 index 69a13198..e4cea3bb 100644 --- a/tools/test-site.ps1 +++ b/tools/test-site.ps1 @@ -145,25 +145,25 @@ foreach ($pageName in $requiredPages) { } } -$home = Get-Content (Join-Path $SiteRoot 'index.html') -Raw +$homeHtml = Get-Content (Join-Path $SiteRoot 'index.html') -Raw foreach ($claim in @( 'No code injection', 'No driver installation', 'No screen-content telemetry', "Runs with the current user's privileges" )) { - if ($home -notmatch [regex]::Escape($claim)) { + if ($homeHtml -notmatch [regex]::Escape($claim)) { Add-Error "Home page is missing trust statement '$claim'." } } -$download = Get-Content (Join-Path $SiteRoot 'download\index.html') -Raw +$downloadHtml = Get-Content (Join-Path $SiteRoot 'download\index.html') -Raw foreach ($requiredReleaseValue in @( '0.5.0.50-alpha', 'c6dc5ba5c0356c84b32a74d298015d63158c57886b835e411da0b60f306fd711', 'SightAdapt-0.5.0.50-alpha-win-x64.zip' )) { - if ($download -notmatch [regex]::Escape($requiredReleaseValue)) { + if ($downloadHtml -notmatch [regex]::Escape($requiredReleaseValue)) { Add-Error "Download page is missing release authority value '$requiredReleaseValue'." } } From 91f2c8dddb2513edfe31e99d68a0971f1076cb73 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:42:46 +0200 Subject: [PATCH 46/46] Use current Pages artifact action Addresses #99. Signed-off-by: KeyffMS <124252104+KeyffMS@users.noreply.github.com> --- .github/workflows/pages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index 9b6dd099..ef00e204 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -37,7 +37,7 @@ jobs: uses: actions/configure-pages@v5 - name: Upload static site - uses: actions/upload-pages-artifact@v3 + uses: actions/upload-pages-artifact@v4 with: path: ./site