diff --git a/app/client/packages/design-system/widgets/src/components/CodeBlock/index.ts b/app/client/packages/design-system/widgets/src/components/CodeBlock/index.ts
new file mode 100644
index 0000000000..e910bb060c
--- /dev/null
+++ b/app/client/packages/design-system/widgets/src/components/CodeBlock/index.ts
@@ -0,0 +1 @@
+export * from "./src/index";
diff --git a/app/client/packages/design-system/widgets/src/components/CodeBlock/src/CodeBlock.tsx b/app/client/packages/design-system/widgets/src/components/CodeBlock/src/CodeBlock.tsx
new file mode 100644
index 0000000000..951e6d9e26
--- /dev/null
+++ b/app/client/packages/design-system/widgets/src/components/CodeBlock/src/CodeBlock.tsx
@@ -0,0 +1,23 @@
+import React from "react";
+import SyntaxHighlighter from "react-syntax-highlighter";
+import type { SyntaxHighlighterProps } from "react-syntax-highlighter";
+import {
+ atomOneDark as darkTheme,
+ lightfair as lightTheme,
+} from "react-syntax-highlighter/dist/cjs/styles/hljs";
+import { getTypographyClassName, useThemeContext } from "@appsmith/wds-theming";
+
+export const CodeBlock = (props: SyntaxHighlighterProps) => {
+ const theme = useThemeContext();
+
+ return (
+
+ {props.children}
+
+ );
+};
diff --git a/app/client/packages/design-system/widgets/src/components/CodeBlock/src/index.ts b/app/client/packages/design-system/widgets/src/components/CodeBlock/src/index.ts
new file mode 100644
index 0000000000..ca111193d8
--- /dev/null
+++ b/app/client/packages/design-system/widgets/src/components/CodeBlock/src/index.ts
@@ -0,0 +1 @@
+export * from "./CodeBlock";
diff --git a/app/client/packages/design-system/widgets/src/components/CodeBlock/stories/CodeBlock.stories.tsx b/app/client/packages/design-system/widgets/src/components/CodeBlock/stories/CodeBlock.stories.tsx
new file mode 100644
index 0000000000..3aa0343d1f
--- /dev/null
+++ b/app/client/packages/design-system/widgets/src/components/CodeBlock/stories/CodeBlock.stories.tsx
@@ -0,0 +1,33 @@
+import React from "react";
+import type { Meta, StoryObj } from "@storybook/react";
+import { CodeBlock } from "@appsmith/wds";
+
+/**
+ * CodeBlock is a component that displays a code block.
+ */
+const meta: Meta = {
+ component: CodeBlock,
+ title: "WDS/Widgets/Code Block",
+};
+
+export default meta;
+type Story = StoryObj;
+
+export const Main: Story = {
+ args: {
+ code: "{ test: 123 }",
+ language: "json",
+ },
+};
+
+/**
+ * The code block can render any code and will format based on the language
+ *
+ */
+export const Sizes: Story = {
+ render: (props) => (
+
+ {props.code}
+
+ ),
+};
diff --git a/app/client/packages/design-system/widgets/src/index.ts b/app/client/packages/design-system/widgets/src/index.ts
index 0c5c63f8d1..1610a8c782 100644
--- a/app/client/packages/design-system/widgets/src/index.ts
+++ b/app/client/packages/design-system/widgets/src/index.ts
@@ -36,6 +36,7 @@ export * from "./components/Calendar";
export * from "./components/Datepicker";
export * from "./components/TimeField";
export * from "./components/MultiSelect";
+export * from "./components/CodeBlock";
export * from "./utils";
export * from "./hooks";