This website uses cookies

Our website, platform and/or any sub domains use cookies to understand how you use our services, and to improve both your experience and our marketing relevance.

Como integrar um modelo Bootstrap com Laravel

Updated on October 3, 2025

13 Min Read

Principais conclusões:

  • A integração do Bootstrap com o Laravel simplifica o desenvolvimento web, combinando o poder de backend do Laravel com o design de frontend do Bootstrap.
  • Esta combinação aumenta a eficiência, assegura um design consistente em todos os dispositivos e oferece opções de personalização.
  • Existem vários métodos de integração, incluindo a utilização do npm, de ligações CDN ou do Laravel Mix para a compilação de activos.

A tarefa de mesclar modelos de front-end no Laravel geralmente apresenta desafios significativos para os desenvolvedores. Pode ser um processo complexo e demorado que pode levar a um código desorganizado, afetando assim a produtividade do processo de desenvolvimento.

O Bootstrap, um framework front-end amplamente utilizado, oferece uma solução. Quando integrado no Laravel, pode simplificar o processo de desenvolvimento, melhorar a organização do código e melhorar o aspeto visual da tua aplicação.

Este artigo apresenta um guia passo a passo para integrar um modelo Bootstrap com o Laravel. O objetivo é capacitar-te a construir aplicações web visualmente atraentes e altamente funcionais com maior eficiência e tempo de desenvolvimento reduzido.

Breve descrição geral de Laravel e Bootstrap

Laravel é uma estrutura amplamente utilizada para criar aplicações Web utilizando PHP. Foi concebida para facilitar aos programadores tarefas comuns como o encaminhamento, o armazenamento em cache e a segurança. O Laravel fornece ferramentas prontas a utilizar para estas tarefas, para que os programadores possam começar a programar imediatamente.

O Bootstrap é uma ferramenta gratuita para a criação de sítios Web responsivos e que dão prioridade aos dispositivos móveis. Fornece modelos de design pré-fabricados para vários elementos, como tipografia, formulários e botões. A utilização do Bootstrap pode melhorar o aspeto da tua aplicação Laravel e torná-la mais fácil de utilizar.

Combinar as capacidades robustas de back-end do Laravel com os designs responsivos de front-end do Bootstrap pode tornar o desenvolvimento web mais rápido e mais eficiente, levando a uma melhor aplicação web.

Por que integrar Bootstrap com Laravel?

A integração do Bootstrap com o Laravel pode beneficiar os programadores Web por várias razões:

  1. Eficiência: O Laravel ajuda nas tarefas do back-end e o Bootstrap poupa tempo no design do front-end. Utilizá-los em conjunto torna a construção de aplicações web mais rápida.
  2. Consistência: O Bootstrap garante que a tua aplicação fica bem em todos os dispositivos e plataformas. Isto é ótimo para aplicações que precisam de funcionar tanto no computador como no telemóvel.
  3. Personalização: O Bootstrap é flexível. Podes alterar os seus designs para se adequarem ao aspeto e à sensação da tua aplicação.
  4. Suporte da comunidade: Tanto o Laravel como o Bootstrap têm grandes comunidades. Podes encontrar muitos recursos, tutoriais e pacotes extra para ajudar no teu desenvolvimento.
  5. Preparado para o futuro: O Laravel e o Bootstrap são actualizados regularmente com as mais recentes práticas de desenvolvimento Web. A sua utilização mantém a tua aplicação moderna e actualizada.

Requisitos de sistema para integração

Para integrar o Bootstrap com o Laravel, precisas dos seguintes requisitos de sistema:

  • Sistema Operacional: O Laravel funciona em Windows, macOS e Linux.
  • PHP: Precisas de PHP 7.3 ou superior.
  • Compositor: Usa-o para gerir as dependências no Laravel.
  • Base de dados: Laravel suporta bases de dados como MySQL, PostgreSQL e SQL Server.
  • Servidor Web: É necessário um servidor Web como o Apache ou o Nginx para servir a tua aplicação Laravel.
  • Node.js e NPM: Estes são utilizados para compilar activos no Laravel.
  • Bootstrap: Podes obter o Bootstrap a partir do seu site oficial ou utilizar o npm.
  • Editor de texto ou IDE: Vais precisar de uma ferramenta como o Visual Studio Code, Sublime Text ou PHPStorm para escrever o teu código.

Experimenta a facilidade de integração do Bootstrap Laravel com a Cloudways!

Com suporte para todos os requisitos de sistema, desde PHP 7.3 ou superior, Composer, MySQL, Apache, Node.js, NPM, até Bootstrap, temos tudo o que precisas.

Configurar o ambiente de desenvolvimento

A integração do Laravel com o Bootstrap é uma forma fantástica de criar aplicações Web com uma interface de utilizador elegante e responsiva. Para configurar seu ambiente de desenvolvimento para esse fim, siga estas etapas:

Passo 1: Instala o Laravel

Antes de integrares o Bootstrap, precisas de ter o Laravel instalado. Se ainda não o fizeste, abre o teu terminal e executa o seguinte comando para criar um novo projeto Laravel:

composer create-project --prefer-dist laravel/laravel nome do projeto

Este comando criará um novo projeto Laravel em um diretório chamado project-name.

Passo 2: Configura o Laravel Mix

O Laravel Mix é uma ferramenta poderosa para gerenciar os ativos do teu aplicativo. No diretório do projeto Laravel, abra o arquivo webpack.mix.js e configure-o para compilar seus ativos CSS e JavaScript.

mistura.js('resources/js/app.js', 'public/js')

.sass('resources/sass/app.scss', 'public/css');

Passo 3: Instala o Bootstrap

Podes adicionar o Bootstrap ao teu projeto utilizando o npm. Executa o seguinte comando no diretório do teu projeto. Isto irá descarregar o Bootstrap e as suas dependências para o teu projeto.

npm install bootstrap

Passo 4: Importar estilos e scripts Bootstrap

Abre o teu ficheiro resources/sass/app.scss e adiciona a seguinte linha no topo para importar os estilos do Bootstrap.

@importa '~bootstrap/dist/css/bootstrap.css';

Em seguida, abre o ficheiro resources/js/bootstrap.js e inclui os componentes JavaScript do Bootstrap:

requer('bootstrap');

Passo 5: Compila os activos

Agora, executa o seguinte comando para compilar os teus ativos usando o Laravel Mix. Este comando irá compilar os teus ficheiros Sass e JavaScript e copiá-los para o diretório público.

npm run dev

Como integrar o Bootstrap no Laravel

O layout é um componente crítico do projeto. O Laravel resolve isso oferecendo um mecanismo de modelos Blade que produz designs e modelos sofisticados baseados em HTML. Todas as
visualizações do Laravel
construídas com o Blade são armazenadas no diretório resources/views.

O Laravel, por padrão, usa o
NPM
para instalar seus pacotes de front-end. Embora o Laravel não imponha o uso de pré-processadores JavaScript ou CSS específicos, ele fornece um ponto de partida fundamental com Bootstrap, React e/ou Vue que pode ser vantajoso para vários aplicativos.

A integração do modelo Bootstrap com Laravel é um procedimento simples. Requer a segmentação do teu HTML Bootstrap em fragmentos mais pequenos do modelo Blade. Esses fragmentos podem então ser utilizados, estendidos e/ou incluídos no ficheiro Blade principal.

O teu álbum
Exemplo de álbum para Bootstrap
será utilizado para ilustrar este processo.

exemplo de álbum para bootstrap

O código do teu modelo é composto por várias partes. Para o gerir eficazmente, vamos criar um esquema em que todas as partes parciais do esquema são mantidas separadas.

Navega até à pasta resources/view e cria uma nova pasta chamada layouts. Esta pasta irá alojar o layout principal e outros ficheiros que serão incluídos no layout.

Em seguida, cria outra pasta e dá-lhe o nome de partials. Esta pasta conterá ficheiros parciais, como o cabeçalho e o rodapé, que serão utilizados pelo ficheiro de apresentação.

Por fim, vai à pasta dos layouts e cria um ficheiro chamado mainlayout.blade.php. Podes então adicionar o código pretendido a este ficheiro. Este ficheiro será o layout principal da tua aplicação.

<!DOCTYPE html>

<html lang="en">

<head>

@include('layout.partials.head')

</head>

<body>

@include('layout.partials.nav')

@include('layout.partials.header')

@yield('content')

@include('layout.partials.footer')

@include('layout.partials.footer-scripts')

</body>

</html>

Este código gera um ficheiro de layout que incorpora o conteúdo de um ficheiro especificado numa localização designada dentro do ficheiro HTML, utilizando a função
Diretiva @include . A diretiva @yield é utilizada para inserir o conteúdo específico de um ficheiro que estende este esquema.

Passo 1: Criar ficheiros parciais

Terás de gerar ficheiros parciais que serão integrados no ficheiro de esquema principal. Navega até o diretório de parciais e cria um novo arquivo chamado head.blade.php. Este arquivo conterá o conteúdo que vai para a seção head da página.

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

<meta name="description" content="">

<meta name="author" content="">

<title>Exemplo de álbum para Bootstrap</title>

<!-- CSS do núcleo do Bootstrap -->

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzzGRnGxQQKnKkoFVhFQhNUIyJ" crossorigin="anonymous">

<!-- Estilos personalizados para este modelo -->

<link href="/css/album.css" rel="stylesheet">

Cria um ficheiro nav.blade.php. Este ficheiro conterá o código relacionado com a criação da navegação da página Bootstrap.

<div class="collapse bg-inverse" id="navbarHeader">

<div class="contentor">

<div class="row">

<div class="col-sm-8 py-4">

<h4 class="text-white">Sobre</h4>

<p class="text-muted">Adiciona alguma informação sobre o álbum abaixo, o autor, ou qualquer outro contexto. Faz algumas frases longas para que as pessoas possam recolher algumas informações. Depois, liga-o a alguns sites de redes sociais ou a informações de contacto.</p>

</div>

<div class="col-sm-4 py-4">

<h4 class="text-white">Contacto</h4>

<ul class="list-unstyled">

<li><a href="#" class="text-white">Seguir no Twitter</a></li>

<li><a href="#" class="text-white">Gosta no Facebook</a></li>

<li><a href="#" class="text-white">Email-me</a></li>

</ul>

</div>

</div>

</div>

</div>

<div class="navbar navbar-inverse bg-inverse">

<div class="contentor d-flex justify-content-between">

<a href="#" class="navbar-brand">Álbum</a>

<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarHeader" aria-controls="navbarHeader" aria-expanded="false" aria-label="Toggle navigation">

<span class="navbar-toggler-icon"></span>

</button>

</div>

</div>

Cria um ficheiro header.blade.php. Este ficheiro irá conter o cabeçalho visível da página Bootstrap.

<secção class="jumbotron text-center">

<div class="contentor">

<h1 class="jumbotron-heading">Exemplo de álbum</h1>

<p class="lead text-muted">Algo curto e importante sobre a coleção abaixo - o seu conteúdo, o criador, etc. Sê breve e simpático, mas não demasiado curto, para que as pessoas não passem por cima dele.</p>

<p>

<a href="#" class="btn btn-primary">Principal apelo à ação</a>

<a href="#" class="btn btn-secondary">Ação secundária</a>

</p>

</div>

</secção>

Cria um ficheiro chamado footer.blade.php para o rodapé.

<footer class="text-muted">

<div class="contentor">

<p class="float-right">

<a href="#">Volta ao início</a>

</p>

<p>O exemplo do álbum é © Bootstrap, mas faz o download e personaliza-o tu mesmo!</p>

<p>Novo no Bootstrap? <a href="../../">Visita a página inicial</a> ou lê o nosso <a href="../../getting-started/">guia de iniciação</a>.</p>

</div>

</footer>

Cria um ficheiro chamado footer-scripts.blade.php que contenha os ficheiros JS que devem ser incluídos na parte inferior da página.

<!-- JavaScript do núcleo do Bootstrap

================================================= -->

<!-- Colocado no fim do documento para que as páginas carreguem mais depressa -->

<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>

Depois de criares todos os ficheiros de vistas , a pasta de vistas deve ter o seguinte aspeto:

criar ficheiros de vistas

É tudo o que tens a fazer. O template Bootstrap de exemplo, Album Bootstrap, está agora integrado com sucesso no Laravel.

Passo 2: Testa a interface do utilizador

Vamos criar um arquivo de visualização que estende esse arquivo de layout para ver a integração do layout do Bootstrap com o modelo Laravel Blade
em ação. Cria um ficheiro demo.blade.php na pasta views e adiciona o seguinte conteúdo ao ficheiro:

@extende('layout.mainlayout')

@secção('conteúdo')

<div class="álbum text-muted">

<div class="contentor">

<div class="row">

<h1>Este é um texto de demonstração</h1>

<p>Escreve qualquer texto para preencher espaços</p>

</div>

</div>

</div>

@secção final

Passo 3: Cria as rotas

Agora que a visualização foi criada, o próximo passo é criar uma rota para acessar a visualização. Para isso, vai a routes/web.php e cola as seguintes rotas.

Route::get('/demo', function () {

retorna view('demo');

});

Agora executa a aplicação usando o URL de teste. Verás o modelo Album Bootstrap integrado na tua aplicação.

álbum bootstrap template

Como instalar o Bootstrap Template na aplicação Laravel

Nesta secção, mostrarei como integrar o
CoolAdmin Dashboard
em uma aplicação Laravel e como é fácil adicionar temas Bootstrap. Também mostrarei como integrar um tema de administração passo a passo, um recurso fundamental para gerenciar componentes do site a partir do painel.

Depois de instalar o modelo, vou criar duas páginas, ou seja, my-home e my-users. Este processo mostra a aplicação prática do tema integrado na criação de páginas Web funcionais.

Descarregando o Dashboard com Laravel

Primeiro, escolhe e descarrega um dashboard que queiras utilizar com a tua aplicação Laravel. Por exemplo, o CoolAdmin Dashboard é amigável e fácil de usar. Uma vez descarregado, extrai os ficheiros JS, CSS e os ícones e coloca-os na tua aplicação Laravel.

Em seguida, cria uma pasta “theme” dentro da pasta “public” da tua aplicação Laravel. Copia todos os dados extraídos para esta pasta “theme”.

Passo 1: Configura a rota

Primeiro, vais configurar as rotas. Adiciona duas rotas, my-home e my-users, para as duas páginas. Podes fazer isto no ficheiro de rotas com o seguinte código:

// routes/web.php

Route::get('minha-casa', 'HomeController@meuCasa');

Route::get('my-users', 'HomeController@myUsers');

Passo 2: Adiciona o controlador

Em seguida, tens de criar um novo HomeController e adicionar dois métodos para a página do painel e para a página do utilizador. Podes utilizar o seguinte código para o HomeController.

// app/Http/Controllers/HomeController.php

<?php

namespace App\Http\Controllers;

utiliza Illuminate\Http\Request;

utiliza App\Item;

class HomeController extends Controller

{

/**

* Cria uma nova instância de controlador.

*

* @return void

*/

função pública __construct()

{

}

/**

* Mostra o painel de controlo da aplicação.

*

* @return \Illuminate\Http\Response

*/

função pública myHome()

{

devolve view('myHome');

}

/**

* Mostra a página Os meus utilizadores.

*

* @return \Illuminate\Http\Response

*/

função pública myUsers()

{

devolve view('myUsers');

}

}

Passo 3: Configura os ficheiros do tema

Em seguida, vais configurar os ficheiros blade do tema. Para o tema CoolAdmin Dashboard, vais criar três ficheiros. Se estiveres a utilizar um tema maior, poderás ter de criar mais ficheiros para o gerir. Na pasta ‘view’, cria uma pasta ‘theme’ que contenha três ficheiros:

  1. default.blade.php
  2. header.blade.php
  3. sidebar.blade.php

Em seguida, adicionas código a estes três ficheiros. Por exemplo, o caminho para o ficheiro predefinido seria resources/views/theme/default.blade.php.

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="utf-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<meta name="viewport" content="width=device-width, initial-scale=1">

<meta name="description" content="">

<meta name="author" content="">

<title>SB Admin 2 - Tema de administração Bootstrap</title>

<!-- CSS do núcleo do Bootstrap -->

<link href="{!! asset('theme/vendor/bootstrap/css/bootstrap.min.css') !!}" rel="stylesheet">

<!-- CSS do MetisMenu -->

<link href="{!! asset('theme/vendor/metisMenu/metisMenu.min.css') !!}" rel="stylesheet">

<!-- CSS personalizado -->

<link href="{!! asset('theme/dist/css/sb-admin-2.css') !!}" rel="stylesheet">

<!-- Gráficos de Morris CSS -->

<link href="{!! asset('theme/vendor/morrisjs/morris.css') !!}" rel="stylesheet">

<!-- Tipos de letra personalizados -->

<link href="{!! asset('theme/vendor/font-awesome/css/font-awesome.min.css') !!}" rel="stylesheet" type="text/css">

</head>

<body>

<div id="wrapper">

<!-- Navegação -->

<nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">

@include('theme.header')

@include('theme.sidebar')

</nav>

<div id="page-wrapper">

@yield('content')

</div>

<!-- /#page-wrapper -->

</div>

<!-- /#wrapper -->

<!-- jQuery -->

<script src="{!! asset('theme/vendor/jquery/jquery.min.js') !!}"></script>

<!-- JavaScript do núcleo do Bootstrap -->

<script src="{!! asset('theme/vendor/bootstrap/js/bootstrap.min.js') !!}"></script>

<!-- JavaScript do plug-in do menu Metis -->

<script src="{!! asset('theme/vendor/metisMenu/metisMenu.min.js') !!}"></script>

<!-- Morris Charts JavaScript -->

<script src="{!! asset('theme/vendor/raphael/raphael.min.js') !!}"></script>

<script src="{!! asset('theme/vendor/morrisjs/morris.min.js') !!}"></script>

<script src="{!! asset('theme/data/morris-data.js') !!}"></script>

<!-- JavaScript de tema personalizado -->

<script src="{!! asset('theme/dist/js/sb-admin-2.js') !!}"></script>

</body>

</html>

Passo 4: Configura o cabeçalho

Insere o seguinte código no ficheiro do diretório resources/views/theme/header.blade.php.

<nav class="navbar navbar-expand-lg navbar-transparent navbar-absolute fixed-top">

<div class="contentor-fluido">

<div class="navbar-wrapper">

<a class="navbar-brand" href="#pablo">Dashboard</a>

</div>

<button class="navbar-toggler" type="button" data-toggle="collapse" aria-controls="navigation-index" aria-expanded="false" aria-label="Toggle navigation">

<span class="sr-only">Alterar navegação</span>

<span class="navbar-toggler-icon icon-bar"></span>

<span class="navbar-toggler-icon icon-bar"></span>

<span class="navbar-toggler-icon icon-bar"></span>

</button>

<div class="collapse navbar-collapse justify-content-end">

<form class="navbar-form">

<span class="bmd-form-group">

<div class="input-group no-border">

<input type="text" value="" class="form-control" placeholder="Pesquisar...">

<button type="submit" class="btn btn-white btn-round btn-just-icon">

<i class="material-icons">procura</i>

<div class="ripple-container"></div>

</button>

</div>

</span>

</form>

<ul class="navbar-nav">

<li class="nav-item">

<a class="nav-link" href="#pablo">

<i class="material-icons">painel de controlo</i>

<p class="d-lg-none d-md-block">

Estatísticas

</p>

</a>

</li>

<li class="nav-item dropdown">

<a class="nav-link" href="http://example.com" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">

<i class="material-icons">notificações</i>

<span class="notification">5</span>

<p class="d-lg-none d-md-block">

Algumas acções

</p>

</a>

<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownMenuLink">

<a class="dropdown-item" href="#">Mike John respondeu ao teu e-mail</a>

<a class="dropdown-item" href="#">Tens 5 novas tarefas</a>

<a class="dropdown-item" href="#">Agora és amigo do André</a>

<a class="dropdown-item" href="#">Outra notificação</a>

<a class="dropdown-item" href="#">Outro</a>

</div>

</li>

<li class="nav-item dropdown">

<a class="nav-link" href="#pablo" id="navbarDropdownProfile" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">

<i class="material-icons">pessoa</i>

<p class="d-lg-none d-md-block">

Conta

</p>

</a>

<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownProfile">

<a class="dropdown-item" href="#">Profile</a>

<a class="dropdown-item" href="#">Definições</a>

<div class="dropdown-divider"></div>

<a class="dropdown-item" href="#">Log out</a>

</div>

</li>

</ul>

</div>

</div>

</nav>

Passo 5: Configura a barra lateral

Depois de configurares o cabeçalho com sucesso, está na altura de configurares a barra lateral. Insere o seguinte código.

<div class="sidebar" data-color="purple" data-background-color="white" data-image="../assets/img/sidebar-1.jpg">

<div class="logótipo">

<a href="http://www.creative-tim.com" class="simple-text logo-normal">

Criativo Tim

</a>

</div>

<div class="sidebar-wrapper ps-container ps-theme-default" data-ps-id="d8631889-919e-0705-2d4b-159fdbdfe8cd">

<ul class="nav">

Share your opinion in the comment section. COMMENT NOW

Share This Article

Shahzeb Ahmed

Um criativo de dia (com uma chávena de chá) e um criativo de noite. Ahmad Kamran é um escritor de conteúdos sazonais e Executivo de Marketing Sénior na Cloudways. Podes encontrá-lo na sua secretária a escrever, a criar estratégias ou a jogar jogos. E, caso não o encontres aqui, ele estará nas montanhas ou à beira do rio.

×

Webinar: How to Get 100% Scores on Core Web Vitals

Join Joe Williams & Aleksandar Savkovic on 29th of March, 2021.

Do you like what you read?

Get the Latest Updates

Share Your Feedback

Please insert Content

Thank you for your feedback!

Do you like what you read?

Get the Latest Updates

Share Your Feedback

Please insert Content

Thank you for your feedback!

Quer experimentar a plataforma Cloudways em todo o seu esplendor?

Faça um tour guiado GRATUITO pela Cloudways e veja por si mesmo como é fácil gerenciar seu servidor e suas aplicações na principal plataforma de hospedagem em nuvem.

Iniciar mi recorrido