From f157a74c60a0f7d107fd7ac0c1dc99f0a048bd69 Mon Sep 17 00:00:00 2001 From: thepra Date: Fri, 16 Oct 2026 01:30:03 +0200 Subject: [PATCH] "me-web?" 0.8.0: a first screen that says what's in it for you - The first screen now starts from what a home connection could do for you: a drawing of your home's internet box with the things it could host circling it (family photos, a website, reaching home from outside, a game server, a blog, mail), the question in plain words, why it matters, and one button, "Check this connection". - Below it, the six things the check answers, and a promise: nothing on your network changes without asking you first, and the results stay on your device unless you share them. - The codes for installing the app on another device are folded away at the bottom; open them when you need them. - While the check runs, the offer to share your findings already waits at the end of the page, getting them ready, and becomes a button as soon as they are complete. - Long button labels and the translation notice no longer run off narrow screens. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB --- CLAUDE.md | 5 ++ Directory.Build.props | 2 +- src/MeWeb.App/Resources/Colors.axaml | 2 + src/MeWeb.App/Resources/Styles.axaml | 65 ++++++++++++++++ src/MeWeb.App/Strings/am.json | 8 +- src/MeWeb.App/Strings/ar.json | 8 +- src/MeWeb.App/Strings/ay.json | 8 +- src/MeWeb.App/Strings/az-Cyrl.json | 8 +- src/MeWeb.App/Strings/az.json | 8 +- src/MeWeb.App/Strings/be.json | 8 +- src/MeWeb.App/Strings/bg.json | 8 +- src/MeWeb.App/Strings/bi.json | 8 +- src/MeWeb.App/Strings/bn.json | 8 +- src/MeWeb.App/Strings/bs-Cyrl.json | 8 +- src/MeWeb.App/Strings/bs.json | 8 +- src/MeWeb.App/Strings/ca.json | 8 +- src/MeWeb.App/Strings/cs.json | 8 +- src/MeWeb.App/Strings/da.json | 8 +- src/MeWeb.App/Strings/de.json | 8 +- src/MeWeb.App/Strings/dv.json | 8 +- src/MeWeb.App/Strings/dz.json | 8 +- src/MeWeb.App/Strings/el.json | 8 +- src/MeWeb.App/Strings/en.json | 8 +- src/MeWeb.App/Strings/es.json | 8 +- src/MeWeb.App/Strings/et.json | 8 +- src/MeWeb.App/Strings/fa.json | 8 +- src/MeWeb.App/Strings/fi.json | 8 +- src/MeWeb.App/Strings/fil.json | 8 +- src/MeWeb.App/Strings/fj.json | 8 +- src/MeWeb.App/Strings/fr.json | 8 +- src/MeWeb.App/Strings/ga.json | 8 +- src/MeWeb.App/Strings/gil.json | 8 +- src/MeWeb.App/Strings/gn.json | 8 +- src/MeWeb.App/Strings/gsw.json | 8 +- src/MeWeb.App/Strings/he.json | 8 +- src/MeWeb.App/Strings/hi.json | 8 +- src/MeWeb.App/Strings/hif.json | 8 +- src/MeWeb.App/Strings/ho.json | 8 +- src/MeWeb.App/Strings/hr.json | 8 +- src/MeWeb.App/Strings/ht.json | 8 +- src/MeWeb.App/Strings/hu.json | 8 +- src/MeWeb.App/Strings/hy.json | 8 +- src/MeWeb.App/Strings/id.json | 8 +- src/MeWeb.App/Strings/is.json | 8 +- src/MeWeb.App/Strings/it.json | 8 +- src/MeWeb.App/Strings/ja.json | 8 +- src/MeWeb.App/Strings/ka.json | 8 +- src/MeWeb.App/Strings/kk.json | 8 +- src/MeWeb.App/Strings/km.json | 8 +- src/MeWeb.App/Strings/ko.json | 8 +- src/MeWeb.App/Strings/ky.json | 8 +- src/MeWeb.App/Strings/lb.json | 8 +- src/MeWeb.App/Strings/lo.json | 8 +- src/MeWeb.App/Strings/lt.json | 8 +- src/MeWeb.App/Strings/lv.json | 8 +- src/MeWeb.App/Strings/mg.json | 8 +- src/MeWeb.App/Strings/mh.json | 8 +- src/MeWeb.App/Strings/mi.json | 8 +- src/MeWeb.App/Strings/mk.json | 8 +- src/MeWeb.App/Strings/mn.json | 8 +- src/MeWeb.App/Strings/ms-Arab.json | 8 +- src/MeWeb.App/Strings/ms.json | 8 +- src/MeWeb.App/Strings/mt.json | 8 +- src/MeWeb.App/Strings/my.json | 8 +- src/MeWeb.App/Strings/nb.json | 8 +- src/MeWeb.App/Strings/nd.json | 8 +- src/MeWeb.App/Strings/ne.json | 8 +- src/MeWeb.App/Strings/nl.json | 8 +- src/MeWeb.App/Strings/nn.json | 8 +- src/MeWeb.App/Strings/no.json | 8 +- src/MeWeb.App/Strings/ny.json | 8 +- src/MeWeb.App/Strings/pl.json | 8 +- src/MeWeb.App/Strings/ps.json | 8 +- src/MeWeb.App/Strings/pt.json | 8 +- src/MeWeb.App/Strings/qu.json | 8 +- src/MeWeb.App/Strings/rn.json | 8 +- src/MeWeb.App/Strings/ro.json | 8 +- src/MeWeb.App/Strings/ru.json | 8 +- src/MeWeb.App/Strings/rw.json | 8 +- src/MeWeb.App/Strings/sg.json | 8 +- src/MeWeb.App/Strings/si.json | 8 +- src/MeWeb.App/Strings/sk.json | 8 +- src/MeWeb.App/Strings/sl.json | 8 +- src/MeWeb.App/Strings/sm.json | 8 +- src/MeWeb.App/Strings/sn.json | 8 +- src/MeWeb.App/Strings/so.json | 8 +- src/MeWeb.App/Strings/sq.json | 8 +- src/MeWeb.App/Strings/sr-Latn.json | 8 +- src/MeWeb.App/Strings/sr.json | 8 +- src/MeWeb.App/Strings/ss.json | 8 +- src/MeWeb.App/Strings/st.json | 8 +- src/MeWeb.App/Strings/sv.json | 8 +- src/MeWeb.App/Strings/sw.json | 8 +- src/MeWeb.App/Strings/ta.json | 8 +- src/MeWeb.App/Strings/tet.json | 8 +- src/MeWeb.App/Strings/tg.json | 8 +- src/MeWeb.App/Strings/th.json | 8 +- src/MeWeb.App/Strings/ti.json | 8 +- src/MeWeb.App/Strings/tk.json | 8 +- src/MeWeb.App/Strings/tn.json | 8 +- src/MeWeb.App/Strings/to.json | 8 +- src/MeWeb.App/Strings/tpi.json | 8 +- src/MeWeb.App/Strings/tr.json | 8 +- src/MeWeb.App/Strings/tvl.json | 8 +- src/MeWeb.App/Strings/tzm.json | 8 +- src/MeWeb.App/Strings/uk.json | 8 +- src/MeWeb.App/Strings/ur.json | 8 +- src/MeWeb.App/Strings/uz-Cyrl.json | 8 +- src/MeWeb.App/Strings/uz.json | 8 +- src/MeWeb.App/Strings/vi.json | 8 +- src/MeWeb.App/Strings/wni.json | 8 +- src/MeWeb.App/Strings/wo.json | 8 +- src/MeWeb.App/Strings/yo.json | 8 +- src/MeWeb.App/Strings/zdj.json | 8 +- src/MeWeb.App/Strings/zh.json | 8 +- src/MeWeb.App/ViewModels/MainViewModel.cs | 14 ++-- src/MeWeb.App/Views/HomeOrbit.axaml | 34 +++++++++ src/MeWeb.App/Views/HomeOrbit.axaml.cs | 80 ++++++++++++++++++++ src/MeWeb.App/Views/MainView.axaml | 90 +++++++++++++++++++---- 119 files changed, 935 insertions(+), 245 deletions(-) create mode 100644 src/MeWeb.App/Views/HomeOrbit.axaml create mode 100644 src/MeWeb.App/Views/HomeOrbit.axaml.cs diff --git a/CLAUDE.md b/CLAUDE.md index 3063fe0..9f59994 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -171,6 +171,11 @@ The Android release key: alias `meweb`, certificate SHA-256 the WPF name `"Item[]"` and `""` refresh nothing, so until 0.7.1 changing the language left every `{s:Tr}` text in the old one while the view models' `*Formatted` strings followed. The screenshot tool draws each `start-` shot by switching from English on a live view, which is the check that would have caught it. +- **The first screen sells the outcome, not the test.** `Views/HomeOrbit` draws the home's router with the six uses + circling it on a tilted ring (depth from scale, opacity and z-order, one turn in 40 s, frames from + `RequestAnimationFrame` only while it is visible); the question, one sentence of why, the button and the six uses + as chips follow, and the QR codes wait folded at the bottom. While a check runs, the share card sits at the end in + a muted "getting them ready" state (`ShowSharePreparing`) and turns into the offer when the findings are complete. - **Values worth copying are read-only text boxes with a copy button inside** (`Views/CopyField`): addresses, the router, the network, the reverse name, the route, the STUN answers and a submission's code. The box is left-to-right in every language and copies the raw value, never the bidi marks `Texts.Isolate` adds to display diff --git a/Directory.Build.props b/Directory.Build.props index e82006b..e5d7c16 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,6 +1,6 @@ - 0.7.1 + 0.8.0 “me-web?” Arasaka di Hvozdikov Yevheniy © 2026 Arasaka di Hvozdikov Yevheniy diff --git a/src/MeWeb.App/Resources/Colors.axaml b/src/MeWeb.App/Resources/Colors.axaml index 02f2552..8a33de2 100644 --- a/src/MeWeb.App/Resources/Colors.axaml +++ b/src/MeWeb.App/Resources/Colors.axaml @@ -16,6 +16,8 @@ #2EF2C14E #33F06B79 #33B3A6B2 + #55E04A55 + #00E04A55 #E6140F15 diff --git a/src/MeWeb.App/Resources/Styles.axaml b/src/MeWeb.App/Resources/Styles.axaml index af7beb7..ec90662 100644 --- a/src/MeWeb.App/Resources/Styles.axaml +++ b/src/MeWeb.App/Resources/Styles.axaml @@ -45,6 +45,10 @@ + + + + + + + + + + +