diff --git a/src/lib/cards/TetrisCard/SidebarItemTetrisCard.svelte b/src/lib/cards/TetrisCard/SidebarItemTetrisCard.svelte
new file mode 100644
index 0000000..c4a1e3c
--- /dev/null
+++ b/src/lib/cards/TetrisCard/SidebarItemTetrisCard.svelte
@@ -0,0 +1,25 @@
+
+
+
diff --git a/src/lib/cards/TetrisCard/TetrisCard.svelte b/src/lib/cards/TetrisCard/TetrisCard.svelte
new file mode 100644
index 0000000..328d12b
--- /dev/null
+++ b/src/lib/cards/TetrisCard/TetrisCard.svelte
@@ -0,0 +1,729 @@
+
+
+
+
+
+
+
+ {#if gameState === 'idle' || gameState === 'gameover'}
+
+ {/if}
+
diff --git a/src/lib/cards/TetrisCard/index.ts b/src/lib/cards/TetrisCard/index.ts
new file mode 100644
index 0000000..44cde60
--- /dev/null
+++ b/src/lib/cards/TetrisCard/index.ts
@@ -0,0 +1,18 @@
+import type { CardDefinition } from '../types';
+import TetrisCard from './TetrisCard.svelte';
+import SidebarItemTetrisCard from './SidebarItemTetrisCard.svelte';
+
+export const TetrisCardDefinition = {
+ type: 'tetris',
+ contentComponent: TetrisCard,
+ sidebarComponent: SidebarItemTetrisCard,
+ allowSetColor: true,
+ defaultColor: 'accent',
+ createNew: (card) => {
+ card.w = 4;
+ card.h = 6;
+ card.mobileW = 6;
+ card.mobileH = 8;
+ card.cardData = {};
+ }
+} as CardDefinition & { type: 'tetris' };
diff --git a/src/lib/cards/index.ts b/src/lib/cards/index.ts
index 7dac229..d1571fc 100644
--- a/src/lib/cards/index.ts
+++ b/src/lib/cards/index.ts
@@ -5,6 +5,7 @@ import { BlueskyMediaCardDefinition } from './BlueskyMediaCard';
import { BlueskyPostCardDefinition } from './BlueskyPostCard';
import { DinoGameCardDefinition } from './DinoGameCard';
import { EmbedCardDefinition } from './EmbedCard';
+import { TetrisCardDefinition } from './TetrisCard';
import { ImageCardDefinition } from './ImageCard';
import { LinkCardDefinition } from './LinkCard';
import { LivestreamCardDefitition, LivestreamEmbedCardDefitition } from './LivestreamCard';
@@ -30,7 +31,8 @@ export const AllCardDefinitions = [
ATProtoCollectionsCardDefinition,
SectionCardDefinition,
BlueskyMediaCardDefinition,
- DinoGameCardDefinition
+ DinoGameCardDefinition,
+ TetrisCardDefinition
] as const;
export const CardDefinitionsByType = AllCardDefinitions.reduce(