Design system generator
Electric Orchid #BD00FD
Electric Orchid sits at step 500 of its scale. UIX builds a full design system around it: 11-step scales, light and dark tokens, 40 contrast-checked text pairs, type and radius. It is close to Tailwind’s purple (#A855F7).
Color scales
| Electric Orchid | 50#FAF2FF | 100#F4E2FF | 200#EBCBFF | 300#DFA5FF | 400#CE6EFF | 500#BD00FD | 600#A700E1 | 700#8E00C0 | 800#7700A1 | 900#65008A | 950#3C0053 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Lime | 50#F2F8EE | 100#E2EEDB | 200#CBE1BD | 300#A9CD90 | 400#7FB256 | 500#579600 | 600#4C8400 | 700#407000 | 800#345D00 | 900#2B4F00 | 950#172E00 |
| Neutral | 50#FAFAFB | 100#F5F3F6 | 200#E9E6EA | 300#D8D2DA | 400#A59DA8 | 500#766F79 | 600#58515B | 700#453E47 | 800#2C262F | 900#1B161D | 950#0C090D |
| Error | 50#FFF2F3 | 300#FFA2AD | 500#DE295B | 800#970036 | 950#4A081A | ||||||
| Warning | 50#FFF3EB | 300#FF9543 | 500#CD6900 | 800#7B3D00 | 950#3E1C00 | ||||||
| Success | 50#EFF8F5 | 300#8FD0BF | 500#00B79C | 800#005E4F | 950#002E26 |
What each step is for
50Page and card backgrounds100Page and card backgrounds200Hover and selected backgrounds300Borders and dividers400Strong borders, focus rings, icons on dark500Solid fills, charts600Buttons and links700Hover on buttons, brand text800Pressed states, text on light tints900Headings and text on light backgrounds950Headings and text on light backgrounds
Why these choices
- Your color sits at step 500. Its lightness (61% in OKLCH) matches step 500 of the scale, so the other ten steps are built around it instead of forcing it to 500.
- Your exact color is your button. White text on #BD00FD is 4.6:1, above the 4.5:1 that WCAG AA asks for. Hover uses step 600, pressed 700.
- Brand text starts at step 500. Links and brand-colored text need 4.5:1 on white. Step 500 is the lightest that gets there; anything lighter is for large headings and icons only.
- Very saturated. Colors this strong vibrate on large areas. Use the brand on buttons and accents, and let the tinted neutrals carry the backgrounds.
- 1 token moved for contrast. text/brand (Light): primary 500 → primary 600, because text/brand on bg/brand-subtle was 4.19:1
- Every text pair passes AA. 40 foreground and background pairs checked in light and dark.
Contrast receipt
| Pair | Mode | Colors | WCAG 2 | Level | APCA |
|---|---|---|---|---|---|
| text/primary on bg/surface | Light | 17.81:1 | AAA | Lc 105 | |
| text/secondary on bg/surface | Light | 7.66:1 | AAA | Lc 87 | |
| text/tertiary on bg/surface | Light | 4.86:1 | AA | Lc 74 | |
| text/brand on bg/surface | Light | 5.63:1 | AA | Lc 76 | |
| text/danger on bg/surface | Light | 8.86:1 | AAA | Lc 88 | |
| text/warning on bg/surface | Light | 8.37:1 | AAA | Lc 88 | |
| text/success on bg/surface | Light | 7.74:1 | AAA | Lc 86 | |
| text/primary on bg/canvas | Light | 17.07:1 | AAA | Lc 102 | |
| text/secondary on bg/canvas | Light | 7.34:1 | AAA | Lc 84 | |
| text/tertiary on bg/canvas | Light | 4.66:1 | AA | Lc 71 | |
| text/secondary on bg/subtle | Light | 6.94:1 | AA | Lc 80 | |
| text/on-brand on bg/brand | Light | 4.58:1 | AA | Lc 75 | |
| text/on-brand on bg/brand-hover | Light | 5.63:1 | AA | Lc 81 | |
| text/on-danger on bg/danger | Light | 4.59:1 | AA | Lc 76 | |
| text/on-secondary on bg/secondary | Light | 4.56:1 | AA | Lc 77 | |
| text/inverse on bg/inverse | Light | 17.81:1 | AAA | Lc 107 | |
| text/brand on bg/brand-subtle | Light | 5.15:1 | AA | Lc 69 | |
| text/danger on bg/danger-subtle | Light | 8.12:1 | AAA | Lc 82 | |
| text/success on bg/success-subtle | Light | 7.15:1 | AAA | Lc 81 | |
| text/warning on bg/warning-subtle | Light | 7.68:1 | AAA | Lc 82 | |
| text/primary on bg/surface | Dark | 17.07:1 | AAA | Lc 104 | |
| text/secondary on bg/surface | Dark | 12.00:1 | AAA | Lc 79 | |
| text/tertiary on bg/surface | Dark | 6.77:1 | AA | Lc 50 | |
| text/brand on bg/surface | Dark | 6.19:1 | AA | Lc 46 | |
| text/danger on bg/surface | Dark | 9.35:1 | AAA | Lc 65 | |
| text/warning on bg/surface | Dark | 8.17:1 | AAA | Lc 59 | |
| text/success on bg/surface | Dark | 10.13:1 | AAA | Lc 69 | |
| text/primary on bg/canvas | Dark | 18.98:1 | AAA | Lc 104 | |
| text/secondary on bg/canvas | Dark | 13.34:1 | AAA | Lc 80 | |
| text/tertiary on bg/canvas | Dark | 7.53:1 | AAA | Lc 50 | |
| text/secondary on bg/subtle | Dark | 9.93:1 | AAA | Lc 77 | |
| text/on-brand on bg/brand | Dark | 4.58:1 | AA | Lc 75 | |
| text/on-brand on bg/brand-hover | Dark | 5.63:1 | AA | Lc 81 | |
| text/on-danger on bg/danger | Dark | 4.59:1 | AA | Lc 76 | |
| text/on-secondary on bg/secondary | Dark | 7.93:1 | AAA | Lc 55 | |
| text/inverse on bg/inverse | Dark | 17.07:1 | AAA | Lc 102 | |
| text/brand on bg/brand-subtle | Dark | 5.54:1 | AA | Lc 44 | |
| text/danger on bg/danger-subtle | Dark | 8.22:1 | AAA | Lc 63 | |
| text/success on bg/success-subtle | Dark | 8.42:1 | AAA | Lc 67 | |
| text/warning on bg/warning-subtle | Dark | 7.03:1 | AAA | Lc 57 |