Redesign the setup flow and consolidate the CSS into one primitives layer
Onboarding asks explicitly for one or two parents and shows one card per parent for balances; the balance form is per parent with inline validation; the partner can be filled from the FK deduction or added from it. Settings and Dashboard reuse the same form. CSS: bare buttons carry no colour any more; buttons, cards, choice cards, fields, alerts, badges, eyebrow and modal chrome are defined once in primitives.css. Media queries live only in responsive.css. A style guard test blocks hex, !important and stray media queries. Bilingual fixes: calendar selects size by content, header no longer wraps. Vitest is capped at four workers. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -117,13 +117,13 @@ describe('Header', () => {
|
||||
|
||||
it('marks the calendar link active on the calendar route', () => {
|
||||
renderAtPath(<Header />, '/calendar')
|
||||
expect(screen.getByText('Kalender')).toHaveClass('header__nav-link--active')
|
||||
expect(screen.getByText('Översikt')).not.toHaveClass('header__nav-link--active')
|
||||
expect(screen.getByText('Kalender')).toHaveAttribute('aria-current', 'page')
|
||||
expect(screen.getByText('Översikt')).not.toHaveAttribute('aria-current', 'page')
|
||||
})
|
||||
|
||||
it('marks the settings link active on the settings route, and the overview link inactive', () => {
|
||||
renderAtPath(<Header />, '/settings')
|
||||
expect(screen.getByText('Inställningar')).toHaveClass('header__nav-link--active')
|
||||
expect(screen.getByText('Översikt')).not.toHaveClass('header__nav-link--active')
|
||||
expect(screen.getByText('Inställningar')).toHaveAttribute('aria-current', 'page')
|
||||
expect(screen.getByText('Översikt')).not.toHaveAttribute('aria-current', 'page')
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user