JSFiddle - React, Tailwind, and code Playground

HTML

<div class="pagination-wrapper">
<div class="pagination">
    <span class="disabled previous_page">← Previous</span> 
    <em class="current">1</em> 
    <a href="./?page=2" rel="next">2</a> 
    <a href="./?page=3">3</a> 
    <a href="./?page=4">4</a> 
    <a href="./?page=5">5</a> 
    <a href="./?page=6">6</a> 
    <a href="./?page=7">7</a> 
    <a href="./?page=8">8</a> 
    <a href="./?page=9">9</a> 
    <span class="gap">…</span> 
    <a href="./?page=29">29</a> 
    <a href="./?page=30">30</a> 
    <a href="./?page=2" rel="next" class="next_page">Next →</a>
</div>
</div>

CSS

.pagination-wrapper {
xwidth: 600px; /* or whatever width you require */
margin: 0 auto;
}

.pagination {
  background: white;
  cursor: default;
  /* self-clearing method: */ }
  .pagination a, .pagination span, .pagination em {
    padding: 0.2em 0.5em;
    display: block;
    float: left;
    margin-right: 1px; }
  .pagination .disabled {
    color: #999999;
    border: 1px solid #dddddd; }
  .pagination .current {
    font-style: normal;
    font-weight: bold;
    background: #2e6ab1;
    color: white;
    border: 1px solid #2e6ab1; }
  .pagination a {
    text-decoration: none;
    color: #105cb6;
    border: 1px solid #9aafe5; }
  .pagination a:hover, .pagination a:focus {
    background: white;
    color: #000044;
    border-color: #000044; }
.pagination .pagination_links {
    margin: 0 auto;
    width: 70%;
    text-align: center;
}
  .pagination .page_info {
    margin: 0 auto;
    background: #2e6ab1;
    color: white;
    padding: 0.4em 0.6em;
    width: 22em;
    margin-bottom: 0.3em; }
  .pagination .page_info b {
    color: #000033;
    background: #6aa6ed;
    padding: 0.1em 0.25em; }
  .pagination:after {
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden; }
  * html .pagination {
    height: 1%; }
  *:first-child + html .pagination {
    overflow: hidden; }