ALVA: webbplats, portal och kunskapskällor
Webbplatsen och plattformen är ett system. Samma komponentbibliotek, samma rutnät, samma ord — besökaren lämnar aldrig marknadswebben när den loggar in, eftersom den inte gör det. När apparna kommer återanvänder de samma bibliotek. Det som saknas på startsidan är lika avsiktligt som det som finns: ingen hjältebild, ingen gradient, ingen animation, inga kundlogotyper, ingen uppmaning att boka demo. En sida som försöker övertyga läser som marknadsföring; en sida som redovisar läser som dokumentation. Den senare är vad en teknisk chef fattar beslut utifrån. Kunskapskällorna är byggda som Operational Knowledge Infrastructure: leverantörsoberoende gränssnitt där organisationen ansluter det den har licens till. Det gör att produkten aldrig behöver marknadsföras med "vi stödjer X". En betainstallation fungerar på enbart egna dokument. Livscykeln har fem tillstånd med avsikt. Configured och Connected är inte samma sak — en nyckel kan vara ifylld och ändå fel — och Validated skiljer sig från Connected: anslutningen svarar, men har den data för de fordon organisationen faktiskt arbetar med? Det är den frågan som avgör om källan är till nytta. Portalens nyckeltal visas som NOT APPLICABLE i stället för som tomma grafer. Att visa noll vore att lova något som inte finns; att dölja raderna vore att dölja riktningen. Ett test läser den faktiska källkoden och låser disciplinen: inga gradienter, ingen animation, inga emojier utanför ✓ ○ □ →, ingen färg utanför paletten, inga marknadsföringsord. Ett designsystem som bara finns i ett dokument blir urvattnat på tredje sidan någon lägger till. Testet avslöjade att min egen kod använde py-3 — 12 px — och alltså bröt 8 px-rutnätet på sju ställen. Jag rättade koden, inte testet. Ett rutnät med undantag är inget rutnät. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
This commit is contained in:
@@ -21,6 +21,11 @@ import DelatArende from "./pages/felsokning/DelatArende";
|
||||
import PublikDelning from "./pages/felsokning/PublikDelning";
|
||||
import Oversikt from "./pages/felsokning/Oversikt";
|
||||
import Installningar from "./pages/felsokning/Installningar";
|
||||
import AlvaStart from "./pages/alva/Start";
|
||||
import AlvaAnsokan from "./pages/alva/Ansokan";
|
||||
import AlvaLoggaIn from "./pages/alva/LoggaIn";
|
||||
import AlvaPortal from "./pages/alva/Portal";
|
||||
import AlvaKunskapskallor from "./pages/alva/Kunskapskallor";
|
||||
import { PaymentTestModeBanner } from "@/components/PaymentTestModeBanner";
|
||||
|
||||
const queryClient = new QueryClient();
|
||||
@@ -51,6 +56,14 @@ function AppContent() {
|
||||
<Route path="/admin" element={<Admin />} />
|
||||
<Route path="/order-confirmation" element={<OrderConfirmation />} />
|
||||
<Route path="/account/change-subscription" element={<ChangeSubscription />} />
|
||||
{/* ALVA — publik webbplats och kundportal. Samma system, samma
|
||||
komponentbibliotek: besökaren lämnar aldrig marknadswebben
|
||||
när den loggar in. */}
|
||||
<Route path="/alva" element={<AlvaStart />} />
|
||||
<Route path="/alva/ansokan" element={<AlvaAnsokan />} />
|
||||
<Route path="/alva/logga-in" element={<AlvaLoggaIn />} />
|
||||
<Route path="/alva/portal" element={<AlvaPortal />} />
|
||||
<Route path="/alva/portal/kunskapskallor" element={<AlvaKunskapskallor />} />
|
||||
<Route path="/felsokning" element={<Arendelista />} />
|
||||
<Route path="/felsokning/nytt" element={<NyttArende />} />
|
||||
<Route path="/felsokning/arende/:id" element={<ArendeSida />} />
|
||||
|
||||
Reference in New Issue
Block a user