ForHosting KIT · Images

Vivid light blend

Combine a base and a top color the way vivid light does: gray #808080 under a lighter #C0C0C0 brightens all the way to #FFFFFF. Every channel is judged against mid-grey 128 separately, giving strong, punchy contrast. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Base
#808080
Top
#C0C0C0
You get
Hex
#FFFFFF
Rgb string
rgb(255, 255, 255)
Mode r
color_dodge
Mode g
color_dodge

Vivid light is a high-contrast compositing blend mode that applies color-burn or color-dodge independently on each RGB channel according to the top blend colour. When a top channel sits below mid-grey, vivid light burns: contrast increases and the base channel is darkened as if the inverse of the base were divided by twice the top. When a top channel sits at or above mid-grey, vivid light dodges: the base channel is lifted as if divided by twice the inverse of the top, producing bright, punchy highlights. Photographers, texture artists, and theme-pipeline engineers reach for vivid light when they need the same Photoshop preview from two hex tokens — overlaying a contrast mask, matching a layer-blend swatch in continuous integration, or generating accent colours without opening a desktop editor. This capability accepts two validated hex colours, applies one deterministic per-channel rule, and returns the blended swatch as hex and RGB.

How vivid light chooses color-burn or color-dodge on each channel

Vivid light treats the top colour as a contrast decision surface, not as a mix ratio. For every channel in the zero-to-two-hundred-fifty-five range, compare the top channel against mid-grey (one hundred twenty-eight). If the top channel is strictly less than one hundred twenty-eight, the color-burn branch runs: twice the top channel becomes the burn divisor.

The result is two hundred fifty-five minus the rounded product of the inverse base and two hundred fifty-five divided by that divisor, then clamped to the legal channel range. When the top channel is zero the burn divisor vanishes; the result is zero unless the base channel is already white, which stays white. If the top channel is greater than or equal to one hundred twenty-eight, the color-dodge branch runs: twice the inverse of the top channel becomes the dodge divisor.

The result is the rounded product of the base channel and two hundred fifty-five divided by that divisor, then clamped. When the top channel is white the dodge divisor vanishes; the result is white unless the base channel is already black, which stays black. Mid-grey top channels sit on the pivot and leave most base values nearly intact because the burn and dodge envelopes meet near the identity.

Order matters: swapping base and top is a different operation, unlike a fifty-percent RGB lerp.

Workflows, pricing, and how vivid light differs from other colour tools

Call the free in-browser vivid light blend for quick contrast-mask checks, logo overlay experiments, and texture previews without installing a desktop suite. Vivid light is the right search intent when users type vivid light blend mode, vivid light two colors, or Photoshop vivid light hex — those queries are not served by a generic mixer or by pin light. Keep requests to two hex strings, avoid shipping named colours without conversion, and document that base is the bottom layer so teammates never reverse the order by accident.

Authors mapping software-development kits can surface hex and the three mode labels next to colour pickers that students and production designers already expect.

Punchy contrast overlays from two hex tokens

Composite a mid-tone panel colour under a top mask hex so dark top channels burn shadows and light top channels dodge highlights without a full image editor.

Game and UI accent generation

Material authors blend a base albedo token with a top lighting hint colour to generate vivid-light accent swatches for HUD skins and prop palettes.

How does vivid light blend two colours?

For each RGB channel, if top is below 128 the result is a color-burn with twice the top; if top is 128 or higher the result is a color-dodge with twice the inverse of the top. Send base and top as hex.

What is the difference between base and top?

Base is the bottom layer colour. Top is the blend colour that chooses color-burn or color-dodge per channel. Order matters; swapping them is a different result.

What happens if I send an invalid hex code?

Both colours must be 3- or 6-digit hexadecimal (optional #). Bad length or non-hex digits are rejected and not charged.

Is the vivid light blender free?

The browser tool runs free on your device.

Is this the same as pin light or color.mix?

No. color.mix is a linear RGB lerp by ratio. Pin light chooses darken or lighten. Vivid light chooses color-burn or color-dodge — higher contrast, different search intent.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/color/vivid-light

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/color/vivid-light \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"base":"#808080","top":"#C0C0C0"}'
{
  "base": "#808080",
  "top": "#C0C0C0"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "color.vivid_light",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Invalid or missing inputs fail with invalid_input so scripts never ship a silent wrong colour. The free browser path and the prepaid API share one pure module, so goldens stay bit-identical at $0.002 per successful item.

How vivid light chooses color-burn or color-dodge on each channel

The algorithm is pure arithmetic with no network, no random seed, and no wall clock, so identical inputs always produce identical JSON.

Input contract, response fields, and validation errors

Each value must be a three- or six-digit hexadecimal colour with optional hash or zero-x prefix. Named CSS colours and rgb parenthesis strings are out of scope — normalize those upstream. Validation failures are not charged. Use hex when you need a single token for theme files; use rgb when canvas code or accessibility tooling expects separate channels; use the mode labels when teaching or debugging which contrast branch fired on a mixed grey-and-tint top colour. POST a JSON body with two required string fields: base (the bottom layer) and top (the blend layer that selects color-burn or color-dodge). Aliases color1, bottom, hex1, from, and background map to base; color2, blend, hex2, to, and foreground map to top, so older form fields and design-tool vocabularies connect cleanly. On success the payload echoes normalized base and top hex, base_rgb and top_rgb channel objects, the blended hex, rgb as integer red green blue, rgb_string for paste into a stylesheet, mode_r mode_g and mode_b as the words color_burn or color_dodge for each channel, and method always equal to vivid_light so clients can branch without sniffing shapes. Missing base, missing top, empty strings, non-hex digits, and wrong lengths all fail with invalid_input; messages name the field so form validation can highlight the exact control. Keep both strings short: this endpoint never reads images, never samples pixels, and never calls a graphics library — it is two hex tokens in and one blended swatch out.

Workflows, pricing, and how vivid light differs from other colour tools

Use the prepaid API when a design-system pipeline, game material generator, ecommerce swatch service, or marketing asset bot needs a stable contract under KIT balance at $0.002 per successful item. Pair this endpoint with color.mix when you need a ratio lerp instead of a selective burn-or-dodge, with color.mix_subtractive when you want paint-like RYB mud, with color.pin_light when you want the milder darken-or-lighten sibling, and with color.lighten or color.darken when only one colour should shift by a percentage.

Match Photoshop vivid-light previews in CI

Theme and texture pipelines call the API so automated builds reproduce the same vivid-light hex a designer saw in Photoshop, bit-identical every run.

Read the full KIT documentation →