Просто кину примеры с codeopen, там в коде уже можно самим разобраться.
Раз.
Два.
Три.
В основном смысл в том, чтобы анимировать ширину блока, в котором находится текст, – от нуля до полного раскрытия блока.
А в качестве курсора можно взять border-right
. И для него сделать мигающую анимацию. В коде выше есть.