> For the complete documentation index, see [llms.txt](https://infinitode-docs.gitbook.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://infinitode-docs.gitbook.io/documentation/package-documentation/hued-package-documentation/hued-reference/palettes-functions.md).

# Palettes Functions

**Available functions:**

* `ColorPalette.__init__(base_color)`: Initializes the color palette with a base color.
* `ColorPalette.`[`generate_complementary`](#generate-complementary)`()`: Generates a complementary color palette.
* `ColorPalette.`[`generate_analogous`](#generate-analogous)`(angle=30)`: Generates an analogous color palette.
* `ColorPalette.`[`generate_triadic`](#generate-triadic)`()`: Generates a triadic color palette.
* `ColorPalette.`[`generate_tetradic`](#generate-tetradic)`()`: Generates a tetradic color palette.
* `ColorPalette.`[`generate_square`](#generate-square)`()`: Generates a square color palette.
* `ColorPalette.`[`generate_split_complementary`](#generate-split-complementary)`()`: Generates a split-complementary color palette.
* `ColorPalette.`[`generate_monochromatic`](#generate-monochromatic)`(shades=24)`: Generates a monochromatic color palette with varying lightness.
* `ColorPalette.`[`palette_to_hex`](#palette-to-hex)`()`: Converts the RGB palette to HEX format.
* `ColorPalette.`[`generate_random_palette`](#generate-random-palette)`()`: Generates a random base color and its associated palettes.
* `ColorPalette.`[`generate_random_color`](#generate-random-color)`()`: Generates a random RGB color and converts it to HEX and HSL formats.
* `ColorPalette.`[`generate_random_hex_colors`](#generate-random-hex-colors)`(n=10)`: Generates a list of random colors in HEX format.
* `ColorPalette.`[`generate_gradient`](#generate-gradient)`(color1, color2, steps=10)`: Generates a gradient between two RGB colors.
* `ColorPalette.`[`export_palette`](#export-palette)`(filename="palette.json")`: Exports the current color palette (list or dict) to a file.

{% hint style="info" %}
To use <mark style="color:blue;">**ColorPalette**</mark>, you must first initialize it with a base color (RGB tuple) before use:

```python
color_manager = ColorManager(base_color)
```

This, however, is not needed when using for random generation; you can init with a default RGB color of `(0,0,0)`, which is **black**.
{% endhint %}

***

### Generate complementary

Generates a complementary color palette.

```
Returns:
    list: A list of RGB tuples representing the complementary palette.
```

### Generate analogous

Generates an analogous color palette.

<pre><code>Parameters:
    angle (int): The angle difference for analogous colors (default 30).

Returns:
<strong>    list: A list of RGB tuples representing the analogous palette.
</strong></code></pre>

{% hint style="info" %}
`angle` represents how close the color values are to each other. You can lower the angle to, say **15**, for closer colors to that of the base color, or even increase it for colors that are still **analogous** in a sense but further away.
{% endhint %}

### Generate triadic

Generates a triadic color palette.

```
Returns:
    list: A list of RGB tuples representing the triadic palette.
```

### Generate tetradic

Generates a tetradic color palette.

```
Returns:
    list: A list of RGB tuples representing the tetradic palette.
```

### Generate square

Generates a square color palette.

```
Returns:
    list: A list of RGB tuples representing the square palette.
```

### Generate split-complementary

Generates a split-complementary color palette.

```
Returns:
    list: A list of RGB tuples representing the split-complementary palette.
```

### Generate monochromatic

Generates a monochromatic color palette.

<pre><code>Parameters:
<strong>    shades (int): Number of shades to generate (default 24).
</strong>
Returns:
    list: A list of RGB tuples representing the monochromatic palette.
</code></pre>

### Palette to HEX

Converts the RGB palette to HEX format.

```
Returns:
    list: A list of HEX strings representing the palette.
```

### Generate random palette

Generates a random base color and its associated palettes.

```
Returns:
    dict: A dictionary containing the following keys:
        - 'Base Color' (tuple): The randomly generated RGB base color, e.g., (R, G, B).
        - 'Complementary Palette' (list): A list of colors in the complementary palette.
        - 'Analogous Palette' (list): A list of colors in the analogous palette.
        - 'Triadic Palette' (list): A list of colors in the triadic palette.
        - 'Monochromatic Palette' (list): A list of colors in the monochromatic palette.
```

### Generate random color

Generates a random RGB color and converts it to HEX and HSL formats.

<pre><code>Returns:
    dict: A dictionary containing:
<strong>        - "RGB Color" (tuple): The random RGB color as a tuple of three integers.
</strong>        - "HEX Color" (str): The color converted into HEX format.
        - "HSL Color" (tuple): The color converted into HSL format.
</code></pre>

### Generate random HEX colors

Generates a list of random colors in HEX format.

```
Parameters:
    n (int, optional): The number of random HEX colors to generate. Default is 10.

Returns:
    list: A list of HEX color strings.
```

{% hint style="info" %}
We chose to add a batch HEX color generate function just for accessibility since HEX is popular, but you can quickly convert the colors to other formats as well.
{% endhint %}

### Generate gradient

Generates a gradient between two RGB colors.

{% code overflow="wrap" %}

```
Parameters:
    color1 (tuple): The starting RGB color (0-255).
    color2 (tuple): The ending RGB color (0-255).
    steps (int): The number of intermediate steps in the gradient (total colors = steps + 1).

Returns:
    list: A list of RGB tuples representing the gradient. Does NOT modify self.palette.
```

{% endcode %}

### Export palette

Exports the current color palette (list or dict) to a file.

<pre data-overflow="wrap"><code>Supported formats: .json, .txt, .csv.

    - JSON: Exports the full structure, converting RGB tuples to {"rgb": (r,g,b), "hex": "#RRGGBB"} objects for clarity.
    - TXT:  Exports a human-readable text format, labeling each palette type if the source is a dictionary.
<strong>    - CSV:  Exports a flattened structure. For lists: Type, Index, Hex, R, G, B. For dicts: PaletteName, Index, Hex, R, G, B
</strong>
Parameters:
    filename (str): The name of the file to save the palette. The extension determines the format (.json, .txt, .csv). Defaults to "palette.json".

Raises:
    ValueError: If the filename has an unsupported extension or if the palette is empty or in an unexpected format.
    TypeError: If self.palette is not a list or dict.
</code></pre>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://infinitode-docs.gitbook.io/documentation/package-documentation/hued-package-documentation/hued-reference/palettes-functions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
