Skip to content

Feature/pdfaro redesign#74

Open
Maxafangsco wants to merge 20 commits into
PDFCraftTool:mainfrom
Maxafangsco:feature/pdfaro-redesign
Open

Feature/pdfaro redesign#74
Maxafangsco wants to merge 20 commits into
PDFCraftTool:mainfrom
Maxafangsco:feature/pdfaro-redesign

Conversation

@Maxafangsco

Copy link
Copy Markdown

No description provided.

Baseline User and others added 20 commits May 7, 2026 11:13
Phase 1 & 2 of PDFaro redesign: comprehensive codebase discovery doc and
implementation plan covering all screens, risk levels, component inventory,
test plan, and rollback strategy.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Shift primary from blue (#3b82f6) to indigo (#4F46E5), accent to violet,
and tune background/muted tones for both light and dark mode to match
the Figma redesign mockups.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add ToolBadge (Popular/New/Free/Premium pills), TrustBadges (local/free/popular
trust indicators), SectionHeader (title+desc+cta block), and BeforeAfterStat
(before/after file size comparison). All purely presentational with no
business logic.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Header: PF monogram logo, flat nav links (no pill), Sign in + Get started CTA,
compact 56px height, search bar with pill style. Footer: PF monogram, tighter
spacing, same functional language switcher and security blocks preserved.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
New hero: split-colour heading, centered search bar, quick-action chips,
dual CTA (Choose a PDF tool / Try Workflow Builder), trust badges row.
Popular tools, category hub with tool tags, privacy-first section with
activity panel, workflow CTA at bottom. All existing data hooks preserved.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ToolsPageClient: flat page header with search bar, category tabs row,
left sidebar with category counts + filter checkboxes, sidebar+grid layout.
ToolCard: compact 4-part layout (icon, badge top-right, name+desc, Open tool link).
All filtering, search, and favorites logic untouched.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Two-column-ready layout: flat breadcrumb, icon + h1 in row, description +
TrustBadges below heading, Save tool button. Related tools section updated to
"What's next?" design with compact cards. All data-testid attributes preserved.
SEO structured data markup inlined where ToolHeader was.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
FileUploader: cleaner dashed zone (rounded-2xl), centered upload icon,
plain text label, size hint, "Select PDF" CTA button. All event handlers
and validation logic untouched. ProcessingProgress: card-style container,
message + percentage header, thin progress bar, WebAssembly info line,
est. time footer.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Nodes now use design token colours, a cleaner icon+label layout,
"RUNNING · 54%" progress label matching the Figma, and a thin
progress bar. Category left-border removed in favour of border colour
changes per status. ReactFlow handles, drag/drop, delete button preserved.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Pins the Process/Download CTA to the bottom of the viewport on mobile
(< 640px) matching the Figma mobile tool screens. Components can opt-in
by adding the .tool-action-bar class to their action area.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Tool type has no isPopular/isNew fields; use POPULAR_TOOL_IDS set from
config/tools.ts instead for badge auto-detection.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ProcessingProgress: removed duplicate Complete/Error status text from
  footer span; removed "Est." prefix from time display
- FileUploader: show drag-and-drop text, accepted types, max file size
  (NMB), max files count, and "Drop files here" in drag overlay
- setup.ts: mock localStorage (clear/getItem/setItem/removeItem) for jsdom
- error-messages.property: add missing errors.invalidPassword key to all
  11 locale files; add Italian locale to test LOCALE_MESSAGES map
- i18n.property: exclude Arabic (ar) from LTR direction assertion
- seo structured-data: change operatingSystem to 'Web Browser'
- tool-components.property: mock next-intl and next/navigation; add
  cleanup between fast-check iterations
- tools.property: update expected tool count to 99; fix 8 stale
  relatedTools references in config/tools.ts

All 350 tests now pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- favicon.svg → replaced with aperture-mark.svg (indigo gradient P mark)
- Header/Footer → replaced inline PF monogram with aperture-lockup.svg
  (light) / aperture-lockup-mono-dark.svg (dark mode)
- manifest.ts → updated theme_color to #4F46E5, wired all icon sizes from
  public/images/web/ and android/
- layout.tsx → wired full favicon set (svg, 32px, 96px, 192px) and
  apple-touch-icon assets from public/images/web/
- site.ts → updated URLs, OG image to lockup-color-960.png, twitter handle
- sw.js → updated service worker comment
- messages/*.json (13 files) → PDFCraft → PDFaro throughout
- src/**/*.ts(x) (12 files) → PDFCraft → PDFaro throughout
- layout.property.test.tsx → brand test now checks img[alt] instead of
  textContent (logo is an <img>, not a text node)

All 350 tests pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The colour gradient lockup (aperture-lockup.svg) uses fill="url(#gt)" on
SVG text, which does not resolve when loaded as an <img> src, making the
wordmark invisible in light mode.

Switch to the solid-color mono variants which render reliably as img:
- Light mode: aperture-lockup-mono-light.svg (dark #0B1220 mark + dark text)
- Dark mode:  aperture-lockup-mono-dark.svg  (white mark + white text)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Light mode: aperture-mark-mono-black.svg — dark #0B1220 rounded square + white P
Dark mode:  aperture-mark.svg           — gradient blue/violet square + white P

Brand name "PDFaro" rendered as a <span> beside the icon so text color
adapts automatically via CSS custom properties in both modes.
Mark images are decorative (alt="") with aria-hidden; accessible name is
on the <Link> via aria-label.

Update layout.property tests to check span.textContent instead of img alt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ToolBadge popular variant: amber -> violet/purple (works light + dark)
- ToolCard: removed FavoriteButton (the separate star icon outside the badge)
- Badge repositioned to top-right corner, no competing star icon

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Light mode: soft purple-50 bg, purple-600 text, rounded-full pill
Dark mode:  solid purple-600 bg, white text, no visible border

Both modes use the same outline Star icon (w-3) inside the pill.
Applied same solid-fill pattern to new/free/premium for consistency.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ci.yml: use npm install (fixes lock file sync error), drop typecheck
  and build steps — only npm run test runs on PRs to main
- build-tauri.yml: remove pull_request trigger (runs on push to main only)
- docker-publish.yml: remove pull_request trigger (runs on push/tag only)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant