<button popovertarget="my-popover"> Open Popover </button>

<div id="my-popover" popover>
  <p>I am a popover with more information. Hit <kbd>esc</kbd> or click away to close me.</p>
</div>

button {
  font-size: 100%;
  padding: 0.75rem;
  background: white;
  transition-duration: 0.5s;
  border: 4px solid plum;
  background: lavenderblush;
  border-radius: 1rem;
  
  &:hover,
  &:focus {
    background: plum;
    color: white;
  }
}

[popover] {
  background: black;
  color: white;
  font-weight: 400;
  padding: 1rem 1.5rem;
  border-radius: 1rem;
  max-width: 20ch;
  line-height: 1.4;
  top: 2rem;
  margin: 0 auto;
}

body {
  background: #fcf9fb;
  display: grid;
  font-size: 1.5rem;
  font-family: system-ui, sans-serif;
  place-items: center;
  height: 100dvh;
}

/* Animating the popover in */

/*   IS-OPEN STATE   */
[popover]:popover-open {
  translate: 0 0;
}

/*   EXIT STATE   */
[popover] {
  transition: translate 0.7s ease-out, display 0.7s ease-out allow-discrete, overlay 0.7s ease-out allow-discrete;
  translate: 0 -22rem;
}

/*   0. BEFORE-OPEN STATE   */
@starting-style {
  [popover]:popover-open {
    translate: 0 -22rem;
  }
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.