.screen { position: absolute; overflow: hidden; width: 100%; height: 100%; background: #000000; } .terminal_emulator { position: absolute; bottom: 0; width: 100%; min-height: 100%; padding: 40px; font-size: 20px; line-heght: 25px; box-sizing: border-box; text-align:left; font-family: monospace; font-weight: 700; color: #99ff99; } .terminal_emulator__field, .terminal_emulator__command { position: relative; padding: 0 1em; margin: 0 0 9px 0; &:before, &:after { position: absolute; } &:before { left:0; top: 0; content:">"; } } .terminal_emulator__response, .terminal_emulator__command b{ padding-bottom: 9px; } .terminal_emulator__field { display: inline-block; min-width: 1em; min-height: 1.5em; box-sizing: border-box; &:after { right: 0; bottom: 0.25em; content:""; width: 1em; height: 1.5em; background:#99ff99; animation: caretBlink 1s infinite; } &.waiting { padding-left: 0; padding-right: 0; &:before { display: none; } } } @keyframes caretBlink { 0% { opacity: 0; } 50% { opacity: 0; } 51% { opacity: 1; } 100% { opacity: 1; } }