feat(empty-states): startkort on six pages with strata imagery (#1603)

Replace the true-empty states on Kundfakturor, Transaktioner, Underlag,
Loner, Bokforing and Skattekonto with StartCard: a self-contained dark
hero (image-derived ground baked into the strata render, white primary
CTA) that says what the page can do instead of what is missing. Primary
CTAs lead with the connect/setup action per page (bank via PSD2 deep
link, mailboxes, Skatteverket, migration import); filtered/search empty
states and viewer fallbacks keep the old compact states. Design signed
off in the Startkort prototype iterations 2026-08-13.

Co-authored-by: Jakob Wennberg <311770904+jakobwennberg-oss@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Jakob Wennberg
2026-08-13 23:27:24 +02:00
committed by GitHub
co-authored by Jakob Wennberg Claude Fable 5
parent 08440fed94
commit 57d6651cfc
18 changed files with 556 additions and 248 deletions
+36
View File
@@ -3118,6 +3118,7 @@
"purchase_searched_hint": "We searched the mailboxes. Drop the receipt here, or forward it to the inbox address.",
"purchase_open_portal": "Open {vendor}",
"purchase_drop": "Drop the file here, or click to choose",
"drop_anywhere_hint": "… or drop files anywhere on the page",
"purchase_uploading": "Uploading…",
"purchase_kind": "Purchase without a document",
"purchase_date": "Date",
@@ -7102,6 +7103,41 @@
"preset_reports_action": "Create invoice",
"preset_reports_secondary": "Import transactions"
},
"start_cards": {
"invoices_title": "Your first invoice takes two minutes.",
"invoices_body": "Send it by email, and the payment is matched to the invoice when it arrives.",
"invoices_primary": "Fetch customers and invoices",
"invoices_secondary": "Create invoice",
"transactions_title": "Connect your bank and the books stay a step ahead.",
"transactions_body": "New transactions arrive every night and are matched to invoices and receipts; you approve with one click.",
"transactions_primary": "Connect bank account",
"transactions_secondary": "Import bank file",
"inbox_title": "Drop the receipt here, and it's done.",
"inbox_body": "Snap a photo, email it or drop the file here: the amount is read and matched to the right transaction.",
"inbox_primary": "Connect mailboxes",
"inbox_secondary": "Upload document",
"inbox_dismiss": "Dismiss",
"salary_eyebrow_start": "Get started",
"salary_eyebrow_next": "Next step",
"salary_title": "The 25th takes care of itself.",
"salary_body_no_employees": "Add your first employee: tax, contributions and AGI are calculated and booked.",
"salary_body_ready": "{count, plural, one {One employee is in place} other {# employees are in place}}: tax, contributions and AGI are calculated and booked.",
"salary_primary_add": "Add employee",
"salary_primary_run": "Start payroll run",
"bookkeeping_title": "Your bookkeeping moves in within five minutes.",
"bookkeeping_body": "Move in from your previous software: fiscal years, the chart of accounts and every voucher come along.",
"bookkeeping_primary": "Fetch from another system",
"bookkeeping_secondary": "Import SIE file",
"bookkeeping_mini_mall_title": "From a template",
"bookkeeping_mini_mall_body": "Rent, salary and other recurring events in one click.",
"bookkeeping_mini_assistent_title": "With the assistant",
"bookkeeping_mini_assistent_body": "Describe the event in words and get the posting suggested.",
"bookkeeping_mini_tomt_title": "Blank voucher",
"bookkeeping_mini_tomt_body": "Line by line, with the next voucher number ready.",
"skattekonto_title": "Your tax account reconciles itself.",
"skattekonto_body": "Connect with BankID and the balance and events are fetched continuously, ready to book.",
"skattekonto_primary": "Connect Skatteverket"
},
"skattekonto": {
"help_text": "The balance and events are fetched from Skatteverket and synced automatically every night. Completed events are booked against 1630 Skattekonto, usually automatically; anything that cannot be matched is flagged in the list. Pay in via bankgiro 5050-1055 with your OCR number.",
"copy": "copy",
+36
View File
@@ -3119,6 +3119,7 @@
"purchase_open_portal": "Öppna {vendor}",
"purchase_drop": "Släpp filen här, eller klicka för att välja",
"purchase_uploading": "Laddar upp…",
"drop_anywhere_hint": "… eller släpp filer var som helst på sidan",
"purchase_kind": "Köp utan underlag",
"purchase_date": "Datum",
"purchase_amount": "Belopp",
@@ -7102,6 +7103,41 @@
"preset_reports_action": "Skapa faktura",
"preset_reports_secondary": "Importera transaktioner"
},
"start_cards": {
"invoices_title": "Din första faktura tar två minuter.",
"invoices_body": "Skicka med ett mejl, och betalningen matchas mot fakturan när den kommer in.",
"invoices_primary": "Hämta kunder och fakturor",
"invoices_secondary": "Skapa faktura",
"transactions_title": "Koppla banken, så ligger bokföringen steget före.",
"transactions_body": "Nya transaktioner hämtas varje natt och matchas mot fakturor och kvitton; du godkänner med ett klick.",
"transactions_primary": "Koppla bankkonto",
"transactions_secondary": "Importera bankfil",
"inbox_title": "Släpp kvittot här, sen är det klart.",
"inbox_body": "Fota, mejla eller släpp filen här: beloppet läses av och matchas mot rätt transaktion.",
"inbox_primary": "Koppla brevlådor",
"inbox_secondary": "Ladda upp underlag",
"inbox_dismiss": "Stäng",
"salary_eyebrow_start": "Kom igång",
"salary_eyebrow_next": "Nästa steg",
"salary_title": "Den 25:e sköter sig själv.",
"salary_body_no_employees": "Lägg till din första anställda: skatt, avgifter och AGI räknas fram och bokförs.",
"salary_body_ready": "{count, plural, one {En anställd är på plats} other {# anställda är på plats}}: skatt, avgifter och AGI räknas fram och bokförs.",
"salary_primary_add": "Lägg till anställd",
"salary_primary_run": "Starta lönekörning",
"bookkeeping_title": "Bokföringen flyttar in på fem minuter.",
"bookkeeping_body": "Flytta in från ditt förra program: räkenskapsår, kontoplan och alla verifikat följer med.",
"bookkeeping_primary": "Hämta från annat system",
"bookkeeping_secondary": "Importera SIE-fil",
"bookkeeping_mini_mall_title": "Från mall",
"bookkeeping_mini_mall_body": "Hyra, lön och andra återkommande händelser på ett klick.",
"bookkeeping_mini_assistent_title": "Med assistenten",
"bookkeeping_mini_assistent_body": "Beskriv händelsen med ord och få konteringen föreslagen.",
"bookkeeping_mini_tomt_title": "Tomt verifikat",
"bookkeeping_mini_tomt_body": "Rad för rad, med nästa verifikatnummer redo.",
"skattekonto_title": "Skattekontot stämmer av sig självt.",
"skattekonto_body": "Anslut med BankID så hämtas saldo och händelser löpande, färdiga att bokföra.",
"skattekonto_primary": "Anslut Skatteverket"
},
"skattekonto": {
"help_text": "Saldot och händelserna hämtas från Skatteverket och synkas automatiskt varje natt. Genomförda händelser bokförs mot 1630 Skattekonto, oftast automatiskt; det som inte kan matchas flaggas i listan. Betala in via bankgiro 5050-1055 med ditt OCR-nummer.",
"copy": "kopiera",