JSFiddle - React, Tailwind, and code Playground

by Max Kuznyetsov

HTML

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<div id="flash" class="center active error">
  <div class="flash-message">
    Please enter an email. Please enter an email. Please enter an email. Please enter an email. Please enter an email. Please enter an email.
  </div>
  <div class="flash-close">x</div>
</div>

CSS

// Flash messages
#flash {
  // Display it as an offset from the parent <body> tag
  position: absolute;
  display: block;
  top: 4em;
  left: 0;
  right: 0;

  // Center it on the page
  width: 50%;
  text-align: center;

  z-index: 101;
  line-height: 2.5;
  overflow: hidden;

  // Cool shadows
  -webkit-box-shadow: 0 0 5px $black;
  -moz-box-shadow: 0 0 5px $black;
  box-shadow: 0 0 5px $black;
  border-radius: 3px;
}
  // Set color based on message type
  &.error { background: $mustard; }
  &.notice { background: $light-green; }

  .flash-message {
    display: inline-block;
    width: 80%;
    padding-left: (100% - 80%)/2;

    // Give it 3px on the top and bottom for some space
    margin: 3px 0;
  }

  .flash-close {
    display: inline-block;
    // This doesn't seem to do anything.... -_-
    // I've also tried auto-setting margins, and making it `position: relative`
    // so I can set top/bottom as 50%
    vertical-align: middle;
    

    // Give it 3px on the top and bottom for some space
    // Also 11px from the right edge
    margin: 3px 11px 3px 0;

    // Styling the "X" and the box around it
    padding: 2px 6px;
    font-family: Arial, sans-serif;
    font-size: 1em;
    font-weight: normal;
    color: $white;
    line-height: 1;
    border: 1px solid rgba(255,255,255,0.2);
  }