DevGang
Авторизоваться

Добавьте эффект свечения с трассировкой мыши к компонентам React.

Добавьте эффект свечения трассировки мыши к компонентам React

Эффект свечения будет работать только при использовании мыши в качестве указателя. События касания не вызовут его.

Посмотрите это в прямом эфире на codaworks.com.

Установка

Установите пакет с помощью npm:

npm i @codaworks/react-glow

Применение

Оберните любое количество компонентов <Glow> в <GlowCapture>, который будет использоваться для отслеживания местоположения мыши.

<GlowCapture>
  <span>This won't glow</span>
  <Glow color='purple'>
    <span className='text-black glow:text-glow/50 glow:bg-red-100'>
      This will glow purple when the mouse is passed over
    </span>
  </Glow>
</GlowCapture>

Дети <Glow> могут сами придумать, как они будут выглядеть, когда светятся. Вы можете оставить некоторые дочерние элементы без изменений или выделить их с помощью стиля glow:.

Значение color будет доступно как переменная CSS --glow-color, а также цвет свечения Tailwind. Вы можете передать любой допустимый цвет CSS, включая значения hsl() и т. д. Конечно, вы можете использовать любой другой цвет; вы можете полностью исключить цветовую опору.

Tailwind

Добавьте плагин Tailwind, чтобы разблокировать glow: вариант и цвет glow.

tailwind.config.js

module.exports = {
  ...
  plugins: [
    require('@codaworks/react-glow/tailwind')
  ]
}

Как и для всех цветов в Tailwind, вы можете добавить непрозрачность, добавив процент после цвета, например bg-glow/20 для непрозрачности 20%.

Vanilla CSS

Вы можете стилизовать эффект свечения с помощью ванильного CSS:

<GlowCapture>
  <span>This won't glow</span>
  <Glow color='hsl(338.69 100% 48.04%)'>
    <span className='glowable-text'>
      This will glow pink when the mouse is passed over
    </span>
  </Glow>
</GlowCapture>
.glowable-text {
  color: black;
}

[glow] .glowable-text {
  color: var(--glow-color);
}

Источник:

#React
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу