Skip to content

feat(editor): Add custom color picker for sticky notes#23699

Merged
RicardoE105 merged 4 commits inton8n-io:masterfrom
LudwigGerdes:feat/sticky-note-custom-color-picker
Feb 11, 2026
Merged

feat(editor): Add custom color picker for sticky notes#23699
RicardoE105 merged 4 commits inton8n-io:masterfrom
LudwigGerdes:feat/sticky-note-custom-color-picker

Conversation

@LudwigGerdes
Copy link
Contributor

@LudwigGerdes LudwigGerdes commented Dec 29, 2025

Summary

Allow users to select any custom color for sticky notes in addition to the 7 preset colors. Adds an 8th color button with a rainbow gradient that opens a color picker modal with hex input and recent colors history. Custom colors feature theme-aware borders that automatically adjust for optimal visibility in both light and dark modes.

Key changes:

  • Add custom color picker modal using N8nColorPicker component
  • Extend sticky note color type from number to number | string
  • Add theme-aware border adjustment (20% darker in light mode, 80% lighter in dark mode)
  • Add hex color validation and lightness adjustment utilities with tests
  • Store up to 8 recent custom colors in localStorage
  • Add 20 unit tests for color utilities
  • Add 13 unit tests for sticky note component
  • Full backward compatibility with existing preset colors (1-7)

🤖 Generated with assistance from Claude Code

Example Color Palettes (Light & Dark Mode)

sticky_note_examples-dark_mode sticky_note_examples-light_mode

Example Color Picker (Light & Dark Mode)

sticky_note_color_picker-dark_mode sticky_note_color_picker-light_mode

Example Custom Color Modal (Light & Dark Mode)

sticky_note_custom_color_modal-dark_mode sticky_note_custom_color_modal-light_mode

Related Linear tickets, Github issues, and Community forum posts

Review / Merge checklist

Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 11 files

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them.


<file name="packages/frontend/@n8n/design-system/src/components/N8nSticky/Sticky.vue">

<violation number="1" location="packages/frontend/@n8n/design-system/src/components/N8nSticky/Sticky.vue:7">
P2: Rule violated: **Tests**

The `adjustColorLightness` function lacks unit tests despite being core functionality for computing theme-aware border colors. This function contains non-trivial RGB manipulation and percentage adjustment logic that should be tested. Consider adding tests for edge cases like:
- Positive/negative percentage adjustments
- Boundary values (pure black #000000, pure white #FFFFFF)
- Invalid inputs
- Clamping behavior (values exceeding 0-255 range)</violation>

<violation number="2" location="packages/frontend/@n8n/design-system/src/components/N8nSticky/Sticky.vue:110">
P2: The `customColor` class is applied for any string backgroundColor, but CSS variables are only set for valid hex colors. This mismatch causes undefined CSS variable references when an invalid hex color string is provided. Consider adding validation to the class condition to match the style generation logic.</violation>
</file>

Reply to cubic to teach it or ask questions. Tag @cubic-dev-ai to re-run a review.

Allow users to select any custom color for sticky notes in addition to the 7 preset colors. Adds an 8th color button with a rainbow gradient that opens a color picker modal with hex input and recent colors history. Custom colors feature theme-aware borders that automatically adjust for optimal visibility in both light and dark modes.

Key changes:
- Add custom color picker modal using N8nColorPicker component
- Extend sticky note color type from number to number | string
- Add theme-aware border adjustment (20% darker in light mode, 80% lighter in dark mode)
- Add hex color validation and lightness adjustment utilities with tests
- Store up to 8 recent custom colors in localStorage
- Add 20 unit tests for color utilities
- Add 13 unit tests for sticky note component
- Full backward compatibility with existing preset colors (1-7)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

## Related Community forum posts
- https://community.n8n.io/t/expand-color-palette-or-add-custom-color-picker-for-sticky-notes/166547
- https://community.n8n.io/t/more-colors-custom-colors-for-sticky-notes/52508
- https://community.n8n.io/t/sticky-note-colors-created/15343
@LudwigGerdes LudwigGerdes force-pushed the feat/sticky-note-custom-color-picker branch from 1fd3a16 to b90caf8 Compare December 29, 2025 15:48
@LudwigGerdes
Copy link
Contributor Author

@Joffcom @RicardoE105 Thought you'd both get a kick out of this. Hope you're doing well!

@n8n-assistant n8n-assistant bot added community Authored by a community member in linear DEPRECATED labels Dec 29, 2025
@n8n-assistant
Copy link
Contributor

n8n-assistant bot commented Dec 29, 2025

Hey @LudwigGerdes,

Thank you for your contribution. We appreciate the time and effort you’ve taken to submit this pull request.

Before we can proceed, please ensure the following:
• Tests are included for any new functionality, logic changes or bug fixes.
• The PR aligns with our contribution guidelines.

Regarding new nodes:
We no longer accept new nodes directly into the core codebase. Instead, we encourage contributors to follow our Community Node Submission Guide to publish nodes independently.

If your node integrates with an AI service that you own or represent, please email nodes@n8n.io and we will be happy to discuss the best approach.

About review timelines:
This PR has been added to our internal tracker as "GHC-6083". While we plan to review it, we are currently unable to provide an exact timeframe. Our goal is to begin reviews within a month, but this may change depending on team priorities. We will reach out when the review begins.

Thank you again for contributing to n8n.

@phil-fetchski
Copy link

Is this going to make it in? This would be a really nice feature!

@codecov
Copy link

codecov bot commented Feb 11, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

RicardoE105
RicardoE105 previously approved these changes Feb 11, 2026
@RicardoE105 RicardoE105 added this pull request to the merge queue Feb 11, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Feb 11, 2026
@RicardoE105
Copy link
Contributor

RicardoE105 commented Feb 11, 2026

@LudwigGerdes had to simplify it to get it merged. We can later iterate and add the recent colors section back again. Hope you do not mind. Very very cool contribution, you rock 🚀

@RicardoE105 RicardoE105 added this pull request to the merge queue Feb 11, 2026
@RicardoE105 RicardoE105 removed this pull request from the merge queue due to a manual request Feb 11, 2026
@RicardoE105 RicardoE105 added this pull request to the merge queue Feb 11, 2026
Merged via the queue into n8n-io:master with commit c9f3f9b Feb 11, 2026
29 checks passed
This was referenced Feb 16, 2026
@LudwigGerdes
Copy link
Contributor Author

@LudwigGerdes had to simplify it to get it merged. We can later iterate and add the recent colors section back again. Hope you do not mind. Very very cool contribution, you rock 🚀

@RicardoE105 Bro, you're the best! This is going to be 🔥

@n8n-assistant
Copy link
Contributor

n8n-assistant bot commented Feb 17, 2026

Got released with n8n@2.9.0

Tuukkaa pushed a commit that referenced this pull request Mar 2, 2026
Co-authored-by: Ricardo Espinoza <ricardo@n8n.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community Authored by a community member in linear DEPRECATED Released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants