<!DOCTYPE html>
<title>Safe vs Unsafe align-self in Grid Layout</title>
<link rel="help" href="https://www.w3.org/TR/css-align-3/#overflow-values">
<link rel="help" href="https://www.w3.org/TR/css-grid-1/#column-align">
<link rel="match" href="self-align-safe-unsafe-grid-001-ref.html">
<style>
  /* Label things */
  body > div {
    display: flow-root;
  }
  body > div::before {
    display: block;
    content: attr(class);
    font-size: 10px;
    margin-top: 10px;
  }

  /* Test Framework */
  .container {
    border: solid aqua;
    margin: 10px;
    float: left;
    width: 30px;
    height: 30px;
    display: grid;
    grid: 100% / 100%;
  }

  .item {
    background: orange;
    width: 100%;
  }

  /* Test */
  .small .item {
    height: 20px;
  }
  .large .item {
    height: 40px;
  }

  .center     { align-self: center; }
  .start      { align-self: start; }
  .end        { align-self: end; }
  .self-start { align-self: self-start; }
  .self-end   { align-self: self-end; }
  .flex-start { align-self: flex-start; }
  .flex-end   { align-self: flex-end; }

  .safe .center     { align-self: safe center; }
  .safe .start      { align-self: safe start; }
  .safe .end        { align-self: safe end; }
  .safe .self-start { align-self: safe self-start; }
  .safe .self-end   { align-self: safe self-end; }
  .safe .flex-start { align-self: safe flex-start; }
  .safe .flex-end   { align-self: safe flex-end; }

  .safe .center     { align-self: safe center; }
  .safe .start      { align-self: safe start; }
  .safe .end        { align-self: safe end; }
  .safe .self-start { align-self: safe self-start; }
  .safe .self-end   { align-self: safe self-end; }
  .safe .flex-start { align-self: safe flex-start; }
  .safe .flex-end   { align-self: safe flex-end; }
</style>

<div class="default small">
  <div class="container">
    <div class="item normal"></div>
  </div>
  <div class="container">
    <div class="item center"></div>
  </div>
  <div class="container">
    <div class="item start"></div>
  </div>
  <div class="container">
    <div class="item end"></div>
  </div>
  <div class="container">
    <div class="item self-start"></div>
  </div>
  <div class="container">
    <div class="item self-end"></div>
  </div>
  <div class="container">
    <div class="item flex-start"></div>
  </div>
  <div class="container">
    <div class="item flex-end"></div>
  </div>
</div>

<div class="default large">
  <div class="container">
    <div class="item normal"></div>
  </div>
  <div class="container">
    <div class="item center"></div>
  </div>
  <div class="container">
    <div class="item start"></div>
  </div>
  <div class="container">
    <div class="item end"></div>
  </div>
  <div class="container">
    <div class="item self-start"></div>
  </div>
  <div class="container">
    <div class="item self-end"></div>
  </div>
  <div class="container">
    <div class="item flex-start"></div>
  </div>
  <div class="container">
    <div class="item flex-end"></div>
  </div>
</div>

<div class="unsafe large">
  <div class="container">
    <div class="item normal"></div>
  </div>
  <div class="container">
    <div class="item center"></div>
  </div>
  <div class="container">
    <div class="item start"></div>
  </div>
  <div class="container">
    <div class="item end"></div>
  </div>
  <div class="container">
    <div class="item self-start"></div>
  </div>
  <div class="container">
    <div class="item self-end"></div>
  </div>
  <div class="container">
    <div class="item flex-start"></div>
  </div>
  <div class="container">
    <div class="item flex-end"></div>
  </div>
</div>

<div class="safe large">
  <div class="container">
    <div class="item normal"></div>
  </div>
  <div class="container">
    <div class="item center"></div>
  </div>
  <div class="container">
    <div class="item start"></div>
  </div>
  <div class="container">
    <div class="item end"></div>
  </div>
  <div class="container">
    <div class="item self-start"></div>
  </div>
  <div class="container">
    <div class="item self-end"></div>
  </div>
  <div class="container">
    <div class="item flex-start"></div>
  </div>
  <div class="container">
    <div class="item flex-end"></div>
  </div>
</div>

