React MUI ImageListItemBar API
MUI or Material-UI is a UI library providing predefined robust and customizable components for React for easier web development. The MUI design is based on top of Material Design by Google.
In this article, we will discuss the React MUI ImageListItemBar API. The ImageList displays a collection of images in a structured grid format. ImageListItemBar allows to the placement of an overlay over the images containing some caption. The ImageListItemBar enables to place an overlay over the panel where we can place the action button, title, and subtitle. The API provides a lot of functionality and we will learn to implement them.
Import ImageListItemBar API:
import ImageListItemBar from '@mui/material/ImageListItemBar'; // or import { ImageListItemBar } from '@mui/material';
Props List: Here is the list of different props used with this component. We can access them and modify them according to our needs.
- actionIcon: It is used to set an icon button on the component which can be used as a secondary action.
- actionPosition: It is used to set the position of the actionIcon. The default value is right.
- classes: Override the existing styles or add new styles to the component.
- position: It is used to set the position of the title bar. The default position is the bottom.
- subtitle: It is used to add a subtitle to the title bar.
- title: It is used to set the title to be displayed.
CSS Rules:
- root: It is the styles applied to the root element.
- positionBottom: It is the styles applied to the root element if the position is bottom.
- positionTop: It is the style applied to the root element if the position is top.
- positionBelow: It is the styles applied to the root element if the position is below.
- titleWrap: It is the styles applied to the title and subtitle container element.
- titleWrapBelow: It is the styles applied to the title and subtitle container element if the position is below.
- titleWrapActionPosLeft: It is the styles applied to the container element if actionPosition is left.
- titleWrapActionPosRight: It is the styles applied to the container element if actionPosition is right.
- title: It is the styles applied to the title container element.
- subtitle: It is the style applied to the subtitle container element.
- actionIcon: It is the styles applied to the actionIcon if supplied.
- actionIconActionPosLeft: It is the styles applied to the actionIcon if actionPositionleft.
Syntax: Create an ImageListItem with ImageListItemBar:
<ImageListItem> <img src="#" loading="lazy" /> <ImageListItemBar title='title' /> </ImageListItem>
Installing and Creating React app and adding the MUI dependencies:
Step 1: Create a react project using the following command.
npx create-react-app gfg_tutorial
Step 2: Get into the project directory
cd gfg_tutorial
Step 3: Install the MUI dependencies as follows:
npm install @mui/material @emotion/react npm install @emotion/styled @mui/lab @mui/icons-material
Project Structure: The project Structure should look like the below:
Step 4: Run the project as follows:
npm start
Example 1: In the following example, we have ImageListItemBar in ImageListItems.
App.js
import "./App.css" ; import * as React from "react" ; import ImageList from "@mui/material/ImageList" ; import ImageListItem from "@mui/material/ImageListItem" ; import ImageListItemBar from "@mui/material/ImageListItemBar" ; function srcset(image, size, rows = 1, cols = 1) { return { src: `${image}?w=${size * cols} &h=${size * rows}&fit=crop&auto=format`, srcSet: `${image}?w=${size * cols}&h=${size * rows }&fit=crop&auto=format&dpr=2 2x`, }; } function App() { return ( <div className= "App" > <div className= "head" style={{ width: "fit-content" , margin: "auto" , }} > <h1 style={{ color: "green" , }} > w3wiki </h1> <strong>React MUI ImageListItemBar API</strong> </div> <br /> <ImageList sx={{ width: 900, height: 300, margin: "auto" }} cols={4} variant= "quilted" rowHeight={140} > <ImageListItem cols={1} rows={1}> <img {...srcset( "https://media.w3wiki.net/wp-content/uploads/20210915115837/gfg3-300x300.png" , 121, 1, 1 )} loading= "lazy" /> <ImageListItemBar title= "w3wiki" subtitle= "A computer science portal for Beginner." /> </ImageListItem> <ImageListItem cols={1} rows={1}> <img {...srcset( "https://media.w3wiki.net/wp-content/uploads/20210915115837/gfg3-300x300.png" , 121, 1, 1 )} loading= "lazy" /> <ImageListItemBar title= "w3wiki" subtitle= "A computer science portal for Beginner." /> </ImageListItem> <ImageListItem cols={1} rows={1}> <img {...srcset( "https://media.w3wiki.net/wp-content/cdn-uploads/20190710102234/download3.png" , 121, 1, 1 )} loading= "lazy" /> <ImageListItemBar title= "w3wiki Logo" subtitle= "A computer science portal for Beginner." /> </ImageListItem> <ImageListItem cols={3} rows={1}> <img {...srcset( "https://media.w3wiki.net/wp-content/cdn-uploads/20210420155809/gfg-new-logo.png" , 121, 3, 1 )} loading= "lazy" /> <ImageListItemBar title= "w3wiki New Logo" subtitle= "A computer science portal for Beginner." /> </ImageListItem> <ImageListItem cols={1} rows={1}> <img {...srcset( "https://media.w3wiki.net/wp-content/uploads/20210915115837/gfg3-300x300.png" , 121, 1, 1 )} loading= "lazy" /> <ImageListItemBar title= "w3wiki" subtitle= "A computer science portal for Beginner." /> </ImageListItem> </ImageList> </div> ); } export default App; |
Output:
Example 2: In the following example, we have a like button on the title bars.
App.js
import "./App.css" ; import * as React from "react" ; import ImageList from "@mui/material/ImageList" ; import ImageListItem from "@mui/material/ImageListItem" ; import ImageListItemBar from "@mui/material/ImageListItemBar" ; import { ThumbsUpDown, ThumbsUpDownRounded } from "@mui/icons-material" ; import ThumbUpIcon from "@mui/icons-material/ThumbUp" ; import { IconButton } from "@mui/material" ; function srcset(image, size, rows = 1, cols = 1) { return { src: `${image}?w=${size * cols} &h=${size * rows}&fit=crop&auto=format`, srcSet: `${image}?w=${size * cols}&h=${size * rows }&fit=crop&auto=format&dpr=2 2x`, }; } function App() { return ( <div className= "App" > <div className= "head" style={{ width: "fit-content" , margin: "auto" , }} > <h1 style={{ color: "green" , }} > w3wiki </h1> <strong>React MUI ImageListItemBar API</strong> </div> <br /> <ImageList sx={{ width: 900, height: 300, margin: "auto" }} cols={4} variant= "quilted" rowHeight={140} > <ImageListItem cols={1} rows={1}> <img {...srcset( "https://media.w3wiki.net/wp-content/uploads/20210915115837/gfg3-300x300.png" , 121, 1, 1 )} loading= "lazy" /> <ImageListItemBar title= "w3wiki" subtitle= "A computer science portal for Beginner." actionIcon={ <IconButton sx={{ color: "lightgreen" }}> <ThumbUpIcon /> </IconButton> } /> </ImageListItem> <ImageListItem cols={1} rows={1}> <img {...srcset( "https://media.w3wiki.net/wp-content/uploads/20210915115837/gfg3-300x300.png" , 121, 1, 1 )} loading= "lazy" /> <ImageListItemBar title= "w3wiki" subtitle= "A computer science portal for Beginner." actionIcon={ <IconButton sx={{ color: "lightgreen" }}> <ThumbUpIcon /> </IconButton> } /> </ImageListItem> <ImageListItem cols={1} rows={1}> <img {...srcset( "https://media.w3wiki.net/wp-content/cdn-uploads/20190710102234/download3.png" , 121, 1, 1 )} loading= "lazy" /> <ImageListItemBar title= "w3wiki Logo" subtitle= "A computer science portal for Beginner." actionIcon={ <IconButton sx={{ color: "lightgreen" }}> <ThumbUpIcon /> </IconButton> } /> </ImageListItem> <ImageListItem cols={3} rows={1}> <img {...srcset( "https://media.w3wiki.net/wp-content/cdn-uploads/20210420155809/gfg-new-logo.png" , 121, 3, 1 )} loading= "lazy" /> <ImageListItemBar title= "w3wiki New Logo" subtitle= "A computer science portal for Beginner." actionIcon={ <IconButton sx={{ color: "lightgreen" }}> <ThumbUpIcon /> </IconButton> } /> </ImageListItem> <ImageListItem cols={1} rows={1}> <img {...srcset( "https://media.w3wiki.net/wp-content/uploads/20210915115837/gfg3-300x300.png" , 121, 1, 1 )} loading= "lazy" /> <ImageListItemBar title= "w3wiki" subtitle= "A computer science portal for Beginner." actionIcon={ <IconButton sx={{ color: "lightgreen" }}> <ThumbUpIcon /> </IconButton> } /> </ImageListItem> </ImageList> </div> ); } export default App; |
Output:
Reference: https://mui.com/material-ui/api/image-list-item-bar/
Contact Us