Skip to content

openedx/edx-bootstrap

edX Bootstrap

Purpose

This library is an extension of Bootstrap 4 for use with edX and openEdX.

Installation

Using npm:

npm install --save @edx/edx-bootstrap

Cloning and Startup

1. Clone your new repo:

  ``git clone https://github.com/openedx/edx-bootstrap.git``

2. Use node v18.x.

  The current version of the micro-frontend build scripts support node 18.
  Using other major versions of node *may* work, but this is unsupported.  For
  convenience, this repository includes an .nvmrc file to help in setting the
  correct node version via `nvm <https://github.com/nvm-sh/nvm>`_.

3. Install npm dependencies:

  ``cd edx-bootstrap && npm ci``

Usage

Add the following import in your project's base scss file:

@import "~@edx/edx-bootstrap/scss/edx/theme.scss";

Or for Open edX users:

@import "~@edx/edx-bootstrap/scss/open-edx/theme.scss";

This includes everything you need. Bootstrap is included so you don't need to add it in your project. If you need more control, see the theming section.

Alternatively, you can download this repo and use one of the compiled outputs:

  • dist/open-edx/theme.css (Open edX bootstrap, extensions, & theme)
  • dist/edx/theme.css (edX bootstrap, extensions, & theme)
  • dist/core/core.css (edX bootstrap & extensions only)

Theming

The content of a theme.scss file:

// Optional
@import "my-fonts";
@import "my-variables";

// Required core (includes bootstrap and extensions)
@import "@edx/edx-boostrap/scss/core/core.scss";

// The rest of your scss
// ...

To create a theme, make a copy of the scss/open-edx folder in your own project and make changes. Then include it before you include edx-bootstrap:

@import "fonts";
@import "variables";

// If you are creating your own theme remove
// the "../core/core" import with the line below.
@import "../core/core";
// @import "@edx/edx-boostrap/scss/core/core.scss";

@import "overrides";

Getting Help

If you’re having trouble, you can ask in the front-end channel on Slack or contact the Frontend Working Group:

License

The code in this repository uses the Apache 2.0 license unless otherwise noted. Please see the LICENSE file for details.

Documentation

Documentation details can be found in the docs index.rst.

How to Contribute

Contributions are very welcome, but for legal reasons, you must submit a signed individual contributor agreement before we can accept your contribution. See our CONTRIBUTING file for more information – it also contains guidelines for how to maintain high code quality, which will make your contribution more likely to be accepted.

Reporting Security Issues

Please do not report security issues in public. Please email [email protected].