JSFiddle - React, Tailwind, and code Playground

HTML

<div class="rectangle">
</div>

<div class="bottom-space">
  <div class="article-title-about" id="aboutTitle"><span id="text" alt="About Me"></span>
    <div class="console-underscore" id="console">&#95;</div>
  </div>
</div>

<div class="rectangle2">
</div>

CSS

@import url("https://fonts.googleapis.com/css?family=Dosis:800");
/*
	Title
*/

*{
    margin:0;
    padding:0;
}

.rectangle {
  width: 100%;
  height: 800px;
  background-color: red;
 
}

.rectangle2 {
  width: 100%;
  height: 100px;
  background-color: blue;
 
}

.article-title-about {
  padding-bottom: 20px;
  text-transform: uppercase;
  font-size: 40px;
  line-height: 1.5em;
  font-family: 'Dosis', sans-serif;
  color: #333;
  margin: auto;
  display: block;
  text-align: center;
}

.console-underscore {
  display: inline-block;
  position: relative;
  top: -0.14em;
  left: 10px;
}

JavaScript

consoleText(['HELLO,', 'HERE IS A BIT ABOUT ME,', 'ENJOY!'], 'text', ['#333', '#333', '#333']);

function consoleText(words, id, colors) {

  "use strict";
  if (colors === undefined) {
    colors = ['#fff'];
  }
  var visible = true;
  var con = document.getElementById('console');
  var letterCount = 1;
  var x = 1;
  var waiting = false;
  var target = document.getElementById(id);
  target.setAttribute('style', 'color:' + colors[0]);
  window.setInterval(function() {

    if (letterCount === 0 && waiting === false) {
      waiting = true;
      target.innerHTML = words[0].substring(0, letterCount);
      window.setTimeout(function() {
        var usedColor = colors.shift();
        colors.push(usedColor);
        var usedWord = words.shift();
        words.push(usedWord);
        x = 1;
        target.setAttribute('style', 'color:' + colors[0]);
        letterCount += x;
        waiting = false;
      }, 1000);
    } else if (letterCount === words[0].length + 1 && waiting === false) {
      waiting = true;
      window.setTimeout(function() {
        x = -1;
        letterCount += x;
        waiting = false;
      }, 1000);
    } else if (waiting === false) {
      target.innerHTML = words[0].substring(0, letterCount);
      letterCount += x;
    }
  }, 120);
  window.setInterval(function() {
    if (visible === true) {
      con.className = 'console-underscore hidden';
      visible = false;

    } else {
      con.className = 'console-underscore';

      visible = true;
    }
  }, 400);
}