Skip to main content

Dialog Component

Dialog base element

The dialog element uses the native html <dialog> element in order to satisfy all the accessibility requirements.

This element is styled to look like a custom inplementation.

Dialog

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.

www.ebay.com

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.

www.ebay.com

<button class="btn btn--primary dialog-trigger" type="button">
  Open Dialog
</button>

<dialog aria-labelledby="dialog-title-base" class="dialog">
  <div class="dialog__header">
    <h2 id="dialog-title-base">Dialog</h2>
    <button
      class="icon-btn dialog__close"
      type="button"
      aria-label="Close Dialog"
    >
      <svg class="icon icon--16" aria-hidden="true">
        <use href="#icon-close-16"></use>
      </svg>
    </button>
  </div>
  <div class="dialog__main">
    <h3>Heading</h3>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis
      molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum
      lorem, eu sodales velit sagittis id.
    </p>
    <p><a href="http://www.ebay.com">www.ebay.com</a></p>
    <h3>Heading</h3>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis
      molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum
      lorem, eu sodales velit sagittis id.
    </p>
    <p><a href="http://www.ebay.com">www.ebay.com</a></p>
  </div>
</dialog>

Previous button in header Dialog

If you want to add a previous button to the dialog, add the icon button before the dialog heading tag.

Dialog

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.

www.ebay.com

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.

www.ebay.com

<button class="btn btn--primary dialog-trigger" type="button">
  Open Dialog
</button>

<dialog aria-labelledby="dialog-title-base-prev" class="dialog">
  <div class="dialog__header">
    <button class="icon-btn dialog__prev" type="button" aria-label="Go back">
      <svg class="icon icon--16" aria-hidden="true">
        <use href="#icon-chevron-left-16"></use>
      </svg>
    </button>
    <h2 id="dialog-title-base-prev">Dialog</h2>
    <button
      class="icon-btn dialog__close"
      type="button"
      aria-label="Close Dialog"
    >
      <svg class="icon icon--16" aria-hidden="true">
        <use href="#icon-close-16"></use>
      </svg>
    </button>
  </div>
  <div class="dialog__main">
    <h3>Heading</h3>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis
      molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum
      lorem, eu sodales velit sagittis id.
    </p>
    <p><a href="http://www.ebay.com">www.ebay.com</a></p>
    <h3>Heading</h3>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis
      molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum
      lorem, eu sodales velit sagittis id.
    </p>
    <p><a href="http://www.ebay.com">www.ebay.com</a></p>
  </div>
</dialog>

Wide Dialog

To have a wider dialog add dialog--wide to the dialog

On small screens, a wide dialog will span almost the entire screen. This is the suggeested replacement for fullscreen dialog

Dialog

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.

www.ebay.com

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.

www.ebay.com

<button class="btn btn--primary dialog-trigger" type="button">
  Open Dialog
</button>

<dialog aria-labelledby="dialog-title-wide" class="dialog dialog--wide">
  <div class="dialog__header">
    <h2 id="dialog-title-wide">Dialog</h2>
    <button
      class="icon-btn dialog__close"
      type="button"
      aria-label="Close Dialog"
    >
      <svg class="icon icon--16" aria-hidden="true">
        <use href="#icon-close-16"></use>
      </svg>
    </button>
  </div>
  <div class="dialog__main">
    <h3>Heading</h3>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis
      molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum
      lorem, eu sodales velit sagittis id.
    </p>
    <p><a href="http://www.ebay.com">www.ebay.com</a></p>
    <h3>Heading</h3>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis
      molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum
      lorem, eu sodales velit sagittis id.
    </p>
    <p><a href="http://www.ebay.com">www.ebay.com</a></p>
  </div>
</dialog>

Narrow Dialog

To have a thinner dialog add dialog--narrow to the dialog

Dialog

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.

www.ebay.com

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.

www.ebay.com

<button class="btn btn--primary dialog-trigger" type="button">
  Open Dialog
</button>

<dialog aria-labelledby="dialog-title-narrow" class="dialog dialog--narrow">
  <div class="dialog__header">
    <h2 id="dialog-title-narrow">Dialog</h2>
    <button
      class="icon-btn dialog__close"
      type="button"
      aria-label="Close Dialog"
    >
      <svg class="icon icon--16" aria-hidden="true">
        <use href="#icon-close-16"></use>
      </svg>
    </button>
  </div>
  <div class="dialog__main">
    <h3>Heading</h3>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis
      molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum
      lorem, eu sodales velit sagittis id.
    </p>
    <p><a href="http://www.ebay.com">www.ebay.com</a></p>
    <h3>Heading</h3>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis
      molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum
      lorem, eu sodales velit sagittis id.
    </p>
    <p><a href="http://www.ebay.com">www.ebay.com</a></p>
  </div>
</dialog>

Large Dialog

To have a large dialog add dialog--large to the dialog

On small screens, a large dialog will span almost the entire screen. This is the suggeested replacement for fullscreen dialog

Dialog

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.

www.ebay.com

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.

www.ebay.com

<button class="btn btn--primary dialog-trigger" type="button">
  Open Dialog
</button>

<dialog aria-labelledby="dialog-title-large" class="dialog dialog--large">
  <div class="dialog__header">
    <h2 id="dialog-title-large">Dialog</h2>
    <button
      class="icon-btn dialog__close"
      type="button"
      aria-label="Close Dialog"
    >
      <svg class="icon icon--16" aria-hidden="true">
        <use href="#icon-close-16"></use>
      </svg>
    </button>
  </div>
  <div class="dialog__main">
    <h3>Heading</h3>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis
      molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum
      lorem, eu sodales velit sagittis id.
    </p>
    <p><a href="http://www.ebay.com">www.ebay.com</a></p>
    <h3>Heading</h3>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis
      molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum
      lorem, eu sodales velit sagittis id.
    </p>
    <p><a href="http://www.ebay.com">www.ebay.com</a></p>
  </div>
</dialog>

Call to action buttons can be placed in an optional footer section. They will be aligned to the end of the horizontal axis by default.

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.

www.ebay.com

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.

www.ebay.com

<button class="btn btn--primary dialog-trigger" type="button">
  Open Dialog with Footer
</button>

<dialog aria-labelledby="dialog-title-base-with-footer" class="dialog">
  <div class="dialog__header">
    <h2 id="dialog-title-base-with-footer">Dialog</h2>
    <button
      class="icon-btn dialog__close"
      type="button"
      aria-label="Close Dialog"
    >
      <svg class="icon icon--16" aria-hidden="true">
        <use href="#icon-close-16"></use>
      </svg>
    </button>
  </div>
  <div class="dialog__main">
    <h3>Heading</h3>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis
      molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum
      lorem, eu sodales velit sagittis id.
    </p>
    <p><a href="http://www.ebay.com">www.ebay.com</a></p>
    <h3>Heading</h3>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis
      molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum
      lorem, eu sodales velit sagittis id.
    </p>
    <p><a href="http://www.ebay.com">www.ebay.com</a></p>
  </div>
  <div class="dialog__footer">
    <button class="btn btn--primary">Submit</button>
    <button class="btn">Cancel</button>
  </div>
</dialog>

Expressive Dialog

An image may be added to the dialog header for a more expressive experience. Image will be cropped to a hardcoded height as per design standards.

Dialog

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.

www.ebay.com

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.

www.ebay.com

<button class="btn btn--primary dialog-trigger" type="button">
  Open Expressive Dialog
</button>

<dialog
  aria-labelledby="dialog-title-expressive-base"
  class="dialog dialog--expressive"
>
  <div
    class="dialog__image"
    style="
      background-image: url(https://ir.ebaystatic.com/cr/v/c01/skin/docs/tb-landscape-pic.jpg);
    "
  ></div>
  <div class="dialog__header">
    <h2 id="dialog-title-expressive-base">Dialog</h2>
    <button
      class="icon-btn dialog__close"
      type="button"
      aria-label="Close Dialog"
    >
      <svg class="icon icon--16" aria-hidden="true">
        <use href="#icon-close-16"></use>
      </svg>
    </button>
  </div>
  <div class="dialog__main">
    <h3>Heading</h3>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis
      molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum
      lorem, eu sodales velit sagittis id.
    </p>
    <p><a href="http://www.ebay.com">www.ebay.com</a></p>
    <h3>Heading</h3>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis
      molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum
      lorem, eu sodales velit sagittis id.
    </p>
    <p><a href="http://www.ebay.com">www.ebay.com</a></p>
  </div>
</dialog>

Expressive Dialog with Previous Button

When a previous button is included in an expressive dialog, both the previous and close buttons will overlap the banner image.

Dialog

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.

www.ebay.com

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.

www.ebay.com

<button class="btn btn--primary dialog-trigger" type="button">
  Open Expressive Dialog
</button>

<dialog
  aria-labelledby="dialog-title-expressive-prev"
  class="dialog dialog--expressive"
>
  <div
    class="dialog__image"
    style="
      background-image: url(https://ir.ebaystatic.com/cr/v/c01/skin/docs/tb-landscape-pic.jpg);
    "
  ></div>
  <div class="dialog__header">
    <button class="icon-btn dialog__prev" type="button" aria-label="Go back">
      <svg class="icon icon--16" aria-hidden="true">
        <use href="#icon-chevron-left-16"></use>
      </svg>
    </button>
    <h2 id="dialog-title-expressive-prev">Dialog</h2>
    <button
      class="icon-btn dialog__close"
      type="button"
      aria-label="Close Dialog"
    >
      <svg class="icon icon--16" aria-hidden="true">
        <use href="#icon-close-16"></use>
      </svg>
    </button>
  </div>
  <div class="dialog__main">
    <h3>Heading</h3>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis
      molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum
      lorem, eu sodales velit sagittis id.
    </p>
    <p><a href="http://www.ebay.com">www.ebay.com</a></p>
    <h3>Heading</h3>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis
      molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum
      lorem, eu sodales velit sagittis id.
    </p>
    <p><a href="http://www.ebay.com">www.ebay.com</a></p>
  </div>
</dialog>