audi / audi-ui

Audi UI components in CSS, Vanilla JavaScript, and HTML
http://www.audi.com/ci
316 stars 49 forks source link

Audi UI

An implementation of Audi UI components in CSS, Vanilla JavaScript, and HTML. Complementary typefaces and icons can be found in the corresponding repositories on the same organization account.

Project status: alpha

Want to contribute?

If you found a bug, have any questions or want to contribute feel free to file an issue on GitHub. For general information on the audi corporate design please follow the official guidelines.

Getting Started

Build workflow

Our current build workflow requires Gulp v4. Make sure you have the latest version installed.

You will need to remove your current gulp global package before installing v4 in order to do an upgrade.

npm rm -g gulp
npm install -g gulp-cli

This command removes your current global package and installs v4 from the gulp-cli 4.0 branch.

Make sure you don't get any errors from the first command before you type the second. Depending on your set-up, you may need to run them with sudo.

To verify what version you have installed globally, you can run the below command (and should see a similar output).

gulp -v
CLI version 1.2.2

Setup the repo:

git clone https://github.com/audi/audi-ui.git && cd audi-ui
npm i

Build library files:

gulp

Build library and run the development server:

cd /path/to/audi-ui
gulp test:visual

Use Audi UI for your project

1. Install Audi UI via NPM

npm install @audi/audi-ui

2. Link CSS directly OR import library SCSS in your styles

<link rel="stylesheet" href="https://github.com/audi/audi-ui/blob/master/node_modules/@audi/audi-ui/lib/audiui.min.css">
@import "/node_modules/@audi/audi-ui/src/index";

3. Initialize JS

// Add DOM4 support, https://github.com/WebReflection/dom4
import 'dom4';

// Add Babel polyfill for ES2015, https://babeljs.io/docs/usage/polyfill/
import 'babel-polyfill';

// Import all components from Audi UI library
import aui from 'audi-ui';

// Or only some
import {Modal, Nav, Spinner} from 'audi-ui';

// Initialize all Audi UI components
aui.upgradeAllElements();

// Or only some
Modal.upgradeElements();
Nav.upgradeElements();
Spinner.upgradeElements();

4. Check if JavaScript is enabled

We use an approach like Modernizr to detect JS support, and change the styling accordingly. Add the class aui-no-js to the html element.

<html class="aui-no-js">

Replace the name with aui-js if JS is supported.

<head>
  <script type="text/javascript">
    document.documentElement.className = document.documentElement.className.replace(new RegExp("(^|\\s)aui-no-js(\\s|$)"), "$1aui-js$2");
  </script>
</head>

Browser Support

Supported evergreen browsers:

Supported versioned browsers: