Semi-permanent hair dye has smaller molecules than temporary dyes, and is therefore able to partially penetrate the hair shaft. For this reason, the color will survive repeated washing, typically 4–5 shampoos or a few weeks. Semi-permanents contain no, or very low levels of developer, peroxide or ammonia, and are therefore safer for damaged or fragile hair.
The final color of each strand of hair will depend on its original color and porosity, so there will be subtle variations in shade across the whole head. This gives a more natural result than the solid, all over color of a permanent dye. However, it also means that gray or white hairs will not dye to the same shade as the rest of the hair. If there are only a few grey/white hairs, the effect will usually be enough for them to blend in, but as the gray spreads, there will come a point where it will not be disguised as well. Semi-permanent color cannot lighten the hair.