An interactive Virtual Keyboard That Repeats Every Key You Press

An interactive virtual keyboard that repeats every key you press and a text area where everything is typed and can be copied to the clipboard with the click of a button.

An interactive JavaScript-supported virtual keyboard that highlights the hotkeys as you type.

How to make use of it:

1. Code the HTML for the digital keyboard.

<div class="bgKeyboard">
    <div class="startMsg">Press any key to Continue...</div>
    <div class="keyboard">
      <div class="row numberLine">
        <div class="blacktick">`</div>
        <div class="one">1</div>
        <div class="two">2</div>
        <div class="three">3</div>
        <div class="four">4</div>
        <div class="five">5</div>
        <div class="six">6</div>
        <div class="seven">7</div>
        <div class="eight">8</div>
        <div class="nine">9</div>
        <div class="zero">0</div>
        <div class="minus">-</div>
        <div class="equalsTo">=</div>
        <div class="backspace">BACKSPACE</div>
      <div class="row alphaUpperLine">
        <div class="tab">TAB</div>
        <div class="q">Q</div>
        <div class="w">W</div>
        <div class="e">E</div>
        <div class="r">R</div>
        <div class="t">T</div>
        <div class="y">Y</div>
        <div class="u">U</div>
        <div class="i">I</div>
        <div class="o">O</div>
        <div class="p">P</div>
        <div class="openedBracket">[</div>
        <div class="closedBracket">]</div>
        <div class="backSlash">\</div>
      <div class="row alphaMiddleLine">
        <div class="capslock">CAPS<br />LOCK</div>
        <div class="a">A</div>
        <div class="s">S</div>
        <div class="d">D</div>
        <div class="f">F</div>
        <div class="g">G</div>
        <div class="h">H</div>
        <div class="j">J</div>
        <div class="k">K</div>
        <div class="l">L</div>
        <div class="semicolon">;</div>
        <div class="quote">'</div>
        <div class="enter">ENTER</div>
      <div class="row alphaLowerLine">
        <div class="lShift">SHIFT</div>
        <div class="z">Z</div>
        <div class="x">X</div>
        <div class="c">C</div>
        <div class="v">V</div>
        <div class="b">B</div>
        <div class="n">N</div>
        <div class="m">M</div>
        <div class="comma">,</div>
        <div class="fullstop">.</div>
        <div class="frontSlash">/</div>
        <div class="rShift">SHIFT</div>
      <div class="row BottomLine">
        <div class="lCtrl">CTRL</div>
        <div class="lFunction">FN</div>
        <div class="win">WIN</div>
        <div class="lAlt">ALT</div>
        <div class="space">SPACE</div>
        <div class="rAlt">ALT</div>
        <div class="rFunction">FN</div>
        <div class="rCtrl">CTRL</div>

2. Place the primary script on the backside of the web page.

<script src="script.js"></script>

3. The mandatory CSS types.

.bgKeyboard {
    width: 1008px;
    height: 350px;
    background-color: rgb(255, 219, 174);
    border-radius: 20px;
    margin: 0;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%, 0);
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;

.startMsg {
    visibility: visible;
    opacity: 1;
    transition: visibility 0s, opacity 0.5s linear;
    font-size: 44px;
    margin: 0;
    padding: 0;
    font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
    position: absolute;
    top: 50%;
    left: 50%;
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);

.keyboard {
    visibility: hidden;
    opacity: 0;
    transition: visibility 0s, opacity 0.5s linear;
    margin-left: auto;
    margin-right: auto;
    width: 998px;
    height: 350;
    margin: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);

.row {
    width: 100%;
    height: 60px;

.numberLine, .alphaUpperLine, .alphaMiddleLine, .alphaLowerLine, .BottomLine {
    margin: 5px 0 5px 0;

.row div {
    display: flex;
    justify-content: center;
    align-items: center;
    float: left;
    color: black;
    width: 55px;
    height: 55px;
    border: black 1px solid;
    border-radius: 20%;
    background: rgb(235, 232, 232);
    margin-left: 5px;
    margin-right: 5px;
    outline: none;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 20px;

div.backspace {
    width: 115px;
    border-radius: 10px;
    font-size: 18px;
}, div.backSlash {
    width: 85px;
    border-radius: 10px;

div.capslock {
    width: 100px;
    border-radius: 10px;

div.enter {
    width: 137px;
    border-radius: 10px;

div.lShift {
    width: 130px;
    border-radius: 10px;

div.rShift {
    width: 174px;
    border-radius: 10px;

div.lCtrl {
    width: 65px;
    border-radius: 10px;
} {
    width: 388px;
    border-radius: 10px;

div.rCtrl {
    width: 174px;
    border-radius: 10px;

/*Key colors*/

div.blacktick,,, div.q, div.a, div.lShift, div.z, div.lCtrl, {
    background-color: rgb(255, 160, 122);
    border-color: rgb(184, 83, 44);

div.two, div.w, div.s, div.x {
    background-color: rgb(240, 128, 128);
    border-color: rgb(180, 81, 81);

div.three, div.e, div.d, div.c {
    background-color: rgb(119, 136, 153);
    border-color: rgb(44, 88, 133);

div.four, div.five, div.r, div.t, div.f, div.g, div.v, div.b {
    background-color: rgb(135, 206, 250);
    border-color: rgb(49, 144, 204);

div.six,, div.y, div.u, div.h, div.j, div.n, div.m {
    background-color: rgb(173, 216, 230);
    border-color: rgb(44, 119, 145);

div.eight, div.i, div.k, div.comma {
    background-color: rgb(144, 238, 144);
    border-color: rgb(60, 187, 60);

div.nine, div.o, div.l, div.fullstop {
    background-color: rgb(255, 184, 194);
    border-color: rgb(180, 70, 84);
}, div.minus, div.equalsTo, div.backspace, div.p, div.openedBracket, div.closedBracket, div.backSlash, div.semicolon, div.quote, div.enter, div.frontSlash, div.rShift, div.rCtrl {
    background-color: rgb(255, 255, 155);
    border-color: rgb(192, 192, 52);

div.capslock {
    background-color: rgb(255, 222, 173);
    border-color: rgb(194, 138, 54);

div.rAlt,, div.lAlt {
    background-color: rgb(32, 178, 170);
    border-color: rgb(9, 109, 104);

div.lFunction, div.rFunction {
    background-color: rgb(244, 164, 96);
    border-color: rgb(167, 91, 25);

Interactive Virtual Keyboard Plugin/Github, virtual keyboard javascript source code, virtual keyboard html source code, virtual keyboard event javascript

See Demo And Download

Official Website(devang-joshi-dj): Click Here

This superior jQuery/javascript plugin is developed by devang-joshi-dj. For extra Advanced Usage, please go to the official website.

Related Posts


Interactive Data Table Generator with JS/jQuery and JSON | Tabulator

Tabulator allows you to create interactive tables in seconds from any HTML Table, JavaScript array, AJAX data source, or JSON format data. Just include the library in your…


Simple Alert, Confirm, Prompt Popup Using Vanilla JavaScript Library | attention.js

JavaScript provides various built-in functionality to display popup messages for different purposes. Attention JS is a vanillaJS plugin used to create a custom alert, confirm, or Prompt…


Lightweight Bootstrap 4 Toast Notification Plugin | BS4 Advanced Toast

A lightweight Bootstrap 4 Toast Notification plugin integrated with JS/jQuery. bs4-toast.js is a JavaScript library that enhances the native Bootstrap toast component with icons, buttons, callbacks, and…


How to Create Audio Visualizations with JavaScript | Wave.js

Audio Visualizer Library – wave.js is a vanilla javascript audio visualization library that provides 20+ creative audio visualization effects to bring more engagement to your visitor. Contribute…


Modern Mobile Touch Slider With Acceleration Transitions | Swiper

Swiper is the most modern free mobile touch slider with accelerated device transitions and amazing original behavior. It is intended for use in mobile websites, mobile web…


Confetti Falling Animation Effect In JavaScript | party.js

Party.js is a JavaScript library to brighten user site experience with visual effects! Celebrate success with dom confetti! The library is written in TypeScript and compiled into…

Leave a Reply

Your email address will not be published. Required fields are marked *