Giter VIP home page Giter VIP logo

patternfly's Introduction

PatternFly reference implementation

This reference implementation of PatternFly is based on Bootstrap v3. Think of PatternFly as a "skinned" version of Bootstrap with additional components and customizations. For information on how to quickly get started using PatternFly, see the Quick Start Guide.

Installation

Install with Bower

PatternFly can be installed and managed through Bower. To do so, either add patternfly as a dependency in your bower.json or run the following:

bower install patternfly

Install with npm

PatternFly can be installed and managed through npm. To do so, run the following:

npm install patternfly

RPM

PatternFly is also available as an RPM. See https://copr.fedoraproject.org/coprs/patternfly/patternfly2/.

Sass and/or Rails

A Sass port of PatternFly is available, as is a Sass-based Rails Gem.

AngularJS

A set of common AngularJS directives for use with PatternFly is available.

Dependencies

PatternFly incorporates other libraries and components; therefore, in addition to the contents of dist, the contents of components are also required for a complete installation of PatternFly.

Development

Development setup requires nodejs and Ruby. If you do not already have nodejs, npm, and Ruby installed on your system, see https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager and https://www.ruby-lang.org/en/downloads.

Install Bower

After ensuring nodejs and npm are available, install Bower globally:

npm install -g bower

Bower is used to install and update PatternFly's dependencies.

Install Development Dependencies

The development includes the use of a number of helpful tasks. In order to setup your development environment to allow running of these tasks, you need to install the local nodejs packages declared in package.json. To do this run:

npm install

This will install all necessary development packages into node_modules/. At this point, the gruntjs tasks are available for use such as starting a local development server or building the master CSS file.

Additionally you may need to install the grunt command line utility. To do this run:

npm install -g grunt-cli

Test pages are generated using Jekyll. After ensuring Ruby is installed and available, run:

gem install jekyll

Live Reload Server

A local development server can be quickly fired up by using the Gruntjs server task:

grunt server

This local static asset server (i.e., http://localhost:9000) has the advantage of having livereload integration. Thus, if you start the Gruntjs server, any changes you make to .html or .less files will be automatically reloaded into your browser and the changes reflected almost immediately. This has the obvious benefit of not having to refresh your browser and still be able to see the changes as you add or remove them from your development files. Additionally, any changes made to Jekyll source files (tests-src/) will trigger a Jekyll build.

Coding Style

  • Indentation
    • Use spaces (not tabs)
    • Indentation size is 2 spaces
  • Filenames
    • All filenames will use a lowercase-hyphenated naming convention (e.g., single-select-dropdown.less)
  • LESSCSS
    • CSS class names use lowercase-hyphenated naming convention (e.g., .navbar-nav)
    • Alphabetize rules by selector
    • Alphabetize properties by declaration
    • Define or override variables centrally in less/variables.less
    • Define or override mixins centrally in less/mixins.less

Build

CSS

In development, styling is written and managed through multiple lesscss files. In order to generate a CSS file of all styling, run the build Gruntjs task:

grunt build

This task will compile and minify the lesscss files into CSS files located at dist/css/patternfly.min.css and dist/css/patternfly-additional.min.css.

PatternFlyIcons Font

PatternFlyIcons font is generated using IcoMoon. Load PatternFlyIcons-webfont.json as a new project in IcoMoon and update as necessary. Please commit the updated PatternFlyIcons-webfont.json file in addition to the updated font files and supporting LESS/CSS changes.

Tests

The tests/ directory contains HTML pages with component and pattern examples in order to facilitate development. Please consult the official documentation (see below) for full details on how to use PatternFly.

The HTML pages in tests/ are generated using Jekyll. Do not edit these files directly. See tests-src/ to change these files.

Release

PatternFly is released through the Bower, npm, and RPM.

Bower and npm

To release a new version version of PatternFly, edit bower.json, package.json, and MAKEFILE accordingly.

Update the version listed in bower.json by editing the file and changing the line:

"version": "<new_version>"

Update the version listed in package.json by editing the file and changing the line:

"version": "<new_version>"

Update the MAKEFILE by editing the file and changing the following lines:

VERSION=<new_version>
MILESTONE=
# PACKAGE_RPM_RELEASE=0.0.$(MILESTONE)
PACKAGE_RPM_RELEASE=1

Commit the version bump:

git commit -a -m "Version bump to <new_version>"

Tag and push upstream (assuming you have commit access):

git tag <new_version>
git push && git push --tags

The Bower package manager determines available versions and installs based upon git tags, so the new version will now be automatically available via Bower.

To publish a new version to npm, run:

npm publish

RPM

RPMs of PatternFly Bower releases are built using Fedora or RHEL and rpm-build.

Verify MAKEFILE is properly configured.

Make the dist:

make dist

Copy the resulting tarball from the previous step to your rpmbuild/SOURCES directory.

e.g., cp patternfly-1.1.1.tar.gz ~/rpmbuild/SOURCES

Build the RPM:

rpmbuild -ba patternfly.spec

Commit the source RPM [1] to https://github.com/patternfly/patternfly-srpms.

[1] e.g., ~/rpmbuild/SRPMS/patternfly1-1.1.1-1.fc20.src.rpm

Serve the commited source RPM via RawGit.

Ask @rhamilto or @gregsheremeta to add a new build on Fedora Copr using the URL created in the previous step.

Edit MAKEFILE as follows and commit the change:

VERSION=<new_version + 1>
MILESTONE=master
PACKAGE_RPM_RELEASE=0.0.$(MILESTONE)
# PACKAGE_RPM_RELEASE=1

Documentation

See https://www.patternfly.org and http://getbootstrap.com/.

Browser and Device Support

Since PatternFly is based on Bootstrap, PatternFly supports the same browsers as Bootstrap excluding Internet Explorer 8, plus the latest version of Firefox for Linux.

Important: starting with the v2.0.0 release, PatternFly no longer supports Internet Explorer 8.

Product Backlog

See https://patternfly.atlassian.net/secure/RapidBoard.jspa?projectKey=PTNFLY&rapidView=4&view=planning.

Bug List

Official tracking of bugs occurs in Jira. See https://patternfly.atlassian.net/issues/?filter=10300

License

Modifications to Bootstrap are copyright 2013 Red Hat, Inc. and licensed under the Apache License 2.0.

patternfly's People

Contributors

akurdyukov avatar alonbl avatar andresgalante avatar asamalik avatar awood avatar cardosogabriel avatar dtaylor113 avatar duncaninnes avatar ehelms avatar ericwittmann avatar gregsheremeta avatar jeff-phillips-18 avatar jmikulka avatar jpkrohling avatar rhamilto avatar skateman avatar stefwalter avatar suzidao avatar wojtask9 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.