JSFiddle - React, Tailwind, and code Playground
HTML
<div title="2121212121" class="h1-css">http://apo-ucoz.com</div>
CSS
.h1-css {
color: #000066;
font-size: 24px;
margin-bottom: 30px;
position: relative; /* элемент к которому применяем эффект должен быть блочным и position: relative */
}
.h1-css:after { /* получаем копию оригинального текста в перевернутом виде */
content: attr(title); /* оказывается в CSS и так можно - извлечь значение атрибута */
position: absolute; /* отражение позиционируется относительно родителя */
left: 0;
top: 100%; /* можно управлять удаленностью отражения. 100% - отражение вплотную */
width: 100%;
height: 100%;
-moz-transform: scaleY(-1); /* много правил для CSS переворота */
-o-transform: scaleY(-1);
-webkit-transform: scaleY(-1);
-ms-transform: scaleY(-1);
transform: scaleY(-1);
z-index: 1; /* чтобы отражение можно было перекрыть */
}
.h1-css:before { /* создаем эффект затухания */
content: "";
display: block;
width: 100%;
height: 80%; /* подбирается в зависимости о того какой процент отражения должен быть виден */
background:-moz-linear-gradient(top, rgba(255,255,255,0.7), rgba(255,255,255,1)); /* много правил для линейного градиента */
background: -o-linear-gradient(top, rgba(255,255,255,0.7), rgba(255,255,255,1));
background: -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,0.7)), to(rgba(255,255,255,1)));
position: absolute;
left: 0;
top: 110%; /* подбирается в зависимости от необходимого эффекта затухания */
z-index: 2; / чтобы перекрыть перевернутый текст */
}