\documentclass[a5paper]{scrreprt}
\usepackage{xcolor}
\usepackage{showframe}
%\newenvironment{UMGEBUNGSNAME}[ANZAHL][OPTIONAL]{BEGIN}{END}
\newsavebox{\ToDoBox}
\newenvironment{MyToDo}[1] %Name %Anzahl
[] %OPTIONALEs Argument standardmäßig leer
{%BEGIN
\begin{lrbox}{\ToDoBox}%
\begin{minipage}{\dimexpr\linewidth-2\fboxrule-2\fboxsep}
% Fallunterscheidung % -----------------------
\newcommand{\TITEL}{%
\colorbox{blue!50}{\makebox[\dimexpr\linewidth-2\fboxsep][l]{\textbf{#1}}}\par
}%
\if \detokenize{#1}\relax\relax
% #1 is realy empty, even not & or something like this
\else
\TITEL % #1 is nonempty
\fi
% -----------------------
\itshape
}%
{%END
\end{minipage}
\end{lrbox}%
\par
% Wenn ein vertikaler Abstand vor der Box sein soll, hier beispielsweise
% \vspace{\baselineskip}
% einfügen.
\noindent\fcolorbox{black}{orange}{\usebox{\ToDoBox}}\par
% Wenn ein vertikaler Abstand nach der Box sein soll, hier beispielsweise
% \vspace{\baselineskip}
% einfügen.
}%
\usepackage{mwe}
\begin{document}
\begin{MyToDo}
Some text here.
\end{MyToDo}
Ja so auf Zeilenbreite. Ne, die Umsetzung mit einem Paket wie mdframed oder tcolorbox ist mir bekannt. Ich wollte hier eine NurLateX-Methode untersuchen.
@cis:
tcolorbox
ist ein LaTeX-Paket. Damit ist seine Verwendung ebenso eine Nur-LaTeX-Methode, wie die Verwendung vonxcolor
. Du willst also eher, das Rad neu erfinden bzw. dass das jemand für Dich macht.