What is @material/line-ripple?
@material/line-ripple is a package from the Material Components for the Web (MDC Web) library. It provides a line ripple component, which is typically used as an underline for text fields and other input elements. The line ripple is a visual effect that animates when the input element gains or loses focus, enhancing the user experience by providing a clear visual cue.
What are @material/line-ripple's main functionalities?
Initialize Line Ripple
This code initializes the line ripple component on an element with the class 'mdc-line-ripple'. The MDCLineRipple class is part of the @material/line-ripple package and is used to create and manage the line ripple effect.
const lineRipple = new MDCLineRipple(document.querySelector('.mdc-line-ripple'));
Activate Line Ripple
This code activates the line ripple effect, typically used when an input element gains focus. The activate method triggers the animation that makes the line ripple visible.
lineRipple.activate();
Deactivate Line Ripple
This code deactivates the line ripple effect, typically used when an input element loses focus. The deactivate method triggers the animation that hides the line ripple.
lineRipple.deactivate();
Set Ripple Center
This code sets the center of the ripple effect to a specific coordinate. The setRippleCenter method is useful for customizing the appearance of the ripple effect based on user interactions.
lineRipple.setRippleCenter(50);
Other packages similar to @material/line-ripple
material-ui
Material-UI is a popular React component library that implements Google's Material Design. It provides a wide range of components, including input fields with underline effects similar to the line ripple in @material/line-ripple. Material-UI is more comprehensive and offers a broader set of components and utilities for building Material Design applications.
react-md
react-md is another React component library that follows Material Design guidelines. It includes components for text fields with underline effects, similar to the line ripple provided by @material/line-ripple. react-md focuses on providing a complete set of Material Design components for React applications.
vuetify
Vuetify is a Material Design component framework for Vue.js. It offers a wide range of components, including input fields with underline effects similar to the line ripple in @material/line-ripple. Vuetify is designed to be a comprehensive solution for building Material Design applications with Vue.js.
Line Ripple
The line ripple is used to highlight user-specified input above it. When a line ripple is active, the line’s color and thickness changes.
Design & API Documentation
Installation
npm install @material/line-ripple
Basic Usage
HTML Structure
<span class="mdc-line-ripple"></span>
Styles
@use "@material/line-ripple/mdc-line-ripple";
JavaScript Instantiation
import {MDCLineRipple} from '@material/line-ripple';
const lineRipple = new MDCLineRipple(document.querySelector('.mdc-line-ripple'));
Style Customization
CSS Classes
CSS Class | Description |
---|
mdc-line-ripple | Mandatory. |
mdc-line-ripple--active | Styles the line ripple as an active line ripple. |
mdc-line-ripple--deactivating | Styles the line ripple as a deactivating line ripple. |
Sass Mixins
Mixin | Description |
---|
active-color($color) | Customizes the color of the line ripple when active. |
inactive-color($color) | Customizes the color of the line ripple when inactive. |
MDCLineRipple
Properties and Methods
Method Signature | Description |
---|
activate() => void | Proxies to the foundation's activate() method. |
deactivate() => void | Proxies to the foundation's deactivate() method. |
setRippleCenter(xCoordinate: number) => void | Proxies to the foundation's setRippleCenter(xCoordinate: number) method. |
Usage Within Frameworks
If you are using a JavaScript framework, such as React or Angular, you can create a Line Ripple for your framework. Depending on your needs, you can use the Simple Approach: Wrapping MDC Web Vanilla Components, or the Advanced Approach: Using Foundations and Adapters. Please follow the instructions here.
MDCLineRippleAdapter
Method Signature | Description |
---|
addClass(className: string) => void | Adds a class to the root element. |
removeClass(className: string) => void | Removes a class from the root element. |
hasClass(className: string) => boolean | Determines whether the root element has the given CSS class name. |
setStyle(propertyName: string, value: string) => void | Sets the style property with propertyName to value on the root element. |
registerEventHandler(evtType: EventType, handler: EventListener) => void | Registers an event listener on the root element for a given event. |
deregisterEventHandler(evtType: EventType, handler: EventListener) => void | Deregisters an event listener on the root element for a given event. |
MDCLineRippleFoundation
Method Signature | Description |
---|
activate() => void | Activates the line ripple. |
deactivate() => void | Deactivates the line ripple. |
setRippleCenter(xCoordinate: number) => void | Sets the center of the ripple to the xCoordinate given. |
handleTransitionEnd(evt: Event) => void | Handles a transitionend event. |