Ikebana (/ˌɪkɪˈbɑːnə/) is a UI component library.
ikebana-ui.github.io/ikebana
Ikebana depends on the latest stable versions following...
☝️ You can use nvm, rvm and Homebrew/Chocolatey to manage their installations.
Once they are all installed, run...
npm install -g gulp # A global installation of gulp is required.
git clone [email protected]:ikebana-ui/ikebana.git
cd ikebana
bundle install && npm install && bower install
gulp build
say awesome
Once done, the dist
directory will have the built artefacts. To view other Gulp tasks, just run gulp
.
You are welcome to contribute components to Ikebana; just fork this repo and send us a pull request. Please read the Contributing wiki for more details.
- Use
git pull --rebase
to update your codebase. ⚠️ Runbundle install && npm install && bower install
after agit pull --rebase
to ensure that any newly added modules are installed.- Optionally, run
npm prune && bower prune
to remove any unused node and bower modules.
- Use
gulp create --name {{component-name}}
to create a new component. - This will create a new directory under
lib/components/{{component-name}}
.
- Use
gulp serve
to fire up your default browser and a live-reload server via thebrowser-sync
module. - The
serve
task will watch thelib/components
directory and reload your browser upon detecting changes.
In addition to the serve
task, the following tasks are available to you...
- bump
- Increments the version numbers (major.minor.patch) in
package.json
andbower.json
. - clean
- Deletes everything in the
dist
directory. - bump:tag
- Creates a git tag using the version number in
package.json
. - bump:commit
- Creates a git commit by adding
package.json
andbower.json
, using the version number inpackage.json
as the commit message. - create --name {{component-name}}
-
Takes an argument (
name
), the component name, and creates a directory,lib/components/{{component-name}}
, for that component with stub.scss
,.js
and.html
files.For example, to create a new component called, button, just run…
gulp create --name button
- style:compile
- Uses
sass
to compile all thelib/components/{{component-name}}/css/*.scss
files. - script:lint
- Runs
jshint
on all thelib/components/{{component-name}}/js/*.js
files. Uses.jshintrc
for configuration. - script:test
- Runs all the Mocha unit tests inside the
lib/components/{{component-name}}/test
directory. - script:test:report:coveralls
- Sends test coverage data to coveralls.io. Uses Istanbul.
- script:minify
- Uses Uglify to minify all the
lib/components/{{component-name}}/js/*.js
files. - style:doc
- Uses Hologram to generate a styleguide.
- dist:sources
- Copies all the files under
lib/components/**.*
(excludinglib/components/{{component-name}}/test/**.*
) to the
dist
directory. - dist:zip
- Compresses (zip) all the component files in
dist/components/{{component-name}}
todist/components/{{component-name}}/{{component-name}}-{{package-version}}.zip
.
- serve
- Creates a live-reload server using browser-sync.
- build
- Cleans and builds the entire project to the
dist
directory. - default
- Just lists all the available tasks.
- Use
gulp build
to create a distributable version of all the components in the dist
folder.
Ikebana is licensed under the MIT license.