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 text above it. When a line ripple is active, the line’s color and thickness vary.
Design & API Documentation
Usage
HTML Structure
<div class="mdc-line-ripple"></div>
Usage within mdc-text-field
<div class="mdc-text-field">
<input type="text" id="my-text-field-id" class="mdc-text-field__input">
<label class="mdc-floating-label" for="my-text-field-id">Hint text</label>
<div class="mdc-line-ripple"></div>
</div>
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 |
---|
mdc-line-ripple-color($color) | Customizes the color of the line ripple when active |
MDCLineRipple
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 |
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 |
setAttr(attr: string, value: string) => void | Sets an attribute with a given value on the root element |
registerEventHandler(evtType: string, handler: EventListener) => void | Registers an event listener on the root element for a given event |
deregisterEventHandler(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 |