@heroku/frankenpurple
Version:
A UI kit for Heroku's web interfaces. To get started, check out https://purple.herokuapp.com!
134 lines (87 loc) • 4.49 kB
Markdown
# Purple
A UI kit for Heroku's web interfaces. To get started, check out https://purple.herokuapp.com!
## Quickstart
### Developing
### Dependencies
1. nodejs + npm
### New Releases
Please follow the instructions in the HIT repo when making a new release.
https://github.com/heroku/hit/blob/master/purple-deployment-instructions.md
### Spinning it up locally
```sh
npm install
npm start
```
Now open [localhost:5000](http://localhost:5000) in your browser.
See the *Private Repo Resolution* section below.
#### Live development in npm package consumer
With this package installed locally, you can make changes to the source and have them reflected on the fly in a bower-based consumer. There is no need to manage and push to remote branches to test.
1. in your purple directory run `bower link`
2. then run `gulp watch` to automatically compile changes
3. `cd` into your other bower-based project
4. run `bower link purple`
5. ensure that any task runner you have (grunt, gulp, etc.) is watching for changes to your node_modules directory and recompiling that projects own assets. In grunt this would look like:
```
watch: {
purpleScripts: {
files: ['node_modules/purple/dist/js/*.js'],
tasks: ['concat:bower']
},
styles: {
files: ['assets/styles/**/*.scss', 'node_modules/purple/dist/css/*.css'],
tasks: ['sass']
}
}
```
6. To revert back to that project's `bower.json` specified version of purple, run `bower uninstall purple` and then `bower install`
Now you should be all set.
----------------------------
### Private Repo Resolution
As long as this is a private repo, we must take a few steps in order to be able to smoothly deploy this on the Heroku platform
#### Local setup
Make sure you have [GitHub password caching setup](https://help.github.com/articles/caching-your-github-password-in-git).
If you have enabled 2-Factor Auth on GitHub (and you should!) your GitHub password will not authenticate `https` remotes. You must get an OAuth token to do so. Follow these steps:
* On GitHub, open your [Account settings](https://github.com/settings).
* Go to the Applications tab.
* Generate a new Personal Access Token. Name it appropriately.
* Copy the generated token and paste it into some secure password manager like 1Password or LastPass.
* When you try to clone a `https` repo, paste in your token rather than typing your GitHub password.
* The git `credential.manager` configured above will store your OAuth token for all future HTTPS interaction with GitHub.
#### Production Setup
In order to access this repo via bower in production, do the following (assuming you already have a buildpack set):
1. `heroku buildpacks:add https://github.com/timshadel/heroku-buildpack-github-netrc`
2. ask Jack to generate a new read-only token for you from the heroku github *read-only* team Alternatively, create a new github user, add them to the *read-only* github team and then generate a personal access token for them.
3. run `heroku config:set GITHUB_AUTH_TOKEN=<my-read-only-token>` for the production app
-----------------------------------------
### Rails setup
#### Using Sprockets
Ruby projects can include purple from our internal gem server. Be sure to specify the correct source.
```ruby
gem 'purple'
```
Run `bundle install` and add the following line to your `application.scss` or equivalent file:
```scss
@import 'purple/rails';
```
Also add the following line to your `application.js` or equivalent file:
```javascript
//= require purple/rails
```
That's all!
Notice: you'll still need to configure Github password caching.
#### Deploying
1. run `heroku config:add BUILDPACK_URL=https://github.com/ddollar/heroku-buildpack-multi.git` to setup multi buildpacks
2. create a `.buildpacks` file and add:
```
https://github.com/timshadel/heroku-buildpack-github-netrc.git
https://github.com/heroku/heroku-buildpack-ruby.git
```
3. Follow the [directions here](https://github.com/heroku/purple#private-repo-resolution) to allow bower to download from the private purple repo.
-------------------------------------
### CDN
The fastest way to get started is to use [our CDN](/heroku/cdn):
```html
<link rel="stylesheet" href="//www.herokucdn.com/purple/1.0.0/purple.min.css">
<script src="//www.herokucdn.com/purple/1.0.0/purple.min.js"></script>
```
For a list of available purple versions, see [herokucdn.com/purple/](http://www.herokucdn.com/purple/).