Skip to content

edelstone/tints-and-shades

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
June 12, 2022 12:05
css
May 29, 2022 10:09
January 7, 2021 22:10
June 4, 2022 18:18
February 9, 2023 10:48
October 21, 2017 19:04
June 1, 2022 16:55
December 7, 2022 00:31
February 9, 2023 10:48
March 27, 2018 05:57
March 27, 2018 05:57
March 27, 2018 05:57
March 27, 2018 05:57
February 9, 2023 10:48
March 27, 2018 05:57
March 27, 2018 05:08

Β Tint & Shade Generator

Screenshot of app home page Screenshot of color swatches after submitting form Perfect score on Lighthouse

What is the Tint & Shade Generator?

The purpose of this tool is to accurately produce tints (pure white added) and shades (pure black added) of a given hex color in 10% increments.

Why is this tool unique?

It takes the math seriously. In my experience similar tools get the calculation incorrect due to rounding errors, creator preferences, or other inconsistencies.

Testing shows that the output matches Chrome DevTools' calculation method as well as some established, popular methods to derive tints and shades via Sass.

When would I use this?

It's best used when you already have some base colors but would like complimentary colors for gradients, borders, backgrounds, shadows or other elements.

This is useful for designers who may be communicating color intent to developers who use Sass or PostCSS in their builds. It's also a solid way to quickly preview what tints and shades look like for a base color you may be considering for your design.

Calculation method

The given hex color is first converted to RGB. Then each component of the RGB color has the following calculation performed on it, respectively.

  • Tints: New value = current value + ((255 - current value) x tint factor)
  • Shades: New value = current value x shade factor

The new value is rounded if necessary, and then converted back to hex for display.

Example calculation

Let's say we want tints and shades of Rebecca Purple, #663399.

10% tint

  1. #663399 is converted to the RGB equivalent of 102, 51, 153
  2. R: 102 + ((255 - 102) x .1) = 117.3, rounded to 117
  3. G: 51 + ((255 - 51) x .1) = 71.4, rounded to 71
  4. B: 153 + ((255 - 153) x .1) = 163.2, rounded to 163
  5. RGB 117, 71, 163 is converted to the hex equivalent of #7547a3

10% shade

  1. #663399 is converted to the RGB equivalent of 102, 51, 153
  2. R: 102 x .9 = 91.8, rounded to 92
  3. G: 51 x .9 = 45.9, rounded to 46
  4. B: 153 x .9 = 137.7, rounded to 138
  5. RGB 92, 46, 138 is converted to the hex equivalent of #5c2e8a

Feedback and contributing

This project is open source and I'd love your help!

If you notice a bug or want a feature added please file an issue on GitHub. If you don't have an account there, just email me the details.

If you're a developer and want to help with the project, please comment on open issues or create a new one and communicate your intentions. Once we agree on a path forward you can just make a pull request and take it to the finish line.

Support this project

The Tint & Shade Generator will always be free but your support is greatly appreciated.

Credits

Michael Edelstone designed and organized the project with big-time assistance from Nick Wing on the color calculations.

We use these amazing open-source libraries across the project:

Many thanks to Joel Carr, Sebastian Gutierrez, Tim Scalzo, Aman Agarwal, Aleksandr Hovhannisyan, and Shubhendu Sen for their valuable contributions.

Other details

  • Typography: Work Sans by Wei Huang
  • Colors: #000000, #ffffff, #e96443, and #ca228e
  • Performance: We have a perfect score on Google's web page auditing tool, Lighthouse. Check out the full report.
  • Privacy: We use Google Analytics to record basic information about your visit strictly to improve the application and understand the people who use it.
  • Like Google's Material Design? Try this other thing I made.