inker 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +57 -0
- data/.rspec +3 -0
- data/.travis.yml +25 -0
- data/.yardopts +1 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +6 -0
- data/LICENSE +21 -0
- data/README.md +142 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/inker.gemspec +34 -0
- data/lib/data/colors.yml +163 -0
- data/lib/inker.rb +30 -0
- data/lib/inker/color.rb +152 -0
- data/lib/inker/color/serializers.rb +69 -0
- data/lib/inker/color/tools.rb +389 -0
- data/lib/inker/version.rb +4 -0
- data/lib/inker/wrappers/string.rb +13 -0
- metadata +119 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b10c6175394e05edd4ed0b06d2918ef04afbdcea95622e5750c775190e9ab1be
|
4
|
+
data.tar.gz: c7624699d33612900f67e7c56a305c25c9e9383bc0b8018027e824f48232712f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b09ec678085c9d58e157999e41cfdc6edfb6317dfeec283aa9736319897b387e0eca9d27fbe9344f5143b2b4e864e4c64e991144a72be276712856f13b41e8b2
|
7
|
+
data.tar.gz: 2eb54559b2f4d05cee14c792a1362cb6678e5957e69a776ae87d5ea35f209b1f6ada3c27d4fc9ca3bef82700d57dadbfc8f461dc4d8b61fb00a45c31827c50fc
|
data/.gitignore
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
/.config
|
4
|
+
/coverage/
|
5
|
+
/InstalledFiles
|
6
|
+
/pkg/
|
7
|
+
/spec/reports/
|
8
|
+
/spec/examples.txt
|
9
|
+
.rspec_status
|
10
|
+
/test/tmp/
|
11
|
+
/test/version_tmp/
|
12
|
+
/tmp/
|
13
|
+
|
14
|
+
# Used by dotenv library to load environment variables.
|
15
|
+
# .env
|
16
|
+
|
17
|
+
# Ignore Byebug command history file.
|
18
|
+
.byebug_history
|
19
|
+
|
20
|
+
## Specific to RubyMotion:
|
21
|
+
.dat*
|
22
|
+
.repl_history
|
23
|
+
build/
|
24
|
+
*.bridgesupport
|
25
|
+
build-iPhoneOS/
|
26
|
+
build-iPhoneSimulator/
|
27
|
+
|
28
|
+
## Specific to RubyMotion (use of CocoaPods):
|
29
|
+
#
|
30
|
+
# We recommend against adding the Pods directory to your .gitignore. However
|
31
|
+
# you should judge for yourself, the pros and cons are mentioned at:
|
32
|
+
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
|
33
|
+
#
|
34
|
+
# vendor/Pods/
|
35
|
+
|
36
|
+
## Documentation cache and generated files:
|
37
|
+
/.yardoc/
|
38
|
+
/_yardoc/
|
39
|
+
/doc/
|
40
|
+
/rdoc/
|
41
|
+
|
42
|
+
## Environment normalization:
|
43
|
+
/.bundle/
|
44
|
+
/vendor/bundle
|
45
|
+
/lib/bundler/man/
|
46
|
+
|
47
|
+
# for a library or gem, you might want to ignore these files since the code is
|
48
|
+
# intended to run in multiple environments; otherwise, check them in:
|
49
|
+
Gemfile.lock
|
50
|
+
.ruby-version
|
51
|
+
.ruby-gemset
|
52
|
+
|
53
|
+
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
54
|
+
.rvmrc
|
55
|
+
|
56
|
+
# Used by RuboCop. Remote config files pulled in from inherit_from directive.
|
57
|
+
# .rubocop-https?--*
|
data/.rspec
ADDED
data/.travis.yml
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
---
|
2
|
+
sudo: false
|
3
|
+
language: ruby
|
4
|
+
cache: bundler
|
5
|
+
jobs:
|
6
|
+
include:
|
7
|
+
- name: "Ruby 2.2"
|
8
|
+
rvm: 2.2
|
9
|
+
env: "BUNDLER_VERSION=1.17.3"
|
10
|
+
- name: "Ruby 2.3"
|
11
|
+
rvm: 2.3
|
12
|
+
env: "BUNDLER_VERSION=2.1.4"
|
13
|
+
- name: "Ruby 2.4"
|
14
|
+
rvm: 2.4
|
15
|
+
env: "BUNDLER_VERSION=2.1.4"
|
16
|
+
- name: "Ruby 2.5"
|
17
|
+
rvm: 2.5
|
18
|
+
env: "BUNDLER_VERSION=2.1.4"
|
19
|
+
- name: "Ruby 2.6"
|
20
|
+
rvm: 2.6
|
21
|
+
env: "BUNDLER_VERSION=2.1.4"
|
22
|
+
- name: "Ruby 2.7"
|
23
|
+
rvm: 2.7
|
24
|
+
env: "BUNDLER_VERSION=2.1.4"
|
25
|
+
before_install: gem install bundler -v $BUNDLER_VERSION
|
data/.yardopts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--markup=markdown
|
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
2
|
+
|
3
|
+
## Our Pledge
|
4
|
+
|
5
|
+
In the interest of fostering an open and welcoming environment, we as
|
6
|
+
contributors and maintainers pledge to making participation in our project and
|
7
|
+
our community a harassment-free experience for everyone, regardless of age, body
|
8
|
+
size, disability, ethnicity, gender identity and expression, level of experience,
|
9
|
+
nationality, personal appearance, race, religion, or sexual identity and
|
10
|
+
orientation.
|
11
|
+
|
12
|
+
## Our Standards
|
13
|
+
|
14
|
+
Examples of behavior that contributes to creating a positive environment
|
15
|
+
include:
|
16
|
+
|
17
|
+
* Using welcoming and inclusive language
|
18
|
+
* Being respectful of differing viewpoints and experiences
|
19
|
+
* Gracefully accepting constructive criticism
|
20
|
+
* Focusing on what is best for the community
|
21
|
+
* Showing empathy towards other community members
|
22
|
+
|
23
|
+
Examples of unacceptable behavior by participants include:
|
24
|
+
|
25
|
+
* The use of sexualized language or imagery and unwelcome sexual attention or
|
26
|
+
advances
|
27
|
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
28
|
+
* Public or private harassment
|
29
|
+
* Publishing others' private information, such as a physical or electronic
|
30
|
+
address, without explicit permission
|
31
|
+
* Other conduct which could reasonably be considered inappropriate in a
|
32
|
+
professional setting
|
33
|
+
|
34
|
+
## Our Responsibilities
|
35
|
+
|
36
|
+
Project maintainers are responsible for clarifying the standards of acceptable
|
37
|
+
behavior and are expected to take appropriate and fair corrective action in
|
38
|
+
response to any instances of unacceptable behavior.
|
39
|
+
|
40
|
+
Project maintainers have the right and responsibility to remove, edit, or
|
41
|
+
reject comments, commits, code, wiki edits, issues, and other contributions
|
42
|
+
that are not aligned to this Code of Conduct, or to ban temporarily or
|
43
|
+
permanently any contributor for other behaviors that they deem inappropriate,
|
44
|
+
threatening, offensive, or harmful.
|
45
|
+
|
46
|
+
## Scope
|
47
|
+
|
48
|
+
This Code of Conduct applies both within project spaces and in public spaces
|
49
|
+
when an individual is representing the project or its community. Examples of
|
50
|
+
representing a project or community include using an official project e-mail
|
51
|
+
address, posting via an official social media account, or acting as an appointed
|
52
|
+
representative at an online or offline event. Representation of a project may be
|
53
|
+
further defined and clarified by project maintainers.
|
54
|
+
|
55
|
+
## Enforcement
|
56
|
+
|
57
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
58
|
+
reported by contacting the project team at serioja90@gmail.com. All
|
59
|
+
complaints will be reviewed and investigated and will result in a response that
|
60
|
+
is deemed necessary and appropriate to the circumstances. The project team is
|
61
|
+
obligated to maintain confidentiality with regard to the reporter of an incident.
|
62
|
+
Further details of specific enforcement policies may be posted separately.
|
63
|
+
|
64
|
+
Project maintainers who do not follow or enforce the Code of Conduct in good
|
65
|
+
faith may face temporary or permanent repercussions as determined by other
|
66
|
+
members of the project's leadership.
|
67
|
+
|
68
|
+
## Attribution
|
69
|
+
|
70
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
71
|
+
available at [http://contributor-covenant.org/version/1/4][version]
|
72
|
+
|
73
|
+
[homepage]: http://contributor-covenant.org
|
74
|
+
[version]: http://contributor-covenant.org/version/1/4/
|
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2020 Sergiu Groza
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,142 @@
|
|
1
|
+
# Inker
|
2
|
+
|
3
|
+
Inker is a Ruby gem for color parsing and manipulation, which allows to parse a HEX, RGB/RGBA and HSL/HSLA color string and provides functionalities for getting more info on color, like brigthness, lightness, saturation, hue. It also allows to change RGBA values in order to obtain new colors.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'inker'
|
11
|
+
```
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
```bash
|
16
|
+
bundle
|
17
|
+
```
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
|
21
|
+
```bash
|
22
|
+
gem install inker
|
23
|
+
```
|
24
|
+
|
25
|
+
## Parsing colors
|
26
|
+
|
27
|
+
There're 2 different ways to parse colors with `Inker`. The first (most direct and simple) is to use
|
28
|
+
`String#to_color` method, which returns a `Inker::Color` object. The other is by calling `Inker#color`, which has the same effect as `String#to_color`.
|
29
|
+
|
30
|
+
```ruby
|
31
|
+
require "inker"
|
32
|
+
|
33
|
+
"magenta".to_color # parse a named color
|
34
|
+
"#880e4f".to_color # parse a hex6 color
|
35
|
+
"#000".to_color # parse a hex3 color
|
36
|
+
"#b71c1c99".to_color # parse a hex8 color (the last 2 chars chars represent alpha value)
|
37
|
+
"rgb(74, 20, 140)".to_color # parse a RGB color
|
38
|
+
"rgba(26, 35, 126, 0.75)".to_color # parse a RGBA color
|
39
|
+
"hsl(174, 100%, 29%)".to_color # parse a HSL color with percentages
|
40
|
+
"hsl(174, 1.0, 0.29)".to_color # parse a HSL color with decimals
|
41
|
+
"hsla(21, 100%, 45%, 0.5)".to_color # parse a HSLA color with percentages
|
42
|
+
"hsla(21, 1.0, 0.45, 0.5)".to_color # parse a HSLA color with decimals
|
43
|
+
|
44
|
+
Inker.color("magenta") # parse a named color
|
45
|
+
Inker.color("#880e4f") # parse a hex6 color
|
46
|
+
Inker.color("rgb(74, 20, 140)") # parse a rgb color
|
47
|
+
```
|
48
|
+
|
49
|
+
## Output formats
|
50
|
+
|
51
|
+
`Inker::Color#to_s` by default outputs the color in HEX format when called, but there're different output formats you can choose from.
|
52
|
+
|
53
|
+
```ruby
|
54
|
+
require "inker"
|
55
|
+
|
56
|
+
# convert named color to HEX
|
57
|
+
"magenta".to_color.hex #=> "#ff00ff"
|
58
|
+
"magenta".to_color.to_s #=> "#ff00ff"
|
59
|
+
|
60
|
+
# convert HEX color to RGB
|
61
|
+
"#880e4f".to_color.rgb #=> "rgb(136, 14, 79)"
|
62
|
+
"#880e4f".to_color.to_s(:rgb) #=> "rgb(136, 14, 79)"
|
63
|
+
|
64
|
+
# convert HEX color to RGBA
|
65
|
+
"#b71c1c99".to_color.rgba #=> "rgba(183, 28, 28, 0.6)"
|
66
|
+
"#b71c1c99".to_color.to_s(:rgba) #=> "rgba(183, 28, 28, 0.6)"
|
67
|
+
|
68
|
+
# convert RGB color to HEX (the last forces alpha channel presence)
|
69
|
+
"rgb(74, 20, 140)".to_color.to_s #=> "#4a148c"
|
70
|
+
"rgb(74, 20, 140)".to_color.hex #=> "#4a148c"
|
71
|
+
"rgb(74, 20, 140)".to_color.hex(force_alpha: true) #=> "#4a148cff"
|
72
|
+
|
73
|
+
# convert RGBA to HEX (the last ignores alpha channel)
|
74
|
+
"rgba(26, 35, 126, 0.75)".to_color.to_s #=> "#1a237ebf"
|
75
|
+
"rgba(26, 35, 126, 0.75)".to_color.hex #=> "#1a237ebf"
|
76
|
+
"rgba(26, 35, 126, 0.75)".to_color.hex6 #=> "#1a237e"
|
77
|
+
|
78
|
+
# convert HSL to HEX, RGB and RGBA
|
79
|
+
"hsl(174, 100%, 29%)".to_color.to_s #=> "#009485"
|
80
|
+
"hsl(174, 100%, 29%)".to_color.hex #=> "#009485"
|
81
|
+
"hsl(174, 100%, 29%)".to_color.rgb #=> "rgb(0, 148, 133)"
|
82
|
+
"hsl(174, 100%, 29%)".to_color.rgba #=> "rgb(0, 148, 133, 1.0)"
|
83
|
+
|
84
|
+
# convert HSLA to HEX, RGB and RGBA
|
85
|
+
"hsla(21, 100%, 45%, 0.5)".to_color.to_s #=> "#e650007f"
|
86
|
+
"hsla(21, 100%, 45%, 0.5)".to_color.hex #=> "#e650007f"
|
87
|
+
"hsla(21, 100%, 45%, 0.5)".to_color.hex6 #=> "#e65000"
|
88
|
+
"hsla(21, 100%, 45%, 0.5)".to_color.rgb #=> "rgb(230, 80, 0)"
|
89
|
+
"hsla(21, 100%, 45%, 0.5)".to_color.rgba #=> "rgba(230, 80, 0, 0.5)"
|
90
|
+
```
|
91
|
+
|
92
|
+
## Features
|
93
|
+
|
94
|
+
Inker implements some useful features for getting useful color info an color manipulation.
|
95
|
+
|
96
|
+
### Instance methods
|
97
|
+
|
98
|
+
| Method name | Description |
|
99
|
+
|---------------|-------------------------------------------------------------------|
|
100
|
+
| `#red` | Returns the value of red component in range `0-255` |
|
101
|
+
| `#red=` | Allows to set a new value for red component in range `0-255` |
|
102
|
+
| `#green` | Returns the value of green component in range `0-255` |
|
103
|
+
| `#green=` | Allows to set a new value for green component in range `0-255` |
|
104
|
+
| `#blue` | Returns the value of blue component in range `0-255` |
|
105
|
+
| `#blue=` | Allows to set a new value for blue component in range `0-255` |
|
106
|
+
| `#alpha` | Returns the value of alpha component in range `0.0-1.0` |
|
107
|
+
| `#alpha=` | Allows to set a new value for alpha component in range `0.0-1.0` |
|
108
|
+
| `#brightness` | Returns the brightness of the color in range `0-255` |
|
109
|
+
| `#dark?` | Returns a boolean (`true` when color is dark) |
|
110
|
+
| `#light?` | Returns a boolean (`true` when color is light) |
|
111
|
+
| `#lightness` | Returns the lightness of the color in range `0.0-1.0` |
|
112
|
+
| `#saturation` | Returns the saturation of the color in range `0.0-1.0` |
|
113
|
+
| `#hue` | Retursn the value of HUE component of the color in range `0-360` |
|
114
|
+
|
115
|
+
### Class methods
|
116
|
+
|
117
|
+
| Method name | Description |
|
118
|
+
|-------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|
|
119
|
+
| `Inker::Color.from_rgb(Integer, Integer, Integer)` | Create a new `Inker::Color` instance from RGB components values |
|
120
|
+
| `Inker::Color.from_rgba(Integer, Integer, Integer, Float)` | Same as `Inker::Color.from_rgb`, but has also the alpha component |
|
121
|
+
| `Inker::Color.from_hsl(Integer, Float, Float)` | Create a new `Inker::Color` instance from HSL components (Saturation and Lightness in range `0.0-1.0`) |
|
122
|
+
| `Inker::Color.from_hsla(Integer, Float, Float, Float)` | Same as `Inker::Color.from_hsl`, but has also the alpha component |
|
123
|
+
| `Inker::Color.from_custom_string(String, options)` | Generate a new `Inker::Color` from a custom string, by getting HEX characters from MD5 digest of input string. By setting `:position` option you can change the index of target HEX chars that are used for HEX color generation. (default `position: [0, 29, 14, 30, 28, 31]`) |
|
124
|
+
| `Inker::Color.random` | Generate a random `Inker::Color` instance |
|
125
|
+
|
126
|
+
## Development
|
127
|
+
|
128
|
+
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.
|
129
|
+
|
130
|
+
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 tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
131
|
+
|
132
|
+
## Contributing
|
133
|
+
|
134
|
+
Bug reports and pull requests are welcome on GitHub at [https://github.com/serioja90/inker](https://github.com/serioja90/inker). This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
135
|
+
|
136
|
+
## License
|
137
|
+
|
138
|
+
The gem is available as open source under the terms of the [MIT License](LICENSE).
|
139
|
+
|
140
|
+
## Code of Conduct
|
141
|
+
|
142
|
+
Everyone interacting in the Inker project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](CODE_OF_CONDUCT.md).
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "inker"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start(__FILE__)
|
data/bin/setup
ADDED
data/inker.gemspec
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "inker/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "inker"
|
8
|
+
spec.version = Inker::VERSION
|
9
|
+
spec.authors = ["Groza Sergiu"]
|
10
|
+
spec.email = ["serioja90@gmail.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{A Ruby gem for color manipulation.}
|
13
|
+
spec.description = %q{Inker is a gem wrtitten in Ruby which can be used to parse and manipulate colors.}
|
14
|
+
spec.homepage = "https://github.com/serioja90/inker"
|
15
|
+
spec.license = "MIT"
|
16
|
+
|
17
|
+
# Specify which files should be added to the gem when it is released.
|
18
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
19
|
+
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
20
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
21
|
+
end
|
22
|
+
spec.bindir = "exe"
|
23
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
|
+
spec.require_paths = ["lib"]
|
25
|
+
|
26
|
+
bundler_version = (RUBY_VERSION >= '2.3' ? '~> 2.1' : '~> 1.17')
|
27
|
+
rake_version = (RUBY_VERSION >= '2.2' ? '~> 13.0' : '~> 12.0')
|
28
|
+
|
29
|
+
|
30
|
+
spec.add_development_dependency "bundler", bundler_version
|
31
|
+
spec.add_development_dependency "rake", rake_version
|
32
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
33
|
+
spec.add_development_dependency "yard", "~> 0.9"
|
34
|
+
end
|
data/lib/data/colors.yml
ADDED
@@ -0,0 +1,163 @@
|
|
1
|
+
# RED
|
2
|
+
red: "#FF0000"
|
3
|
+
crimson: "#DC143C"
|
4
|
+
darkred: "#8B0000"
|
5
|
+
darksalmon: "#E9967A"
|
6
|
+
firebrick: "#B22222"
|
7
|
+
indianred: "#CD5C5C"
|
8
|
+
lightcoral: "#F08080"
|
9
|
+
maroon: "#800000"
|
10
|
+
palevioletred: "#DB7093"
|
11
|
+
salmon: "#FA8072"
|
12
|
+
|
13
|
+
# PINK
|
14
|
+
pink: "#FFC0CB"
|
15
|
+
lightpink: "#FFB6C1"
|
16
|
+
hotpink: "#FF69B4"
|
17
|
+
deeppink: "#FF1493"
|
18
|
+
mediumvioletred: "#C71585"
|
19
|
+
palevioletred: "#DB7093"
|
20
|
+
|
21
|
+
# ORANGE
|
22
|
+
orange: "#FFA500"
|
23
|
+
lightsalmon: "#FFA07A"
|
24
|
+
coral: "#FF7F50"
|
25
|
+
tomato: "#FF6347"
|
26
|
+
orangered: "#FF4500"
|
27
|
+
darkorange: "#FF8C00"
|
28
|
+
|
29
|
+
# YELLOW
|
30
|
+
yellow: "#FFFF00"
|
31
|
+
gold: "#FFD700"
|
32
|
+
lightyellow: "#FFFFE0"
|
33
|
+
lemonchiffon: "#FFFACD"
|
34
|
+
lightgoldenrodyellow: "#FAFAD2"
|
35
|
+
papayawhip: "#FFEFD5"
|
36
|
+
moccasin: "#FFE4B5"
|
37
|
+
peachpuff: "#FFDAB9"
|
38
|
+
palegoldenrod: "#EEE8AA"
|
39
|
+
khaki: "#F0E68C"
|
40
|
+
darkkhaki: "#BDB76B"
|
41
|
+
|
42
|
+
# PURPLE
|
43
|
+
purple: "#800080"
|
44
|
+
lavender: "#E6E6FA"
|
45
|
+
thistle: "#D8BFD8"
|
46
|
+
plum: "#DDA0DD"
|
47
|
+
violet: "#EE82EE"
|
48
|
+
orchid: "#DA70D6"
|
49
|
+
fuchsia: "#FF00FF"
|
50
|
+
magenta: "#FF00FF"
|
51
|
+
mediumorchid: "#BA55D3"
|
52
|
+
mediumpurple: "#9370DB"
|
53
|
+
rebeccapurple: "#663399"
|
54
|
+
blueviolet: "#8A2BE2"
|
55
|
+
darkviolet: "#9400D3"
|
56
|
+
darkorchid: "#9932CC"
|
57
|
+
darkmagenta: "#8B008B"
|
58
|
+
indigo: "#4B0082"
|
59
|
+
slateblue: "#6A5ACD"
|
60
|
+
darkslateblue: "#483D8B"
|
61
|
+
mediumslateblue: "#7B68EE"
|
62
|
+
|
63
|
+
# GREEN
|
64
|
+
green: "#00FF00"
|
65
|
+
greenyellow: "#ADFF2F"
|
66
|
+
chartreuse: "#7FFF00"
|
67
|
+
lawngreen: "#7CFC00"
|
68
|
+
lime: "#00FF00"
|
69
|
+
limegreen: "#32CD32"
|
70
|
+
palegreen: "#98FB98"
|
71
|
+
lightgreen: "#90EE90"
|
72
|
+
mediumspringgreen: "#00FA9A"
|
73
|
+
springgreen: "#00FF7F"
|
74
|
+
mediumseagreen: "#3CB371"
|
75
|
+
seagreen: "#2E8B57"
|
76
|
+
forestgreen: "#228B22"
|
77
|
+
darkgreen: "#006400"
|
78
|
+
yellowgreen: "#9ACD32"
|
79
|
+
olivedrab: "#6B8E23"
|
80
|
+
olive: "#808000"
|
81
|
+
darkolivegreen: "#556B2F"
|
82
|
+
mediumaquamarine: "#66CDAA"
|
83
|
+
darkseagreen: "#8FBC8B"
|
84
|
+
lightseagreen: "#20B2AA"
|
85
|
+
darkcyan: "#008B8B"
|
86
|
+
teal: "#008080"
|
87
|
+
|
88
|
+
# BLUE
|
89
|
+
blue: "#0000FF"
|
90
|
+
aqua: "#00FFFF"
|
91
|
+
cyan: "#00FFFF"
|
92
|
+
lightcyan: "#E0FFFF"
|
93
|
+
paleturquoise: "#AFEEEE"
|
94
|
+
aquamarine: "#7FFFD4"
|
95
|
+
turquoise: "#40E0D0"
|
96
|
+
mediumturquoise: "#48D1CC"
|
97
|
+
darkturquoise: "#00CED1"
|
98
|
+
cadetblue: "#5F9EA0"
|
99
|
+
steelblue: "#4682B4"
|
100
|
+
lightsteelblue: "#B0C4DE"
|
101
|
+
powderblue: "#B0E0E6"
|
102
|
+
lightblue: "#ADD8E6"
|
103
|
+
skyblue: "#87CEEB"
|
104
|
+
lightskyblue: "#87CEFA"
|
105
|
+
deepskyblue: "#00BFFF"
|
106
|
+
dodgerblue: "#1E90FF"
|
107
|
+
cornflowerblue: "#6495ED"
|
108
|
+
mediumslateblue: "#7B68EE"
|
109
|
+
royalblue: "#4169E1"
|
110
|
+
mediumblue: "#0000CD"
|
111
|
+
darkblue: "#00008B"
|
112
|
+
navy: "#000080"
|
113
|
+
midnightblue: "#191970"
|
114
|
+
|
115
|
+
# BROWN
|
116
|
+
brown: "#A52A2A"
|
117
|
+
cornsilk: "#FFF8DC"
|
118
|
+
blanchedalmond: "#FFEBCD"
|
119
|
+
bisque: "#FFE4C4"
|
120
|
+
navajowhite: "#FFDEAD"
|
121
|
+
wheat: "#F5DEB3"
|
122
|
+
burlywood: "#DEB887"
|
123
|
+
tan: "#D2B48C"
|
124
|
+
rosybrown: "#BC8F8F"
|
125
|
+
sandybrown: "#F4A460"
|
126
|
+
goldenrod: "#DAA520"
|
127
|
+
darkgoldenrod: "#B8860B"
|
128
|
+
peru: "#CD853F"
|
129
|
+
chocolate: "#D2691E"
|
130
|
+
saddlebrown: "#8B4513"
|
131
|
+
sienna: "#A0522D"
|
132
|
+
maroon: "#800000"
|
133
|
+
|
134
|
+
# WHITE
|
135
|
+
white: "#FFFFFF"
|
136
|
+
snow: "#FFFAFA"
|
137
|
+
honeydew: "#F0FFF0"
|
138
|
+
mintcream: "#F5FFFA"
|
139
|
+
azure: "#F0FFFF"
|
140
|
+
aliceblue: "#F0F8FF"
|
141
|
+
ghostwhite: "#F8F8FF"
|
142
|
+
whitesmoke: "#F5F5F5"
|
143
|
+
seashell: "#FFF5EE"
|
144
|
+
beige: "#F5F5DC"
|
145
|
+
oldlace: "#FDF5E6"
|
146
|
+
floralwhite: "#FFFAF0"
|
147
|
+
ivory: "#FFFFF0"
|
148
|
+
antiquewhite: "#FAEBD7"
|
149
|
+
linen: "#FAF0E6"
|
150
|
+
lavenderblush: "#FFF0F5"
|
151
|
+
mistyrose: "#FFE4E1"
|
152
|
+
|
153
|
+
# GRAY
|
154
|
+
gray: "#808080"
|
155
|
+
gainsboro: "#DCDCDC"
|
156
|
+
lightgray: "#D3D3D3"
|
157
|
+
silver: "#C0C0C0"
|
158
|
+
darkgray: "#A9A9A9"
|
159
|
+
dimgray: "#696969"
|
160
|
+
lightslategray: "#778899"
|
161
|
+
slategray: "#708090"
|
162
|
+
darkslategray: "#2F4F4F"
|
163
|
+
black: "#000000"
|