color-theme-generator
Version:
Generates random color themes that are based in color theory.
807 lines (586 loc) • 20.4 kB
Markdown
# Objects, methods and properties
## Table of content
1. [AnalogousThemeFactory](#analogousthemefactory)
1. [getColorTheme()](#getcolorthemenumberofcolors)
2. [ComplementaryThemeFactory](#complementarythemefactory)
1. [getColorTheme()](#getcolorthemenumberofcolors-1)
3. [MonochromeThemeFactory](#monochromethemefactory)
1. [getColorTheme()](#getcolorthemenumberofcolors-2)
4. [SplitComplementaryThemeFactory](#splitcomplementarythemefactory)
1. [getColorTheme()](#getcolorthemenumberofcolors-3)
5. [TriadicThemeFactory](#triadicthemefactory)
1. [getColorTheme()](#getcolorthemenumberofcolors-4)
6. [Color](#color)
1. [hue](#hue)
2. [saturation](#saturation)
3. [lightness](#lightness)
4. [hsl](#hsl)
7. [ColorThemeData](#colorthemedata)
1. [colorTheme](#colortheme)
2. [numberOfColorsInTheme](#numberofcolorsintheme)
3. [colorsInTheme](#colorsintheme)
4. [sortColorsByHue()](#sortcolorsbyhue)
5. [sortColorsBySaturation()](#sortcolorsbysaturation)
6. [sortColorsByLightness()](#sortcolorsbylightness)
8. [ColorStyles](#colorstyles)
1. [getColorDeclaration()](#getcolordeclarationcolor)
2. [getBackgroundColorDeclaration()](#getbackgroundcolordeclarationcolor)
3. [getBorderDeclaration()](#getborderdeclarationcolor-borderstyle)
4. [getOutlineDeclaration()](#getoutlinedeclarationcolor-outlinestyle)
5. [getTextDecorationDeclaration()](#gettextdecorationdeclarationcolor-textdecorationline)
9. [Style](#style)
1. [property](#property)
2. [value](#value)
3. [declaration](#declaration)
## AnalogousThemeFactory
### getColorTheme(numberOfColors)
#### Description:
Generates an analogous color theme with a certain amout of colors.
#### Arguments:
- numberOfColors
##### numberOfColors:
- Requried.
- Must be of type number.
- Value must be between 3 and 5.
- If value is 3 it will generate three colors with equal lightness
- If value is 4 it will generate three colors with equal lightness and a foruth lighter or darker color.
- If value is 5 it will generate three colors with equal lightness and a fourth lighter color and a fifth darker color.
#### Returns
ColorThemeData{}
- A ColorThemeData object containing the generated color theme.
#### Throws error
- If numberOfColors is not present.
- If numberOfColors has invalid type.
- If numberOfColors has invalid value.
#### Example usage
```js
import { AnalogousThemeFactory } from 'color-theme-generator'
try {
const factory = new AnalogousThemeFactory()
const requestedNumberOfColors = 3 // Argument can be 3 - 5.
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors)
} catch (e) {
console.log(e.message)
}
```
## ComplementaryThemeFactory
### getColorTheme(numberOfColors)
#### Description:
Generates a complementary color theme with a certain amout of colors.
#### Arguments:
- numberOfColors
##### numberOfColors:
- Requried.
- Must be of type number.
- Value must be between 2 and 4.
- If value is 2 it will generate two colors with equal lightness
- If value is 3 it will generate two colors with equal lightness and a third lighter or darker color.
- If value is 4 it will generate two colors with equal lightness and a third lighter color and a fourth darker color.
#### Returns
ColorThemeData{}
- A ColorThemeData object containg the generated color theme.
#### Throws error
- If numberOfColors is not present.
- If numberOfColors has invalid type.
- If numberOfColors has invalid value.
#### Example usage
```js
import { ComplementaryThemeFactory } from 'color-theme-generator'
try {
const factory = new ComplementaryThemeFactory()
const requestedNumberOfColors = 2 // Argument can be 2 - 4.
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors)
} catch (e) {
console.log(e.message)
}
```
## MonochromeThemeFactory
### getColorTheme(numberOfColors)
#### Description:
Generates a monochrome color theme with a certain amout of colors.
#### Arguments:
- numberOfColors
##### numberOfColors:
- Requried.
- Must be of type number.
- Value must be between 2 and 5.
#### Returns
ColorThemeData{}
- A ColorThemeData object containg the generated color theme.
#### Throws error
- If numberOfColors is not present.
- If numberOfColors has invalid type.
- If numberOfColors has invalid value.
#### Example usage
```js
import { MonochromeThemeFactory } from 'color-theme-generator'
try {
const factory = new MonochromeThemeFactory()
const requestedNumberOfColors = 5 // Argument can be 2 - 5.
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors)
} catch (e) {
console.log(e.message)
}
```
## SplitComplementaryThemeFactory
### getColorTheme(numberOfColors)
#### Description:
Generates a split complementary color theme with a certain amout of colors.
#### Arguments:
- numberOfColors
##### numberOfColors:
- Requried.
- Must be of type number.
- Value must be between 3 and 5.
- If value is 3 it will generate three colors with equal lightness.
- If value is 4 it will generate three colors with equal lightness and a fourth lighter or darker color.
- If value is 5 it will generate three colors with equal lightness and a fourth lighter color and a fifth darker color.
#### Returns
ColorThemeData{}
- A ColorThemeData object containg the generated color theme.
#### Throws error
- If numberOfColors is not present.
- If numberOfColors has invalid type.
- If numberOfColors has invalid value.
#### Example usage
```js
import { SplitComplementaryThemeFactory } from 'color-theme-generator'
try {
const factory = new SplitComplementaryThemeFactory()
const requestedNumberOfColors = 3 // Argument can be 3 - 5.
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors)
} catch (e) {
console.log(e.message)
}
```
## TriadicThemeFactory
### getColorTheme(numberOfColors)
#### Description:
Generates a triadic color theme with a certain amout of colors.
#### Arguments:
- numberOfColors
##### numberOfColors:
- Requried.
- Must be of type number.
- Value must be between 3 and 5.
- If value is 3 it will generate three colors with equal lightness.
- If value is 4 it will generate three colors with equal lightness and a fourth lighter or darker color.
- If value is 5 it will generate three colors with equal lightness and a fourth lighter color and a fifth darker color.
#### Returns
ColorThemeData{}
- A ColorThemeData object containg the generated color theme.
#### Throws error
- If numberOfColors is not present.
- If numberOfColors has invalid type.
- If numberOfColors has invalid value.
#### Example usage
```js
import { TriadicThemeFactory } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3 // Argument can be 3 - 5.
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors)
} catch (e) {
console.log(e.message)
}
```
## Color
### hue
#### Description:
A property containing the hue of the color that the object represents.
#### Type
Number
#### Example usage
```js
import { TriadicThemeFactory } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors)
const color = generatedColorTheme.colorsInTheme[0] // Color object.
const hue = color.hue // For example 180
} catch (e) {
console.log(e.message)
}
```
### saturation
#### Description:
A property containing the saturation of the color that the object represents.
#### Type
Number
#### Example usage
```js
import { TriadicThemeFactory } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors)
const color = generatedColorTheme.colorsInTheme[0] // Color object.
const saturation = color.saturation // For example 75.
} catch (e) {
console.log(e.message)
}
```
### lightness
#### Description:
A property containing the lightness of the color that the object represents.
#### Type
Number
#### Example usage
```js
import { TriadicThemeFactory } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors)
const color = generatedColorTheme.colorsInTheme[0] // Color object.
const lightness = color.lightness // For example 50.
} catch (e) {
console.log(e.message)
}
```
### hsl
#### Description:
A property containing the hsl string of the color that the object represents.
#### Type
String
#### Example usage
```js
import { TriadicThemeFactory } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors)
const color = generatedColorTheme.colorsInTheme[0] // Color object.
const hsl = color.hsl // For example hsl(180, 75%, 50%)
} catch (e) {
console.log(e.message)
}
```
## ColorThemeData
### colorTheme
#### Description:
A property containing the name of the color theme the object represents.
#### Type
String
#### Example usage
```js
import { TriadicThemeFactory } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors) // ColorThemeData object.
const nameOfColorTheme = generatedColorTheme.colorTheme // 'TRIADIC'
} catch (e) {
console.log(e.message)
}
```
### numberOfColorsInTheme
#### Description:
A property containing the number of colors in the theme the object represents.
#### Type
Number
#### Example usage
```js
import { TriadicThemeFactory } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors) // ColorThemeData object.
const numberOfColors = generatedColorTheme.numberOfColorsInTheme // 3
} catch (e) {
console.log(e.message)
}
```
### colorsInTheme
#### Description:
A property containing the colors in the theme the object represents.
#### Type
Color[]
- A deep copied array of Color objects.
#### Example usage
```js
import { TriadicThemeFactory } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors) // ColorThemeData object.
const colors = generatedColorTheme.colorsInTheme // [Color{}, Color{}, Color{}]
} catch (e) {
console.log(e.message)
}
```
### sortColorsByHue()
#### Description:
Sorts the color object in colorsInTheme in ascending order based on the their values of hue.
#### Returns
Undefined
#### Example usage
```js
import { TriadicThemeFactory } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors) // ColorThemeData object.
const unsortedColors = generatedColorTheme.colorsInTheme
generatedColorTheme.sortColorsByHue()
const sortedColors = generatedColorTheme.colorsInTheme
} catch (e) {
console.log(e.message)
}
```
### sortColorsBySaturation()
#### Description:
Sorts the color object in colorsInTheme in ascending order based on the their values of saturation.
#### Returns
Undefined
#### Example usage
```js
import { TriadicThemeFactory } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors) // ColorThemeData object.
const unsortedColors = generatedColorTheme.colorsInTheme
generatedColorTheme.sortColorsBySaturation()
const sortedColors = generatedColorTheme.colorsInTheme
} catch (e) {
console.log(e.message)
}
```
### sortColorsByLightness()
#### Description:
Sorts the color object in colorsInTheme in ascending order based on the their values of lightness.
#### Returns
Undefined
#### Example usage
```js
import { TriadicThemeFactory } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors) // ColorThemeData object.
const unsortedColors = generatedColorTheme.colorsInTheme
generatedColorTheme.sortColorsByLightness()
const sortedColors = generatedColorTheme.colorsInTheme
} catch (e) {
console.log(e.message)
}
```
## ColorStyles
### getColorDeclaration(color)
#### Description:
Gets a declaration of the CSS property color with the color in the argument.
#### Arguments:
- color
##### color:
- Requried.
- Must be of type Color.
#### Returns
Style{}
- A Style object containg the CSS declaration.
#### Throws error
- If color is not present.
- If color has invalid type.
#### Example usage
```js
import { TriadicThemeFactory, ColorStyles } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors)
const color = generatedColorTheme.colorsInTheme[0]
const styler = new ColorStyles()
const style = styler.getColorDeclaration(color)
} catch (e) {
console.log(e.message)
}
```
### getBackgroundColorDeclaration(color)
#### Description:
Gets a declaration of the CSS property background-color with the color in the argument.
#### Arguments:
- color
##### color:
- Requried.
- Must be of type Color.
#### Returns
Style{}
- A Style object containg the CSS declaration.
#### Throws error
- If color is not present.
- If color has invalid type.
#### Example usage
```js
import { TriadicThemeFactory, ColorStyles } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors)
const color = generatedColorTheme.colorsInTheme[0]
const styler = new ColorStyles()
const style = styler.getBackgroundColorDeclaration(color)
} catch (e) {
console.log(e.message)
}
```
### getBorderDeclaration(color, borderStyle)
#### Description:
Gets a declaration of the CSS property border with the arguments color and borderStyle.
#### Arguments:
- color
- borderStyle
##### borderStyle:
- Must be a valid value of the CSS property border-style.
- If no border is visible you are likely to have excluded or sent an invalid value.
##### color:
- Requried.
- Must be of type Color.
#### Returns
Style{}
- A Style object containg the CSS declaration.
#### Throws error
- If color is not present.
- If color has invalid type.
#### Example usage
```js
import { TriadicThemeFactory, ColorStyles } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors)
const color = generatedColorTheme.colorsInTheme[0]
const borderStyle = 'dotted'
const styler = new ColorStyles()
const style = styler.getBorderDeclaration(color, borderStyle)
} catch (e) {
console.log(e.message)
}
```
### getOutlineDeclaration(color, outlineStyle)
#### Description:
Gets a declaration of the CSS property outline with the arguments color and outlineStyle.
#### Arguments:
- color
- outlineStyle
##### outlineStyle:
- Must be a valid value of the CSS property outline-style.
- If no outline is visible you are likely to have excluded or sent an invalid value.
##### color:
- Requried.
- Must be of type Color.
#### Returns
Style{}
- A Style object containg the CSS declaration.
#### Throws error
- If color is not present.
- If color has invalid type.
#### Example usage
```js
import { TriadicThemeFactory, ColorStyles } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors)
const color = generatedColorTheme.colorsInTheme[0]
const outlineStyle = 'groove'
const styler = new ColorStyles()
const style = styler.getOutlineDeclaration(color, outlineStyle)
} catch (e) {
console.log(e.message)
}
```
### getTextDecorationDeclaration(color, textDecorationLine)
#### Description:
Gets a declaration of the CSS property text-decoration with the arguments color and text-decoration-line.
#### Arguments:
- color
- textDecorationLine
##### textDecorationLine:
- Must be a valid value of the CSS property text-decoration-line.
- If no text-decoration is visible you are likely to have excluded or sent an invalid value.
##### color:
- Requried.
- Must be of type Color.
#### Returns
Undefined
#### Throws error
- If color is not present.
- If color has invalid type.
#### Example usage
```js
import { TriadicThemeFactory, ColorStyles } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors)
const color = generatedColorTheme.colorsInTheme[0]
const textDecorationLine = 'underline'
const styler = new ColorStyles()
const style = styler.getTextDecorationDeclaration(color, textDecorationLine)
} catch (e) {
console.log(e.message)
}
```
## Style
### property
#### Description:
A property containing the CSS property that the object represents.
#### Type
String
#### Example usage
```js
import { TriadicThemeFactory, ColorStyles } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors)
const color = generatedColorTheme.colorsInTheme[0]
const textDecorationLine = 'underline'
const styler = new ColorStyles()
const style = styler.getTextDecorationDeclaration(color, textDecorationLine)
const property = style.property // "text-decoration"
} catch (e) {
console.log(e.message)
}
```
### value
#### Description:
A property containing the value of the CSS property that the object represents.
#### Type
String
#### Example usage
```js
import { TriadicThemeFactory, ColorStyles } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors)
const color = generatedColorTheme.colorsInTheme[0]
const styler = new ColorStyles()
const style = styler.getColorDeclaration(color)
const value = style.value // For example hsl(180, 75%, 50%)
} catch (e) {
console.log(e.message)
}
```
### declaration
#### Description:
A property containing the full CSS declaration that the object represents.
#### Type
String
#### Example usage
```js
import { TriadicThemeFactory, ColorStyles } from 'color-theme-generator'
try {
const factory = new TriadicThemeFactory()
const requestedNumberOfColors = 3
const generatedColorTheme = factory.getColorTheme(requestedNumberOfColors)
const color = generatedColorTheme.colorsInTheme[0]
const styler = new ColorStyles()
const style = styler.getColorDeclaration(color)
const value = style.declaration // For example "color: hsl(180, 75%, 50%)"
} catch (e) {
console.log(e.message)
}
```