From 0daa38e07db84f6e4cb11f1ab0711808933d64e9 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 23 May 2026 03:50:17 +0000
Subject: [PATCH 1/3] Initial plan
From cb50886a9d2904637ddad638bb5e66df70b14fbc Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 23 May 2026 03:54:34 +0000
Subject: [PATCH 2/3] Add Improve this Blog Post banner after Giscus comments
on blog post pages
Agent-Logs-Url: https://github.com/recodehive/recode-website/sessions/0fe42d71-75a4-4784-818e-de870d86f1f2
---
src/theme/BlogPostItem/Footer/index.tsx | 73 ++++++++++++
.../BlogPostItem/Footer/styles.module.css | 110 ++++++++++++++++++
2 files changed, 183 insertions(+)
diff --git a/src/theme/BlogPostItem/Footer/index.tsx b/src/theme/BlogPostItem/Footer/index.tsx
index b3adc070..f83a9c48 100644
--- a/src/theme/BlogPostItem/Footer/index.tsx
+++ b/src/theme/BlogPostItem/Footer/index.tsx
@@ -151,6 +151,79 @@ export default function BlogPostItemFooterWrapper(props: Props): JSX.Element {
)}
{isBlogPostPage && }
+ {isBlogPostPage && (
+
+
+
+
Improve this Blog Post
+
+ All our blog posts are open source. Found a typo, want to add more
+ detail, or have a better explanation? Anyone can contribute and
+ make this post better for everyone.
+
+
+ {metadata.editUrl && (
+
+
+
+
+ Edit this Post on GitHub
+
+ )}
+
+
+
+
+
+ Contributing Guidelines
+
+
+
+
+ )}
>
);
}
diff --git a/src/theme/BlogPostItem/Footer/styles.module.css b/src/theme/BlogPostItem/Footer/styles.module.css
index 0af97e82..ee49db37 100644
--- a/src/theme/BlogPostItem/Footer/styles.module.css
+++ b/src/theme/BlogPostItem/Footer/styles.module.css
@@ -145,3 +145,113 @@
font-size: 1.25rem;
}
}
+
+/* Improve this Blog Post banner */
+.improveBanner {
+ width: 100%;
+ margin-top: 2rem;
+ padding: 1.5rem;
+ border-radius: 16px;
+ background: color-mix(in srgb, var(--ifm-color-success-contrast-background, #e6f4f1) 60%, transparent);
+ border: 1px solid color-mix(in srgb, var(--ifm-color-success) 20%, transparent);
+ display: flex;
+ align-items: flex-start;
+ gap: 1.25rem;
+ box-sizing: border-box;
+}
+
+.improveIconWrap {
+ flex-shrink: 0;
+ width: 48px;
+ height: 48px;
+ border-radius: 10px;
+ background: color-mix(in srgb, var(--ifm-color-success) 15%, transparent);
+ display: grid;
+ place-items: center;
+ color: var(--ifm-color-success-dark, #1e7a5c);
+}
+
+.improveContent {
+ min-width: 0;
+ flex: 1;
+}
+
+.improveTitle {
+ margin: 0 0 0.4rem;
+ font-size: 1.15rem;
+ font-weight: 700;
+ line-height: 1.3;
+ color: var(--ifm-font-color-base);
+}
+
+.improveDescription {
+ margin: 0 0 1rem;
+ font-size: 0.95rem;
+ line-height: 1.6;
+ color: var(--ifm-color-emphasis-800);
+}
+
+.improveActions {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.65rem;
+}
+
+.improveEditButton {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.45rem;
+ padding: 0.5rem 1.1rem;
+ border-radius: 8px;
+ background: var(--ifm-color-success-dark, #1a7a5c);
+ color: #fff !important;
+ font-size: 0.9rem;
+ font-weight: 600;
+ text-decoration: none !important;
+ border: none;
+ cursor: pointer;
+ transition: background 0.15s;
+}
+
+.improveEditButton:hover {
+ background: var(--ifm-color-success-darker, #155f47);
+ text-decoration: none !important;
+}
+
+.improveGuidelinesButton {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.45rem;
+ padding: 0.5rem 1.1rem;
+ border-radius: 8px;
+ background: var(--ifm-background-color);
+ color: var(--ifm-font-color-base) !important;
+ font-size: 0.9rem;
+ font-weight: 600;
+ text-decoration: none !important;
+ border: 1px solid var(--ifm-color-emphasis-300);
+ cursor: pointer;
+ transition: background 0.15s, border-color 0.15s;
+}
+
+.improveGuidelinesButton:hover {
+ background: var(--ifm-color-emphasis-100);
+ text-decoration: none !important;
+}
+
+@media (max-width: 640px) {
+ .improveBanner {
+ flex-direction: column;
+ gap: 1rem;
+ padding: 1rem;
+ }
+
+ .improveActions {
+ flex-direction: column;
+ }
+
+ .improveEditButton,
+ .improveGuidelinesButton {
+ justify-content: center;
+ }
+}
From aea40a53a6eb82c6a97aa44eb6e41208ef947663 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 23 May 2026 03:55:29 +0000
Subject: [PATCH 3/3] Address code review: use h3 for banner title and add CSS
fallbacks for color-mix
Agent-Logs-Url: https://github.com/recodehive/recode-website/sessions/0fe42d71-75a4-4784-818e-de870d86f1f2
---
src/theme/BlogPostItem/Footer/index.tsx | 2 +-
src/theme/BlogPostItem/Footer/styles.module.css | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/theme/BlogPostItem/Footer/index.tsx b/src/theme/BlogPostItem/Footer/index.tsx
index f83a9c48..c406289c 100644
--- a/src/theme/BlogPostItem/Footer/index.tsx
+++ b/src/theme/BlogPostItem/Footer/index.tsx
@@ -170,7 +170,7 @@ export default function BlogPostItemFooterWrapper(props: Props): JSX.Element {
-
Improve this Blog Post
+
Improve this Blog Post
All our blog posts are open source. Found a typo, want to add more
detail, or have a better explanation? Anyone can contribute and
diff --git a/src/theme/BlogPostItem/Footer/styles.module.css b/src/theme/BlogPostItem/Footer/styles.module.css
index ee49db37..3b1021b0 100644
--- a/src/theme/BlogPostItem/Footer/styles.module.css
+++ b/src/theme/BlogPostItem/Footer/styles.module.css
@@ -152,7 +152,9 @@
margin-top: 2rem;
padding: 1.5rem;
border-radius: 16px;
+ background: #e6f4f1;
background: color-mix(in srgb, var(--ifm-color-success-contrast-background, #e6f4f1) 60%, transparent);
+ border: 1px solid rgba(26, 122, 92, 0.2);
border: 1px solid color-mix(in srgb, var(--ifm-color-success) 20%, transparent);
display: flex;
align-items: flex-start;
@@ -165,6 +167,7 @@
width: 48px;
height: 48px;
border-radius: 10px;
+ background: rgba(26, 122, 92, 0.15);
background: color-mix(in srgb, var(--ifm-color-success) 15%, transparent);
display: grid;
place-items: center;
@@ -182,6 +185,7 @@
font-weight: 700;
line-height: 1.3;
color: var(--ifm-font-color-base);
+ letter-spacing: -0.01em;
}
.improveDescription {