Images

React Bootstrap 5 Images component

Documentation and examples for opting images into responsive behavior (so they never become larger than their parent elements) and add lightweight styles to them—all via classes.


Responsive images

Images in MDB are made responsive with .img-fluid. This applies max-width: 100%; and height: auto; to the image so that it scales with the parent element.

        
            
            import React from 'react';

            export default function App() {
              return (
                <img src='https://mdbootstrap.com/img/new/slides/041.webp' className='img-fluid shadow-4' alt='...' />
              );
            }
          
        
    

Thumbnails

In addition to our border-radius utilities, you can use .img-thumbnail to give an image a rounded 1px border appearance.

        
            
            import React from 'react';

            export default function App() {
              return (
                <img
                  src='https://mdbootstrap.com/img/new/standard/city/041.webp'
                  className='img-thumbnail'
                  alt='...'
                />
              );
            }
          
        
    

Shadows

By using our shadow classes you can add a shadow to the image. In the example below, we add shadow-2-strong class.

        
            
            import React from 'react';

            export default function App() {
              return (
                <img
                  src='https://mdbootstrap.com/img/new/standard/city/042.webp'
                  className='img-fluid shadow-2-strong'
                  alt=''
                />
              );
            }
          
        
    

By adding .hover-shadow class to the element you can apply a shadow hover effect.

        
            
            import React from 'react';

            export default function App() {
              return (
                <img
                  src='https://mdbootstrap.com/img/new/standard/city/043.webp'
                  className='img-fluid hover-shadow'
                  alt=''
                />
              );
            }
          
        
    

Ripple

You can change the image into a clickable element and apply a ripple effect to it by wrapping it in MDBRipple.

        
            
            import React from 'react';
            import { MDBRipple } from 'mdb-react-ui-kit';

            export default function App() {
              return (
                <MDBRipple rippleTag='a'>
                  <img
                    src='https://mdbootstrap.com/img/new/standard/city/044.webp'
                    className='img-fluid rounded'
                    alt='example'
                  />
                </MDBRipple>
              );
            }
          
        
    

Masks

You can cover the image with mask to achieve the desired contrast and for example, place text on it.

Sample

Can you see me?

        
            
            import React from 'react';

            export default function App() {
              return (
                <div className='bg-image'>
                  <img src='https://mdbootstrap.com/img/new/standard/city/053.webp' className='img-fluid' alt='Sample' />
                  <div className='mask' style={{ backgroundColor: 'rgba(0, 0, 0, 0.6)' }}>
                    <div className='d-flex justify-content-center align-items-center h-100'>
                      <p className='text-white mb-0'>Can you see me?</p>
                    </div>
                  </div>
                </div>
              );
            }
          
        
    

Hover effects

By using .hover-overlay class you can apply gentle and decorative hover effects to the image.

        
            
            import React from 'react';

            export default function App() {
              return (
                <div className='bg-image hover-overlay'>
                  <img src='https://mdbootstrap.com/img/new/fluid/city/055.webp' className='img-fluid' />
                  <a href='#!'>
                    <div className='mask overlay' style={{ backgroundColor: 'rgba(57, 192, 237, 0.2)' }}></div>
                  </a>
                </div>
              );
            }
          
        
    

Shapes

By using border utilities you can change the shape of the image.

.rounded
.rounded-circle
.rounded-pill
        
            
            import React from 'react';
            import { MDBRow, MDBCol } from 'mdb-react-ui-kit';

            export default function App() {
              return (
                <MDBRow>
                  <MDBCol lg='4' md='12' className='mb-4'>
                    <img src='https://mdbootstrap.com/img/new/standard/city/047.webp' className='img-fluid rounded' alt='' />
                  </MDBCol>
    
                  <MDBCol lg='4' md='6' className='mb-4'>
                    <img
                      src='https://mdbootstrap.com/img/new/standard/city/047.webp'
                      className='img-fluid rounded-circle'
                      alt=''
                    />
                  </MDBCol>
    
                  <MDBCol lg='4' md='6' className='mb-4'>
                    <img
                      src='https://mdbootstrap.com/img/new/standard/city/047.webp'
                      className='img-fluid rounded-pill'
                      alt=''
                    />
                  </MDBCol>
                </MDBRow>
              );
            }
          
        
    

Images - API


CSS variables

As part of MDB’s evolving CSS variables approach, image now use local CSS variables for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.

Images CSS variables are in different classes which belong to this component. To make it easier to use them, you can find below all of the used CSS variables.

        
            
        // .hover-overlay
        --#{$prefix}image-hover-transition: #{$image-hover-overlay-transition};
        
        // .hover-zoom
        --#{$prefix}image-hover-zoom-transition: #{$image-hover-zoom-transition};
        --#{$prefix}image-hover-zoom-transform: #{$image-hover-zoom-transform};
      
        // .hover-shadow
        --#{$prefix}image-hover-shadow-transition: #{$image-hover-shadow-transition};
        
        // .hover-shadow-soft
        --#{$prefix}image-hover-shadow-box-shadow-soft: #{$image-hover-shadow-box-shadow-soft};
        
        
    

SCSS variables

        
            
        $thumbnail-padding: .25rem;
        $thumbnail-bg: $body-bg;
        $thumbnail-border-width: $border-width;
        $thumbnail-border-color: var(--#{$prefix}border-color);
        $thumbnail-border-radius: $border-radius;
        $thumbnail-box-shadow: $box-shadow-sm;

        $image-hover-overlay-transition: all 0.3s ease-in-out;

        $image-hover-zoom-transition: all 0.3s linear;
        $image-hover-zoom-transform: scale(1.1);

        $image-hover-shadow-transition: $image-hover-overlay-transition;
        $image-hover-shadow-box-shadow: $box-shadow-4-strong;
        $image-hover-shadow-box-shadow-soft: $box-shadow-5;