Dashboard para área administrativa com Bootstrap gratuita

Dashboard de administração: Como criar uma interface profissional com Bootstrap.

PDO com PHP: Aprenda a fazer um CRUD com MySQL

Quando a gente começa a desenvolver uma nova aplicação com área administrativa, a primeira coisa que vem na nossa cabeça é: Como será a UI/UX desse painel? Então recorremos a diversas possibilidades até chegar em uma que atende ao que precisamos.

Neste artigo estamos disponibilizando o template base de um dashboard para áreas administrativas, e detalhe, esse é o mesmo template que vem sendo utilizado na SatellaSoft e seus produtos. O código foi escrito em HTML, CSS e JS, utilizando o Bootstrap como base.

Ter uma interface de dashboard responsivo é fundamental para fornecer uma ótima experiência de usuário em qualquer dispositivo, seja desktop, tablet ou celular. Com o aumento do uso de dispositivos móveis, ter um dashboard que se adapta a diferentes tamanhos de tela é essencial para manter os usuários engajados e satisfeitos. Além disso, uma interface responsiva ajuda a aumentar a acessibilidade e manter a integridade das informações na tela, ou seja, nada de componentes quebrados.

Caso você queira aprender a criar uma aplicação com área administrativa usando banco de dados, status e nível de permissão, confira o nosos curso Criando uma aplicação com área administrativa utilizando o Laravel.

O nosso dash utiliza o Bootstrap 5, sendo totalmente dependente do CSS do framework. Temos também um código Javascript puro para manipular o menu, tornando o JS do framework opcional.


Tudo o que você vai precisar é criar os arquivos:

  • style.css
  • script.js
  • index.html 

Agora insira os scripts abaixo em seus respectivos arquvos.

Style

#menu-lateral {
    height: 100vh;
    overflow-y: auto;
}

#menu-lateral h6 {
    color: #d3d3d3;
    margin-bottom: 5px;
    padding: 5px 0;
}

#menu-lateral li ul li a {
    color: #fff
}

#menu-lateral li ul li a:hover {
    background-color: #111
}

#menu-lateral .logout-link {
    color: rgb(239, 62, 57);
}

@media (max-width: 767.98px) {
    #menu-lateral {
        position: fixed;
        left: -100%;
        top: 0;
        width: 250px;
        height: 100%;
        z-index: 111;
        background-color: #333;
        transition: all 0.3s ease-in-out;
        border-right: 2px solid #3d65ac;
    }

    #menu-lateral.show {
        left: 0;
    }
}

.btn-logout-top {
    color: rgb(239, 62, 57) !important;
    border-bottom: 2px solid rgb(239, 62, 57) !important;
}

.btn-logout-top:hover {
    color: #FFF !important;
    border-bottom: 2px solid #fff !important;
}

.bar {
    background: #3d65ac;
    background: linear-gradient(90deg, rgb(61, 101, 172) 0%, rgb(239, 62, 57) 100%);
    padding: 2px;
}

.breadcrumb {
    border: 1px solid #dedede;
    background-color: #eee !important;
    border-radius: 5px !important;
    padding: 15px 10px !important;
}

Script

const menuLateral = document.querySelector('#menu-lateral')
const navToggler = document.querySelector('.navbar-toggler')

navToggler.addEventListener('click', () => {
    menuLateral.classList.toggle('show')
})

Index

<!DOCTYPE html>
<html lang="pt-br">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Exemplo de Dashboard SatellaSoft</title>

    <!-- Otimização interna -->
    <link rel="preload" href="style.css" as="style">
    <link rel="preload" href="script.js" as="script">

    <link rel="stylesheet" href="style.css">

    <!-- Otimização para o Bootstrap -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
</head>

<body>
    <header>
        <nav class="navbar navbar-expand-md navbar-dark bg-dark container-fluid">
            <div class="container">
                <a class="navbar-brand" href="#"><img src="https://satellasoft.com/img/logo/satellasoft-white.svg"
                        alt="Logo SatelaSoft" style="max-width: 200px;width: 100%;"></a>

                <button class="navbar-toggler d-lg-none" type="button" aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                </button>

                <div class="collapse navbar-collapse" id="navbarCollapse">
                    <ul class="navbar-nav ms-auto">
                        <li class="nav-item">
                            <a class="btn btn-logout-top" href="#">&#x279E; Logout</a>
                        </li>
                    </ul>
                </div>
            </div>
        </nav>
    </header>
    <div class="bar"></div>

    <main>
        <div class="container">
            <div class="row">
                <!-- Navbar lateral -->
                <nav class="col-md-3 col-lg-3 d-md-block bg-dark sidebar d-lg-block" id="menu-lateral">
                    <div class="position-sticky pt-3">
                        <ul class="nav flex-column nav-pills">
                            <li class="nav-item">
                                <h6
                                    class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1">
                                    <span>Conteúdo</span>
                                </h6>
                                <ul class="nav flex-column mb-2">
                                    <li class="nav-item">
                                        <a class="nav-link" href="#">Item 1</a>
                                    </li>
                                    <li class="nav-item">
                                        <a class="nav-link" href="#">Item 2</a>
                                    </li>
                                    <li class="nav-item">
                                        <a class="nav-link" href="#">Item 3</a>
                                    </li>
                                </ul>
                            </li>

                            <li class="nav-item">
                                <h6
                                    class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1">
                                    <span>Nossos sites</span>
                                </h6>
                                <ul class="nav flex-column mb-2">
                                    <li class="nav-item">
                                        <a class="nav-link" href="https://satellasoft.com">SatellaSoft artigos</a>
                                    </li>
                                    <li class="nav-item">
                                        <a class="nav-link" href="https://academy.satellasoft.com">SatellaSoft
                                            cursos</a>
                                    </li>
                                    <li class="nav-item">
                                        <a class="nav-link" href="https://quiz.satellasoft.com">SatellaSoft quizzes</a>
                                    </li>
                                </ul>
                            </li>

                            <li class="nav-item">
                                <h6
                                    class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1">
                                    <span>Configurações</span>
                                </h6>
                                <ul class="nav flex-column mb-2">
                                    <li class="nav-item">
                                        <a class="nav-link" href="#">Minha conta</a>
                                    </li>
                                    <li class="nav-item">
                                        <a class="nav-link logout-link" href="#logout">&#x279E; Logout</a>
                                    </li>
                                </ul>
                            </li>
                        </ul>
                    </div>

                </nav>

                <!-- Conteúdo principal -->
                <main role="main" class="col-md-9 col-lg-9 mt-3">
                    <nav aria-label="breadcrumb">
                        <ol class="breadcrumb">
                            <li class="breadcrumb-item"><a href="#">Home</a></li>
                            <li class="breadcrumb-item active" aria-current="page">Library</li>
                        </ol>
                    </nav>

                    <h1>Conteúdo principal</h1>
                    <p>Conteúdo da página</p>
                </main>
            </div>
        </div>

    </main>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
    <script src="script.js"></script>
</body>

</html>

Também mantemos uma versão atualizada em nosso repositório no Github, confira: https://github.com/satellasoft/responsive-bootstrap-dashboard.