Contributing

Git branching model

This repo branching model is inspired by Git Flow. Currently we have these types of branches:

  • master - Latest release, stable
  • develop - Main development, unstable
  • release/ - Release archive
  • feature/ - Specific features development
  • example/ - Helpful examples
  • hotfix/ - Emergency fixes for latest release

Read the Git Flow reference. This repo uses Semantic Versioning.

Creating modules

The good news is that whatever you create in the Styleguide will be treated as a module. This way we are able to add an awesome resource for the community.

Don't forget to read about "How modules work" and "Module Structure" before you move forward.

###_data.json You can define a key-value in this file that will be used in your module.

Examples:

"items": {
    "people": [
        {
            "name": "John",
            "age": "32"
        },
        {
            "name": "Kirsten",
            "age": "28"
        }
    ]
}

Jade

You can use all the info of _data.json inside the .jade file:

table
    each folk in people
        tr
            td=folk.name
            td=folk.age

Javascript

In case you need Javascript for your module, use the key scripts e and add the file path:

"scripts": ["vendor/foundation.equalizer.js", "pricing-tables.js"]

Changing the structure

Dependencies

Harp

Harp is used for both serving files and compiling, such actions are done through the Start.app and Compile.app. The Start.app uses a Node.js file in order to configure Livereload and Harp together.

Scripts

The source of the Start.app and Compile.app are inside of each app content: Contents/Resources/script

Node Files

In the styleguide/structure/_node-files folder you will find the code that:

  • Start Harp
  • Start Livereload
  • Writes the current date to styleguide/_data.json file (on start and compile)
  • Concatenate all modules javascript code into one file in styleguide/assets/scripts/styleguide.js
  • Concatenate all modules stylesheet code into one file in styleguide/assets/styles/styleguide.js

Structure CSS

In the folder styleguide/structure/styles is the stylesheet of the structure (header, sidebar and basic components), without any module specific code.

Structure Javascript

In the folder styleguide/structure/scripts is the javascript of the structure (header, sidebar and basic components), without any module specific code.

Modules Data

The styleguide/structure/_includes/modulesData.jade is responsible for collecting all necessary data of all modules into one object that will be used by all structure files.

Pull Request

In order to do a Pull Request, you should first lint your code with styleguide/structure/_tests/_lint.sh (execute in the command line). Code with lint errors will not be accepted.

Reporting Issues

Please use our Github repository to report issues. All issues must have:

  • Your operating system (name and version)
  • The browser you are using (name and version)
  • The full copy of any error messages available
  • A full description of how to reproduce the issue you have found