I'm trying to prepare notes for a class and am wanting to use an align environment in multiple areas but with a potential of two possibilities. Here's a mwe
\documentclass{amsart}
\usepackage{xcolor}
\newcommand\usehidden{1}
\ifnum \usehidden=1
\newcommand{\hidden}[2]{\vspace*{#1}}
\else
\newcommand{\hidden}[2]{{\color{red}{#2}}}
\fi
\begin{document}
\begin{align*}
f(x) &= (x+1)^2\\
&\hidden{7cm}{= (x+1)(x+1)\\
&= x^2 + x + x + 1}\\
&= x^2 + 2x + 1
\end{align*}
\end{document}
Basically the idea is that when I print the student's copy, usehidden is set to 1 and a vertical space is inserted for the students to fill in by hand. On my copy usehidden is set to 0 and the information is actually printed, but in red so I know that was the part that was excluded for the students.
So this works when I set \usehidden{1} but when \usehidden{0} I run into problems because of the color environment. Is there anyway to add color to multiple lines within an align environment?
Also, I noticed vspace isn't giving the appropriate size. Is there a way to make it give the right size?
The thing is, I want to use this style of format quite a few times. (I think I'm at around 50?) So anything that is generalizable and not only for this specific example would be nice.

\textcolor, not\color. – egreg Sep 04 '18 at 21:33\textcoloris right and\coloris wrong here. – egreg Sep 04 '18 at 22:41\MathColor. – Peter Grill Sep 05 '18 at 08:59\color(or even\textcolor) in math mode. – Peter Grill Sep 05 '18 at 08:59