topic Getting Started


  • Install the Bootstrap base theme in sites/all/themes or a similar sites/*/themes folder.
  • Enable the Drupal Bootstrap base theme. If you do not intend to use the base theme as the default theme, and instead choose to create a sub-theme, you will still need to enable the Drupal Bootstrap base theme (see warning below).
  • Ensure your site's jQuery version has been configured to meet the Bootstrap Framework minimum version requirement. The preferred method for updating Drupal's jQuery is to install the jQuery Update module.

WARNING: Due to a bug in Drupal 7, base themes may appear to still "work" even if they are not enabled. This fact does not mean that the base theme still isn't required to be enabled. Not all features will work properly if the base theme is disabled, especially if certain functionality relies on a list of "enabled" themes.

Bootstrap Framework Fundamentals

Generally speaking, you should really read the entire Bootstrap Framework documentation site, if you haven't already. Here are the four basic "sections" that site is split into:

  • Getting Started - An overview of the Bootstrap Framework, how to download and use, basic templates and examples, and more.
  • CSS - Global CSS settings, fundamental HTML elements styled and enhanced with extensible classes, and an advanced grid system.
  • Components - Over a dozen reusable components built to provide iconography, dropdowns, input groups, navigation, alerts, and much more.
  • JavaScript - Bring the Bootstrap Framework components to life with over a dozen custom jQuery plugins. Easily include them all, or one by one.

FAQ - Frequently Asked Questions

Q: Do you support X module?

A: Possibly

Below are a list of modules the Drupal Bootstrap base theme actively supports. This list is constantly growing and each module's support has usually been implemented because of either extremely high usage or the fact it was designed explicitly for use with this base theme and has maintainers in both projects.

Supported modules:

The following modules are "un-supported modules" and are not documented by the Drupal Bootstrap base theme. This does not mean that the base theme will not work with them or that they are "bad". It simply means that this project does not have the time, energy or effort it would take to document "every possible scenario".

It is certainly possible that some of these modules may eventually become "officially" supported. That will happen only, of course, if there are enough people to help contribute solid solutions and make supporting them by the base theme maintainers a relatively "easy" task.

Some of these modules may have blogs or videos floating around on the internet. However, if you choose to use one of these modules, you are really doing so at your own expense. Do not expect support from this base theme or the project you are attempting to integrate the base theme with.

"Un-supported" modules:

Q: Do you support Internet Explorer?

A: No, not "officially"

The Bootstrap Framework itself does not officially support older Internet Explorer compatibility modes. To ensure you are using the latest rendering mode for IE, consider installing the HTML5 Tools module.

Internet Explorer 8 requires the use of Respond.js to enable media queries (Responsive Web Design). However, Respond.js does not work with CSS that is referenced via a CSS @import statement, which is the default way Drupal adds CSS files to a page when CSS aggregation is disabled. To ensure Respond.js works properly, enable CSS aggregation at the bottom of: admin/config/development/performance.

Q: Is Drupal Bootstrap a module or theme?

A: Theme

More specifically a base theme. It is not a module. Modules are allowed to participate in certain hooks, while themes cannot. This is a very important concept to understand and limits themes from participating in a wider range of functionality.

Q: What does the JavaScript error TypeError: $(...).on is not a function mean?

Drupal 7 ships with the 1.4.4 version of jQuery out-of-the-box. The $.on() method was introduced several versions after this in jQuery version 1.7.

You must upgrade your site or sub-theme's jQuery Version by installing (and properly configuring) the jQuery Update module to use a jQuery version compatible with the Bootstrap Framework. This is typically a version greater than or equal to 1.9.

Ensuring jQuery compatibilities between Drupal, the Bootstrap Framework and other plugins/modules does not fall within the scope of this base theme's documentation or support.

Q: Where can I discuss an issue in real time?

A: In Slack

The Drupal Bootstrap project and its maintainers use the #bootstrap channel in the workspace to communicate in real time. Please read the following for more information on how to the community uses this technology: Chat with the Drupal community using Slack.

Please keep in mind though, this IS NOT a "support" channel. It's primary use is to discuss issues and to help fix bugs with the base theme itself.

Q: Where should I make changes?

A: In a custom sub-theme

You should never modify any theme or sub-theme that is packaged and released from If you do, all changes you have made would be lost once that theme is updated. This makes keeping track of changes next to impossible.

Instead, you should create a custom sub-theme that isn't hosted on

Q: Why are my sub-theme's .info settings ignored?

A: The database contains a copy of the theme settings and they take precedence over theme settings stored in the .info file.

This is actually quite a common issue whenever a theme's settings are saved from the UI. This action stores the settings in the {variables} table of the database. The workflow for theme_get_setting() merges the settings from the database on top of the settings found in the theme's .info file.

You need to remove the variable theme_[theme_name]_settings from the database, where [theme_name] is your sub-theme's machine name (e.g. if your sub-theme machine name is THEME_NAME, the variable name would be theme_THEME_NAME_settings).

The easiest way to do accomplish this task is to use the following Drush command: theme_THEME_NAME_settings

If you do not have or use Drush, you will either have to manually delete this variable from the database or create an update hook in a custom module that deletes the variable for you:

* Remove the 'theme_THEME_NAME_settings' variable.
function hook_update_N() {

Source docs/