diff --git a/app/.vitepress/src/App.vue b/app/.vitepress/src/App.vue
index f026bb88b473eac086b0eff074b7d24f20eef4fc..7550bf33d9bdc2557bd047eafda1650ef268a0d9 100644
--- a/app/.vitepress/src/App.vue
+++ b/app/.vitepress/src/App.vue
@@ -27,6 +27,7 @@ import FloatingButtonEn from '~@/components/FloatingButtonEn.vue';
import CookieNotice from '~@/components/CookieNotice.vue';
import AppTour from '~@/components/AppTour.vue';
+import AppYear from '@/components/AppYear.vue';
import categories from '@/data/common/category';
import { setStoreData } from './shared/login';
@@ -100,6 +101,7 @@ onMounted(() => {
+
diff --git a/app/.vitepress/src/assets/category/year/euler-year-en.png b/app/.vitepress/src/assets/category/year/euler-year-en.png
new file mode 100644
index 0000000000000000000000000000000000000000..d20339a8e57692247d1139eb879811b3ef84d851
Binary files /dev/null and b/app/.vitepress/src/assets/category/year/euler-year-en.png differ
diff --git a/app/.vitepress/src/assets/category/year/euler-year-zh.png b/app/.vitepress/src/assets/category/year/euler-year-zh.png
new file mode 100644
index 0000000000000000000000000000000000000000..8e7ddc1d51dce96a576126e6bb0e1c125063399c
Binary files /dev/null and b/app/.vitepress/src/assets/category/year/euler-year-zh.png differ
diff --git a/app/.vitepress/src/components/AppYear.vue b/app/.vitepress/src/components/AppYear.vue
new file mode 100644
index 0000000000000000000000000000000000000000..c00b05989b6f68aad3e56040e7d3684adfdc7ec0
--- /dev/null
+++ b/app/.vitepress/src/components/AppYear.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
![]()
+
+
+