Grid auto-fill width

by Csaba Hellinger

HTML

<div class="grid-container">
  <div class="grid-item">Item 1</div>
  <div class="grid-item">Item 2</div>
  <div class="grid-item">Item 3</div>
  <div class="grid-item">Item 4</div>
  <div class="grid-item">Item 5</div>
  <div class="grid-item">Item 6</div>
  <div class="grid-item">Item 7</div>
  <div class="grid-item">Item 8</div>
  <div class="grid-item">Item 9</div>
  <div class="grid-item">Item 10</div>
  <div class="grid-item">Item 11</div>
  <div class="grid-item">Item 12</div>
</div>

CSS

.grid-container {
  --min-size: min(45vw, 180px);
  --max-size: 280px;
   
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(var(--min-size), 1fr));
  gap: 10px;
  justify-content: center;
}

.grid-item {
  background-color: #f0f0f0;
  aspect-ratio: 1 / 1;
  max-width: var(--max-size);
}