UNPKG

@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
# 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/).