diff --git a/controller/internal/web/app_page_test.go b/controller/internal/web/app_page_test.go index dde32ee..cb26ecb 100644 --- a/controller/internal/web/app_page_test.go +++ b/controller/internal/web/app_page_test.go @@ -149,8 +149,13 @@ func TestAppPage_DeployedDefaultsToSettings(t *testing.T) { // The header does not. This is the whole point of the Mukodes card: the three buttons used to // sit in the page header and read as menu items. - header := body[strings.Index(body, `class="page-header"`):] - header = header[:strings.Index(header, `class="app-hero"`)] + // The header is everything before the hero block; app-info-hero is the design system's existing + // hero class, which the shell reuses rather than inventing one with no rules behind it. + hi, hj := strings.Index(body, `class="page-header"`), strings.Index(body, `class="app-info-hero"`) + if hi < 0 || hj < 0 || hj < hi { + t.Fatalf("the shell's header/hero markers are gone (page-header=%d app-info-hero=%d)", hi, hj) + } + header := body[hi:hj] if strings.Contains(header, "stackAction(") { t.Errorf("the page header must carry no state-change button, got: %q", header) } diff --git a/controller/internal/web/templates/app_shell.html b/controller/internal/web/templates/app_shell.html index 76dbca1..9988911 100644 --- a/controller/internal/web/templates/app_shell.html +++ b/controller/internal/web/templates/app_shell.html @@ -28,11 +28,11 @@ -
- + -
+
{{if .AppInfo.Tagline}}

{{.AppInfo.Tagline}}

{{else}}

{{.Meta.Description}}

{{end}}
~{{.Meta.Resources.MemRequest}} RAM diff --git a/controller/internal/web/templates/style.css b/controller/internal/web/templates/style.css index ee90801..8d53b34 100644 --- a/controller/internal/web/templates/style.css +++ b/controller/internal/web/templates/style.css @@ -1300,6 +1300,50 @@ a.stat-card:hover { .login-footer a:hover { color: var(--blue); } /* --- App Info Page --- */ +/* THE APP PAGE'S TAB BAR (v0.315.0) — links, not panels. + Design system v2: 2px radius, hairline borders, no shadow, and blue reserved for the tab the + household is ON. An inactive tab is --text-2: a tab bar is navigation, not a deviation. */ +.app-tabs { + display: flex; + gap: .25rem; + flex-wrap: wrap; + margin: 1.25rem 0 1.5rem; + border-bottom: 1px solid var(--line); +} +.app-tab { + padding: .55rem 1rem; + color: var(--text-2); + text-decoration: none; + font-size: .9rem; + border: 1px solid transparent; + border-bottom: none; + border-radius: var(--radius) var(--radius) 0 0; + /* The bar's own 1px line is what the active tab sits on, so each tab reaches it. */ + margin-bottom: -1px; + white-space: nowrap; +} +.app-tab:hover { color: var(--text-1); background: var(--bg-1); } +.app-tab-active { + color: var(--blue-bright); + background: var(--bg-1); + border-color: var(--line); + border-bottom: 1px solid var(--bg-1); +} +.app-tab-active:hover { color: var(--blue-bright); } +@media (max-width: 640px) { + .app-tabs { gap: 0; } + .app-tab { padding: .55rem .6rem; font-size: .85rem; } +} + +/* „Még egy lépés" — a value the app wants once it is running (Part 4). It is a request, not a + fault, so it stays neutral: the blue hairline marks it as the thing to do next. */ +.after-start-card { border-left: 2px solid var(--blue); } + +/* The guide's FAQ. */ +.app-faq { margin: .5rem 0 0; } +.app-faq dt { color: var(--text-1); font-weight: 600; margin-top: .85rem; } +.app-faq dd { color: var(--text-2); margin: .25rem 0 0; padding: 0; } + .app-info-hero { display: flex; align-items: center; diff --git a/controller/internal/web/testdata/i18n_parity/app_data_deployed.html b/controller/internal/web/testdata/i18n_parity/app_data_deployed.html index 93062ba..c04b92d 100644 --- a/controller/internal/web/testdata/i18n_parity/app_data_deployed.html +++ b/controller/internal/web/testdata/i18n_parity/app_data_deployed.html @@ -189,11 +189,11 @@
-
- + -
+

Egy teszt alkalmazás leírása

~128M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_data_export.html b/controller/internal/web/testdata/i18n_parity/app_data_export.html index 9de2192..d394b28 100644 --- a/controller/internal/web/testdata/i18n_parity/app_data_export.html +++ b/controller/internal/web/testdata/i18n_parity/app_data_export.html @@ -189,11 +189,11 @@
-
- + -
+

Egy teszt alkalmazás leírása

~128M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_data_not_hdd.html b/controller/internal/web/testdata/i18n_parity/app_data_not_hdd.html index af6fafa..cad2116 100644 --- a/controller/internal/web/testdata/i18n_parity/app_data_not_hdd.html +++ b/controller/internal/web/testdata/i18n_parity/app_data_not_hdd.html @@ -189,11 +189,11 @@
-
- + -
+

Egy teszt alkalmazás leírása

~128M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_data_not_hdd_absent.html b/controller/internal/web/testdata/i18n_parity/app_data_not_hdd_absent.html index abc5439..3c0c048 100644 --- a/controller/internal/web/testdata/i18n_parity/app_data_not_hdd_absent.html +++ b/controller/internal/web/testdata/i18n_parity/app_data_not_hdd_absent.html @@ -189,11 +189,11 @@
-
- + -
+

Egy teszt alkalmazás leírása

~128M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_data_not_hdd_protected.html b/controller/internal/web/testdata/i18n_parity/app_data_not_hdd_protected.html index e91fa06..8a508e9 100644 --- a/controller/internal/web/testdata/i18n_parity/app_data_not_hdd_protected.html +++ b/controller/internal/web/testdata/i18n_parity/app_data_not_hdd_protected.html @@ -189,11 +189,11 @@
-
- + -
+

Egy teszt alkalmazás leírása

~128M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_data_not_hdd_same_disk.html b/controller/internal/web/testdata/i18n_parity/app_data_not_hdd_same_disk.html index 1b3d7d8..b77c77f 100644 --- a/controller/internal/web/testdata/i18n_parity/app_data_not_hdd_same_disk.html +++ b/controller/internal/web/testdata/i18n_parity/app_data_not_hdd_same_disk.html @@ -189,11 +189,11 @@
-
- + -
+

Egy teszt alkalmazás leírása

~128M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_data_notarget_disabled.html b/controller/internal/web/testdata/i18n_parity/app_data_notarget_disabled.html index f7d170e..f728cfa 100644 --- a/controller/internal/web/testdata/i18n_parity/app_data_notarget_disabled.html +++ b/controller/internal/web/testdata/i18n_parity/app_data_notarget_disabled.html @@ -189,11 +189,11 @@
-
- + -
+

Egy teszt alkalmazás leírása

~128M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_data_target_auto.html b/controller/internal/web/testdata/i18n_parity/app_data_target_auto.html index 077df92..2510977 100644 --- a/controller/internal/web/testdata/i18n_parity/app_data_target_auto.html +++ b/controller/internal/web/testdata/i18n_parity/app_data_target_auto.html @@ -189,11 +189,11 @@
-
- + -
+

Egy teszt alkalmazás leírása

~128M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_data_target_ssd.html b/controller/internal/web/testdata/i18n_parity/app_data_target_ssd.html index ba21617..341d1cd 100644 --- a/controller/internal/web/testdata/i18n_parity/app_data_target_ssd.html +++ b/controller/internal/web/testdata/i18n_parity/app_data_target_ssd.html @@ -189,11 +189,11 @@
-
- + -
+

Egy teszt alkalmazás leírása

~128M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_guide_available.html b/controller/internal/web/testdata/i18n_parity/app_guide_available.html index 84736c7..455dfb5 100644 --- a/controller/internal/web/testdata/i18n_parity/app_guide_available.html +++ b/controller/internal/web/testdata/i18n_parity/app_guide_available.html @@ -182,11 +182,11 @@
-
- + -
+

Titkosított jegyzetek.

~64M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_guide_full.html b/controller/internal/web/testdata/i18n_parity/app_guide_full.html index 5530e6c..ab38e9c 100644 --- a/controller/internal/web/testdata/i18n_parity/app_guide_full.html +++ b/controller/internal/web/testdata/i18n_parity/app_guide_full.html @@ -189,11 +189,11 @@
-
- + -
+

Titkosított szövegmegosztás.

~128M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_guide_installable.html b/controller/internal/web/testdata/i18n_parity/app_guide_installable.html index 64549eb..1dfda2f 100644 --- a/controller/internal/web/testdata/i18n_parity/app_guide_installable.html +++ b/controller/internal/web/testdata/i18n_parity/app_guide_installable.html @@ -182,11 +182,11 @@
-
- + -
+

~64M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_guide_no_guide.html b/controller/internal/web/testdata/i18n_parity/app_guide_no_guide.html index c3017d0..13f1003 100644 --- a/controller/internal/web/testdata/i18n_parity/app_guide_no_guide.html +++ b/controller/internal/web/testdata/i18n_parity/app_guide_no_guide.html @@ -182,11 +182,11 @@
-
- + -
+

Házi készletnyilvántartó.

~128M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_logs.html b/controller/internal/web/testdata/i18n_parity/app_logs.html index 71453f3..08f1293 100644 --- a/controller/internal/web/testdata/i18n_parity/app_logs.html +++ b/controller/internal/web/testdata/i18n_parity/app_logs.html @@ -189,11 +189,11 @@
-
- + -
+

Egy teszt alkalmazás leírása

~128M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_after_start.html b/controller/internal/web/testdata/i18n_parity/app_settings_after_start.html index 2806261..92bf743 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_after_start.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_after_start.html @@ -189,11 +189,11 @@
-
- + -
+

~ RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_close_signup.html b/controller/internal/web/testdata/i18n_parity/app_settings_close_signup.html index abeb951..47a696a 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_close_signup.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_close_signup.html @@ -189,11 +189,11 @@
-
- + -
+

~ RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_close_signup_native.html b/controller/internal/web/testdata/i18n_parity/app_settings_close_signup_native.html index 72e26f2..95e8bc6 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_close_signup_native.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_close_signup_native.html @@ -189,11 +189,11 @@
-
- + -
+

~ RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_deployed.html b/controller/internal/web/testdata/i18n_parity/app_settings_deployed.html index b4d0560..e7bbea9 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_deployed.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_deployed.html @@ -189,11 +189,11 @@
-
- + -
+

Titkosított szövegmegosztás.

~64M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_hold_log.html b/controller/internal/web/testdata/i18n_parity/app_settings_hold_log.html index bc576fe..ae12985 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_hold_log.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_hold_log.html @@ -189,11 +189,11 @@
-
- + -
+

~ RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_install_hold.html b/controller/internal/web/testdata/i18n_parity/app_settings_install_hold.html index e2a3141..4c91413 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_install_hold.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_install_hold.html @@ -189,11 +189,11 @@
-
- + -
+

~ RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_known_login_changed.html b/controller/internal/web/testdata/i18n_parity/app_settings_known_login_changed.html index 32cf66e..a77ea11 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_known_login_changed.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_known_login_changed.html @@ -189,11 +189,11 @@
-
- + -
+

~ RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_ladder_steps.html b/controller/internal/web/testdata/i18n_parity/app_settings_ladder_steps.html index 0a0ae8b..c261e47 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_ladder_steps.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_ladder_steps.html @@ -189,11 +189,11 @@
-
- + -
+

~ RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_lost_files.html b/controller/internal/web/testdata/i18n_parity/app_settings_lost_files.html index b1a7962..7dfb07c 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_lost_files.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_lost_files.html @@ -189,11 +189,11 @@
-
- + -
+

~ RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_not_checked.html b/controller/internal/web/testdata/i18n_parity/app_settings_not_checked.html index 229013d..5c37cfa 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_not_checked.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_not_checked.html @@ -189,11 +189,11 @@
-
- + -
+

~64M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_operator_creds.html b/controller/internal/web/testdata/i18n_parity/app_settings_operator_creds.html index 9754e68..f0ba100 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_operator_creds.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_operator_creds.html @@ -189,11 +189,11 @@
-
- + -
+

~ RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_restored_login.html b/controller/internal/web/testdata/i18n_parity/app_settings_restored_login.html index 1ce053b..e0937b1 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_restored_login.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_restored_login.html @@ -189,11 +189,11 @@
-
- + -
+

Egy teszt alkalmazás leírása

~128M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_running.html b/controller/internal/web/testdata/i18n_parity/app_settings_running.html index 29c0a98..1e1a8bc 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_running.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_running.html @@ -189,11 +189,11 @@
-
- + -
+

Egy teszt alkalmazás leírása

~128M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_setup_gate_button.html b/controller/internal/web/testdata/i18n_parity/app_settings_setup_gate_button.html index fe819ba..ce51b9d 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_setup_gate_button.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_setup_gate_button.html @@ -189,11 +189,11 @@
-
- + -
+

~ RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_setup_gate_native.html b/controller/internal/web/testdata/i18n_parity/app_settings_setup_gate_native.html index 280d2d9..24ce978 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_setup_gate_native.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_setup_gate_native.html @@ -189,11 +189,11 @@
-
- + -
+

~ RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_setup_gate_probe.html b/controller/internal/web/testdata/i18n_parity/app_settings_setup_gate_probe.html index 508a75c..0c361e2 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_setup_gate_probe.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_setup_gate_probe.html @@ -189,11 +189,11 @@
-
- + -
+

~ RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_signup_closed.html b/controller/internal/web/testdata/i18n_parity/app_settings_signup_closed.html index 0db6016..4534388 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_signup_closed.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_signup_closed.html @@ -189,11 +189,11 @@
-
- + -
+

~ RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_signup_native.html b/controller/internal/web/testdata/i18n_parity/app_settings_signup_native.html index 9019e4c..2ed22f4 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_signup_native.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_signup_native.html @@ -189,11 +189,11 @@
-
- + -
+

~ RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_signup_native_open_failed.html b/controller/internal/web/testdata/i18n_parity/app_settings_signup_native_open_failed.html index 8b0afe2..f78a2fe 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_signup_native_open_failed.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_signup_native_open_failed.html @@ -189,11 +189,11 @@
-
- + -
+

~ RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_signup_window.html b/controller/internal/web/testdata/i18n_parity/app_settings_signup_window.html index 2a8794a..076aba5 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_signup_window.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_signup_window.html @@ -189,11 +189,11 @@
-
- + -
+

~ RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_stopped.html b/controller/internal/web/testdata/i18n_parity/app_settings_stopped.html index c601b16..dd6570a 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_stopped.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_stopped.html @@ -189,11 +189,11 @@
-
- + -
+

Egy teszt alkalmazás leírása

~128M RAM diff --git a/controller/internal/web/testdata/i18n_parity/app_settings_updating.html b/controller/internal/web/testdata/i18n_parity/app_settings_updating.html index 902c91f..6b9a47f 100644 --- a/controller/internal/web/testdata/i18n_parity/app_settings_updating.html +++ b/controller/internal/web/testdata/i18n_parity/app_settings_updating.html @@ -189,11 +189,11 @@
-
- + -
+

~ RAM