Currently, this component is styled via CSS, and customization can be done by setting CSS variables in the rendering component's stylesheet. I'd like to add a way for users to customize the look and feel of the Circle of Fifths without needing to write any CSS if that's their preference.
As of the writing of this issue, the component supports the following customization properties:
--cf-major-keys-fill: #84CC16;
--cf-major-keys-fill-hover: #65A30D;
--cf-major-keys-fill-selected: #65A30D;
--cf-minor-keys-fill: #84CC16;
--cf-minor-keys-fill-hover: #65A30D;
--cf-minor-keys-fill-selected: #65A30D;
--cf-diminished-keys-fill: #84CC16;
--cf-stroke-color: black;
--cf-stroke-width: 2px;
--cf-text-color: black;
A few outstanding questions about how this should work:
- I'm not sure how feasible it is to use both the CSS variable method and styling via props at the same time. Might have to be an either/or kind of thing.
- React does not provide a good way to set styles for psuedo-selectors like
:hover out of the box. Most of the solutions I've seen involve implementing onMouseEnter and onMouseLeave callbacks on the component, which is a bit gross, but workable.
Please feel free to comment on or vote on this issue if this is an important feature to you, and I'll try to prioritize accordingly! Also, PRs would be welcomed!
Currently, this component is styled via CSS, and customization can be done by setting CSS variables in the rendering component's stylesheet. I'd like to add a way for users to customize the look and feel of the Circle of Fifths without needing to write any CSS if that's their preference.
As of the writing of this issue, the component supports the following customization properties:
A few outstanding questions about how this should work:
:hoverout of the box. Most of the solutions I've seen involve implementing onMouseEnter and onMouseLeave callbacks on the component, which is a bit gross, but workable.Please feel free to comment on or vote on this issue if this is an important feature to you, and I'll try to prioritize accordingly! Also, PRs would be welcomed!