scottyaslan commented on code in PR #8480:
URL: https://github.com/apache/nifi/pull/8480#discussion_r1518466606
##########
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/assets/themes/nifi.scss:
##########
@@ -49,355 +53,100 @@ $material-primary-light-palette: (
// NOTE: When creating the Material palette definition
mat.define-palette($material-primary-light-palette, 300);
// Since 300, was set as the default the contrast-300 will be used as the
default text color.
contrast: (
- 50: rgba(black, 0.87),
- 100: rgba(black, 0.87),
- 200: rgba(black, 0.87),
- 300: #ffffff,
- 400: #ffffff,
- 500: #ffffff,
- 600: #ffffff,
- 700: #ffffff,
- 800: #ffffff,
- 900: #ffffff,
- A100: rgba(black, 0.87),
- A200: rgba(black, 0.87),
- A400: #ffffff,
- A700: #ffffff,
- )
-);
-
-// 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-listing-header, .settings-header, .summary-header, .user-header, table
th, button.global-menu-item.fa, button.global-menu-item.icon, .event-header,
.section-header,
- 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)
- 50: rgba(0, 0, 0, 0.25), // .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, .context-menu, .global-menu:hover,
- 100: rgba(black, 0.87), // .prioritizer-draggable-item,
.parameter-context-draggable-item
- 200: #000, // .tooltip, .cm-s-default .CodeMirror-matchingbracket,
circle.flowfile-link
- 300: #aaaaaa, // .context-menu-item:active, .CodeMirror, .cm-s-default
.CodeMirror-matchingbracket
- 400: #acacac, // .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: #d8d8d8, // g.connection rect.backpressure-object, g.connection
rect.backpressure-data-size, .cdk-drag-disabled, .resizable-triangle
- 600: #f9fafb, // .canvas-background, .navigation-control,
.operation-control, .lineage
- 700: #e5ebed, // .canvas-background, g.component rect.body.unauthorized,
g.component rect.processor-icon-container.unauthorized, g.connection
rect.body.unauthorized, #birdseye, .lineage
- 800: #f4f6f7, // .even, .remote-process-group-sent-stats,
.processor-stats-in-out, .process-group-queued-stats,
.process-group-read-write-stats
- 900: rgba(255, 255, 255, 1), // 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, text.connection-to-run-status, text.expiration-icon,
text.load-balance-icon, text.penalized-icon, g.connection
rect.backpressure-tick.data-size-prediction.prediction-down, g.connection
rect.backpressure-tick.object-prediction.prediction-down, text.version-control,
.breadcrumb-container, #birdseye, .controller-bulletins .fa,
.search-container:hover, .search-container.open, .login-background, table th,
.mat-sort-header-arrow, .CodeMirror, #status-history-chart-container,
#status-history-chart-cont
rol-container, #status-history-chart-control-container,
-
- // some analog colors for headers and hover states, inputs, stats, etc
- A100: rgba(227, 232, 235, 0), // .navigation-control-header:hover,
.operation-control-header:hover, .axis path, .axis line
- A200: #262626, // .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: #444, // rect.component-selection, rect.drag-selection,
rect.label-drag
- A700: #666, // text.processor-bundle, .search-container:hover,
.search-container.open, .search-container.fa, .selected-type-bundle, .brush
.selection
-
- // These are the $nifi-canvas-light-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-light-palette);
- // Since 500 is the default the contrast-500 will be used as the default
text color.
- contrast: (
- 50: rgba(black, 0.87),
- 100: rgba(black, 0.87),
- 200: rgba(black, 0.87),
- 300: rgba(black, 0.87),
- 400: #ffffff,
- 500: #ffffff,
- 600: #ffffff,
- 700: #ffffff,
- 800: #ffffff,
- 900: #ffffff,
- A100: rgba(black, 0.87),
- A200: rgba(black, 0.87),
- A400: #ffffff,
- A700: #ffffff,
- )
-);
-
-// 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, .context-menu, .global-menu:hover,
- 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, 1), // .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, text.connection-to-run-status, text.expiration-icon,
text.load-balance-icon, text.penalized-icon, g.connection
rect.backpressure-tick.data-size-prediction.prediction-down, g.connection
rect.backpressure-tick.object-prediction.prediction-down, text.version-control,
.breadcrumb-container, #birdseye, .controller-bulletins .fa,
.search-container:hover, .search-container.open, .login-background, table th,
.mat-sort-header-arrow, .CodeMirror, #status-history-chart-container,
#status-history-chart-control
-container, #status-history-chart-control-container,
-
- // 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
- 50: #e6f6ec,
- 100: #c3e8d0, // "lighter" hue for this palette.
- 200: #9dd9b2, //.running
- 300: #73ca94, //.backpressure-percent
- 400: #52bf7e, // color="primary" Default hue for this palette. Also
.up-to-date
- 500: #2cb367,
- 600: #1A9964, //.version-control
- 700: #016131, // "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: #ffef85, //.selected
- A200: #f8bf47, //.invalid, .is-missing-port, circle.context
- A400: #bda500, //.backpressure-percent-warning, .bulletin-warn,
.backpressure-percent.warning, text.run-status-icon
- A700: #ffcc00, //g.connection.selected rect.border,
.connection-selection-path, .midpoint, .labelpoint
-
- // These are the $nifi-canvas-accent-light-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-light-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: rgba(black, 0.87),
- 100: rgba(black, 0.87),
- 200: rgba(black, 0.87),
- 300: rgba(black, 0.87),
- 400: rgba(black, 0.87),
- 500: rgba(black, 0.87),
- 600: #ffffff,
- 700: #ffffff,
- 800: #ffffff,
- 900: #ffffff,
- A100: rgba(black, 0.87),
- A200: rgba(black, 0.87),
- A400: rgba(black, 0.87),
- A700: rgba(black, 0.87),
+ 50: $on-surface-dark,
+ 100: $on-surface-dark,
+ 200: $on-surface-dark,
+ 300: $on-surface-dark,
+ 400: $on-surface-dark,
+ 500: $on-surface-dark,
+ 600: #004849, // We use a custom contrast color for the primary
default color.
Review Comment:
I see that you are using this color to calculate the nifi-navigation toolbar
background color as well as the draggable icons, text, etc. but according to
everything I know about Material Design and the Angular Material implementation
of it (which isn't everything but I do have quite a bit of experience with it)
this contrast color should not be dark like this. It should pretty much be
white. When I run the suggestion I recently made (which I think follow more
closely with the Angular Material example palettes) in the Angular Material
demo app I see the toolbars look like this:
Light Mode:
<img width="1727" alt="Screenshot 2024-03-08 at 10 04 20 PM"
src="https://github.com/apache/nifi/assets/6797571/5ab10892-5967-4357-8a1e-40cff0f73310">
Dark Mod
<img width="1728" alt="Screenshot 2024-03-08 at 10 04 11 PM"
src="https://github.com/apache/nifi/assets/6797571/408028eb-b3d6-4dc9-9e19-9bd1ea0ba7bb">
e:
I really like and appreciate you trying to make use of #004849 as an accent
color in the new nifi ui as it is such a prevalent and iconic color in the
legacy nifi ui. Do you think there is an alternative approach we can use for
the nifi-navigation toolbar that does not require such a seemingly wrong
contrast color like this?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]