Skip to main content

Colour related functions

Project description

# Colourettu

This is a small collection of colour functions in Python, that can be used to determine the (relative) lumansity of a colour and the contrast between two colours.

## Installation

~~~ pip install colourettu ~~~

## Note on Spelling

I have used the Canadian/British spelling of colour through this and the code, however, if you use the American spelling (i.e. without the u), the code should still work. That said, this only applies to the internals of the library, Colourettu will always have the u in it.

~~~python >>> colouretta.colour == colouretta.color True ~~~

## Colour Class

Colours are created by calling the colour class. Colour values can be provided via 3 or 6 digit hex notation, or providing a list or a tuple of the Red, Green, and Blue values (as intergers).

~~~python import colourettu

c1 = colourettu.colour() # defaults to #FFF c2 = colourettu.colour(“#eee”) # equivlant to #EEEEEE c3 = colourettu.colour(“#456bda”) c4 = colourettu.colour([3, 56, 129]) c5 = colourettu.colour((63, 199, 233)) ~~~

The value of each channel can be pulled out:

~~~python >>> c4.red() 3 >>> c4.green() 56 >>> c4.blue() 129 ~~~

You can also get the colour back as either a hex value, or a rgb tuple:

~~~python >>> c2.hex() ‘#EEEEEE’ >>> c2.rgb() (238, 238, 238) ~~~

## (Relative) Luminance

Luminance is a meansure of how ‘bright’ a colour is. Values are normalized so that the Luminance of White is 1 and the Luminance of Black is 0. That is to say:

~~~python >>> colourettu.luminance(“#FFF”) # white 0.9999999999999999 >>> colourettu.luminance(“#000”) # black 0.0 ~~~

luminance can also be called on an already existing colour:

~~~python >>> c3.luminance() 0.2641668488934239 >>> colourettu.luminance(c4) ~~~

## Contrast

Contrast the difference in (precieved) brightness between colours. Values vary between 1:1 (a given colour on itself) and 21:1 (white on black).

To compute contrast, two colours are required.

~~~python >>> colourettu.contrast(“#FFF”, “#FFF”) # white on white 1.0 >>> colourettu.contrast(c1, “#000”) # black on white 20.999999999999996 >>> colourettu.contrast(c4, c5) 4.363552233203198 ~~~

contrast can also be called on an already existing colour, but a second colour needs to be provided:

~~~python >>> c4.contrast(c5) 4.363552233203198 ~~~

### Use of Contrast

For Basic readability, the ANSI standard is a contrast of 3:1 between the text and it’s background. The W3C proposes this as a minimum acceissibilty standard for regular text under 18pt and bold text under 14pt. This is referred to as the A standard. The W3C defines a higher AA standard with a mimimum contrast of 4.5:1. This is approximately equivalent to 20/40 vision, and is common for those over 80. The W3C define an even higher AAA standard with a 7:1 minimum contrast. This would be equivalent to 20/80 vision. Generally, it is assumed that those with vision beyond this would access the web with the use of assistive technologies.

If needed, these constants are stored in the library.

~~~python >>> colourettu.A_contrast 3.0 >>> colourettu.AA_contrast 4.5 >>> colourettu.AAA_contrast 7.0 ~~~

I’ve also found mention that if the contrast is too great, this can also cause readability problems when reading longer passages. This is confirmed by personal experience, but I have been (yet) unable to find any quantitative research to this effect.

# Changelog

## 0.1.0 – December 11, 2014

  • first working version

  • includes base colour class, and (relative) luminance and contrast functions

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

colourettu-0.1.1.zip (7.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

colourettu-0.1.1-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file colourettu-0.1.1.zip.

File metadata

  • Download URL: colourettu-0.1.1.zip
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for colourettu-0.1.1.zip
Algorithm Hash digest
SHA256 df2c16ba402d895bfa1ee7bb3b3f6379cf1c4a4cd65aaba5c90884d2062e7c3a
MD5 9a2b15c0f6347ac1b90d52990a764f3d
BLAKE2b-256 0d6ac5cd9325e008523012f0e09eee294261d4de18792406af1b595cfb15c298

See more details on using hashes here.

File details

Details for the file colourettu-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for colourettu-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 680acaa7e9051ac693786cd7929aed4a86a80b44f44af51eef3a2296d4628be1
MD5 9a0358c5436a058a8214b117d1725973
BLAKE2b-256 4b8505deef2488ed4df4865b7d2bf400d307d743e6374d07e74f0512a55c835f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page