Skip to content

feat(docs-infra): add an angry Angie theme-toggle easter egg#69736

Open
erkamyaman wants to merge 1 commit into
angular:mainfrom
erkamyaman:angie-theme-toggle-easter-egg
Open

feat(docs-infra): add an angry Angie theme-toggle easter egg#69736
erkamyaman wants to merge 1 commit into
angular:mainfrom
erkamyaman:angie-theme-toggle-easter-egg

Conversation

@erkamyaman

@erkamyaman erkamyaman commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

A little easter egg with Angie: spam the theme toggle 10 times in a row and Angie
has had enough. She pops up big in the middle of the screen, strobes the
page dark/light for a few seconds, then leaves. That's it.

image image
Screen.Recording.2026-07-10.at.21.00.07.mov
Screen.Recording.2026-07-10.at.20.40.53.mov

@angular-robot angular-robot Bot added detected: feature PR contains a feature commit area: docs-infra Angular.dev application and infrastructure labels Jul 10, 2026
@ngbot ngbot Bot modified the milestone: Backlog Jul 10, 2026
@pullapprove pullapprove Bot requested a review from atscott July 10, 2026 18:02
@erkamyaman

erkamyaman commented Jul 10, 2026

Copy link
Copy Markdown
Contributor Author

Because of github's max 10mb video limit, desktop video is not that nice, i had to find a work around to reduce the size without uploading the video anywhere else 😅

@github-actions

github-actions Bot commented Jul 10, 2026

Copy link
Copy Markdown

Deployed adev-preview for 18f8342 to: https://ng-dev-previews-fw--pr-angular-angular-69736-adev-prev-lx3p1kn6.web.app

Note: As new commits are pushed to this pull request, this link is updated after the preview is rebuilt.

Comment thread adev/src/app/core/layout/navigation/navigation.component.ts
Comment thread adev/src/app/core/layout/navigation/navigation.component.spec.ts Outdated
@erkamyaman erkamyaman marked this pull request as draft July 11, 2026 08:32
@erkamyaman erkamyaman force-pushed the angie-theme-toggle-easter-egg branch from 0eecd0b to 794cf5e Compare July 11, 2026 08:37
@erkamyaman

erkamyaman commented Jul 11, 2026

Copy link
Copy Markdown
Contributor Author

@JeanMeche
Moved the whole effect into a lazy injectAsync AngryAngie service, so it's out of the nav bundle and in its own chunk.
I think it is fine now but this question kept me uneased so wanted to bring it up to you.

Q: The tap counting is in the service too, so the chunk loads on the first theme click, not on the 10th (TAP_THRESHOLD). I can move just the counter back to the nav to hold off the load until it actually fires. What do you think? Is it fine as it is now, or should we go with the counter-in-the-nav approach so it only loads when it actually fires?

@erkamyaman erkamyaman marked this pull request as ready for review July 11, 2026 09:12
@erkamyaman erkamyaman requested a review from JeanMeche July 11, 2026 09:13
Comment thread adev/src/app/core/layout/navigation/navigation.component.ts Outdated
Comment thread adev/src/app/core/layout/navigation/navigation.component.ts Outdated
@erkamyaman erkamyaman force-pushed the angie-theme-toggle-easter-egg branch from 794cf5e to f3c0157 Compare July 11, 2026 15:06
@erkamyaman erkamyaman requested a review from JeanMeche July 11, 2026 15:06
Comment thread adev/src/app/core/layout/navigation/navigation.component.html Outdated
@erkamyaman erkamyaman force-pushed the angie-theme-toggle-easter-egg branch from f3c0157 to 18f8342 Compare July 11, 2026 15:31
@erkamyaman erkamyaman requested a review from JeanMeche July 11, 2026 15:32
Comment thread adev/src/app/core/layout/angry-angie/angry-angie.component.ts Outdated
Flipping the navigation theme control 10 times in quick succession
summons an angry Angie. She bursts into the middle of the screen, the
page strobes dark/light while she is up, then she spins back out and the
original theme is restored. The theme button is disabled for the
duration, the strobe is skipped for users who prefer reduced motion, and
all timers are cleared on destroy. Presentation only, scoped to the theme
toggle.
@erkamyaman erkamyaman force-pushed the angie-theme-toggle-easter-egg branch from 18f8342 to 829276d Compare July 11, 2026 15:35
@erkamyaman erkamyaman requested a review from JeanMeche July 11, 2026 15:37
this.document.body.appendChild(this.overlayRef.location.nativeElement);
}

private startStrobe(): void {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Couldn't this be done purely with css ?

@erkamyaman erkamyaman Jul 11, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

At the beginning, I started with the pure css version, strobing the page with backdrop-filter: invert(1) hue-rotate(180deg), and it works, but it looks noticeably worse: it's a raw color inversion of the page rather than the actual designed dark/light themes, so the result comes out flat and off-brand. Since the whole effect is the disco theme-flip, the strobe that toggles the real docs-dark-mode/docs-light-mode works better. But I'm now trying to find another way

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Trying to reproduce that version now, will send a video soon.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Screen.Recording.2026-07-11.at.19.04.05.mov

so something like this, it's not as good as the current approach visually. What do you think?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

image

@erkamyaman erkamyaman requested a review from JeanMeche July 11, 2026 16:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

adev: preview area: docs-infra Angular.dev application and infrastructure detected: feature PR contains a feature commit

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants