diff --git a/app/components/Noodle/Emoji/Logo.vue b/app/components/Noodle/Emoji/Logo.vue
new file mode 100644
index 0000000000..2e7e7a6b62
--- /dev/null
+++ b/app/components/Noodle/Emoji/Logo.vue
@@ -0,0 +1,13 @@
+
+
+
+ World Emoji Day
+
+
+
+
diff --git a/app/components/Noodle/index.ts b/app/components/Noodle/index.ts
index 7bfd792578..e85c69d0e9 100644
--- a/app/components/Noodle/index.ts
+++ b/app/components/Noodle/index.ts
@@ -1,5 +1,6 @@
import type { Component } from 'vue'
import NoodleArtemisLogo from './Artemis/Logo.vue'
+import NoodleEmojiLogo from './Emoji/Logo.vue'
import NoodleKawaiiLogo from './Kawaii/Logo.vue'
import NoodleNodejsLogo from './Nodejs/Logo.vue'
import NoodlePressLogo from './Press/Logo.vue'
@@ -64,6 +65,13 @@ export const ACTIVE_NOODLES: Noodle[] = [
dateTo: '2026-07-01',
timezone: 'auto',
},
+ {
+ key: 'emoji',
+ logo: NoodleEmojiLogo,
+ date: '2026-07-17',
+ dateTo: '2026-07-17',
+ timezone: 'auto',
+ },
]
// Logo registry for the /noodles archive, keyed by the entry's `key` in
@@ -74,6 +82,7 @@ const NOODLE_LOGOS: Record = {
'kawaii': NoodleKawaiiLogo,
'transgender-visibility-day': NoodleTransgenderVisibilityLogo,
'artemis': NoodleArtemisLogo,
+ 'emoji': NoodleEmojiLogo,
'nodejs': NoodleNodejsLogo,
'pride-1': NoodlePride1Logo,
'tetris': NoodleTetrisLogo,
diff --git a/app/noodles.ts b/app/noodles.ts
index 5a376d9bb9..6bf2ecc0d8 100644
--- a/app/noodles.ts
+++ b/app/noodles.ts
@@ -6,6 +6,7 @@ import type { Noodle } from '#shared/schemas/noodle'
const ALEX = { name: 'Alex Savelyev', blueskyHandle: 'alexdln.com' }
const ALFON = { name: 'Alfon', blueskyHandle: 'alfon.dev' }
const GRAPHIEROS = { name: 'Graphieros', blueskyHandle: 'graphieros.npmx.social' }
+const FELIX = { name: 'Felix Schneider', blueskyHandle: 'felixs.dev' }
const entries: Noodle[] = [
{
@@ -133,6 +134,23 @@ const entries: Noodle[] = [
},
],
},
+ {
+ key: 'emoji',
+ title: 'World Emoji Day',
+ slug: 'emoji',
+ date: '2026-07-17',
+ dateTo: '2026-07-17',
+ timezone: 'auto',
+ tagline: false,
+ occasion: '📅🌍🚀💬🥳✨',
+ prUrl: 'https://github.com/npmx-dev/npmx.dev/pull/3029',
+ authors: [FELIX],
+ posterImage: '/extra/emoji.png',
+ references: [
+ { label: 'World Emoji Day Website', url: 'https://worldemojiday.com/' },
+ { label: 'Wikipedia', url: 'https://en.wikipedia.org/wiki/World_Emoji_Day' },
+ ],
+ },
]
export const noodles: Noodle[] = [...entries].sort(
diff --git a/public/extra/emoji.png b/public/extra/emoji.png
new file mode 100644
index 0000000000..7aae55b7d8
Binary files /dev/null and b/public/extra/emoji.png differ
diff --git a/test/nuxt/a11y.spec.ts b/test/nuxt/a11y.spec.ts
index a44ef8acf2..aa515a8d43 100644
--- a/test/nuxt/a11y.spec.ts
+++ b/test/nuxt/a11y.spec.ts
@@ -159,6 +159,7 @@ import {
ButtonBase,
LandingIntroHeader,
NoodleArtemisLogo,
+ NoodleEmojiLogo,
NoodleKawaiiLogo,
NoodleTransgenderVisibilityLogo,
NoodleListCard,
@@ -412,6 +413,12 @@ describe('component accessibility audits', () => {
expect(results.violations).toEqual([])
})
+ it('should have no accessibility violations', async () => {
+ const component = await mountSuspended(NoodleEmojiLogo)
+ const results = await runAxe(component)
+ expect(results.violations).toEqual([])
+ })
+
it('should have no accessibility violations', async () => {
const component = await mountSuspended(NoodlePride1Logo)
const results = await runAxe(component)