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

rfellows pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new c6f1d771e8 [NIFI-12698] dark mode, [NIFI-12687] status history axis 
label fix (#8320)
c6f1d771e8 is described below

commit c6f1d771e8af96453382e6f7e1cbef0280f153ba
Author: Scott Aslan <scottyas...@users.noreply.github.com>
AuthorDate: Thu Feb 1 16:59:43 2024 -0500

    [NIFI-12698] dark mode, [NIFI-12687] status history axis label fix (#8320)
    
    * [NIFI-12698] dark mode, [NIFI-12687] status history axis label fix
    
    * prettier
    
    * lint fix
    
    * update input form field styles to support dark mode
    
    * adjust colors of flow status icons, and PG status icons, and softened the 
warn palette. Fix background of status history charts in dark mode
    
    * fix provenance text color in dark mode
    
    * leave the toggle for dark mode always visible to encourage testing
    
    This closes #8320
---
 .../src/main/nifi/.prettierignore                  |   1 +
 .../main/nifi/src/app/_app.component-theme.scss    |   2 +-
 .../feature/_access-policies.component-theme.scss  |   2 +-
 ...dd-tenant-to-policy-dialog.component-theme.scss |   2 +-
 ..._component-access-policies.component-theme.scss |   6 +-
 .../feature/_bulletins.component-theme.scss        |   2 +-
 .../_bulletin-board-list.component-theme.scss      |   2 +-
 .../feature/_counters.component-theme.scss         |   2 +-
 .../ui/canvas/_canvas.component-theme.scss         |   2 +-
 .../ui/canvas/footer/_footer.component-theme.scss  |   2 +-
 .../_navigation-control.component-theme.scss       |   2 +-
 .../birdseye/_birdseye.component-theme.scss        |   2 +-
 .../_operation-control.component-theme.scss        |   6 +-
 .../ui/canvas/header/_header.component-theme.scss  |   2 +-
 .../flow-status/_flow-status.component-theme.scss  |   2 +-
 .../_new-canvas-item.component-theme.scss          |   2 +-
 .../header/search/_search.component-theme.scss     |   8 +-
 .../ui/canvas/header/search/search.component.html  |   3 +-
 .../ui/canvas/header/search/search.component.ts    |  14 +-
 .../_prioritizers.component-theme.scss             |   2 +-
 .../_create-process-group.component-theme.scss     |   2 +-
 .../ui/common/banner/_banner.component-theme.scss  |   2 +-
 .../_controller-services.component-theme.scss      |   2 +-
 .../login/feature/_login.component-theme.scss      |   2 +-
 .../ui/login-form/_login-form.component-theme.scss |   2 +-
 .../_parameter-contexts.component-theme.scss       |   2 +-
 ...ameter-context-inheritance.component-theme.scss |   2 +-
 .../feature/_provenance.component-theme.scss       |   2 +-
 .../_provenance-event-table.component-theme.scss   |   2 +-
 .../lineage/_lineage.component-theme.scss          |   8 +-
 .../_flowfile-dialog.component-theme.scss          |   2 +-
 .../_flowfile-table.component-theme.scss           |   2 +-
 .../feature/_settings.component-theme.scss         |   2 +-
 .../summary/feature/_summary.component-theme.scss  |   2 +-
 .../users/feature/_users.component-theme.scss      |   2 +-
 .../_context-menu.component-theme.scss             |   2 +-
 .../_extension-creation.component-theme.scss       |   2 +-
 .../extension-creation.component.html              |  14 +-
 .../extension-creation.component.ts                |   8 +-
 .../navigation/_navigation.component-theme.scss    |   5 +-
 .../ui/common/navigation/navigation.component.html |   1 +
 .../ui/common/navigation/navigation.component.ts   |  29 +-
 .../nf-editor/_nf-editor.component-theme.scss      |   7 +-
 .../_provenance-event-dialog.component-theme.scss  |   2 +-
 .../resizable/_resizable.component-theme.scss      |   2 +-
 .../_status-history.component-theme.scss           |  17 +-
 .../status-history/status-history.component.scss   |   6 +-
 ..._system-diagnostics-dialog.component-theme.scss |   2 +-
 .../_property-hint-tip.component-theme.scss        |   2 +-
 .../src/assets/styles/_listing-table-theme.scss    |   2 +-
 .../src/main/nifi/src/assets/themes/nifi.scss      | 197 +++++++++-
 .../src/main/nifi/src/assets/themes/purple.scss    | 194 +++++++++-
 .../src/main/nifi/src/styles.scss                  | 415 +++++++++++++--------
 53 files changed, 767 insertions(+), 242 deletions(-)

diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/.prettierignore
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/.prettierignore
index 4e65d169f6..0ea8adf100 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/.prettierignore
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/.prettierignore
@@ -33,6 +33,7 @@ npm-debug.log
 
 # Theme
 src/assets/themes/*
+src/styles.scss
 
 # System files
 .DS_Store
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/_app.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/_app.component-theme.scss
index 481c26f374..3afc567f46 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/_app.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/_app.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($theme) {
+@mixin nifi-theme($theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/access-policies/feature/_access-policies.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/access-policies/feature/_access-policies.component-theme.scss
index c4bcb2b1fc..4cbbf1465a 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/access-policies/feature/_access-policies.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/access-policies/feature/_access-policies.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($theme) {
+@mixin nifi-theme($theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/access-policies/ui/common/add-tenant-to-policy-dialog/_add-tenant-to-policy-dialog.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/access-policies/ui/common/add-tenant-to-policy-dialog/_add-tenant-to-policy-dialog.component-theme.scss
index 967468396d..09cdf1c0b0 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/access-policies/ui/common/add-tenant-to-policy-dialog/_add-tenant-to-policy-dialog.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/access-policies/ui/common/add-tenant-to-policy-dialog/_add-tenant-to-policy-dialog.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($theme) {
+@mixin nifi-theme($theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/access-policies/ui/component-access-policies/_component-access-policies.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/access-policies/ui/component-access-policies/_component-access-policies.component-theme.scss
index 8bc5df1089..0878ecc65d 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/access-policies/ui/component-access-policies/_component-access-policies.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/access-policies/ui/component-access-policies/_component-access-policies.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
@@ -29,7 +29,7 @@
     $canvas-primary-palette: map.get($canvas-color-config, 'primary');
 
     // Get hues from palette
-    $primary-palette-500: mat.get-color-from-palette($primary-palette, 500);
+    $primary-palette-700: mat.get-color-from-palette($primary-palette, 700);
     $warn-palette-A200: mat.get-color-from-palette($warn-palette, 'A200');
     $canvas-primary-palette-A200: 
mat.get-color-from-palette($canvas-primary-palette, 'A200');
 
@@ -45,7 +45,7 @@
         }
 
         .operation-context-type {
-            color: $primary-palette-500;
+            color: $primary-palette-700;
         }
     }
 }
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/bulletins/feature/_bulletins.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/bulletins/feature/_bulletins.component-theme.scss
index 0b19e9ab10..572454e253 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/bulletins/feature/_bulletins.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/bulletins/feature/_bulletins.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($theme) {
+@mixin nifi-theme($theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/bulletins/ui/bulletin-board/bulletin-board-list/_bulletin-board-list.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/bulletins/ui/bulletin-board/bulletin-board-list/_bulletin-board-list.component-theme.scss
index 828f553011..3e8f1351d6 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/bulletins/ui/bulletin-board/bulletin-board-list/_bulletin-board-list.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/bulletins/ui/bulletin-board/bulletin-board-list/_bulletin-board-list.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/counters/feature/_counters.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/counters/feature/_counters.component-theme.scss
index eeb6b3007a..d1954ee3dd 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/counters/feature/_counters.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/counters/feature/_counters.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($theme) {
+@mixin nifi-theme($theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/_canvas.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/_canvas.component-theme.scss
index b2e8a3f504..0d585b4739 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/_canvas.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/_canvas.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/footer/_footer.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/footer/_footer.component-theme.scss
index 89a28a5954..6a05d243b6 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/footer/_footer.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/footer/_footer.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/graph-controls/navigation-control/_navigation-control.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/graph-controls/navigation-control/_navigation-control.component-theme.scss
index 2cfa7d3611..c9427ca039 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/graph-controls/navigation-control/_navigation-control.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/graph-controls/navigation-control/_navigation-control.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/graph-controls/navigation-control/birdseye/_birdseye.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/graph-controls/navigation-control/birdseye/_birdseye.component-theme.scss
index 8c9a2d00a4..20cdc01579 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/graph-controls/navigation-control/birdseye/_birdseye.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/graph-controls/navigation-control/birdseye/_birdseye.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/graph-controls/operation-control/_operation-control.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/graph-controls/operation-control/_operation-control.component-theme.scss
index 415f986302..511f397412 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/graph-controls/operation-control/_operation-control.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/graph-controls/operation-control/_operation-control.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
@@ -31,7 +31,7 @@
     // Get hues from palette
     $primary-palette-100: mat.get-color-from-palette($primary-palette, 100);
     $primary-palette-300: mat.get-color-from-palette($primary-palette, 300);
-    $primary-palette-500: mat.get-color-from-palette($primary-palette, 500);
+    $primary-palette-700: mat.get-color-from-palette($primary-palette, 700);
     $primary-palette-A400: mat.get-color-from-palette($primary-palette, 
'A400');
     $warn-palette-A200: mat.get-color-from-palette($warn-palette, 'A200');
     $warn-palette-A400: mat.get-color-from-palette($warn-palette, 'A400');
@@ -73,7 +73,7 @@
         }
 
         .operation-context-type {
-            color: $primary-palette-500;
+            color: $primary-palette-700;
         }
     }
 }
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/_header.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/_header.component-theme.scss
index 37879e3660..e22bb1e8ff 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/_header.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/_header.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($canvas-theme) {
+@mixin nifi-theme($canvas-theme) {
     // Get the color config from the theme.
     $canvas-color-config: mat.get-color-config($canvas-theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/flow-status/_flow-status.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/flow-status/_flow-status.component-theme.scss
index 8d098c93c3..5289d0e53d 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/flow-status/_flow-status.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/flow-status/_flow-status.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/new-canvas-item/_new-canvas-item.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/new-canvas-item/_new-canvas-item.component-theme.scss
index 242dc8d037..7c86b143fd 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/new-canvas-item/_new-canvas-item.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/new-canvas-item/_new-canvas-item.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/_search.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/_search.component-theme.scss
index 1d1c67a2c5..ff73df19fe 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/_search.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/_search.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
@@ -32,6 +32,7 @@
     $canvas-primary-palette-900: 
mat.get-color-from-palette($canvas-primary-palette, 900);
     $canvas-primary-palette-A200: 
mat.get-color-from-palette($canvas-primary-palette, 'A200');
     $canvas-primary-palette-A700: 
mat.get-color-from-palette($canvas-primary-palette, 'A700');
+    $canvas-primary-palette-contrast-300: 
mat.get-color-from-palette($canvas-primary-palette, 'contrast-300');
 
     .search-container {
         border-left: 1px solid $primary-palette-300;
@@ -44,10 +45,15 @@
 
         .search-input {
             color: $canvas-primary-palette-A200;
+            background-color: $canvas-primary-palette-900;
         }
 
         .fa {
             color: $canvas-primary-palette-A700;
         }
     }
+
+    .search-results {
+        background-color: $canvas-primary-palette-900;
+    }
 }
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/search.component.html
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/search.component.html
index 4249a64961..fc124d06a5 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/search.component.html
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/search.component.html
@@ -20,6 +20,7 @@
     <form [formGroup]="searchForm">
         <input
             type="text"
+            matInput
             placeholder="Search"
             class="search-input"
             [class.open]="searchInputVisible"
@@ -34,7 +35,7 @@
             [cdkConnectedOverlayHasBackdrop]="true"
             
[cdkConnectedOverlayBackdropClass]="'cdk-overlay-transparent-backdrop'"
             (backdropClick)="backdropClicked()">
-            <div class="search-results bg-white w-96 border p-2 text-sm 
max-h-96 overflow-y-auto">
+            <div class="search-results w-96 border p-2 text-sm max-h-96 
overflow-y-auto">
                 <div *ngIf="searching; else renderAllResults" class="unset 
italic">Searching</div>
             </div>
         </ng-template>
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/search.component.ts
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/search.component.ts
index bee859ebac..4e7b2eef5f 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/search.component.ts
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/header/search/search.component.ts
@@ -30,13 +30,25 @@ import {
 import { ComponentType } from '../../../../../../state/shared';
 import { NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';
 import { RouterLink } from '@angular/router';
+import { MatFormFieldModule } from '@angular/material/form-field';
+import { MatInputModule } from '@angular/material/input';
 
 @Component({
     selector: 'search',
     standalone: true,
     templateUrl: './search.component.html',
     styleUrls: ['./search.component.scss'],
-    imports: [ReactiveFormsModule, CdkOverlayOrigin, CdkConnectedOverlay, 
NgIf, NgTemplateOutlet, RouterLink, NgForOf]
+    imports: [
+        ReactiveFormsModule,
+        CdkOverlayOrigin,
+        CdkConnectedOverlay,
+        NgIf,
+        NgTemplateOutlet,
+        RouterLink,
+        NgForOf,
+        MatFormFieldModule,
+        MatInputModule
+    ]
 })
 export class Search implements OnInit {
     protected readonly ComponentType = ComponentType;
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/items/connection/prioritizers/_prioritizers.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/items/connection/prioritizers/_prioritizers.component-theme.scss
index debb8e6eec..67a5fe6ab4 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/items/connection/prioritizers/_prioritizers.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/items/connection/prioritizers/_prioritizers.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/items/process-group/create-process-group/_create-process-group.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/items/process-group/create-process-group/_create-process-group.component-theme.scss
index 40893b1273..def49ce033 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/items/process-group/create-process-group/_create-process-group.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/canvas/items/process-group/create-process-group/_create-process-group.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($theme) {
+@mixin nifi-theme($theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/common/banner/_banner.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/common/banner/_banner.component-theme.scss
index 2783f57b77..71e4d7d64f 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/common/banner/_banner.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/common/banner/_banner.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($theme) {
+@mixin nifi-theme($theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/controller-service/_controller-services.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/controller-service/_controller-services.component-theme.scss
index 313d900108..20858b80fb 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/controller-service/_controller-services.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/flow-designer/ui/controller-service/_controller-services.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($theme) {
+@mixin nifi-theme($theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/login/feature/_login.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/login/feature/_login.component-theme.scss
index e7e28fe59b..f60260c711 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/login/feature/_login.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/login/feature/_login.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/login/ui/login-form/_login-form.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/login/ui/login-form/_login-form.component-theme.scss
index b3bd945dc9..a657dbc1c0 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/login/ui/login-form/_login-form.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/login/ui/login-form/_login-form.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($theme) {
+@mixin nifi-theme($theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/parameter-contexts/feature/_parameter-contexts.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/parameter-contexts/feature/_parameter-contexts.component-theme.scss
index 0845b8869f..410954f8b0 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/parameter-contexts/feature/_parameter-contexts.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/parameter-contexts/feature/_parameter-contexts.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($theme) {
+@mixin nifi-theme($theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/parameter-contexts/ui/parameter-context-listing/parameter-context-inheritance/_parameter-context-inheritance.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/parameter-contexts/ui/parameter-context-listing/parameter-context-inheritance/_parameter-context-inheritance.component-theme.scss
index aac03a7a4e..0116242f7b 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/parameter-contexts/ui/parameter-context-listing/parameter-context-inheritance/_parameter-context-inheritance.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/parameter-contexts/ui/parameter-context-listing/parameter-context-inheritance/_parameter-context-inheritance.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/provenance/feature/_provenance.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/provenance/feature/_provenance.component-theme.scss
index 2a8f8040f6..80e82167c6 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/provenance/feature/_provenance.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/provenance/feature/_provenance.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/provenance/ui/provenance-event-listing/provenance-event-table/_provenance-event-table.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/provenance/ui/provenance-event-listing/provenance-event-table/_provenance-event-table.component-theme.scss
index 29259f27d5..9d88b7000c 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/provenance/ui/provenance-event-listing/provenance-event-table/_provenance-event-table.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/provenance/ui/provenance-event-listing/provenance-event-table/_provenance-event-table.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/provenance/ui/provenance-event-listing/provenance-event-table/lineage/_lineage.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/provenance/ui/provenance-event-listing/provenance-event-table/lineage/_lineage.component-theme.scss
index aba6602f63..df08cfd6c1 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/provenance/ui/provenance-event-listing/provenance-event-table/lineage/_lineage.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/provenance/ui/provenance-event-listing/provenance-event-table/lineage/_lineage.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
@@ -26,17 +26,23 @@
     // Get the color palette from the color-config.
     $primary-palette: map.get($color-config, 'primary');
     $warn-palette: map.get($color-config, 'warn');
+    $canvas-primary-palette: map.get($canvas-color-config, 'primary');
     $canvas-accent-palette: map.get($canvas-color-config, 'accent');
 
     // Get hues from palette
     $primary-palette-A400: mat.get-color-from-palette($primary-palette, 
'A400');
     $warn-palette-400: mat.get-color-from-palette($warn-palette, 400);
     $warn-palette-A200: mat.get-color-from-palette($warn-palette, 'A200');
+    $canvas-primary-palette-A200: 
mat.get-color-from-palette($canvas-primary-palette, 'A200');
     $canvas-accent-palette-A200: 
mat.get-color-from-palette($canvas-accent-palette, 'A200');
 
     #lineage {
         canvas,
         svg {
+            text.event-type {
+                fill: $canvas-primary-palette-A200;
+            }
+
             path.link.selected {
                 stroke: $warn-palette-400;
             }
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/queue/ui/queue-listing/flowfile-dialog/_flowfile-dialog.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/queue/ui/queue-listing/flowfile-dialog/_flowfile-dialog.component-theme.scss
index 21f0a995ca..89456e69d2 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/queue/ui/queue-listing/flowfile-dialog/_flowfile-dialog.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/queue/ui/queue-listing/flowfile-dialog/_flowfile-dialog.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($theme) {
+@mixin nifi-theme($theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/queue/ui/queue-listing/flowfile-table/_flowfile-table.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/queue/ui/queue-listing/flowfile-table/_flowfile-table.component-theme.scss
index 0a80eafa21..b58a34f0ab 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/queue/ui/queue-listing/flowfile-table/_flowfile-table.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/queue/ui/queue-listing/flowfile-table/_flowfile-table.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($theme) {
+@mixin nifi-theme($theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/settings/feature/_settings.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/settings/feature/_settings.component-theme.scss
index 3b7864a4b3..cf13fc636a 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/settings/feature/_settings.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/settings/feature/_settings.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($theme) {
+@mixin nifi-theme($theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/summary/feature/_summary.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/summary/feature/_summary.component-theme.scss
index 70d58126fb..8ebd576666 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/summary/feature/_summary.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/summary/feature/_summary.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($theme) {
+@mixin nifi-theme($theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/users/feature/_users.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/users/feature/_users.component-theme.scss
index 9307f70205..ee08282a7f 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/users/feature/_users.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/users/feature/_users.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($theme) {
+@mixin nifi-theme($theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/context-menu/_context-menu.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/context-menu/_context-menu.component-theme.scss
index 009e965093..18a9bbf68d 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/context-menu/_context-menu.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/context-menu/_context-menu.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/_extension-creation.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/_extension-creation.component-theme.scss
index 760179a9bc..31f828f522 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/_extension-creation.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/_extension-creation.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/extension-creation.component.html
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/extension-creation.component.html
index 06d67de62f..e442e90f46 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/extension-creation.component.html
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/extension-creation.component.html
@@ -20,11 +20,15 @@
         <div class="flex justify-between items-center">
             <h3 class="text-lg">Add {{ componentType }}</h3>
             <div>
-                <input
-                    class="border px-1.5 py-1 w-64"
-                    type="text"
-                    (keyup)="filterTypes($event)"
-                    placeholder="Filter types..." />
+                <mat-form-field>
+                    <mat-label>Filter types</mat-label>
+                    <input
+                        matInput
+                        class="border px-1.5 py-1 w-64"
+                        type="text"
+                        (keyup)="filterTypes($event)"
+                        placeholder="Filter types..." />
+                </mat-form-field>
             </div>
         </div>
         <div class="type-table">
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/extension-creation.component.ts
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/extension-creation.component.ts
index ab439d166a..ad7c9b7223 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/extension-creation.component.ts
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/extension-creation/extension-creation.component.ts
@@ -27,6 +27,9 @@ import { NifiTooltipDirective } from 
'../tooltips/nifi-tooltip.directive';
 import { RestrictionsTip } from 
'../tooltips/restrictions-tip/restrictions-tip.component';
 import { ControllerServiceApiTip } from 
'../tooltips/controller-service-api-tip/controller-service-api-tip.component';
 import { NifiSpinnerDirective } from '../spinner/nifi-spinner.directive';
+import { MatFormFieldModule } from '@angular/material/form-field';
+import { MatInputModule } from '@angular/material/input';
+import { ReactiveFormsModule } from '@angular/forms';
 
 @Component({
     selector: 'extension-creation',
@@ -39,7 +42,10 @@ import { NifiSpinnerDirective } from 
'../spinner/nifi-spinner.directive';
         MatSortModule,
         NgIf,
         NifiTooltipDirective,
-        NifiSpinnerDirective
+        NifiSpinnerDirective,
+        MatFormFieldModule,
+        MatInputModule,
+        ReactiveFormsModule
     ],
     styleUrls: ['./extension-creation.component.scss']
 })
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/navigation/_navigation.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/navigation/_navigation.component-theme.scss
index c123fa78bf..0ac54c7d1b 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/navigation/_navigation.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/navigation/_navigation.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
@@ -30,7 +30,6 @@
     // Get hues from palette
     $primary-palette-100: mat.get-color-from-palette($primary-palette, 100);
     $primary-palette-300: mat.get-color-from-palette($primary-palette, 300);
-    $primary-palette-500: mat.get-color-from-palette($primary-palette, 500);
     $primary-palette-A400: mat.get-color-from-palette($primary-palette, 
'A400');
     $canvas-primary-palette-50: 
mat.get-color-from-palette($canvas-primary-palette, 50);
     $canvas-primary-palette-A200: 
mat.get-color-from-palette($canvas-primary-palette, 'A200');
@@ -55,7 +54,7 @@
     button.global-menu-item {
         .fa,
         .icon {
-            color: $primary-palette-500;
+            color: $primary-palette-A400;
         }
     }
 }
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/navigation/navigation.component.html
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/navigation/navigation.component.html
index e6e060ebc1..16450e9bf7 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/navigation/navigation.component.html
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/navigation/navigation.component.html
@@ -30,6 +30,7 @@
             <ng-content></ng-content>
         </div>
         <div class="flex justify-between items-center gap-x-1" 
*ngIf="currentUser$ | async as user">
+            <mat-slide-toggle color="primary" 
(click)="toggleTheme()"></mat-slide-toggle>
             <div class="flex flex-col justify-between items-end gap-y-1">
                 <div class="current-user">{{ user.identity }}</div>
                 <a href="#" *ngIf="allowLogin(user)">log in</a>
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/navigation/navigation.component.ts
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/navigation/navigation.component.ts
index 97b65669cd..0f6bbd0a54 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/navigation/navigation.component.ts
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/navigation/navigation.component.ts
@@ -15,8 +15,9 @@
  * limitations under the License.
  */
 
-import { Component } from '@angular/core';
-import { AsyncPipe, NgIf, NgOptimizedImage } from '@angular/common';
+import { Component, Inject } from '@angular/core';
+import { AsyncPipe, DOCUMENT, NgIf, NgOptimizedImage } from '@angular/common';
+import { FormsModule } from '@angular/forms';
 import { MatDividerModule } from '@angular/material/divider';
 import { MatMenuModule } from '@angular/material/menu';
 import { getNodeStatusHistoryAndOpenDialog } from 
'../../../state/status-history/status-history.actions';
@@ -30,22 +31,35 @@ import { selectCurrentUser } from 
'../../../state/current-user/current-user.sele
 import { MatButtonModule } from '@angular/material/button';
 import { NiFiState } from '../../../state';
 import { selectFlowConfiguration } from 
'../../../state/flow-configuration/flow-configuration.selectors';
+import { MatSlideToggleModule } from '@angular/material/slide-toggle';
 
 @Component({
     selector: 'navigation',
     standalone: true,
-    imports: [NgOptimizedImage, AsyncPipe, MatDividerModule, MatMenuModule, 
NgIf, RouterLink, MatButtonModule],
+    imports: [
+        NgOptimizedImage,
+        AsyncPipe,
+        MatDividerModule,
+        MatMenuModule,
+        NgIf,
+        RouterLink,
+        MatButtonModule,
+        MatSlideToggleModule,
+        FormsModule
+    ],
     templateUrl: './navigation.component.html',
     styleUrls: ['./navigation.component.scss']
 })
 export class Navigation {
     currentUser$ = this.store.select(selectCurrentUser);
     flowConfiguration$ = this.store.select(selectFlowConfiguration);
+    isDarkMode = false;
 
     constructor(
         private store: Store<NiFiState>,
         private authStorage: AuthStorage,
-        private authService: AuthService
+        private authService: AuthService,
+        @Inject(DOCUMENT) private _document: Document
     ) {}
 
     allowLogin(user: CurrentUser): boolean {
@@ -79,4 +93,11 @@ export class Navigation {
             })
         );
     }
+
+    toggleTheme(value = !this.isDarkMode) {
+        this.isDarkMode = value;
+        this._document.body.classList.toggle('dark-theme', value);
+
+        // TODO: save to local storage or read OS settings???
+    }
 }
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/property-table/editors/nf-editor/_nf-editor.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/property-table/editors/nf-editor/_nf-editor.component-theme.scss
index 714b7b54c0..ec0ccf4b18 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/property-table/editors/nf-editor/_nf-editor.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/property-table/editors/nf-editor/_nf-editor.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
@@ -30,9 +30,10 @@
     // Get hues from palette
     $primary-palette-100: mat.get-color-from-palette($primary-palette, 100);
     $primary-palette-300: mat.get-color-from-palette($primary-palette, 300);
+    $canvas-primary-palette-100: 
mat.get-color-from-palette($canvas-primary-palette, 100);
     $canvas-primary-palette-200: 
mat.get-color-from-palette($canvas-primary-palette, 200);
     $canvas-primary-palette-300: 
mat.get-color-from-palette($canvas-primary-palette, 300);
-    $canvas-primary-palette-900: 
mat.get-color-from-palette($canvas-primary-palette, 900);
+    $canvas-primary-palette-contrast-900: 
mat.get-color-from-palette($canvas-primary-palette, 'contrast-900');
 
     .property-editor {
         @include mat.button-density(-1);
@@ -40,7 +41,7 @@
         .nf-editor {
             .CodeMirror {
                 border: 1px solid $canvas-primary-palette-300;
-                background-color: $canvas-primary-palette-900;
+                background-color: $canvas-primary-palette-contrast-900;
 
                 &.blank {
                     background: $primary-palette-300;
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/provenance-event-dialog/_provenance-event-dialog.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/provenance-event-dialog/_provenance-event-dialog.component-theme.scss
index 1517028f34..581d629e0e 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/provenance-event-dialog/_provenance-event-dialog.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/provenance-event-dialog/_provenance-event-dialog.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($theme) {
+@mixin nifi-theme($theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/resizable/_resizable.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/resizable/_resizable.component-theme.scss
index 85a26f6235..fdb567981b 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/resizable/_resizable.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/resizable/_resizable.component-theme.scss
@@ -19,7 +19,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/status-history/_status-history.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/status-history/_status-history.component-theme.scss
index 1418df260f..b5a5a54101 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/status-history/_status-history.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/status-history/_status-history.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
@@ -33,30 +33,21 @@
     $canvas-primary-palette-A100: 
mat.get-color-from-palette($canvas-primary-palette, 'A100');
     $canvas-primary-palette-A700: 
mat.get-color-from-palette($canvas-primary-palette, 'A700');
 
-    #status-history-chart-container,
-    #status-history-chart-control-container {
+    :host ::ng-deep #status-history-chart-container,
+    :host ::ng-deep #status-history-chart-control-container {
         background-color: $canvas-primary-palette-900;
 
         .axis path,
         .axis line {
-            fill: none;
             stroke: $canvas-primary-palette-A100;
         }
 
-        .chart-line {
-            fill: none;
-        }
-
         .brush .selection {
             stroke: $canvas-primary-palette-A700;
         }
     }
 
-    #status-history-chart-control-container {
-        background-color: $canvas-primary-palette-900;
-    }
-
-    #status-history-chart-container text,
+    :host ::ng-deep #status-history-chart-container text,
     #status-history-chart-control-container text {
         fill: $primary-palette-700;
     }
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/status-history/status-history.component.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/status-history/status-history.component.scss
index 9883d481f8..c691a340dc 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/status-history/status-history.component.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/status-history/status-history.component.scss
@@ -65,10 +65,6 @@
         .mat-mdc-dialog-content {
             max-height: unset;
         }
-
-        .selected-descriptor-container {
-            height: 68px;
-        }
     }
 }
 
@@ -79,6 +75,7 @@
 
     .axis path,
     .axis line {
+        fill: none;
         shape-rendering: crispEdges;
     }
 
@@ -87,6 +84,7 @@
     }
 
     .chart-line {
+        fill: none;
         stroke-width: 1.5px;
     }
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/system-diagnostics-dialog/_system-diagnostics-dialog.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/system-diagnostics-dialog/_system-diagnostics-dialog.component-theme.scss
index b6c6466f17..2551707f94 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/system-diagnostics-dialog/_system-diagnostics-dialog.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/system-diagnostics-dialog/_system-diagnostics-dialog.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($theme) {
+@mixin nifi-theme($theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/tooltips/property-hint-tip/_property-hint-tip.component-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/tooltips/property-hint-tip/_property-hint-tip.component-theme.scss
index 804b6ec279..525c2c00e6 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/tooltips/property-hint-tip/_property-hint-tip.component-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/ui/common/tooltips/property-hint-tip/_property-hint-tip.component-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($theme) {
+@mixin nifi-theme($theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($theme);
 
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/assets/styles/_listing-table-theme.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/assets/styles/_listing-table-theme.scss
index 02f1f321c6..feefd7e767 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/assets/styles/_listing-table-theme.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/assets/styles/_listing-table-theme.scss
@@ -18,7 +18,7 @@
 @use 'sass:map';
 @use '@angular/material' as mat;
 
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-theme($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/assets/themes/nifi.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/assets/themes/nifi.scss
index b96c925f12..98efb4cecf 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/assets/themes/nifi.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/assets/themes/nifi.scss
@@ -34,10 +34,10 @@ $material-primary-light-palette: (
 
     // A100 -> A700 are the ACCENT color 
(mat.define-palette($material-primary-light-palette, A400, A100, A700);). These 
color are the ANALOGOUS (or possibly the TRIADIC??) colors as defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors
 for primary color #728e9b
     // These colors are also used by some custom canvas components that 
display the ANALOGOUS color for things like buttons, links, borders, info, etc.
-    A100: #c1dbd7, // .zero
-    A200: #9dc4be, // .enabled, .transmitting, .load-balance-icon-active
-    A400: #729b93, // a, a:hover, button.nifi-button, 
button.nifi-button:hover, .add-tenant-to-policy-form.fa, .component.selected 
rect.border, .add-connect, .remote-process-group-uri, 
.remote-process-group-transmission-secure, .navigation-control.fa, 
.operation-control.fa, .new-canvas-item.icon, .upload-flow-definition, 
.lineage-controls.fa, .event circle.context, .nifi-navigation.icon, 
.listing-table.fa, .listing-table.icon, .context-menu
-    A700: rgba(91, 109, 104, 1), // .hint-pattern
+    A100: #aabec7, // .zero
+    A200: #44a3cf, // .enabled, .transmitting, .load-balance-icon-active
+    A400: #004849, // a, a:hover, button.nifi-button, 
button.nifi-button:hover, .add-tenant-to-policy-form.fa, .component.selected 
rect.border, .add-connect, .remote-process-group-uri, 
.remote-process-group-transmission-secure, .navigation-control.fa, 
.operation-control.fa, .new-canvas-item.icon, .upload-flow-definition, 
.lineage-controls.fa, .event circle.context, .nifi-navigation.icon, 
.listing-table.fa, .listing-table.icon, .context-menu
+    A700: rgba(20, 145, 193, 0.12), // .hint-pattern
 
     // These are the $material-primary-light-palette PRIMARY AND ACCENT 
contrast colors. These color do not really get defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors.
     // Instead if we look to the Angular Material provided palettes we see 
that these fields are typically rgba(black, 0.87) or white. These values are 
particularly important
@@ -65,6 +65,53 @@ $material-primary-light-palette: (
     )
 );
 
+// The $material-primary-dark-palette define the PRIMARY AND ACCENT palettes 
for all Angular Material components used throughout Apache NiFi
+$material-primary-dark-palette: (
+    // 50 -> 900 are the PRIMARY colors 
(mat.define-palette($material-primary-dark-palette, 300);) defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors
 for primary color #728e9b
+    50: rgb(30, 45, 54), // .context-menu
+    100: rgba(32, 47, 54, 1), // "lighter" hue for this palette. Also 
.global-menu:hover, .navigation-control-header:hover, 
.operation-control-header:hover, .new-canvas-item.icon.hovering, table 
tr:hover, .CodeMirror.blank, .remote-banner, .process-group-details-banner, 
.process-group-details-banner, remote-process-group-details-banner, 
.remote-process-group-last-refresh-rect,
+    200: #30444d, // .processor-stats-border, .process-group-stats-border, 
.context-menu-item:hover, .process-group-banner, .remote-process-group-banner, 
.a, button.nifi-button, button.nifi-button:disabled
+    300: #3e5762, // .breadcrumb-container, .navigation-control, 
.operation-control, .flow-status, .controller-bulletins, 
.component-button-grip, .search-container, .nifi-navigation, .CodeMirror.blank
+    400: #4d6b78, // Default hue for this palette (color="primary").
+    500: #587a89, // .disabled, .not-transmitting, .splash, 
.access-policies-header, .operation-context-type, .bulletin-board-header, 
.counter-header, .stats-info, .active-thread-count-icon, .processor-type, 
.port-transmission-icon, .operation-context-type, .flow-status.fa, 
.flow-status.icon, .controller-bulletins, .prioritizers-list, 
.controller-services-header, .login-title, .parameter-context-header, 
.parameter-context-inheritance-list, .provenance-header, .flowfile-header, 
.queue-lis [...]
+    600: #718d9a, // .breadcrumb-container, .birdseye-brush
+    700: #8aa2ad, // "darker" hue for this palette. Also 
#status-history-chart-container text, #status-history-chart-control-container 
text
+    800: #abbcc5,
+    900: #abbcc5,
+
+    // A100 -> A700 are the ACCENT color 
(mat.define-palette($material-primary-dark-palette, A400, A100, A700);). These 
color are the ANALOGOUS (or possibly the TRIADIC??) colors as defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors
 for primary color #728e9b
+    // These colors are also used by some custom canvas components that 
display the ANALOGOUS color for things like buttons, links, borders, info, etc.
+    A100: #aabec7, // .zero
+    A200: #44a3cf, // .enabled, .transmitting, .load-balance-icon-active
+    A400: #009b9d, // a, a:hover, button.nifi-button, 
button.nifi-button:hover, .add-tenant-to-policy-form.fa, .component.selected 
rect.border, .add-connect, .remote-process-group-uri, 
.remote-process-group-transmission-secure, .navigation-control.fa, 
.operation-control.fa, .new-canvas-item.icon, .upload-flow-definition, 
.lineage-controls.fa, .event circle.context, .nifi-navigation.icon, 
.listing-table.fa, .listing-table.icon, .context-menu
+    A700: #2cd5d5,//rgba(139, 208, 229, 1),//#aabec7 // .hint-pattern
+
+    // These are the $material-primary-dark-palette PRIMARY AND ACCENT 
contrast colors. These color do not really get defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors.
+    // Instead if we look to the Angular Material provided palettes we see 
that these fields are typically rgba(black, 0.87) or white. These values are 
particularly important
+    // for light mode and dark mode as these values set the colors for the 
text when displayed against the primary background on a button, badge, chip, 
etc.
+    //
+    // NOTE: Care should be taken here to ensure the values meet accessibility 
standards.
+    //
+    // NOTE: When creating the Material palette definition 
mat.define-palette($material-primary-dark-palette, 300);
+    // Since 300, was set as the default the contrast-300 will be used as the 
default text color.
+    contrast: (
+        50: #ffffff,
+        100: #ffffff,
+        200: #ffffff,
+        300: #ffffff,
+        400: #ffffff,
+        500: #ffffff,
+        600: rgba(black, 0.87),
+        700: rgba(black, 0.87),
+        800: rgba(black, 0.87),
+        900: rgba(black, 0.87),
+        A100: #ffffff,
+        A200: #ffffff,
+        A400: rgba(black, 0.87),
+        A700: rgba(black, 0.87),
+    )
+);
+
 // The $nifi-canvas-light-palette defines the PRIMARY palette for all flow 
designer canvas components that make up the NiFi canvas theme used throughout 
Apache NiFi
 $nifi-canvas-light-palette: (
     // mat.define-palette($nifi-canvas-light-palette)
@@ -111,6 +158,52 @@ $nifi-canvas-light-palette: (
     )
 );
 
+// The $nifi-canvas-dark-palette defines the PRIMARY palette for all flow 
designer canvas components that make up the NiFi canvas theme used throughout 
Apache NiFi
+$nifi-canvas-dark-palette: (
+    // mat.define-palette($nifi-canvas-dark-palette)
+    50: rgba(255, 255, 255, 1), // .tooltip, .property-editor, g.component 
rect.border, .component-comments, g.connection path.connection-path, 
g.connection rect.backpressure-tick.data-size-prediction, g.connection 
rect.backpressure-tick.object-prediction, g.connection 
rect.backpressure-object, g.connection rect.backpressure-data-size, 
.breadcrumb-container, .navigation-control, .operation-control, 
header.nifi-header, .new-canvas-item.icon.hovering, .cdk-drag-disabled, 
.cdk-drag-preview, [...]
+    100: #f4f6f7, //rgba(black, 0.87), // .prioritizer-draggable-item, 
.parameter-context-draggable-item
+    200: #e5ebed, // .tooltip, .cm-s-default .CodeMirror-matchingbracket, 
circle.flowfile-link
+    300: #f9fafb, // .context-menu-item:active, .CodeMirror, .cm-s-default 
.CodeMirror-matchingbracket
+    400: #d8d8d8, // .unset, .border.ghost, .backpressure-tick.not-configured, 
g.connection.ghost path.connection-path, g.connection.ghost 
rect.connection-label, .prioritizers-list, .prioritizer-draggable-item, 
.parameter-context-inheritance-list, .parameter-context-draggable-item
+    500: #acacac, // g.connection rect.backpressure-object, g.connection 
rect.backpressure-data-size, .cdk-drag-disabled, .resizable-triangle
+    600: #545454, // .canvas-background, .navigation-control, 
.operation-control, .lineage
+    700: #696060, // .canvas-background, g.component rect.body.unauthorized, 
g.component rect.processor-icon-container.unauthorized, g.connection 
rect.body.unauthorized, #birdseye, .lineage
+    800: rgba(#6b6464, 0.5), // .even, .remote-process-group-sent-stats, 
.processor-stats-in-out, .process-group-queued-stats, 
.process-group-read-write-stats
+    900: rgba(#252424, 0.97), // circle.flowfile-link, 
.processor-read-write-stats, .process-group-stats-in-out, .tooltip, 
.property-editor, .disabled, .enabled, .stopped, .running, .has-errors, 
.invalid, .validating, .transmitting, .not-transmitting, .up-to-date, 
.locally-modified, .sync-failure, .stale, .locally-modified-and-stale, 
g.component rect.body, text.bulletin-icon, rect.processor-icon-container, 
circle.restricted-background, circle.is-primary-background, g.connection 
rect.body [...]
+
+    // some analog colors for headers and hover states, inputs, stats, etc
+    A100: #000, // .navigation-control-header:hover, 
.operation-control-header:hover, .axis path, .axis line
+    A200: #e7e6e6, // .operation-context-name, text.stats-label, 
text.processor-name, text.port-name, text.process-group-name, 
text.remote-process-group-name, .navigation-control-title, 
.operation-control-title, .operation-context-name, .search-input, 
.context-menu-item-text, .current-user
+    A400: #b0b0b0, // rect.component-selection, rect.drag-selection, 
rect.label-drag
+    A700: #b2b2b2, // text.processor-bundle, .search-container:hover, 
.search-container.open, .search-container.fa, .selected-type-bundle, .brush 
.selection
+
+    // These are the $nifi-canvas-dark-palette PRIMARY palette contrast 
colors. These color do not really get defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors.
+    // Instead if we look to the Angular Material provided palettes we see 
that these fields are typically rgba(black, 0.87) or white. These values are 
particularly important
+    // for light mode and dark mode as these values set the colors for the 
text when displayed against the primary background on a button, badge, chip, 
etc.
+    //
+    // NOTE: Care should be taken here to ensure the values meet accessibility 
standards.
+    //
+    // NOTE: When creating the Material palette definition 
mat.define-palette($nifi-canvas-dark-palette);
+    // Since 500 is the default the contrast-500 will be used as the default 
text color.
+    contrast: (
+        50: #ffffff,
+        100: #ffffff,
+        200: #ffffff,
+        300: #ffffff,
+        400: #ffffff,
+        500: #ffffff,
+        600: rgba(black, 0.87),
+        700: rgba(black, 0.87),
+        800: rgba(black, 0.87),
+        900: rgba(black, 0.87),
+        A100: #ffffff,
+        A200: #ffffff,
+        A400: rgba(black, 0.87),
+        A700: rgba(black, 0.87),
+    )
+);
+
 // The $nifi-canvas-light-palette defines the ACCENT palette for all flow 
designer canvas components that make up the NiFi canvas theme used throughout 
Apache NiFi
 $nifi-canvas-accent-light-palette: (
     // 50 -> 900 are the PRIMARY colors defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors
 for primary color #52bf7e
@@ -157,6 +250,53 @@ $nifi-canvas-accent-light-palette: (
     )
 );
 
+// The $nifi-canvas-dark-palette defines the ACCENT palette for all flow 
designer canvas components that make up the NiFi canvas theme used throughout 
Apache NiFi
+$nifi-canvas-accent-dark-palette: (
+    // 50 -> 900 are the PRIMARY colors defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors
 for primary color #52bf7e
+    50: #016131,
+    100: #1A9964, // "lighter" hue for this palette.
+    200: #2cb367, //.running
+    300: #52bf7e, //.backpressure-percent
+    400: #73ca94, // color="primary" Default hue for this palette. Also 
.up-to-date
+    500: #9dd9b2,
+    600: #c3e8d0, //.version-control
+    700: #e6f6ec, // "darker" hue for this palette Also .bulletin-normal
+    800: #0000ff, //.endpoint, g.process-group.drop rect.border
+    900: #00ff00, //.connectable-destination, .connector.connectable
+
+    // A100 - A700 are the ANALOGOUS colors but are more customized. These 
colors are used to highlight, warn, denote midpoints and labelpoints, etc
+    A100: #cbaa09, //.selected
+    A200: #bda500, //.invalid, .is-missing-port, circle.context
+    A400: #f8bf47, //.backpressure-percent-warning, .bulletin-warn, 
.backpressure-percent.warning, text.run-status-icon
+    A700: #948b4b, //g.connection.selected rect.border, 
.connection-selection-path, .midpoint, .labelpoint
+
+    // These are the $nifi-canvas-accent-dark-palette PRIMARY palette contrast 
colors. These color do not really get defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors.
+    // Instead if we look to the Angu
+    // lar Material provided palettes we see that these fields are typically 
rgba(black, 0.87) or white. These values are particularly important
+    // for light mode and dark mode as these values set the colors for the 
text when displayed against the primary background on a button, badge, chip, 
etc.
+    //
+    // NOTE: Care should be taken here to ensure the values meet accessibility 
standards.
+    //
+    // NOTE: When creating the Material palette definition 
mat.define-palette($nifi-canvas-accent-dark-palette, 400, 100, 700);
+    // Since 400 is the default the contrast-400 will be used as the default 
text color in some cases.
+    contrast: (
+        50: #ffffff,
+        100: #ffffff,
+        200: #ffffff,
+        300: #ffffff,
+        400: #ffffff,
+        500: #ffffff,
+        600: rgba(black, 0.87),
+        700: rgba(black, 0.87),
+        800: rgba(black, 0.87),
+        900: rgba(black, 0.87),
+        A100: #ffffff,
+        A200: #ffffff,
+        A400: rgba(black, 0.87),
+        A700: rgba(black, 0.87),
+    )
+);
+
 // The $warn-light-palette defines the WARN palette both for all Angular 
Material components used throughout Apache NiFi and for all flow designer 
canvas components that make up the NiFi canvas theme used throughout Apache NiFi
 $warn-light-palette: (
     // 50 -> 900 are the PRIMARY colors defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors
 for primary color #f64e4c
@@ -173,7 +313,7 @@ $warn-light-palette: (
 
     // A100 - A700 are the COMPLEMENTARY colors defined by the PRIMARY colors 
defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors
 for primary color #728e9b which is the primary color of the 
$material-primary-light-palette.
     // These color are used for label values, stats, timestamps, counts, etc.
-    A100: #b6abaa, //.sync-failure
+    A100: #d0c3c2, //.sync-failure
     A200: #9c8886, // .operation-context-logo, .funnel-icon, .port-icon, 
.flowfile-icon
     A400: #765452, // .value, .refresh-timestamp, .stats-value, 
.active-thread-count, .process-group-contents-count, .operation-context-id, 
.selected-type-name
     A700: #4a3435, // .version-control
@@ -203,3 +343,50 @@ $warn-light-palette: (
         A700: #ffffff,
     )
 );
+
+// The $warn-dark-palette defines the WARN palette both for all Angular 
Material components used throughout Apache NiFi and for all flow designer 
canvas components that make up the NiFi canvas theme used throughout Apache NiFi
+$warn-dark-palette: (
+    // 50 -> 900 are the PRIMARY colors defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors
 for primary color #f64e4c
+    50: #ffebee,
+    100: #ffccd2, // "lighter" hue for this palette. Also .banner-error
+    200: #f49999, //.stopped
+    300: #eb7071, //.stale
+    400: #f64e4c, // color="primary" Default hue for this palette. Also 
.unauthorized, .bulletin-background, .restricted, .connection-path.full, 
.connection-path.unauthorized, .backpressure-percent.error, 
.controller-bulletins.has-bulletins, .link.selected, circle.selected, 
.listing-message, .fa-shield
+    500: #fa3b30,
+    600: #ec3030, //.bulletin-error
+    700: #ff1507, // "darker" hue for this palette
+    800: #ff0000, //.connector, .startpoint
+    900: #f10000,
+
+    // A100 - A700 are the COMPLEMENTARY colors defined by the PRIMARY colors 
defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors
 for primary color #728e9b which is the primary color of the 
$material-primary-dark-palette.
+    // These color are used for label values, stats, timestamps, counts, etc.
+    A100: #ab777a, //.sync-failure
+    A200: #b98481, // .operation-context-logo, .funnel-icon, .port-icon, 
.flowfile-icon
+    A400: #d5bab7, // .value, .refresh-timestamp, .stats-value, 
.active-thread-count, .process-group-contents-count, .operation-context-id, 
.selected-type-name
+    A700: #b6abaa, // .version-control
+
+    // These are the $nifi-canvas-accent-dark-palette PRIMARY palette contrast 
colors. These color do not really get defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors.
+    // Instead if we look to the Angular Material provided palettes we see 
that these fields are typically rgba(black, 0.87) or white. These values are 
particularly important
+    // for light mode and dark mode as these values set the colors for the 
text when displayed against the primary background on a button, badge, chip, 
etc.
+    //
+    // NOTE: Care should be taken here to ensure the values meet accessibility 
standards.
+    //
+    // NOTE: When creating the Material palette definition 
mat.define-palette($warn-dark-palette, 400, 100, 700);
+    // Since 400 is the default the contrast-400 will be used as the default 
text color in some cases.
+    contrast: (
+        50: #ffffff,
+        100: #ffffff,
+        200: #ffffff,
+        300: #ffffff,
+        400: #ffffff,
+        500: rgba(black, 0.87),
+        600: rgba(black, 0.87),
+        700: rgba(black, 0.87),
+        800: rgba(black, 0.87),
+        900: rgba(black, 0.87),
+        A100: #ffffff,
+        A200: #ffffff,
+        A400: rgba(black, 0.87),
+        A700: rgba(black, 0.87),
+    )
+);
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/assets/themes/purple.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/assets/themes/purple.scss
index 52e2dab337..e35d55fdce 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/assets/themes/purple.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/assets/themes/purple.scss
@@ -36,10 +36,10 @@ $material-primary-light-palette: (
 
     // A100 -> A700 are the ACCENT color 
(mat.define-palette($material-primary-light-palette, A400, A100, A700);). These 
color are the ANALOGOUS (or possibly the TRIADIC??) colors as defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors
 for primary color #728e9b
     // These colors are also used by some custom canvas components that 
display the ANALOGOUS color for things like buttons, links, borders, info, etc.
-    A100: #c8cbe2, // .zero
-    A200: #a5a9ce, // .enabled, .transmitting, .load-balance-icon-active
-    A400: #6a6eab, // a, a:hover, button.nifi-button, 
button.nifi-button:hover, .add-tenant-to-policy-form.fa, .component.selected 
rect.border, .add-connect, .remote-process-group-uri, 
.remote-process-group-transmission-secure, .navigation-control.fa, 
.operation-control.fa, .new-canvas-item.icon, .upload-flow-definition, 
.lineage-controls.fa, .event circle.context, .nifi-navigation.icon, 
.listing-table.fa, .listing-table.icon, .context-menu
-    A700: rgba(68, 67, 136, 1), // .hint-pattern
+    A100: #aabec7, // .zero
+    A200: #44a3cf, // .enabled, .transmitting, .load-balance-icon-active
+    A400: #004849, // a, a:hover, button.nifi-button, 
button.nifi-button:hover, .add-tenant-to-policy-form.fa, .component.selected 
rect.border, .add-connect, .remote-process-group-uri, 
.remote-process-group-transmission-secure, .navigation-control.fa, 
.operation-control.fa, .new-canvas-item.icon, .upload-flow-definition, 
.lineage-controls.fa, .event circle.context, .nifi-navigation.icon, 
.listing-table.fa, .listing-table.icon, .context-menu
+    A700: rgba(20, 145, 193, 0.12), // .hint-pattern
 
     // These are the $material-primary-light-palette PRIMARY AND ACCENT 
contrast colors. These color do not really get defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors.
     // Instead if we look to the Angular Material provided palettes we see 
that these fields are typically rgba(black, 0.87) or white. These values are 
particularly important
@@ -67,6 +67,53 @@ $material-primary-light-palette: (
     )
 );
 
+// The $material-primary-dark-palette define the PRIMARY AND ACCENT palettes 
for all Angular Material components used throughout Apache NiFi
+$material-primary-dark-palette: (
+    // 50 -> 900 are the PRIMARY colors 
(mat.define-palette($material-primary-dark-palette, 300);) defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors
 for primary color #728e9b
+    50: rgba(69, 47, 101, 1), // .context-menu
+    100: rgba(93, 57, 123, 1), // "lighter" hue for this palette. Also 
.global-menu:hover, .navigation-control-header:hover, 
.operation-control-header:hover, .new-canvas-item.icon.hovering, table 
tr:hover, .CodeMirror.blank, .remote-banner, .process-group-details-banner, 
.process-group-details-banner, remote-process-group-details-banner, 
.remote-process-group-last-refresh-rect,
+    200: #6b3f86, // .processor-stats-border, .process-group-stats-border, 
.context-menu-item:hover, .process-group-banner, .remote-process-group-banner, 
.a, button.nifi-button, button.nifi-button:disabled
+    300: #7b4690, // .breadcrumb-container, .navigation-control, 
.operation-control, .flow-status, .controller-bulletins, 
.component-button-grip, .search-container, .nifi-navigation, .CodeMirror.blank
+    400: #874b98, // Default hue for this palette (color="primary").
+    500: #985fa7, // .disabled, .not-transmitting, .splash, 
.access-policies-header, .operation-context-type, .bulletin-board-header, 
.counter-header, .stats-info, .active-thread-count-icon, .processor-type, 
.port-transmission-icon, .operation-context-type, .flow-status.fa, 
.flow-status.icon, .controller-bulletins, .prioritizers-list, 
.controller-services-header, .login-title, .parameter-context-header, 
.parameter-context-inheritance-list, .provenance-header, .flowfile-header, 
.queue-lis [...]
+    600: #aa79b7, // .breadcrumb-container, .birdseye-brush
+    700: #d3bada, // "darker" hue for this palette. Also 
#status-history-chart-container text, #status-history-chart-control-container 
text
+    800: #dac3e0,
+    900: #f0e7f2,
+
+    // A100 -> A700 are the ACCENT color 
(mat.define-palette($material-primary-dark-palette, A400, A100, A700);). These 
color are the ANALOGOUS (or possibly the TRIADIC??) colors as defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors
 for primary color #728e9b
+    // These colors are also used by some custom canvas components that 
display the ANALOGOUS color for things like buttons, links, borders, info, etc.
+    A100: #2cd5d5, // .zero
+    A200: #009b9d, // .enabled, .transmitting, .load-balance-icon-active
+    A400: #44a3cf, // a, a:hover, button.nifi-button, 
button.nifi-button:hover, .add-tenant-to-policy-form.fa, .component.selected 
rect.border, .add-connect, .remote-process-group-uri, 
.remote-process-group-transmission-secure, .navigation-control.fa, 
.operation-control.fa, .new-canvas-item.icon, .upload-flow-definition, 
.lineage-controls.fa, .event circle.context, .nifi-navigation.icon, 
.listing-table.fa, .listing-table.icon, .context-menu
+    A700: rgba(139, 208, 229, 1),//#aabec7 // .hint-pattern
+
+    // These are the $material-primary-dark-palette PRIMARY AND ACCENT 
contrast colors. These color do not really get defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors.
+    // Instead if we look to the Angular Material provided palettes we see 
that these fields are typically rgba(black, 0.87) or white. These values are 
particularly important
+    // for light mode and dark mode as these values set the colors for the 
text when displayed against the primary background on a button, badge, chip, 
etc.
+    //
+    // NOTE: Care should be taken here to ensure the values meet accessibility 
standards.
+    //
+    // NOTE: When creating the Material palette definition 
mat.define-palette($material-primary-dark-palette, 300);
+    // Since 300, was set as the default the contrast-300 will be used as the 
default text color.
+    contrast: (
+        50: #ffffff,
+        100: #ffffff,
+        200: #ffffff,
+        300: #ffffff,
+        400: #ffffff,
+        500: #ffffff,
+        600: rgba(black, 0.87),
+        700: rgba(black, 0.87),
+        800: rgba(black, 0.87),
+        900: rgba(black, 0.87),
+        A100: #ffffff,
+        A200: #ffffff,
+        A400: rgba(black, 0.87),
+        A700: rgba(black, 0.87),
+    )
+);
+
 // The $nifi-canvas-light-palette defines the PRIMARY palette for all flow 
designer canvas components that make up the NiFi canvas theme used throughout 
Apache NiFi
 $nifi-canvas-light-palette: (
     // mat.define-palette($nifi-canvas-light-palette)
@@ -113,6 +160,52 @@ $nifi-canvas-light-palette: (
     )
 );
 
+// The $nifi-canvas-dark-palette defines the PRIMARY palette for all flow 
designer canvas components that make up the NiFi canvas theme used throughout 
Apache NiFi
+$nifi-canvas-dark-palette: (
+    // mat.define-palette($nifi-canvas-dark-palette)
+    50: rgba(255, 255, 255, 1), // .tooltip, .property-editor, g.component 
rect.border, .component-comments, g.connection path.connection-path, 
g.connection rect.backpressure-tick.data-size-prediction, g.connection 
rect.backpressure-tick.object-prediction, g.connection 
rect.backpressure-object, g.connection rect.backpressure-data-size, 
.breadcrumb-container, .navigation-control, .operation-control, 
header.nifi-header, .new-canvas-item.icon.hovering, .cdk-drag-disabled, 
.cdk-drag-preview, [...]
+    100: #f4f6f7, //rgba(black, 0.87), // .prioritizer-draggable-item, 
.parameter-context-draggable-item
+    200: #e5ebed, // .tooltip, .cm-s-default .CodeMirror-matchingbracket, 
circle.flowfile-link
+    300: #f9fafb, // .context-menu-item:active, .CodeMirror, .cm-s-default 
.CodeMirror-matchingbracket
+    400: #d8d8d8, // .unset, .border.ghost, .backpressure-tick.not-configured, 
g.connection.ghost path.connection-path, g.connection.ghost 
rect.connection-label, .prioritizers-list, .prioritizer-draggable-item, 
.parameter-context-inheritance-list, .parameter-context-draggable-item
+    500: #acacac, // g.connection rect.backpressure-object, g.connection 
rect.backpressure-data-size, .cdk-drag-disabled, .resizable-triangle
+    600: #545454, // .canvas-background, .navigation-control, 
.operation-control, .lineage
+    700: #696060, // .canvas-background, g.component rect.body.unauthorized, 
g.component rect.processor-icon-container.unauthorized, g.connection 
rect.body.unauthorized, #birdseye, .lineage
+    800: rgba(#6b6464, 0.5), // .even, .remote-process-group-sent-stats, 
.processor-stats-in-out, .process-group-queued-stats, 
.process-group-read-write-stats
+    900: rgba(#252424, 0.97), // circle.flowfile-link, 
.processor-read-write-stats, .process-group-stats-in-out, .tooltip, 
.property-editor, .disabled, .enabled, .stopped, .running, .has-errors, 
.invalid, .validating, .transmitting, .not-transmitting, .up-to-date, 
.locally-modified, .sync-failure, .stale, .locally-modified-and-stale, 
g.component rect.body, text.bulletin-icon, rect.processor-icon-container, 
circle.restricted-background, circle.is-primary-background, g.connection 
rect.body [...]
+
+    // some analog colors for headers and hover states, inputs, stats, etc
+    A100: #000, // .navigation-control-header:hover, 
.operation-control-header:hover, .axis path, .axis line
+    A200: #e7e6e6, // .operation-context-name, text.stats-label, 
text.processor-name, text.port-name, text.process-group-name, 
text.remote-process-group-name, .navigation-control-title, 
.operation-control-title, .operation-context-name, .search-input, 
.context-menu-item-text, .current-user
+    A400: #b0b0b0, // rect.component-selection, rect.drag-selection, 
rect.label-drag
+    A700: #b2b2b2, // text.processor-bundle, .search-container:hover, 
.search-container.open, .search-container.fa, .selected-type-bundle, .brush 
.selection
+
+    // These are the $nifi-canvas-dark-palette PRIMARY palette contrast 
colors. These color do not really get defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors.
+    // Instead if we look to the Angular Material provided palettes we see 
that these fields are typically rgba(black, 0.87) or white. These values are 
particularly important
+    // for light mode and dark mode as these values set the colors for the 
text when displayed against the primary background on a button, badge, chip, 
etc.
+    //
+    // NOTE: Care should be taken here to ensure the values meet accessibility 
standards.
+    //
+    // NOTE: When creating the Material palette definition 
mat.define-palette($nifi-canvas-dark-palette);
+    // Since 500 is the default the contrast-500 will be used as the default 
text color.
+    contrast: (
+        50: #ffffff,
+        100: #ffffff,
+        200: #ffffff,
+        300: #ffffff,
+        400: #ffffff,
+        500: #ffffff,
+        600: rgba(black, 0.87),
+        700: rgba(black, 0.87),
+        800: rgba(black, 0.87),
+        900: rgba(black, 0.87),
+        A100: #ffffff,
+        A200: #ffffff,
+        A400: rgba(black, 0.87),
+        A700: rgba(black, 0.87),
+    )
+);
+
 // The $nifi-canvas-light-palette defines the ACCENT palette for all flow 
designer canvas components that make up the NiFi canvas theme used throughout 
Apache NiFi
 $nifi-canvas-accent-light-palette: (
     // 50 -> 900 are the PRIMARY colors defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors
 for primary color #52bf7e
@@ -159,6 +252,52 @@ $nifi-canvas-accent-light-palette: (
     )
 );
 
+// The $nifi-canvas-dark-palette defines the ACCENT palette for all flow 
designer canvas components that make up the NiFi canvas theme used throughout 
Apache NiFi
+$nifi-canvas-accent-dark-palette: (
+    // 50 -> 900 are the PRIMARY colors defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors
 for primary color #52bf7e
+    50: #016131,
+    100: #1A9964, // "lighter" hue for this palette.
+    200: #2cb367, //.running
+    300: #52bf7e, //.backpressure-percent
+    400: #73ca94, // color="primary" Default hue for this palette. Also 
.up-to-date
+    500: #9dd9b2,
+    600: #c3e8d0, //.version-control
+    700: #e6f6ec, // "darker" hue for this palette Also .bulletin-normal
+    800: #0000ff, //.endpoint, g.process-group.drop rect.border
+    900: #00ff00, //.connectable-destination, .connector.connectable
+
+    // A100 - A700 are the ANALOGOUS colors but are more customized. These 
colors are used to highlight, warn, denote midpoints and labelpoints, etc
+    A100: #cbaa09, //.selected
+    A200: #bda500, //.invalid, .is-missing-port, circle.context
+    A400: #f8bf47, //.backpressure-percent-warning, .bulletin-warn, 
.backpressure-percent.warning, text.run-status-icon
+    A700: #948b4b, //g.connection.selected rect.border, 
.connection-selection-path, .midpoint, .labelpoint
+
+    // These are the $nifi-canvas-accent-dark-palette PRIMARY palette contrast 
colors. These color do not really get defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors.
+    // Instead if we look to the Angular Material provided palettes we see 
that these fields are typically rgba(black, 0.87) or white. These values are 
particularly important
+    // for light mode and dark mode as these values set the colors for the 
text when displayed against the primary background on a button, badge, chip, 
etc.
+    //
+    // NOTE: Care should be taken here to ensure the values meet accessibility 
standards.
+    //
+    // NOTE: When creating the Material palette definition 
mat.define-palette($nifi-canvas-accent-dark-palette, 400, 100, 700);
+    // Since 400 is the default the contrast-400 will be used as the default 
text color in some cases.
+    contrast: (
+        50: #ffffff,
+        100: #ffffff,
+        200: #ffffff,
+        300: #ffffff,
+        400: #ffffff,
+        500: #ffffff,
+        600: rgba(black, 0.87),
+        700: rgba(black, 0.87),
+        800: rgba(black, 0.87),
+        900: rgba(black, 0.87),
+        A100: #ffffff,
+        A200: #ffffff,
+        A400: rgba(black, 0.87),
+        A700: rgba(black, 0.87),
+    )
+);
+
 // The $warn-light-palette defines the WARN palette both for all Angular 
Material components used throughout Apache NiFi and for all flow designer 
canvas components that make up the NiFi canvas theme used throughout Apache NiFi
 $warn-light-palette: (
     // 50 -> 900 are the PRIMARY colors defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors
 for primary color #f64e4c
@@ -205,3 +344,50 @@ $warn-light-palette: (
         A700: #ffffff,
     )
 );
+
+// The $warn-dark-palette defines the WARN palette both for all Angular 
Material components used throughout Apache NiFi and for all flow designer 
canvas components that make up the NiFi canvas theme used throughout Apache NiFi
+$warn-dark-palette: (
+    // 50 -> 900 are the PRIMARY colors defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors
 for primary color #f64e4c
+    50: #f10000,
+    100: #ff0000, // "lighter" hue for this palette. Also .banner-error
+    200: #ff1507, //.stopped
+    300: #ec3030, //.stale
+    400: #fa3b30, // color="primary" Default hue for this palette. Also 
.unauthorized, .bulletin-background, .restricted, .connection-path.full, 
.connection-path.unauthorized, .backpressure-percent.error, 
.controller-bulletins.has-bulletins, .link.selected, circle.selected, 
.listing-message, .fa-shield
+    500: #f64e4c,
+    600: #eb7071, //.bulletin-error
+    700: #f49999, // "darker" hue for this palette
+    800: #ffccd2, //.connector, .startpoint
+    900: #ffebee,
+
+    // A100 - A700 are the COMPLEMENTARY colors defined by the PRIMARY colors 
defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors
 for primary color #728e9b which is the primary color of the 
$material-primary-dark-palette.
+    // These color are used for label values, stats, timestamps, counts, etc.
+    A100: #8e77ab, //.sync-failure
+    A200: #9a81b9, // .operation-context-logo, .funnel-icon, .port-icon, 
.flowfile-icon
+    A400: #c5b7d5, // .value, .refresh-timestamp, .stats-value, 
.active-thread-count, .process-group-contents-count, .operation-context-id, 
.selected-type-name
+    A700: #afaab6, // .version-control
+
+    // These are the $nifi-canvas-accent-dark-palette PRIMARY palette contrast 
colors. These color do not really get defined by 
https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors.
+    // Instead if we look to the Angular Material provided palettes we see 
that these fields are typically rgba(black, 0.87) or white. These values are 
particularly important
+    // for light mode and dark mode as these values set the colors for the 
text when displayed against the primary background on a button, badge, chip, 
etc.
+    //
+    // NOTE: Care should be taken here to ensure the values meet accessibility 
standards.
+    //
+    // NOTE: When creating the Material palette definition 
mat.define-palette($warn-dark-palette, 400, 100, 700);
+    // Since 400 is the default the contrast-400 will be used as the default 
text color in some cases.
+    contrast: (
+        50: #ffffff,
+        100: #ffffff,
+        200: #ffffff,
+        300: #ffffff,
+        400: #ffffff,
+        500: rgba(black, 0.87),
+        600: rgba(black, 0.87),
+        700: rgba(black, 0.87),
+        800: rgba(black, 0.87),
+        900: rgba(black, 0.87),
+        A100: #ffffff,
+        A200: #ffffff,
+        A400: rgba(black, 0.87),
+        A700: rgba(black, 0.87),
+    )
+);
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/styles.scss
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/styles.scss
index 476026d32e..f156b10ee1 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/styles.scss
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/styles.scss
@@ -22,41 +22,31 @@
 @use 'assets/styles/listing-table-theme' as listing-table;
 @use 'app/app.component-theme' as app-component;
 @use 'app/pages/access-policies/feature/access-policies.component-theme' as 
access-policies;
-@use 
'app/pages/access-policies/ui/common/add-tenant-to-policy-dialog/add-tenant-to-policy-dialog.component-theme'
 as
-    add-tenant-to-policy;
-@use 
'app/pages/access-policies/ui/component-access-policies/component-access-policies.component-theme'
 as
-    component-access-policies;
+@use 
'app/pages/access-policies/ui/common/add-tenant-to-policy-dialog/add-tenant-to-policy-dialog.component-theme'
 as add-tenant-to-policy;
+@use 
'app/pages/access-policies/ui/component-access-policies/component-access-policies.component-theme'
 as component-access-policies;
 @use 'app/pages/bulletins/feature/bulletins.component-theme' as bulletins;
-@use 
'app/pages/bulletins/ui/bulletin-board/bulletin-board-list/bulletin-board-list.component-theme'
 as
-    bulletin-board-list;
+@use 
'app/pages/bulletins/ui/bulletin-board/bulletin-board-list/bulletin-board-list.component-theme'
 as bulletin-board-list;
 @use 'app/pages/counters/feature/counters.component-theme' as counters;
 @use 'app/pages/flow-designer/ui/canvas/canvas.component-theme' as canvas;
 @use 'app/pages/flow-designer/ui/canvas/footer/footer.component-theme' as 
footer;
-@use 
'app/pages/flow-designer/ui/canvas/graph-controls/navigation-control/navigation-control.component-theme'
 as
-    navigation-control;
-@use 
'app/pages/flow-designer/ui/canvas/graph-controls/navigation-control/birdseye/birdseye.component-theme'
 as
-    birdseye-control;
-@use 
'app/pages/flow-designer/ui/canvas/graph-controls/operation-control/operation-control.component-theme'
 as
-    operation-control;
+@use 
'app/pages/flow-designer/ui/canvas/graph-controls/navigation-control/navigation-control.component-theme'
 as navigation-control;
+@use 
'app/pages/flow-designer/ui/canvas/graph-controls/navigation-control/birdseye/birdseye.component-theme'
 as birdseye-control;
+@use 
'app/pages/flow-designer/ui/canvas/graph-controls/operation-control/operation-control.component-theme'
 as operation-control;
 @use 
'app/pages/flow-designer/ui/canvas/header/flow-status/flow-status.component-theme'
 as flow-status;
 @use 'app/pages/flow-designer/ui/canvas/header/header.component-theme' as 
header;
 @use 
'app/pages/flow-designer/ui/canvas/header/new-canvas-item/new-canvas-item.component-theme'
 as new-canvas-item;
 @use 'app/pages/flow-designer/ui/canvas/header/search/search.component-theme' 
as search;
 @use 
'app/pages/flow-designer/ui/canvas/items/connection/prioritizers/prioritizers.component-theme'
 as prioritizers;
-@use 
'app/pages/flow-designer/ui/canvas/items/process-group/create-process-group/create-process-group.component-theme'
-    as create-process-group;
+@use 
'app/pages/flow-designer/ui/canvas/items/process-group/create-process-group/create-process-group.component-theme'
 as create-process-group;
 @use 'app/pages/flow-designer/ui/common/banner/banner.component-theme' as 
banner;
 @use 
'app/pages/flow-designer/ui/controller-service/controller-services.component-theme'
 as controller-service;
 @use 'app/pages/login/feature/login.component-theme' as login;
 @use 'app/pages/login/ui/login-form/login-form.component-theme' as login-form;
 @use 'app/pages/provenance/feature/provenance.component-theme' as provenance;
-@use 
'app/pages/provenance/ui/provenance-event-listing/provenance-event-table/provenance-event-table.component-theme'
 as
-    provenance-event-table;
-@use 
'app/pages/provenance/ui/provenance-event-listing/provenance-event-table/lineage/lineage.component-theme'
 as
-    lineage;
+@use 
'app/pages/provenance/ui/provenance-event-listing/provenance-event-table/provenance-event-table.component-theme'
 as provenance-event-table;
+@use 
'app/pages/provenance/ui/provenance-event-listing/provenance-event-table/lineage/lineage.component-theme'
 as lineage;
 @use 'app/pages/parameter-contexts/feature/parameter-contexts.component-theme' 
as parameter-contexts;
-@use 
'app/pages/parameter-contexts/ui/parameter-context-listing/parameter-context-inheritance/parameter-context-inheritance.component-theme'
-    as parameter-context-inheritance;
+@use 
'app/pages/parameter-contexts/ui/parameter-context-listing/parameter-context-inheritance/parameter-context-inheritance.component-theme'
 as parameter-context-inheritance;
 @use 
'app/pages/queue/ui/queue-listing/flowfile-dialog/flowfile-dialog.component-theme'
 as flowfile-dialog;
 @use 
'app/pages/queue/ui/queue-listing/flowfile-table/flowfile-table.component-theme'
 as flowfile-table;
 @use 'app/pages/settings/feature/settings.component-theme' as settings;
@@ -180,7 +170,7 @@ $appFontPath: '~roboto-fontface/fonts';
 @tailwind utilities;
 
 //General status styles. TODO - Reconsider this... separating canvas/style 
styles from html styles...
-@mixin theme($material-theme, $canvas-theme) {
+@mixin nifi-colors($material-theme, $canvas-theme) {
     // Get the color config from the theme.
     $color-config: mat.get-color-config($material-theme);
     $canvas-color-config: mat.get-color-config($canvas-theme);
@@ -210,109 +200,25 @@ $appFontPath: '~roboto-fontface/fonts';
     $warn-palette-A100: mat.get-color-from-palette($warn-palette, 'A100');
     $warn-palette-A400: mat.get-color-from-palette($warn-palette, 'A400');
 
-    html,
-    body {
-        height: 100%;
-    }
-
-    body {
-        margin: 0;
-        font-family: Roboto, 'Helvetica Neue', sans-serif;
-    }
-
     a {
-        font-size: 13px;
-        cursor: pointer;
         color: $primary-palette-A400;
-        font-weight: normal;
-        display: inline-block;
-        font-family: Roboto;
-        text-decoration: underline;
         text-decoration-color: $primary-palette-200;
-        text-underline-offset: 3px;
     }
 
     a:hover {
         text-decoration-color: $primary-palette-A400;
     }
 
-    //Icon for styling mat-icon in forms throughout the application.
-    .info-icon {
-        font-size: 14px;
-        height: 14px !important;
-        width: 14px !important;
-    }
-
-    //This style is needed due to an incompatibility between material and 
tailwind.
-    .mdc-notched-outline__notch {
-        border-right: none;
-    }
-
-    .small-dialog {
-        min-width: 320px;
-    }
-
-    .medium-dialog {
-        min-width: 470px;
-    }
-
-    .medium-short-dialog {
-        max-height: 32%;
-        max-width: 34%;
-        min-height: 250px;
-        min-width: 440px;
-        font-size: 13px;
-    }
-
-    .large-dialog {
-        max-height: 72%;
-        max-width: 55%;
-        min-height: 560px;
-        min-width: 760px;
-    }
-
-    .edit-parameter-context-dialog {
-        max-height: 72%;
-        max-width: 55%;
-        min-width: 850px;
-        min-height: 575px;
-    }
-
     .tooltip {
-        position: fixed;
-        max-width: 500px;
-        padding: 10px;
         background-color: $canvas-primary-palette-900;
-        border-radius: 2px;
-        border-width: 1px;
         border-color: $canvas-primary-palette-200;
         box-shadow: 0 2px 5px $canvas-primary-palette-50;
-        font-size: 13px;
-        font-family: Roboto;
-        font-weight: 400;
-        word-wrap: break-word;
-        white-space: normal;
         color: $canvas-primary-palette-200;
-        z-index: 1;
-
-        ul {
-            list-style: disc outside;
-            margin-left: 1em;
-        }
     }
 
     .property-editor {
         background-color: $canvas-primary-palette-900;
         box-shadow: 0 2px 5px $canvas-primary-palette-50;
-        font-size: 13px;
-        font-family: Roboto;
-        font-weight: 400;
-    }
-
-    .CodeMirror-hints {
-        font-size: 13px !important;
-        z-index: 1000 !important;
-        overflow-y: scroll !important;
     }
 
     .disabled {
@@ -393,21 +299,16 @@ $appFontPath: '~roboto-fontface/fonts';
     .blank,
     .unset,
     .sensitive {
-        font-weight: normal !important;
         color: $canvas-primary-palette-400 !important;
     }
 
     button.nifi-button {
-        height: 28px;
-        width: 28px;
-        line-height: 28px;
         border: 1px solid $primary-palette-200;
         background-color: $primary-palette-50;
         color: $primary-palette-A400;
     }
 
     button.nifi-button:hover {
-        cursor: pointer;
         border-color: $primary-palette-A400;
     }
 
@@ -424,6 +325,126 @@ $appFontPath: '~roboto-fontface/fonts';
         }
     }
 
+    .value,
+    .refresh-timestamp {
+        color: $warn-palette-A400;
+    }
+}
+
+@mixin nifi-styles() {
+    html,
+    body {
+        height: 100%;
+    }
+
+    body {
+        margin: 0;
+        font-family: Roboto, 'Helvetica Neue', sans-serif;
+    }
+
+    a {
+        font-size: 13px;
+        cursor: pointer;
+        font-weight: normal;
+        display: inline-block;
+        font-family: Roboto;
+        text-decoration: underline;
+        text-underline-offset: 3px;
+    }
+
+    //Icon for styling mat-icon in forms throughout the application.
+    .info-icon {
+        font-size: 14px;
+        height: 14px !important;
+        width: 14px !important;
+    }
+
+    //This style is needed due to an incompatibility between material and 
tailwind.
+    .mdc-notched-outline__notch {
+        border-right: none;
+    }
+
+    .small-dialog {
+        min-width: 320px;
+    }
+
+    .medium-dialog {
+        min-width: 470px;
+    }
+
+    .medium-short-dialog {
+        max-height: 32%;
+        max-width: 34%;
+        min-height: 250px;
+        min-width: 440px;
+        font-size: 13px;
+    }
+
+    .large-dialog {
+        max-height: 72%;
+        max-width: 55%;
+        min-height: 560px;
+        min-width: 760px;
+    }
+
+    .edit-parameter-context-dialog {
+        max-height: 72%;
+        max-width: 55%;
+        min-width: 850px;
+        min-height: 575px;
+    }
+
+    .tooltip {
+        position: fixed;
+        max-width: 500px;
+        padding: 10px;
+        border-radius: 2px;
+        border-width: 1px;
+        font-size: 13px;
+        font-family: Roboto;
+        font-weight: 400;
+        word-wrap: break-word;
+        white-space: normal;
+        z-index: 1;
+
+        ul {
+            list-style: disc outside;
+            margin-left: 1em;
+        }
+    }
+
+    .property-editor {
+        font-size: 13px;
+        font-family: Roboto;
+        font-weight: 400;
+    }
+
+    .CodeMirror-hints {
+        font-size: 13px !important;
+        z-index: 1000 !important;
+        overflow-y: scroll !important;
+    }
+
+    .blank,
+    .unset,
+    .sensitive {
+        font-weight: normal !important;
+    }
+
+    button.nifi-button {
+        height: 28px;
+        width: 28px;
+        line-height: 28px;
+    }
+
+    button.nifi-button:hover {
+        cursor: pointer;
+    }
+
+    button.nifi-button:disabled {
+        cursor: not-allowed;
+    }
+
     .pointer {
         cursor: pointer;
     }
@@ -431,12 +452,11 @@ $appFontPath: '~roboto-fontface/fonts';
     .value,
     .refresh-timestamp {
         font-weight: 500;
-        color: $warn-palette-A400;
     }
 }
 
 // Define the palettes for your theme
-$material-primary-light: mat.define-palette($material-primary-light-palette, 
300);
+$material-primary-light: mat.define-palette($material-primary-light-palette);
 $material-accent-light: mat.define-palette($material-primary-light-palette, 
A400, A100, A700);
 $nifi-canvas-primary-light: mat.define-palette($nifi-canvas-light-palette);
 $nifi-canvas-accent-light: 
mat.define-palette($nifi-canvas-accent-light-palette, 400, 100, 700);
@@ -467,47 +487,132 @@ $nifi-canvas-theme-light: mat.define-light-theme(
     )
 );
 
+// only include this once (not needed for dark mode)
+@include nifi-styles();
+
+// generate light mode nifi stylesheets
 @include mat.all-component-themes($material-theme-light);
-@include app-component.theme($material-theme-light);
-@include theme($material-theme-light, $nifi-canvas-theme-light);
-@include listing-table.theme($material-theme-light, $nifi-canvas-theme-light);
-@include access-policies.theme($material-theme-light);
-@include add-tenant-to-policy.theme($material-theme-light);
-@include component-access-policies.theme($material-theme-light, 
$nifi-canvas-theme-light);
-@include bulletins.theme($material-theme-light);
-@include bulletin-board-list.theme($material-theme-light, 
$nifi-canvas-theme-light);
-@include counters.theme($material-theme-light);
-@include canvas.theme($material-theme-light, $nifi-canvas-theme-light);
-@include banner.theme($material-theme-light);
-@include controller-service.theme($material-theme-light);
-@include footer.theme($material-theme-light, $nifi-canvas-theme-light);
-@include navigation-control.theme($material-theme-light, 
$nifi-canvas-theme-light);
-@include birdseye-control.theme($material-theme-light, 
$nifi-canvas-theme-light);
-@include operation-control.theme($material-theme-light, 
$nifi-canvas-theme-light);
-@include flow-status.theme($material-theme-light, $nifi-canvas-theme-light);
-@include header.theme($nifi-canvas-theme-light);
-@include new-canvas-item.theme($material-theme-light, 
$nifi-canvas-theme-light);
-@include search.theme($material-theme-light, $nifi-canvas-theme-light);
-@include prioritizers.theme($material-theme-light, $nifi-canvas-theme-light);
-@include create-process-group.theme($material-theme-light);
-@include login.theme($material-theme-light, $nifi-canvas-theme-light);
-@include login-form.theme($material-theme-light);
-@include provenance-event-table.theme($material-theme-light, 
$nifi-canvas-theme-light);
-@include provenance.theme($material-theme-light, $nifi-canvas-theme-light);
-@include lineage.theme($material-theme-light, $nifi-canvas-theme-light);
-@include parameter-context-inheritance.theme($material-theme-light, 
$nifi-canvas-theme-light);
-@include parameter-contexts.theme($material-theme-light);
-@include flowfile-dialog.theme($material-theme-light);
-@include flowfile-table.theme($material-theme-light);
-@include settings.theme($material-theme-light);
-@include summary.theme($material-theme-light);
-@include users.theme($material-theme-light);
-@include context-menu.theme($material-theme-light, $nifi-canvas-theme-light);
-@include extension-creation.theme($material-theme-light, 
$nifi-canvas-theme-light);
-@include navigation.theme($material-theme-light, $nifi-canvas-theme-light);
-@include nf-editor.theme($material-theme-light, $nifi-canvas-theme-light);
-@include resizable.theme($material-theme-light, $nifi-canvas-theme-light);
-@include system-diagnostics-dialog.theme($material-theme-light);
-@include status-history.theme($material-theme-light, $nifi-canvas-theme-light);
-@include property-hint-tip.theme($material-theme-light);
-@include provenance-event-dialog.theme($material-theme-light);
+@include app-component.nifi-theme($material-theme-light);
+@include nifi-colors($material-theme-light, $nifi-canvas-theme-light);
+@include listing-table.nifi-theme($material-theme-light, 
$nifi-canvas-theme-light);
+@include access-policies.nifi-theme($material-theme-light);
+@include add-tenant-to-policy.nifi-theme($material-theme-light);
+@include component-access-policies.nifi-theme($material-theme-light, 
$nifi-canvas-theme-light);
+@include bulletins.nifi-theme($material-theme-light);
+@include bulletin-board-list.nifi-theme($material-theme-light, 
$nifi-canvas-theme-light);
+@include counters.nifi-theme($material-theme-light);
+@include canvas.nifi-theme($material-theme-light, $nifi-canvas-theme-light);
+@include banner.nifi-theme($material-theme-light);
+@include controller-service.nifi-theme($material-theme-light);
+@include footer.nifi-theme($material-theme-light, $nifi-canvas-theme-light);
+@include navigation-control.nifi-theme($material-theme-light, 
$nifi-canvas-theme-light);
+@include birdseye-control.nifi-theme($material-theme-light, 
$nifi-canvas-theme-light);
+@include operation-control.nifi-theme($material-theme-light, 
$nifi-canvas-theme-light);
+@include flow-status.nifi-theme($material-theme-light, 
$nifi-canvas-theme-light);
+@include header.nifi-theme($nifi-canvas-theme-light);
+@include new-canvas-item.nifi-theme($material-theme-light, 
$nifi-canvas-theme-light);
+@include search.nifi-theme($material-theme-light, $nifi-canvas-theme-light);
+@include prioritizers.nifi-theme($material-theme-light, 
$nifi-canvas-theme-light);
+@include create-process-group.nifi-theme($material-theme-light);
+@include login.nifi-theme($material-theme-light, $nifi-canvas-theme-light);
+@include login-form.nifi-theme($material-theme-light);
+@include provenance-event-table.nifi-theme($material-theme-light, 
$nifi-canvas-theme-light);
+@include provenance.nifi-theme($material-theme-light, 
$nifi-canvas-theme-light);
+@include lineage.nifi-theme($material-theme-light, $nifi-canvas-theme-light);
+@include parameter-context-inheritance.nifi-theme($material-theme-light, 
$nifi-canvas-theme-light);
+@include parameter-contexts.nifi-theme($material-theme-light);
+@include flowfile-dialog.nifi-theme($material-theme-light);
+@include flowfile-table.nifi-theme($material-theme-light);
+@include settings.nifi-theme($material-theme-light);
+@include summary.nifi-theme($material-theme-light);
+@include users.nifi-theme($material-theme-light);
+@include context-menu.nifi-theme($material-theme-light, 
$nifi-canvas-theme-light);
+@include extension-creation.nifi-theme($material-theme-light, 
$nifi-canvas-theme-light);
+@include navigation.nifi-theme($material-theme-light, 
$nifi-canvas-theme-light);
+@include nf-editor.nifi-theme($material-theme-light, $nifi-canvas-theme-light);
+@include resizable.nifi-theme($material-theme-light, $nifi-canvas-theme-light);
+@include system-diagnostics-dialog.nifi-theme($material-theme-light);
+@include status-history.nifi-theme($material-theme-light, 
$nifi-canvas-theme-light);
+@include property-hint-tip.nifi-theme($material-theme-light);
+@include provenance-event-dialog.nifi-theme($material-theme-light);
+
+.dark-theme {
+    // Create the color palettes used in our dark theme.
+    $material-primary-dark: mat.define-palette($material-primary-dark-palette);
+    $material-accent-dark: mat.define-palette($material-primary-dark-palette, 
A400, A100, A700);
+    $nifi-canvas-primary-dark: mat.define-palette($nifi-canvas-dark-palette);
+    $nifi-canvas-accent-dark: 
mat.define-palette($nifi-canvas-accent-dark-palette);
+    $warn-dark: mat.define-palette($warn-dark-palette, 600, 200, 800);
+
+    $material-theme-dark: mat.define-dark-theme(
+            (
+                color: (
+                    primary: $material-primary-dark,
+                    accent: $material-accent-dark,
+                    warn: $warn-dark
+                ),
+                density: 0,
+                typography: mat.define-typography-config(),
+            )
+    );
+
+    $nifi-canvas-theme-dark: mat.define-dark-theme(
+            (
+                color: (
+                    primary: $nifi-canvas-primary-dark,
+                    accent: $nifi-canvas-accent-dark,
+                    warn: $warn-dark,
+                ),
+                //typography: mat.define-typography-config(), // TODO: 
typography
+                density: -3
+            )
+    );
+
+    // Include the dark theme color styles.
+    @include mat.all-component-colors($material-theme-dark);
+
+    // generate dark mode nifi stylesheets
+    @include app-component.nifi-theme($material-theme-dark);
+    @include nifi-colors($material-theme-dark, $nifi-canvas-theme-dark);
+    @include listing-table.nifi-theme($material-theme-dark, 
$nifi-canvas-theme-dark);
+    @include access-policies.nifi-theme($material-theme-dark);
+    @include add-tenant-to-policy.nifi-theme($material-theme-dark);
+    @include component-access-policies.nifi-theme($material-theme-dark, 
$nifi-canvas-theme-dark);
+    @include bulletins.nifi-theme($material-theme-dark);
+    @include bulletin-board-list.nifi-theme($material-theme-dark, 
$nifi-canvas-theme-dark);
+    @include counters.nifi-theme($material-theme-dark);
+    @include canvas.nifi-theme($material-theme-dark, $nifi-canvas-theme-dark);
+    @include banner.nifi-theme($material-theme-dark);
+    @include controller-service.nifi-theme($material-theme-dark);
+    @include footer.nifi-theme($material-theme-dark, $nifi-canvas-theme-dark);
+    @include navigation-control.nifi-theme($material-theme-dark, 
$nifi-canvas-theme-dark);
+    @include birdseye-control.nifi-theme($material-theme-dark, 
$nifi-canvas-theme-dark);
+    @include operation-control.nifi-theme($material-theme-dark, 
$nifi-canvas-theme-dark);
+    @include flow-status.nifi-theme($material-theme-dark, 
$nifi-canvas-theme-dark);
+    @include header.nifi-theme($nifi-canvas-theme-dark);
+    @include new-canvas-item.nifi-theme($material-theme-dark, 
$nifi-canvas-theme-dark);
+    @include search.nifi-theme($material-theme-dark, $nifi-canvas-theme-dark);
+    @include prioritizers.nifi-theme($material-theme-dark, 
$nifi-canvas-theme-dark);
+    @include create-process-group.nifi-theme($material-theme-dark);
+    @include login.nifi-theme($material-theme-dark, $nifi-canvas-theme-dark);
+    @include login-form.nifi-theme($material-theme-dark);
+    @include provenance-event-table.nifi-theme($material-theme-dark, 
$nifi-canvas-theme-dark);
+    @include provenance.nifi-theme($material-theme-dark, 
$nifi-canvas-theme-dark);
+    @include lineage.nifi-theme($material-theme-dark, $nifi-canvas-theme-dark);
+    @include parameter-context-inheritance.nifi-theme($material-theme-dark, 
$nifi-canvas-theme-dark);
+    @include parameter-contexts.nifi-theme($material-theme-dark);
+    @include flowfile-dialog.nifi-theme($material-theme-dark);
+    @include flowfile-table.nifi-theme($material-theme-dark);
+    @include settings.nifi-theme($material-theme-dark);
+    @include summary.nifi-theme($material-theme-dark);
+    @include users.nifi-theme($material-theme-dark);
+    @include context-menu.nifi-theme($material-theme-dark, 
$nifi-canvas-theme-dark);
+    @include extension-creation.nifi-theme($material-theme-dark, 
$nifi-canvas-theme-dark);
+    @include navigation.nifi-theme($material-theme-dark, 
$nifi-canvas-theme-dark);
+    @include nf-editor.nifi-theme($material-theme-dark, 
$nifi-canvas-theme-dark);
+    @include resizable.nifi-theme($material-theme-dark, 
$nifi-canvas-theme-dark);
+    @include system-diagnostics-dialog.nifi-theme($material-theme-dark);
+    @include status-history.nifi-theme($material-theme-dark, 
$nifi-canvas-theme-dark);
+    @include property-hint-tip.nifi-theme($material-theme-dark);
+    @include provenance-event-dialog.nifi-theme($material-theme-dark);
+}

Reply via email to