diff --git a/browser/components/NoteItem.js b/browser/components/NoteItem.js index 70708223..5e8d009f 100644 --- a/browser/components/NoteItem.js +++ b/browser/components/NoteItem.js @@ -4,6 +4,7 @@ import PropTypes from 'prop-types' import React from 'react' import { isArray } from 'lodash' +import invertColor from 'invert-color' import CSSModules from 'browser/lib/CSSModules' import { getTodoStatus } from 'browser/lib/getTodoStatus' import styles from './NoteItem.styl' @@ -16,11 +17,18 @@ import i18n from 'browser/lib/i18n' * @param {string} color * @return {React.Component} */ -const TagElement = ({ tagName, color }) => ( - - #{tagName} - -) +const TagElement = ({ tagName, color }) => { + const style = {} + if (color) { + style.backgroundColor = color + style.color = invertColor(color, { black: '#222', white: '#f1f1f1', threshold: 0.3 }) + } + return ( + + #{tagName} + + ) +} /** * @description Tag element list component. diff --git a/browser/main/Detail/TagSelect.js b/browser/main/Detail/TagSelect.js index caf0cf39..511ecf1a 100644 --- a/browser/main/Detail/TagSelect.js +++ b/browser/main/Detail/TagSelect.js @@ -1,5 +1,6 @@ import PropTypes from 'prop-types' import React from 'react' +import invertColor from 'invert-color' import CSSModules from 'browser/lib/CSSModules' import styles from './TagSelect.styl' import _ from 'lodash' @@ -183,12 +184,19 @@ class TagSelect extends React.Component { const tagList = _.isArray(value) ? (showTagsAlphabetically ? _.sortBy(value) : value).map((tag) => { + const wrapperStyle = {} + const textStyle = {} + const color = coloredTags[tag] + if (color) { + wrapperStyle.backgroundColor = color + textStyle.color = invertColor(color, { black: '#222', white: '#f1f1f1' }) + } return ( - this.handleTagLabelClick(tag)}>#{tag} + this.handleTagLabelClick(tag)}>#{tag}