ColorSwatchCollection
Find a colour swatch from various collections.
ColorSwatchCollection is a ruby gem package for use in ruby or other projects that provides colour swatches with their name and hex code from various collections. You can find colour swatches by providing either the name or hex code you want to search against. You can also query collection colour lists directly.
Lists
The colour collections:
- roygbiv
- basic
- html - the HTML color names.
- x11 - The list that preceded the HTML color names
- pantone
- ntc, an astounding collection of over 1500 named colors.
- tailwind v1, v2, v3, and v4
Installation
Install the gem and add to the application's Gemfile by executing:
bundle add color_swatch_collectionIf bundler is not being used to manage dependencies, install the gem by executing:
gem install color_swatch_collectionUsage
Methods
ColorSwatchCollection.list_collections
=> ['basic', 'html', 'ntc', 'pantone', 'roygbiv', 'x11', 'tailwind_v1', 'tailwind_v2', 'tailwind_v3', 'tailwind_v4']ColorSwatchCollection.get_from_hex('#FDBCB4')
=> { name: 'melon', hex: '#FDBCB4', collection: 'pantone' }ColorSwatchCollection.get_from_name('navajo white')
=> { name: 'navajowhite', hex: '#FFDEAD', collection: 'html' }ColorSwatchCollection.get_colours
=> [
=> { collection: 'basic', hex: '#000000', name: 'black' },
=> { collection: 'basic', hex: '#0000FF', name: 'blue' },
=> .
=> .
=> .
=> ]Options
pick
This parameter allows you to filter names from the dedicated lists for faster computation.
It can be used for get_from_hex, get_from_name, or get_colours.
ColorSwatchCollection.get_from_hex('#00FF00', pick: ['html', 'pantone'])
ColorSwatchCollection.get_from_name('blue', pick: ['x11'])
ColorSwatchCollection.get_colours(pick: ['basic'])omit
The opposite of options.pick and when used alongside the pick option the omit option has precedence.
It can be used for get_from_hex, get_from_name, or get_colours.
ColorSwatchCollection.get_from_hex('#00FF00', omit: ['html', 'pantone'])
ColorSwatchCollection.get_from_name('blue', omit: ['ntc'])
ColorSwatchCollection.get_colours(omit: ['ntc', 'basic'])Configuration
Create an initializer file to allow you to set the collections you want to always pick or omit rather than having to set them each time you call a method:
# config/initializers/color_swatch_collection.rb
ColorSwatchCollection.configure do |config|
config.default_collection_picks = ['x11', 'css']
config.default_collection_omits = ['pantone']
endThere are reader and resetter methods that can be called to view the current configuration and to reset the values
ColorSwatchCollection.configuration
=> <ColorSwatchCollection::Configuration @default_collection_omits=["pantone"], @default_collection_picks=["x11", "css"]>
ColorSwatchCollection.reset_configuration!
=> <ColorSwatchCollection::Configuration @default_collection_omits=[], @default_collection_picks=[]>These defaults can be overridden if pick or omit are called explicitly in a method, as shown in the Options section.
To unset them in a way that provides the default behaviour, all collections in pick and no collection in omit, pass '[]'.
ColorSwatchCollection.get_from_hex('#00FF00', pick: ['[]]'])
ColorSwatchCollection.get_from_hex('#00FF00', omit: ['[]]'])Development
After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and the created tag, and push the .gem file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/louiswdavis/color_swatch_collection. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.
License
The gem is available as open source under the terms of the MIT License.
Code of Conduct
Everyone interacting in the ColorSwatchCollection project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.