Ширину блока по размеру содержимого (блок скролится)

Красный блок ограничен. Мне нужно, чтобы он растягивался от содержимого независимо от того, что он скролящийся. В примере я бы хотел, чтобы зеленые блоки не вылазили за красный. Нужно, чтобы красный растягивался от зелёных.

введите сюда описание изображения

* {
  box-sizing: border-box;
}
.main {
  width: 100%;
  height: 100vh;
  background-color: lightgreen;
  display: flex;
  flex-direction: row;
}

.left {
  min-width: 100px;
  height: 100%;
  
  border: 5px solid black;
  padding: 10px;
}

.right {
  overflow-y: auto;
  height: 100%;
  border: 5px dashed black;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.right__parent {
  height: 40px;
  border: 2px solid red;
  display: flex;
  flex-direction: row;
}

.right__child {
  width: 300px;
  height: 100%;
  border: 2px solid green;
  flex-shrink: 0;
}
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  
</head>
<body>
  <div class='main'>
    <div class='left'>
      left
    </div>
    <div class='right'>
      <div class='right__parent'>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        
      </div>
      <div class='right__parent'>
        
      </div>
      <div class='right__parent'>
        
      </div>
      <div class='right__parent'>
        
      </div>
    </div>
  </div>
</body>
</html>


Ответы (2 шт):

Автор решения: Vitali

Добавь классу .right свойство {flex-shrink: 0}

→ Ссылка
Автор решения: Александр Сычёв

Вот, думаю так нужно Вам.

 * {
  box-sizing: border-box;
}
.main {
  width: 100%;
  height: 100vh;
  background-color: lightgreen;
  display: flex;
  flex-direction: row;
}

.left {
  min-width: 100px;
  height: 100%;
  
  border: 5px solid black;
  padding: 10px;
}

.right {
  overflow-y: auto;
  width: 100%;
  height: 100%;
  border: 5px dashed black;
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex-wrap: wrap;
}

.right__parent {
  height: 40px;
  border: 2px solid red;
  display: flex;
  flex-direction: row;
}
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  
</head>
<body>
  <div class='main'>
    <div class='left'>
      left
    </div>
    <div class='right'>
      <div class='right__parent'>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>

        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>

        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>
        <div class="right__child">right__child</div>

      </div>
      <div class='right__parent'>
        
      </div>
      <div class='right__parent'>
        
      </div>
      <div class='right__parent'>
        
      </div>
    </div>
  </div>
</body>
</html>

→ Ссылка