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 git@github.com: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 --rebaseto update your codebase. ⚠️ Runbundle install && npm install && bower installafter agit pull --rebaseto ensure that any newly added modules are installed.- Optionally, run
npm prune && bower pruneto 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 serveto fire up your default browser and a live-reload server via thebrowser-syncmodule. - The
servetask will watch thelib/componentsdirectory 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.jsonandbower.json. - clean
- Deletes everything in the
distdirectory. - bump:tag
- Creates a git tag using the version number in
package.json. - bump:commit
- Creates a git commit by adding
package.jsonandbower.json, using the version number inpackage.jsonas 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,.jsand.htmlfiles.For example, to create a new component called, button, just run…
gulp create --name button
- style:compile
- Uses
sassto compile all thelib/components/{{component-name}}/css/*.scssfiles. - script:lint
- Runs
jshinton all thelib/components/{{component-name}}/js/*.jsfiles. Uses.jshintrcfor configuration. - script:test
- Runs all the Mocha unit tests inside the
lib/components/{{component-name}}/testdirectory. - 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/*.jsfiles. - style:doc
- Uses Hologram to generate a styleguide.
- dist:sources
- Copies all the files under
lib/components/**.*(excludinglib/components/{{component-name}}/test/**.*) to thedistdirectory. - 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
distdirectory. - 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.
