How to change the shaded color of the \rule{...}{...} command?
You could do
\makeatletter
\let\old@rule\@rule
\def\@rule[#1]#2#3{\textcolor{blue}{\old@rule[#1]{#2}{#3}}}
\makeatother
But it may be better to instead define a new \colorrule
command and use that instead, as you may find \rule
is used in unexpected places so if you redefine it you may be changing more than you want to change.
If you need to override this sometimes it's probably better to use a colour such as rulecolor
rather than blue
that you can (re)define when needed:
\documentclass{article}
\usepackage[dvipsnames]{color}
\makeatletter
\let\old@rule\@rule
\def\@rule[#1]#2#3{\textcolor{rulecolor}{\old@rule[#1]{#2}{#3}}}
\makeatother
\definecolor{rulecolor}{named}{Blue}
\usepackage{color}
\begin{document}
\rule{1cm}{1cm}
\bigskip
\rule{.1cm}{1cm}
\bigskip
{\definecolor{rulecolor}{named}{Red}\rule{1cm}{1cm}}
\bigskip
\rule{1cm}{1cm}
\end{document}
The easiest alternative is:
\textcolor{blue}{\rule{2cm}{2cm}}
If you want to define your own command, you can put this in the preamble or latter to change the color as you go.
\newcommand{\myRule}[3][black]{\textcolor{#1}{\rule{#2}{#3}}}
and use e.g.:
\myRule{1cm}{1cm}
\myRule[red]{1cm}{1cm}
\myRule[blue]{1cm}{1cm}
And if you want to fix the color throughout your document, try:
\newcommand{\myRule}[3]{%
\textcolor{red}{\rule{#2}{#3}} %change red to blue, green black whatever.
}