Open In App

How to Add Effects to Tooltips ?

Tooltips are small informational pop-ups that appear when users hover over or interact with certain elements, providing additional context or explanations.

Below are the approaches to add Effects to tooltips using CSS:

CSS Transition Effects

Example: Implementation of Tooltip with Transition Effect

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" 
          content="width=device-width, initial-scale=1.0">
    <title>ToolTip CSS Transition Effects</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    
    <div class="container">
        <h1>GeeksForGeeks</h1>
        <button class="tooltip-trigger">
              Hover me for a tooltip
          </button>
        <span class="tooltip-content">
              CSS Transition: Tooltip
          </span>
    </div>
      
</body>
</html>
body {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    margin: 0;
}
h1{
    color: green;
    text-align: center;
    margin-top: 0;
}
.container {
    position: relative;
    text-align: center;
}

.tooltip-trigger {
    cursor: pointer;
    padding: 10px 20px;
    background-color: #007bff;
    color: #fff;
    border: none;
    border-radius: 4px;
    transition: background-color 0.3s ease;
}

.tooltip-trigger:hover {
    background-color: #0056b3;
}

.tooltip-content {
    visibility: hidden;
    opacity: 0;
    position: absolute;
    top: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    background-color: #bd2323;
    color: #fff;
    padding: 8px;
    border-radius: 4px;
    white-space: nowrap;
    transition: opacity 0.3s ease, visibility 0s linear 0.3s;
}

.container:hover .tooltip-content {
    visibility: visible;
    opacity: 1;
    transition-delay: 0s;
}

Output:

e1

transition effect

CSS Animation Effects

Example: Implementation of Tooltip with Animation Effect

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" 
          content="width=device-width, initial-scale=1.0">
    <title>ToolTip CSS Transition Effects</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    
    <div class="container">
        <h1>GeeksForGeeks</h1>
        <button class="tooltip-trigger">
              Hover me for a tooltip
          </button>
        <span class="tooltip-content">
              CSS Animation: Tooltip
          </span>
    </div>
      
</body>
</html>
h1 {
    color: green;
    text-align: center;
    margin-top: 0;
  }
  
  body {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    margin: 0;
  }
  
  .container {
    position: relative;
    text-align: center;
  }
  
  .tooltip-trigger {
    cursor: pointer;
    padding: 10px 20px;
    background-color: #007bff;
    color: #fff;
    border: none;
    border-radius: 4px;
    transition: background-color 0.3s ease;
  }
  
  .tooltip-trigger:hover {
    background-color: #0056b3;
  }
  
  .tooltip-content {
    visibility: hidden;
    opacity: 0;
    position: absolute;
    top: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    background-color: #bd2323;
    color: #fff;
    padding: 8px;
    border-radius: 4px;
    white-space: nowrap;
  }
  
  .container:hover .tooltip-content {
    visibility: visible;
    animation: fadeIn 5s ease, pop-up 0.2s ease-in-out forwards;
  }
  
  @keyframes fadeIn {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
  
  @keyframes pop-up {
    0% {
      transform: translateY(10px);
    }
    100% {
      transform: translateY(0);
    }
  }
  

Output:

e2

animation

CSS Transform Effects

Example: Implementation of Tooltip with Transformation Effect

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" 
          content="width=device-width, initial-scale=1.0">
    <title>ToolTip CSS Transition Effects</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    
    <div class="container">
        <h1>GeeksForGeeks</h1>
        <button class="tooltip-trigger">
              Hover me for a tooltip
          </button>
        <span class="tooltip-content">
              CSS Transform: Tooltip
          </span>
    </div>
      
</body>
</html>
h1 {
    color: green;
    text-align: center;
    margin-top: 0;
  }
  
  body {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    margin: 0;
  }
  
  .container {
    position: relative;
    text-align: center;
  }
  
  .tooltip-trigger {
    cursor: pointer;
    padding: 10px 20px;
    background-color: #007bff;
    color: #fff;
    border: none;
    border-radius: 4px;
  }
  
  .tooltip-trigger:hover {
    background-color: #0056b3;
  }
  
  .tooltip-content {
    visibility: hidden;
    opacity: 0;
    position: absolute;
    top: calc(100% + 10px);
    left: 50%;
    transform: translate(-50%, 10px) scale(0.8); 
    transition: transform 0.3s ease, opacity 0.3s ease;
    background-color: #bd2323;
    color: #fff;
    padding: 8px;
    border-radius: 4px;
    white-space: nowrap;
  }
  
  .container:hover .tooltip-content {
    visibility: visible;
    opacity: 1;
    transform: translate(-50%, 0); 
  }
  

Output:

e3

transform

Article Tags :