diff --git a/frontend/src/components/icons/Twitter.vue b/frontend/src/components/icons/Twitter.vue
new file mode 100644
index 0000000..4297404
--- /dev/null
+++ b/frontend/src/components/icons/Twitter.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/frontend/src/components/sidebar/Ribbon.vue b/frontend/src/components/sidebar/Ribbon.vue
index 399cf88..c6cae8e 100644
--- a/frontend/src/components/sidebar/Ribbon.vue
+++ b/frontend/src/components/sidebar/Ribbon.vue
@@ -16,6 +16,7 @@ import useBrowserStore from 'stores/browser.js'
import { useRender } from '@/utils/render.js'
import wechatUrl from '@/assets/images/wechat_official.png'
import QRCode from '@/components/icons/QRCode.vue'
+import Twitter from '@/components/icons/Twitter.vue'
const themeVars = useThemeVars()
const render = useRender()
@@ -173,13 +174,12 @@ const exThemeVars = computed(() => {
@click="openWechatOfficial" />
+ @click="openX" />