diff --git a/src/components/CodeBlock/CodeBlock.jsx b/src/components/CodeBlock/CodeBlock.jsx
new file mode 100644
index 000000000000..ceb6cfdeaeec
--- /dev/null
+++ b/src/components/CodeBlock/CodeBlock.jsx
@@ -0,0 +1,65 @@
+import { useState } from 'react';
+import PropTypes from 'prop-types';
+
+function CopyButton({ text }) {
+  const [copied, setCopied] = useState(false);
+
+  const handleCopy = () => {
+    navigator.clipboard.writeText(text).then(() => {
+      setCopied(true);
+      setTimeout(() => setCopied(false), 2000);
+    });
+  };
+
+  const buttonStyle = {
+    position: 'absolute',
+    top: '0.5rem',
+    right: '0.5rem',
+    backgroundColor: '#e5e7eb',
+    fontSize: '0.875rem',
+    padding: '0.25rem 0.5rem',
+    borderRadius: '0.25rem',
+    cursor: 'pointer',
+    transition: 'background-color 0.3s ease',
+  };
+
+  const handleMouseOver = (e) => {
+    e.target.style.backgroundColor = '#d1d5db';
+  };
+
+  const handleMouseOut = (e) => {
+    e.target.style.backgroundColor = '#e5e7eb';
+  };
+
+  return (
+    <button
+      className="copy-button"
+      style={buttonStyle}
+      onClick={handleCopy}
+      onMouseOver={handleMouseOver}
+      onMouseOut={handleMouseOut}
+    >
+      {copied ? 'Copied!' : 'Copy'}
+    </button>
+  );
+}
+CopyButton.propTypes = {
+  text: PropTypes.string.isRequired,
+};
+
+//integrating the CopyButton component into the CodeBlock component
+
+export default function CodeBlock({ children }) {
+  const codeText = children?.props?.children?.toString() || '';
+
+  return (
+    <div style={{ position: 'relative' }}>
+      <CopyButton text={codeText} />
+      <pre>{children}</pre>
+    </div>
+  );
+}
+
+CodeBlock.propTypes = {
+  children: PropTypes.node.isRequired,
+};
diff --git a/src/components/Page/Page.jsx b/src/components/Page/Page.jsx
index da6e72f32620..0291643da414 100644
--- a/src/components/Page/Page.jsx
+++ b/src/components/Page/Page.jsx
@@ -2,6 +2,7 @@
 import { useEffect, useState } from 'react';
 import PropTypes from 'prop-types';
 import { useLocation } from 'react-router-dom';
+import { MDXProvider } from '@mdx-js/react';
 
 // Import Components
 import PageLinks from '../PageLinks/PageLinks';
@@ -9,10 +10,14 @@ import Markdown from '../Markdown/Markdown';
 import Contributors from '../Contributors/Contributors';
 import { PlaceholderString } from '../Placeholder/Placeholder';
 import AdjacentPages from './AdjacentPages';
+import CodeBlock from '../CodeBlock/CodeBlock';
 
 // Load Styling
 import './Page.scss';
 import Link from '../Link/Link';
+
+const components = { pre: CodeBlock };
+
 export default function Page(props) {
   const {
     title,
@@ -113,7 +118,9 @@ export default function Page(props) {
           </div>
         ) : null}
 
-        <div id="md-content">{contentRender}</div>
+        <MDXProvider components={components}>
+          <div id="md-content">{contentRender}</div>
+        </MDXProvider>
 
         {loadRelated && (
           <div className="print:hidden">