Giter Site home page Giter Site logo

austinvernsonger / skyux Goto Github PK

View Code? Open in Web Editor NEW

This project forked from blackbaud/skyux1

0.0 1.0 0.0 64.48 MB

SKY UX provides an HTML, CSS, and JavaScript framework to implement Blackbaud’s design patterns, along with the guidance to handle visual design and interaction patterns.

License: MIT License

JavaScript 92.28% HTML 2.02% CSS 5.63% Shell 0.06%

skyux's Introduction

Sky UX

release status devDependencies coverage license Slack

SKY UX provides an HTML, CSS, and JavaScript framework to implement Blackbaud’s design patterns, along with the guidance to handle visual design and interaction patterns.

http://skyux.developer.blackbaud.com/

Installation

You have three options for consuming Sky UX. The first and easiest is to point your site to our CDN, which you can read about in our Getting Started guide.

The second option is to install Sky UX via Bower:

bower install blackbaud-skyux

The third option is to install Sky UX via NPM:

npm install blackbaud-skyux

If you install via Bower or NPM you will need to include the same files as indicated in the Getting Started guide but with the URL pointing to your own web server rather than the CDN. You may also use a hybrid approach where you load SKY UX via the CDN and fall back to a version hosted by your web server if the CDN is unavailable.

Contributing

We highly encourage contributions from all users of Sky UX. We just ask that you follow the coding conventions already established in the existing code, and that you write the appropriate documentation and unit tests to go along with your feature.

Getting the code

  1. Fork the master branch into your own repo
  2. Create a branch named after the feature you will be contributing (.e.g. my-new-feature)
  3. Clone your repo locally, then run npm install and bower install from your local repo's directory to install all required dependencies
  4. Run grunt build to do your initial build. As you write your code, the individual pieces will be built (see step 1 below)

Writing the code

  1. Launch a command prompt, cd to the folder where you cloned your branch, then run grunt watch.
  2. Write your code, documentation and unit tests. All new code must have 100% unit test coverage and include documentation for how to use the feature or the pull request will not be accepted.
  • You should include documentation for each Sky UX module you create within your source code. We use JSDoc-style comments at the top of our JavaScript files to generate Markdown documentation. You can generate the Markdown documentation by running the command grunt docs from the command line.
  • Your documentation should also include demo HTML, and demo JS in a folder called docs under your feature's folder in src/js. As you update these files, the grunt watch task will generate documentation which you can find under demo/build. The documentation page will need to be hosted by a web server; you can use a Node package like http-server to start a web server in any folder on your drive.
  • Your unit tests should be located in a folder called test under your feature's folder in src/js and should consist of one or more JavaScript files named <featurename>.spec.js. As you write unit tests or change code, the grunt watch task will run your unit tests and generate code coverage. Code coverage reports can be located under coverage/<browser version>/index.html and can be launched straight from disk.
  • We've also written a code analysis tool for validating SKYUX components. Visit grunt-skylint to learn more.

Visual regression tests

We run visual regression tests through Browserstack using webdrivercss. To run these tests against a local selenium server you will need GraphicsMagick for image processing installed on your system.

Mac OS X using Homebrew
$ brew install graphicsmagick
Ubuntu using apt-get
$ sudo apt-get install graphicsmagick
Windows

Download and install executables for GraphicsMagick. Please make sure you install the right binaries desired for your system (32bit vs 64bit).

You will also require a local selenium instance.

npm install -g selenium-standalone
selenium-standalone install
selenium-standalone start

After installing these prerequisites you can run the visual regression tests using grunt visualtest, which will create and compare screenshots in the webdriver-screenshotslocal folder.

Submitting the code

  1. Commit and push your changes to your repo
  2. Submit a pull request

Filing Issues

To file a bug, just go to the issues page and create a new issue. We are operating under the expectation that we will close bugs within two weeks of filing. On the newly created issue, there will be an option for you to subscribe to notifications which will send you emails about commits, comments, and releases related to the bug so you can know exactly where the bug is within its lifecycle.

skyux's People

Contributors

blackbaud-ianthomas avatar blackbaud-johnly avatar blackbaud-michaellopez avatar blackbaud-patrickofriel avatar blackbaud-paulcrowder avatar blackbaud-spencermurphy avatar blackbaud-timothywittig avatar blackbaud-toddroberts avatar josh-channin avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.