This is an automated email from the ASF dual-hosted git repository.

kaxilnaik pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow-site.git


The following commit(s) were added to refs/heads/main by this push:
     new 82cc9b16e5 Improve dark mode UI/UX contrast and design (#1333)
82cc9b16e5 is described below

commit 82cc9b16e5d63c18183738e6a812ed6712dc5e2b
Author: Kaxil Naik <[email protected]>
AuthorDate: Wed Dec 17 21:16:43 2025 +0000

    Improve dark mode UI/UX contrast and design (#1333)
    
    - Fixed low contrast on Homepage Principles and Features sections.
    - Improved Blog list and post page header visibility.
    - Fixed code block background and syntax highlighting in dark mode 
(github-dark).
    - Improved card design and text contrast on Meetups and Community pages.
    - Leveraged Bootstrap 5.3+ color mode variables for consistency.
    - Fixed linting errors (descending specificity and import placement).
---
 landing-pages/site/assets/scss/_base-layout.scss   | 11 +++++
 landing-pages/site/assets/scss/_blog-page.scss     |  6 ++-
 landing-pages/site/assets/scss/_buttons.scss       | 54 ++++++++++++++++------
 .../site/assets/scss/_community-page.scss          | 19 ++++++--
 landing-pages/site/assets/scss/_feature.scss       | 11 +++++
 landing-pages/site/assets/scss/_highlights.scss    | 24 ++++++++++
 landing-pages/site/assets/scss/_list-boxes.scss    | 32 +++++++++++++
 .../site/assets/scss/_markdown-content.scss        | 43 ++++++++++++++++-
 .../site/assets/scss/_text-with-icon.scss          | 11 +++++
 9 files changed, 193 insertions(+), 18 deletions(-)

diff --git a/landing-pages/site/assets/scss/_base-layout.scss 
b/landing-pages/site/assets/scss/_base-layout.scss
index 953e79c4b0..77472b42fc 100644
--- a/landing-pages/site/assets/scss/_base-layout.scss
+++ b/landing-pages/site/assets/scss/_base-layout.scss
@@ -114,6 +114,17 @@
   }
 }
 
+[data-bs-theme="dark"] {
+  .page-header,
+  .section-header {
+    color: var(--bs-emphasis-color);
+  }
+
+  .page-subtitle {
+    color: var(--bs-secondary-color);
+  }
+}
+
 .container {
   margin-top: 44px;
   max-width: 1200px;
diff --git a/landing-pages/site/assets/scss/_blog-page.scss 
b/landing-pages/site/assets/scss/_blog-page.scss
index 53296f0e27..8756f72c23 100644
--- a/landing-pages/site/assets/scss/_blog-page.scss
+++ b/landing-pages/site/assets/scss/_blog-page.scss
@@ -184,7 +184,7 @@
 
   .tag {
     color: var(--bs-link-color);
-    background-color: var(--bs-link-color-rgb, 104, 210, 254, 0.15);
+    background-color: rgba(var(--bs-link-color-rgb), 0.15);
 
     &.active, &:hover {
       background-color: var(--bs-link-color);
@@ -196,3 +196,7 @@
     color: var(--bs-link-color);
   }
 }
+
+[data-bs-theme="dark"] .blog-pager h5 {
+  color: var(--bs-emphasis-color);
+}
diff --git a/landing-pages/site/assets/scss/_buttons.scss 
b/landing-pages/site/assets/scss/_buttons.scss
index 0b08c1e283..0b734d850d 100644
--- a/landing-pages/site/assets/scss/_buttons.scss
+++ b/landing-pages/site/assets/scss/_buttons.scss
@@ -61,10 +61,34 @@ button {
   &.btn-hollow {
     background-color: map_get($colors, white);
 
+    &.btn-brown {
+      border-color: map_get($colors, very-light-pink);
+
+      &:hover {
+        background-color: map_get($colors, greyish-brown);
+        border-color: map_get($colors, greyish-brown);
+
+        span {
+          color: map_get($colors, white);
+        }
+
+        svg {
+          path {
+            fill: map_get($colors, white);
+          }
+        }
+      }
+    }
+
     &.btn-blue {
       color: map_get($colors, cerulean-blue);
       border-color: map_get($colors, cerulean-blue);
 
+      [data-bs-theme="dark"] & {
+        color: var(--bs-link-color);
+        border-color: var(--bs-link-color);
+      }
+
       &:disabled {
         color: map_get($colors, very-light-pink);
         border-color: map_get($colors, very-light-pink);
@@ -73,29 +97,33 @@ button {
       &:hover:enabled {
         color: map_get($colors, white);
         background-color: map_get($colors, cerulean-blue);
+
+        [data-bs-theme="dark"] & {
+          background-color: var(--bs-link-color);
+          color: var(--bs-body-bg);
+        }
       }
     }
+  }
+
+  [data-bs-theme="dark"] &.btn-hollow {
+    background-color: transparent;
 
     &.btn-brown {
-      border-color: map_get($colors, very-light-pink);
+      border-color: rgba(255, 255, 255, 0.2);
 
       &:hover {
-        background-color: map_get($colors, greyish-brown);
-        border-color: map_get($colors, greyish-brown);
-
-        span {
-          color: map_get($colors, white);
-        }
-
-        svg {
-          path {
-            fill: map_get($colors, white);
-          }
-        }
+        background-color: rgba(255, 255, 255, 0.1);
+        border-color: rgba(255, 255, 255, 0.3);
       }
     }
   }
 
+  [data-bs-theme="dark"] &.btn-filled.btn-blue:hover {
+    background-color: var(--bs-link-hover-color);
+    border-color: var(--bs-link-hover-color);
+  }
+
   &.with-box-shadow {
     box-shadow: 0 2px 6px 0 rgba(0, 0, 0, .12);
   }
diff --git a/landing-pages/site/assets/scss/_community-page.scss 
b/landing-pages/site/assets/scss/_community-page.scss
index 81af6199ca..f27eb24096 100644
--- a/landing-pages/site/assets/scss/_community-page.scss
+++ b/landing-pages/site/assets/scss/_community-page.scss
@@ -228,6 +228,19 @@
    justify-content: flex-end;
  }
 
- .roadmap .wy-nav-side-toc {
-   top: 263px !important;
- }
+.roadmap .wy-nav-side-toc {
+  top: 263px !important;
+}
+
+[data-bs-theme="dark"] {
+  .community--header-join,
+  .community--header-persona,
+  .community--committers-header,
+  .community--resources-header {
+    color: var(--bs-emphasis-color);
+  }
+
+  .community--accordion-container .dev-list {
+    color: var(--bs-body-color);
+  }
+}
diff --git a/landing-pages/site/assets/scss/_feature.scss 
b/landing-pages/site/assets/scss/_feature.scss
index 1948c0fe3e..abe8812927 100644
--- a/landing-pages/site/assets/scss/_feature.scss
+++ b/landing-pages/site/assets/scss/_feature.scss
@@ -106,3 +106,14 @@
     }
   }
 }
+
+[data-bs-theme="dark"] {
+  .feature-item {
+    &--header {
+      color: var(--bs-emphasis-color);
+    }
+    &--text {
+      color: var(--bs-body-color);
+    }
+  }
+}
diff --git a/landing-pages/site/assets/scss/_highlights.scss 
b/landing-pages/site/assets/scss/_highlights.scss
index c651ba6ebf..f631b46308 100644
--- a/landing-pages/site/assets/scss/_highlights.scss
+++ b/landing-pages/site/assets/scss/_highlights.scss
@@ -17,6 +17,7 @@
  * under the License.
  */
 @import "colors";
+@import "pygments/dark";
 
 .chroma, .highlight {
   background-color: #ffffff;
@@ -94,3 +95,26 @@ pre {
     @extend .monotext--brownish-grey;
   }
 }
+
+[data-bs-theme="dark"] {
+  .chroma, .highlight {
+    background-color: #0d1117;
+
+    .hl {
+      background-color: #6e7681;
+    }
+
+    .lnt, .ln {
+      color: #6e7681;
+    }
+  }
+
+  pre {
+    background-color: #0d1117;
+    border-color: rgba(255, 255, 255, 0.1);
+
+    span {
+      color: #E6EDF3;
+    }
+  }
+}
diff --git a/landing-pages/site/assets/scss/_list-boxes.scss 
b/landing-pages/site/assets/scss/_list-boxes.scss
index 4ba892808e..5040422c46 100644
--- a/landing-pages/site/assets/scss/_list-boxes.scss
+++ b/landing-pages/site/assets/scss/_list-boxes.scss
@@ -67,6 +67,11 @@ $card-margin: 20px;
   height: 100%;
 }
 
+[data-bs-theme="dark"] .card {
+  background: rgba(255, 255, 255, 0.03);
+  border: 1px solid rgba(255, 255, 255, 0.1);
+}
+
 .box-event {
   display: flex;
   flex-direction: column;
@@ -283,6 +288,33 @@ $card-margin: 20px;
   }
 }
 
+[data-bs-theme="dark"] {
+  .box-event {
+    &__blogpost {
+      &--header {
+        color: var(--bs-emphasis-color);
+      }
+      &--description, &--date {
+        color: var(--bs-secondary-color);
+      }
+    }
+    &__committer--nick {
+      color: var(--bs-emphasis-color);
+    }
+    &__meetup--members {
+      color: var(--bs-secondary-color);
+    }
+    &__integration--name {
+      color: var(--bs-emphasis-color);
+    }
+    &__case-study--quote,
+    &__use-cases--usecasedescription,
+    &__use-cases--testimonial--quote {
+      color: var(--bs-body-color);
+    }
+  }
+}
+
 @media (max-width: $mobile) {
   .box-event {
     &__blogpost {
diff --git a/landing-pages/site/assets/scss/_markdown-content.scss 
b/landing-pages/site/assets/scss/_markdown-content.scss
index 81952438a5..1e0d3b0b02 100644
--- a/landing-pages/site/assets/scss/_markdown-content.scss
+++ b/landing-pages/site/assets/scss/_markdown-content.scss
@@ -17,6 +17,8 @@
  * under the License.
  */
 
+@import "pygments/dark";
+
 .markdown-content {
   h1, h2, h3, h4, h5 {
     @extend .subtitle__large--greyish-brown;
@@ -43,7 +45,7 @@
     width: 100%;
   }
 
- th {
+  th {
     background: #ccc;
   }
 
@@ -64,3 +66,42 @@
     color: #707070;
   }
 }
+
+[data-bs-theme="dark"] .markdown-content {
+  h1, h2, h3, h4, h5 {
+    color: var(--bs-emphasis-color);
+  }
+
+  p, span, li {
+    color: var(--bs-body-color);
+  }
+
+  th {
+    background: var(--bs-tertiary-bg);
+  }
+
+  th, td {
+    border-color: var(--bs-border-color);
+  }
+
+  tr:nth-child(even) {
+    background: rgba(255, 255, 255, 0.02);
+  }
+
+  tr:hover {
+    background: rgba(255, 255, 255, 0.05);
+  }
+
+  .chroma, .highlight {
+    background-color: #0d1117 !important;
+  }
+
+  pre {
+    background-color: #0d1117 !important;
+    border-color: rgba(255, 255, 255, 0.1);
+
+    span {
+      color: #E6EDF3;
+    }
+  }
+}
diff --git a/landing-pages/site/assets/scss/_text-with-icon.scss 
b/landing-pages/site/assets/scss/_text-with-icon.scss
index 8536402147..669510207c 100644
--- a/landing-pages/site/assets/scss/_text-with-icon.scss
+++ b/landing-pages/site/assets/scss/_text-with-icon.scss
@@ -50,6 +50,17 @@
   }
 }
 
+[data-bs-theme="dark"] {
+  .text-with-icon-item {
+    &--header {
+      color: var(--bs-emphasis-color, #ffffff);
+    }
+    &--text {
+      color: var(--bs-body-color, #dee2e6);
+    }
+  }
+}
+
 @media (min-width: $fullhd) {
   .text-with-icon-list {
     max-width: unset;

Reply via email to