Navbars are responsive meta components that serve as navigation headers for your application or site. They begin collapsed (and are toggleable) in mobile views and become horizontal as the available viewport width increases.
<?php
// create nav element and add items
$nav = new Barebone\Bootstrap\Nav();
$nav->addItem('Home', '/', true);
$nav->addItem('Contact', '/contact/');
$nav->addItem('Messages', '/messages/');
echo $navbar;
<nav role="navigation" class="navbar navbar-default"> <div class="container-fluid"> <div class="navbar-header"> <a class="navbar-brand" href="#">Barebone</a> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar6aa117dc5f2a9"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="collapse navbar-collapse" id="navbar6aa117dc5f2a9"> <ul class="nav navbar-nav"> <li class="active"> <a href="/">Home</a> </li> <li> <a href="/contact/">Contact</a> </li> <li> <a href="/messages/">Messages</a> </li> </ul> </div> </div> </nav>
$navbar->addForm($form); places form content within .navbar-form for proper vertical alignment and collapsed behavior in narrow viewports.
Use the alignment options to decide where it resides within the navbar content.
As a heads up, .navbar-form shares much of its code with .form-inline via mixin. Some form controls, like input groups, may require fixed widths to be show up properly within a navbar.
<?php
// create a form and some elements
$form = new Barebone\Bootstrap\Form(["class" => "navbar-left"]);
$query = new Barebone\Bootstrap\FormGroup(null, 'query', ['type' => 'text']);
$searchbtn = new Barebone\Bootstrap\Button('Search');
$form->addFormGroup($query);
$form->append($searchbtn);
// create navbar element
$navbar = new Barebone\Bootstrap\Navbar('Barebone');
// add the form element to the navbar element
$navbar->addForm($form);
echo $navbar;
<nav role="navigation" class="navbar navbar-default"> <div class="container-fluid"> <div class="navbar-header"> <a class="navbar-brand" href="#">Barebone</a> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar6aa117dc5f535"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="collapse navbar-collapse" id="navbar6aa117dc5f535"> <form class="navbar-left navbar-form" role="form"> <div class="form-group"> <input type="text" name="query" class="form-control" id="query"></div> <button type="button" class="btn btn-default">Search</button> </form> </div> </div> </nav>
Add the .navbar-btn class to <button> elements not residing in a <form> to vertically center them in the navbar.
You would add a button to navbar like this $navbar->addButton('Tekst', 'context', 'callback')
<?php
// create navbar element
$navbar = new Barebone\Bootstrap\Navbar('Barebone');
$navbar->addButton('Default', '#'); // default
$navbar->addButton('Primary', 'primary', "alert('fubar')");
echo $navbar;
<nav role="navigation" class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="#">Barebone</a>
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar6aa117dc5f56d">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse" id="navbar6aa117dc5f56d">
<button type="button" class="btn btn-default navbar-btn">Default</button>
<button type="button" class="btn btn-primary navbar-btn" onclick="alert('fubar')">Primary</button>
<button type="button" class="btn btn-info navbar-btn" onclick="alert('fubar')">Info</button>
<button type="button" class="btn btn-success navbar-btn" onclick="alert('fubar')">Success</button>
<button type="button" class="btn btn-warning navbar-btn" onclick="alert('fubar')">Warning</button>
<button type="button" class="btn btn-danger navbar-btn" onclick="alert('fubar')">Danger</button>
</div>
</div>
</nav>
Wrap strings of text in an element with .navbar-text, usually on a <p> tag for proper leading and color.
<?php
// create navbar element
$navbar = new Barebone\Bootstrap\Navbar('Barebone');
$navbar->addText('Signed in as Mark Otto');
echo $navbar;
<nav role="navigation" class="navbar navbar-default"> <div class="container-fluid"> <div class="navbar-header"> <a class="navbar-brand" href="#">Barebone</a> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar6aa117dc5f69c"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="collapse navbar-collapse" id="navbar6aa117dc5f69c"> <p class="navbar-text">Signed in as Mark Otto</p> </div> </div> </nav>
For folks using standard links that are not within the regular navbar navigation component, use the .navbar-link class to add the proper colors for the default and inverse navbar options.
<?php
// create navbar element
$navbar = new Barebone\Bootstrap\Navbar('Barebone');
$navbar->addText('Signed in as Signed in as <a href="#" class="navbar-link">Mark Otto</a>', ['class' => 'navbar-right']);
echo $navbar;
<nav role="navigation" class="navbar navbar-default"> <div class="container-fluid"> <div class="navbar-header"> <a class="navbar-brand" href="#">Barebone</a> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar6aa117dc5f6c4"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="collapse navbar-collapse" id="navbar6aa117dc5f6c4"> <p class="navbar-right navbar-text">Signed in as Signed in as <a href="#" class="navbar-link">Mark Otto</a></p> </div> </div> </nav>
Adds .navbar-fixed-top and includes a .container or .container-fluid to center and pad navbar content.
The fixed navbar will overlay your other content, unless you add padding to the top of the <body>. Try out your own values or use our snippet below. Tip: By default, the navbar is 50px high.
body { padding-top: 70px; }
Make sure to include this after the core Bootstrap CSS.
<?php
// create navbar element
$navbar = new Barebone\Bootstrap\Navbar('Barebone');
$navbar->addText('Signed in as Signed in as <a href="#" class="navbar-link">Mark Otto</a>', ['class' => 'navbar-right']);
$navbar->fixedTo('top');
echo $navbar;
<nav role="navigation" class="navbar navbar-default"> <div class="container-fluid"> <div class="navbar-header"> <a class="navbar-brand" href="#">Barebone</a> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar6aa117dc5f6ec"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="collapse navbar-collapse" id="navbar6aa117dc5f6ec"> <p class="navbar-right navbar-text">Signed in as Signed in as <a href="#" class="navbar-link">Mark Otto</a></p> </div> </div> </nav>
Adds .navbar-fixed-bottom and include a .container or .container-fluid to center and pad navbar content.
<?php
// create navbar element
$navbar = new Barebone\Bootstrap\Navbar('Barebone');
$navbar->addText('Signed in as Signed in as <a href="#" class="navbar-link">Mark Otto</a>', ['class' => 'navbar-right']);
$navbar->fixedTo('bottom');
echo $navbar;
<nav role="navigation" class="navbar navbar-default"> <div class="container-fluid"> <div class="navbar-header"> <a class="navbar-brand" href="#">Barebone</a> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar6aa117dc5f735"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="collapse navbar-collapse" id="navbar6aa117dc5f735"> <p class="navbar-right navbar-text">Signed in as Signed in as <a href="#" class="navbar-link">Mark Otto</a></p> </div> </div> </nav>
Create a full-width navbar that scrolls away with the page by adding .navbar-static-top and include a .container or .container-fluid to center and pad navbar content.
Unlike the .navbar-fixed-* classes, you do not need to change any padding on the body.
Adds .navbar-fixed-bottom and include a .container or .container-fluid to center and pad navbar content.
<?php
// create navbar element
$navbar = new Barebone\Bootstrap\Navbar('Barebone');
$navbar->addText('Signed in as Signed in as <a href="#" class="navbar-link">Mark Otto</a>', ['class' => 'navbar-right']);
$navbar->staticTop();
echo $navbar;
<nav role="navigation" class="navbar navbar-default"> <div class="container-fluid"> <div class="navbar-header"> <a class="navbar-brand" href="#">Barebone</a> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar6aa117dc5f777"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="collapse navbar-collapse" id="navbar6aa117dc5f777"> <p class="navbar-right navbar-text">Signed in as Signed in as <a href="#" class="navbar-link">Mark Otto</a></p> </div> </div> </nav>
<?php
// create nav element and add items
$nav = new Barebone\Bootstrap\Nav();
$nav->addItem('Home', '/', true);
$nav->addItem('Contact', '/contact/');
$nav->addItem('Messages', '/messages/');
// create a form and some elements
$form = new Barebone\Bootstrap\Form(["class" => "navbar-right"]);
$query = new Barebone\Bootstrap\FormGroup(null, 'query', ['type' => 'text']);
$searchbtn = new Barebone\Bootstrap\Button('Search');
$form->addFormGroup($query);
$form->append($searchbtn);
// add dropdown to th nav element
$nav->addDropDown('Dropdown', ['Caption1' => '#', 'Caption2' => '#', 'Caption3' => '#']);
// add form to the nav element
$nav->addForm($form);
// create navbar element
$navbar = new Barebone\Bootstrap\Navbar('Barebone');
// add the nav and form element to the navbar element
$navbar->addForm($form);
$navbar->addNav($nav);
//add a dropdown to the navbar
$navbar->addDropDown('Dropdown', ['Caption1' => '#', 'Caption2' => '#', 'Caption3' => '#', 'Caption4' => '#'], ["class" => "navbar-right"]);
echo $navbar;
// inverse navbar
$navbar = new Barebone\Bootstrap\Navbar('Barebone', 'inverse');
$navbar->addForm($form);
$navbar->addNav($nav);
echo $navbar;
<nav role="navigation" class="navbar navbar-inverse"> <div class="container-fluid"> <div class="navbar-header"> <a class="navbar-brand" href="#">Barebone</a> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar6aa117dc5f7b9"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="collapse navbar-collapse" id="navbar6aa117dc5f7b9"> <ul class="nav navbar-nav"> <li class="active"> <a href="/">Home</a> </li> <li> <a href="/contact/">Contact</a> </li> <li> <a href="/messages/">Messages</a> </li> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#"> Dropdown<b class="caret"></b> </a> <ul class="dropdown-menu"> <li> <a href="#">Caption1</a> </li> <li> <a href="#">Caption2</a> </li> <li> <a href="#">Caption3</a> </li> </ul> </li> </ul> <ul class="nav navbar-nav"> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#"> Dropdown<b class="caret"></b> </a> <ul class="dropdown-menu"> <li> <a href="#">Caption1</a> </li> <li> <a href="#">Caption2</a> </li> <li> <a href="#">Caption3</a> </li> <li> <a href="#">Caption4</a> </li> </ul> </li> </ul> </div> </div> </nav>