feat: add card covers - #605
Draft
bionicman wants to merge 11 commits into
Draft
Conversation
This was referenced Sep 8, 2026
bionicman
force-pushed
the
feat/card-covers
branch
from
September 10, 2026 12:45
7c0e8f8 to
e68c42b
Compare
15 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds optional colour and attachment-backed image covers to cards.
I built this while moving several teams from Trello to Kan. Covers are used as
quick visual landmarks on busy boards, so retaining the interaction matters to
the migration. The implementation continues the colour-cover direction explored
in #515 and keeps the native model provider-neutral.
image;
detail;
batches;
board data;
templates, while resetting image-only presentation state because attachments
themselves are not copied by those operations.
Uploaded covers reuse ordinary card attachments. The card stores only selected
cover state, so there is no parallel asset model and removing a cover does not
delete the attachment.
I realise that decoration features have a noticeable effect on the interface
and may deserve a wider product discussion. The feature is deliberately
non-invasive for existing users: cards without covers keep their current
appearance, and a local display preference lets each user make covers
prominent, subdued or hidden. This preserves a familiar workflow for teams
moving from Trello without imposing it on people who prefer Kan's clean default
style. I am open to constructive suggestions on the UX and boundaries.
This PR is intended to be considered together with the board-background work in
#606. They are separate review units, but solve the same navigation and
personalisation problem on cards and boards respectively.
The built-in importer does not materialise a selected Trello image attachment.
That is intentionally kept as a follow-up: it needs a bounded authenticated
downloader, redirect validation and object-store rollback, and should not be
hidden inside this already substantial UI/model change. No remote Trello URL is
stored or rendered at runtime.
Screenshots
Authenticated board, prominent covers:
Card detail and cover picker:
Account display preference:
Anonymous public board:
Verification
upstream/mainbootstrap.cjsand two boardvisibility errors present on
upstream/main)Type of change
Checklist
Linked issue
Part of #155