Skip to content

feat: redesign OAuth success and error pages#47

Merged
gnapse merged 1 commit intomainfrom
ernesto/oauth-success-page
Feb 9, 2026
Merged

feat: redesign OAuth success and error pages#47
gnapse merged 1 commit intomainfrom
ernesto/oauth-success-page

Conversation

@gnapse
Copy link
Collaborator

@gnapse gnapse commented Feb 6, 2026

Summary

Redesigned the OAuth callback pages to match Todoist branding and follow modern UI patterns inspired by steipete/gogcli. The new design features a dark theme with animated background orbs, Todoist logo, success/error badges, and a terminal card showcasing CLI commands.

Changes

  • Todoist-like theme: Inspired by Todoist landing page, official Todoist logo SVG with drop shadow and success/error badges
  • Success page: Green checkmark badge, macOS-style terminal card with example td commands, 30s countdown timer, GitHub link
  • Error page: Red X badge, error message, recovery hint with td auth login command
  • Color scheme: Todoist red (#e44332), orange (#ff7043), success green (#34A853)
  • Fonts: System font stack (no external requests)

Testing

All tests pass (592 tests). Verified locally (see screenshots below)

Demo

Success

CleanShot 2026-02-06 at 20 53 09

Error

CleanShot 2026-02-06 at 20 53 20

@gnapse gnapse self-assigned this Feb 6, 2026
@gnapse gnapse requested a review from henningmu February 6, 2026 23:40
@gnapse gnapse changed the title Redesign OAuth success and error pages feat: Redesign OAuth success and error pages Feb 6, 2026
@gnapse gnapse force-pushed the ernesto/oauth-success-page branch from eb907c3 to 6cf9b9f Compare February 6, 2026 23:45
@gnapse gnapse changed the title feat: Redesign OAuth success and error pages feat: redesign OAuth success and error pages Feb 6, 2026
Copy link

@doist-bot doist-bot bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR introduces a polished and visually appealing redesign for the OAuth success and error pages, bringing them in line with Todoist's branding. The new dark theme, animated background, and clear instructional card create a much-improved user experience during the authentication flow. The implementation has a minor layout issue where page content may become inaccessible on smaller viewports due to a CSS overflow setting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@gnapse gnapse force-pushed the ernesto/oauth-success-page branch from 6cf9b9f to 65ea3be Compare February 6, 2026 23:53
@gnapse gnapse requested a review from scottlovegrove February 6, 2026 23:56
@gnapse gnapse added the 🙋 Ask PR PR must be reviewed before merging label Feb 6, 2026
Copy link
Collaborator

@scottlovegrove scottlovegrove left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we could extract the html and images to actual files to be included in the package, rather than having them as strings in code 🤔

@henningmu
Copy link

Fancy 💅

@gnapse
Copy link
Collaborator Author

gnapse commented Feb 9, 2026

I wonder if we could extract the html and images to actual files to be included in the package, rather than having them as strings in code 🤔

It’s possible but adds friction for little gain. tsc doesn’t copy non-TS files, so you’d need:

  • A cp src/lib/oauth-*.html dist/lib/ step in the build script (not cross-platform — breaks on Windows)
  • readFileSync(new URL('./oauth-success.html', import.meta.url)) at runtime
  • A {{message}} placeholder + .replace() for the error template

The HTML is self-contained, changes rarely, and is ~150 lines each. Keeping it inline means tsc is the only build step. No copy gymnastics, no runtime file resolution, works everywhere.

We can consider it for the future if we find ourselves changing this much.

@gnapse gnapse merged commit 08c463a into main Feb 9, 2026
5 checks passed
@gnapse gnapse deleted the ernesto/oauth-success-page branch February 9, 2026 14:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🙋 Ask PR PR must be reviewed before merging

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Comments