Lavender portfolio panels
Dark purple can carry the text on a pale panel. Keep the brighter purple as an accent until its text and boundary roles are checked.
Colors and palette casesEditorial example reviewed September 13, 2026. Numeric results below are calculated from these values.
Assign roles and check the pair
The lightest and darkest supplied values are the starting reading pair. The accent label adds black or white, whichever has greater contrast. You can change the accent below.
A palette in context
Use this preview to inspect reading text and an accent label.
Example actionReading text #3B0764 on #FFFFFF: 14.996:1 - Pass normal text AA.
Accent label #000000 on #F3E8FF: 17.798:1.
Checks use unrounded ratios and opaque sRGB. The example action is a visual sample. Test boundaries, focus and hover in your actual component.
All color pairs: normal text AA
| Text / background | #F3E8FF | #3B0764 | #A855F7 | #FFFFFF |
|---|---|---|---|---|
| #F3E8FF | 1.00:1 Fail | 12.71:1 Pass | 3.35:1 Fail | 1.18:1 Fail |
| #3B0764 | 12.71:1 Pass | 1.00:1 Fail | 3.79:1 Fail | 15.00:1 Pass |
| #A855F7 | 3.35:1 Fail | 3.79:1 Fail | 1.00:1 Fail | 3.96:1 Fail |
| #FFFFFF | 1.18:1 Fail | 15.00:1 Pass | 3.96:1 Fail | 1.00:1 Fail |
:root {
--surface: #FFFFFF;
--text: #3B0764;
--accent: #F3E8FF;
--on-accent: #000000;
}Keep the scope of each result clear
All comparisons use opaque sRGB and WCAG relative luminance. Normal-text AA requires 4.5:1; a displayed rounded ratio never overrides the unrounded pass or fail. A palette is not a complete accessibility audit.
W3C contrast requirements ? Methods and limitations ? Turn values into semantic tokens