Затемнить цвет контейнера в css

Мне нужно что бы я задавал цвет в inline стилях и при наведении на контейнер он ставал темнее в зависимости от цвета.

Пока что у меня только такое вышло:

.example {
  width: 200px;
  height: 200px;
  margin: 15px;
}

.example:hover {
  cursor: pointer;
  background-color: #6c9721; /* не понимаю почему здесь это не сработало */
}
<div class='example' style="background-color: #7db122"></div>
<div class='example' style="background-color: #4cb1ca"></div>

Буду благодарен, если поможете.


Ответы (2 шт):

Автор решения: Алис

Советую вам для этого использовать свойство filter, оно отлично подходит для таких ситуаций.

.example {
    width: 200px;
    height: 200px;
    margin: 15px;
}

.example:hover {
    cursor: pointer;
    filter: brightness(70%);
}
<div class='example' style="background-color: #7db122"></div>
<div class='example' style="background-color: #4cb1ca"></div>

→ Ссылка
Автор решения: Инквизитор

Чтобы затемнение а) зависело от цвета само, и не пришлось задавать его для каждого цвета и б) не влияло на элементы внутри блоков, надо как-то влиять на сам фон. Вариант - использовать псевдоэелемент:

.example {
  width: 200px;
  height: 200px;
  margin: 15px;
  color: white;
  position: relative;
}

.example * {
  z-index: 1;
  position: relative;
}

.example:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background-color: transparent;
  z-index: 0;
  transition-duration: 0.5s;
}

.example:hover:before {
  background-color: rgba(0, 0, 0, 0.25);
}
<div class='example' style="background-color: #7db122"><span>Text</span></div>
<div class='example' style="background-color: #4cb1ca"><span>Text</span></div>

→ Ссылка