Hard water lathers poorly with soap because it contains dissolved minerals, such as calcium and magnesium, which react with soap to form insoluble curds. Soft water, on the other hand, contains few dissolved minerals and therefore lathers well with soap.