Free
Pro

Ripple

Adds a Material-style ink ripple on pointer press or Enter/Space. Attach ply-ripple to any host — buttons, cards, list rows, and custom surfaces.

freenew

Buttons

Works with ply-button and friends. Default ink is soft white for filled buttons.

Surfaces & color

On light backgrounds, set a dark rippleColor. Use rippleCentered to always expand from the middle.

Duration & disabled

Tune speed with rippleDuration (ms). Gate the effect with rippleDisabled, or rely on the native disabled attribute.

Installation

Run the following command to add this directive to your project:

bash

npx ply-ui-cli add ripple

API Reference

For AI agents

Copy a prompt with the registry name, CLI install, and import — or add the Ply MCP server.

bash

npx -y ply-ui-mcp

Ply provides standalone components. Import the exact elements you want to use into your component.

typescript (Example)

// Install: npx ply-ui-cli add ripple
// Paths are relative to aliases.components (default: src/app/components)
import { RippleDirective } from './ripple/ripple.directive';

@Component({
  selector: 'app-your-component',
  imports: [
    RippleDirective
  ],
  template: `...`
})
export class YourComponent {}

API for ripple — generated from JSDoc in the library source.

API reference for ripple
APIMemberTypeDefaultDescription
[ply-ripple]rippleColorunknownDEFAULT_COLORInk color (any CSS color). Defaults to a soft white for filled buttons. Use a dark rgba on light surfaces.
[ply-ripple]rippleCenteredbooleanfalseAlways originates from the host center instead of the pointer position.
[ply-ripple]rippleDisabledbooleanfalseDisables ripple creation while leaving the directive attached.
[ply-ripple]rippleDurationnumberDEFAULT_DURATIONAnimation duration in milliseconds.