<div class="container">
    <ul id="view" class="view grid">
        <li style="view-transition-name: item-a;">A</li>
        <li style="view-transition-name: item-b;">B</li>
        <li style="view-transition-name: item-c;">C</li>
    </ul>
    <button id="button">Toggle</button>
</div>


<script>
  const button = document.getElementById('button');
  const view = document.getElementById('view');

  button.onclick = () => {
    document.startViewTransition(() => {
      view.classList.toggle('grid');
    });
  };
</script>
.container {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 20px;
    background: #96b38a;
    border-radius: 6px;
}

.view {
    display: flex;
    flex-direction: column;
    gap: 20px;
    background: white;
    padding: 20px;
    border-radius: 6px;
}

.grid {
    flex-direction: row;
}

li {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #8BC34A;
    width: 2rem;
    height: 2rem;
}

button {
    display: block;
    background: #4CAF50;
    color: white;
    border: 0;
    padding: 10px 20px;
    font-size: 20px;
    border-radius: 6px;
}
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.