Как прокомментировал г-н Листер, ширина ч не может быть изменена, поскольку свойство не меняется (оно всегда составляет 100%).Неважно, что результат этого свойства изменяется!
Правильный способ справиться с этим - установить переход в действительно изменяющемся элементе, контейнере.Что ж, это правда, что его значение всегда составляет 50vw, но это особый случай, который обрабатывается браузером с эквивалентным значением в пикселях.
html,
body {
background: #aaa;
text-align: center;
text-transform: uppercase;
color: #fff;
letter-spacing: 2px;
transition: all 1s;
font-size: calc(1.25vw + 1.75vh);
}
h1,
h3 {
font-weight: normal;
}
hr {
width: 100%;
margin-left: 0%;
border: 0;
background-color: #fff;
height: 1px;
transition: width 2s ease;
}
.center {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.container {
width: 50vw;
transition: width 2s ease; /* added */
}
<div class="center">
<div class="container">
<hr>
<h1>Test</h1>
<h3>Lorem ipsum Lorem ipsum Lorem ipsum.</h3>
<hr>
</div>
</div>