There are no soft vowels. There are "softening" vowels, this means some vowels make the preceding consonant soft and others do not.

Most consonants in Russian have soft and hard versions. д and т are different consonants, д is voiced and т is voiceless. Each of them have the respective soft versions [д'] and [т'].
That way most consonants belong to quadruples of voiced/unvoiced soft/hard variants:

д д' т т'
г г' к к'
б б' п п'
в в' ф ф'
з з' с с'

etc.

Some consonants are always soft or always hard. For example, й and ч are always soft while ж and ц are always hard. Any Russian can pronounce the soft ж as well but there are just no words with such sound in Russian. Some dictionaries advise to pronounce several words such as жжёшь with soft ж but this sounds a bit provincial to me.

Hard [й] if existed in language would sound for me as a voiced variand of [х], (but some IPA-centric linguists would claim that there is a subtle difference). Such sound exists in Ukrainian (it is written as "г" there and normal Russian [г] is denoted as "ґ" in Ukrainian). That way [й] belongs to the same quadruple as [x] - it is a voiced variant of soft sound [x'].

х х' ? й'

Letters ш and щ denote hard and soft variants of the same sound. So if you see "ш" it is always pronounced hard even if it has a soft sign after it or a softening vowel. And щ is always pronounced soft.