diff --git a/apps/web/app/components/Markdown.tsx b/apps/web/app/components/Markdown.tsx index 2dc95ef..edec264 100644 --- a/apps/web/app/components/Markdown.tsx +++ b/apps/web/app/components/Markdown.tsx @@ -42,16 +42,16 @@ function PreBlock({ children, ...props }: React.HTMLAttributes) } return ( -
+
{/* Code block header bar */} -
+
-
+
- + {language}
@@ -60,7 +60,7 @@ function PreBlock({ children, ...props }: React.HTMLAttributes) onClick={handleCopy} type="button" aria-label="Copy code to clipboard" - className="flex items-center gap-1.5 text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] bg-[var(--code-button-bg)] hover:bg-[var(--code-button-hover-bg)] px-2.5 py-1 rounded-md border border-[var(--border-code)] transition-all font-sans shadow-xs cursor-pointer" + className="no-print flex items-center gap-1.5 text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] bg-[var(--code-button-bg)] hover:bg-[var(--code-button-hover-bg)] px-2.5 py-1 rounded-md border border-[var(--border-code)] transition-all font-sans shadow-xs cursor-pointer" > {copied ? ( <> @@ -80,7 +80,7 @@ function PreBlock({ children, ...props }: React.HTMLAttributes)
-
+      
         {children}
       
diff --git a/apps/web/app/globals.css b/apps/web/app/globals.css index a005d4d..cfe15d1 100644 --- a/apps/web/app/globals.css +++ b/apps/web/app/globals.css @@ -442,8 +442,9 @@ body { } .avoid-break-inside, - .challenge-header-card, - .badge-container, + .code-block-wrapper, + .code-block-container, + .challenge-entry, table, tr, img, @@ -459,6 +460,32 @@ body { } /* Code block wrapping and styling in print */ + .code-block-wrapper, + .code-block-container { + break-inside: avoid !important; + page-break-inside: avoid !important; + border: 1px solid #cbd5e1 !important; + background-color: #f8fafc !important; + border-radius: 4px !important; + margin: 8pt 0 !important; + overflow: hidden !important; + } + + .code-block-header { + border-bottom: 1px solid #cbd5e1 !important; + background-color: #f1f5f9 !important; + padding: 3pt 8pt !important; + color: #334155 !important; + } + + .code-block-wrapper pre { + border: none !important; + background-color: transparent !important; + padding: 6pt 8pt !important; + margin: 0 !important; + border-radius: 0 !important; + } + pre, pre code, code {