diff --git a/apps/web/src/components/component-code-view.spec.tsx b/apps/web/src/components/component-code-view.spec.tsx
new file mode 100644
index 0000000000..7a8b768149
--- /dev/null
+++ b/apps/web/src/components/component-code-view.spec.tsx
@@ -0,0 +1,61 @@
+import { wrapWithTailwind } from './component-code-view';
+
+const code = `
+
+
+ What's new
+
+
+ Versatile Comfort
+
+
+ Experience ultimate comfort and versatility with our furniture
+ collection, designed to adapt to your ever-changing needs.
+
+
+ Read more
+
+
+
+
+
+`;
+
+test('wrapWithTailwind()', () => {
+ expect(wrapWithTailwind(code)).toMatchInlineSnapshot(`
+ "
+
+
+
+ What's new
+
+
+ Versatile Comfort
+
+
+ Experience ultimate comfort and versatility with our furniture
+ collection, designed to adapt to your ever-changing needs.
+
+
+ Read more
+
+
+
+
+
+
+ "
+ `);
+});
diff --git a/apps/web/src/components/component-code-view.tsx b/apps/web/src/components/component-code-view.tsx
index 6e90043531..154285fa55 100644
--- a/apps/web/src/components/component-code-view.tsx
+++ b/apps/web/src/components/component-code-view.tsx
@@ -15,6 +15,12 @@ import { TabTrigger } from './tab-trigger';
type ReactCodeVariant = Exclude;
+export function wrapWithTailwind(jsx: string) {
+ return `
+${jsx.replaceAll(/[^\n\r]*(\n|\r|\r\n)?/g, (match) => ` ${match}`)}
+`;
+}
+
export function ComponentCodeView({
component,
}: {
@@ -51,6 +57,11 @@ export function ComponentCodeView({
Object.keys(allReactEmailComponents),
);
+ if (selectedReactCodeVariant === 'tailwind') {
+ importsReactEmail.push('Tailwind');
+ code = wrapWithTailwind(code);
+ }
+
let importStatements = '';
if (importsReactEmail.length > 0) {