diff --git a/packages/frontend/src/components/MkAnnouncementDialog.stories.impl.ts b/packages/frontend/src/components/MkAnnouncementDialog.stories.impl.ts
new file mode 100644
index 0000000000..42cfb90f7c
--- /dev/null
+++ b/packages/frontend/src/components/MkAnnouncementDialog.stories.impl.ts
@@ -0,0 +1,47 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and other misskey contributors
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+/* eslint-disable @typescript-eslint/explicit-function-return-type */
+import { StoryObj } from '@storybook/vue3';
+import MkAnnouncementDialog from './MkAnnouncementDialog.vue';
+export const Default = {
+ render(args) {
+ return {
+ components: {
+ MkAnnouncementDialog,
+ },
+ setup() {
+ return {
+ args,
+ };
+ },
+ computed: {
+ props() {
+ return {
+ ...this.args,
+ };
+ },
+ },
+ template: '',
+ };
+ },
+ args: {
+ announcement: {
+ id: '1',
+ title: 'Title',
+ text: 'Text',
+ createdAt: new Date().toISOString(),
+ updatedAt: null,
+ icon: 'info',
+ imageUrl: null,
+ display: 'dialog',
+ needConfirmationToRead: false,
+ forYou: true,
+ },
+ },
+ parameters: {
+ layout: 'centered',
+ },
+} satisfies StoryObj;