color_utils
compute_color_for_contrast(background, foreground, min_contrast_ratio=4.5) cached
Adjust foreground color to achieve minimum contrast with background.
Preserves the hue and saturation of the original foreground color, adjusting only the lightness to achieve the required contrast ratio.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
background | tuple | The background color to contrast against. | required |
foreground | tuple | The foreground color to adjust. | required |
min_contrast_ratio | float | Target minimum contrast ratio (default 4.5:1). | 4.5 |
Returns:
| Type | Description |
|---|---|
QColor | A QColor with the same hue/saturation but adjusted lightness |
QColor | to meet the contrast requirement. Returns original if already |
QColor | sufficient. |
Source code in client/ayon_ui_qt/color_utils.py
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | |
contrast_ratio(lum1, lum2)
Calculate the contrast ratio between two relative luminance values per WCAG 2.1.
The contrast ratio ranges from 1:1 (no contrast) to 21:1 (maximum, black vs white). WCAG recommends: - 4.5:1 minimum for normal text (AA) - 7:1 minimum for enhanced contrast (AAA) - 3:1 minimum for large text or UI components
Source code in client/ayon_ui_qt/color_utils.py
23 24 25 26 27 28 29 30 31 32 33 34 35 | |
relative_luminance(r, g, b, _) cached
Calculate relative luminance of a color, i.e. sRGB luminance in linear space.
Source code in client/ayon_ui_qt/color_utils.py
8 9 10 11 12 13 14 15 16 17 18 19 20 | |