Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

m3-ripple

Material Design 3 ripple effect for React (demo)

Installation

npm install m3-ripple

Usage

Put Ripple component inside any element, and set position: relative.

The ripple effect will automatically be applied when the element is pressed.

import { Ripple } from 'm3-ripple' import 'm3-ripple/ripple.css' function Demo() { return ( <button style={{ position: 'relative', color: 'white', padding: '1rem 2rem', backgroundColor: '#6200ee' }} > <Ripple /> Click Me </button> ) }

Customization

Ripple color will inherits the color of the parent element using currentColor. You can customize the ripple color by setting the color property on the parent element.

import { Ripple } from 'm3-ripple' import 'm3-ripple/ripple.css' function Demo() { return ( <button style={{ position: 'relative', color: 'red' }} > <Ripple /> Click Me </button> ) }

CSS Variable

You can set global CSS variables to customize the ripple opacity for hover and pressed states.

:root { --ripple-hover-opacity: 0.08; --ripple-pressed-opacity: 0.12; }

Otherwise, you can set the opacity using the hoverOpacity and pressedOpacity props.

import { Ripple } from 'm3-ripple' import 'm3-ripple/ripple.css' function Demo() { return ( <Ripple hoverOpacity={0.1} pressedOpacity={0.15} /> ) }

Props

Here's a type definition of the props you can use with the Ripple component:

export interface RippleProps { /** * Disables the ripple. */ disabled?: boolean /** * hoverOpacity: The opacity of the ripple when hovered. * * @default 0.08 */ hoverOpacity?: number /** * pressedOpacity: The opacity of the ripple when pressed. * * @default 0.12 */ pressedOpacity?: number /** * Additional CSS classes to apply to the ripple container. */ className?: string /** * Additional styles to apply to the ripple container. */ style?: React.CSSProperties /** * Easing function for the ripple animation. */ easing?: 'cubic-bezier(0.2, 0, 0, 1)' /** * The duration in milliseconds for the ripple to grow when pressed. * * @default 150 */ duration?: number /** * The minimum duration in milliseconds for the ripple to be considered a * valid press. * * @default 225 */ minimumPressDuration?: number /** * * The duration in milliseconds for the ripple to wait before starting the * * @default 150 */ touchDelay?: number }

关于 About

Material Design 3 ripple effect for React
materialreactripple

语言 Languages

TypeScript87.8%
HTML4.8%
CSS4.6%
JavaScript2.7%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
24
Total Commits
峰值: 17次/周
Less
More

核心贡献者 Contributors